Skip to content

Conversation

@anupam-banerjee
Copy link
Contributor

Adaptive2 is a more robust implementation of Adaptive ANM to the prody.dynamics module.
Adaptive2 improves upon the legacy adaptive method by introducing:

  1. Overlap-sorted mode selection for more relevant and stable mode usage
  2. Adaptive Fmin scheduling that adjusts mode-selection thresholds automatically
  3. Optional adaptive step size (adaptive f) for smoother convergence
  4. More stringent, physically meaningful adjacency and disconnection checks
  5. Backtracking-based step acceptance to guarantee physically valid RMSD improvement
  6. Optional progressive mode cap for stable early steps and fine corrections later

The module is fully integrated via init.py and follows ProDy’s existing ENM/ANM workflow. This has also been tested with the constrained ANM implementation.

@AnthonyBogetti
Copy link
Member

Hi @anupam-banerjee, can you comment here with a minimal amount of code to run this new addition to ProDy? Just something that if you were to run it, would expect it to work 100% assuming the code is working as intended.

@anupam-banerjee
Copy link
Contributor Author

@AnthonyBogetti you can try

a = parsePDB("adk_mdclosed.pdb").select("protein and name CA")
b = parsePDB("adk_mdopen.pdb").select("protein and name CA")

aanm = AdaptiveANM(a, b, model='anm', adj_max=6)
ens = aanm.run(n_steps=50, mode=AANM_ONEWAY)

print("Coordsets in ensemble:", ens.numCoordsets())
print("Final RMSD:", aanm.rmsds[-1])

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants