Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add interface to NAMD #1010

Open
benmwebb opened this issue Sep 20, 2018 · 4 comments
Open

Add interface to NAMD #1010

benmwebb opened this issue Sep 20, 2018 · 4 comments
Assignees

Comments

@benmwebb
Copy link
Member

It would be useful to add a two-way interface to NAMD so that

  1. IMP ScoringFunctions can be added to the NAMD forcefield so that we can use NAMD's integrator.
  2. NAMD forcefield can be evaluated on an IMP Model.

(1) should be possible using NAMD's external program forces support (although it may not be very efficient as it requires spawning a process at every time step that would then talk to an existing IMP process). @BIORAK, is this what you had in mind?

Not sure if (2) is possible for now unless we pass restart files to/from NAMD and do a single point energy, which might be horribly inefficient (since NAMD would have to do its startup for every step).

@benmwebb benmwebb self-assigned this Sep 20, 2018
@rakeshr10
Copy link

Thanks @benmwebb for looking up regarding this. Yes this is exactly what I had in mind, was not aware of this option earlier. I was thinking more in terms of glue code between NAMD and IMP.

Regarding (2) there might be better options. I have talked to one of the NAMD developers - David J. Hardy regarding this recently, he suggested at that time IMP could be added as a library while NAMD is compiled. Not sure how to do this, I can write to him to get more information on this.

I am also completely not aware what parts of IMP needs to talk to NAMD and how. I think Ben @sdaxen would also be able helpful in this regard, @sdaxen and @cgreenberg are the two scoring functions I am aware of with derivatives which could be used readily to apply forces to atoms.

@rakeshr10
Copy link

@benmwebb I forgot to mention there is also gmxapi (https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/bty484/5038467) python interfaced to Gromacs engine which might also be an attractive option.

@sethaxen
Copy link
Contributor

It would probably be good to understand the set of use cases this feature is intended to address. For example, with an atomic resolution system restrained with a CHARMM forcefield and Lennard-Jones pair score, at least in my benchmarks, the bottleneck is in Lennard-Jones-related restraint evaluation, not in the actual integration. For systems with rigid bodies, I expect much of the time will be spent in updating constraints pre-evaluation. Do we have use cases with performance benchmarks that indicate where IMP is slow and NAMD might speed things up?

Also, I just want to clarify that @cgreenberg and I are not in fact differentiable scoring functions.

@benmwebb
Copy link
Member Author

IMP could be added as a library while NAMD is compiled. Not sure how to do this, I can write to him to get more information on this.

That would probably be the most efficient option, so yes, please ask David about that.

I am also completely not aware what parts of IMP needs to talk to NAMD and how

Don't worry - I can handle that! I imagine it would resemble the existing IMP.modeller interface.

It would probably be good to understand the set of use cases this feature is intended to address

Like the existing IMP.modeller interface, the intention of any interface between IMP and external software is to make our box of tools bigger. It certainly isn't to solve a performance issue with either IMP or NAMD (performance will likely suck due to having to pass coordinates and derivatives back and forth).

An existing example: the IMP.modeller interface allows us to use Modeller's rotamer library to restrain a bunch of dihedrals in IMP.

Also, I just want to clarify that @cgreenberg and I are not in fact differentiable scoring functions.

I believe this is a known medical condition.

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

No branches or pull requests

3 participants