choderalab / yank

An open, extensible Python framework for GPU-accelerated alchemical free energy calculations.
http://getyank.org
MIT License
181 stars 71 forks source link

Plan/build Yank workflow for running with SMIRNOFF forcefields #657

Closed davidlmobley closed 7 years ago

davidlmobley commented 7 years ago

We want to be able to begin Yank calculations (especially, hydration free energy calculations) with SMIRNOFF forcefields (such as via the ForceField class which currently lives in https://github.com/open-forcefield-group/smarty; to be moved soon to a separate repo). What would be best is to get this implemented in Yank as an alternative to GAFF (or GAFF2) so that we can just switch small molecule force fields via a switch in the YAML.

Right now, it would be possible to use SMIRNOFF in Yank but it would have to be via the serialized XML route -- e.g. I set up the system elsewhere, dump to XML, then read those in to Yank. While this can work, it makes it much more of a headache to get it into our Orion workflow, since it becomes a totally different workflow than the GAFF calculations, whereas if Yank is made SMIRNOFF-capable, then we could potentially switch between them via just a "force field" drop down menu.

@andrrizzi - @jchodera requested I post this and tag you. :)

davidlmobley commented 7 years ago

One potential issue may be that SMIRNOFF doesn't yet have support for constraints, though it's possible that this can be avoided easily or that we can add this support relatively easily.

andrrizzi commented 7 years ago

Sounds great! I'm currently finishing up some changes to the Yank API and implementing the preliminary minimization as part of it. I plan to merge it to master by the end of the week, so I should be able to start working on ways to incorporate the SMIRNOFF forcefields in the pipeline next week and it will likely take me another week to implement it. Does this sounds ok?

I'll first have to dig a little deeper into the repo, and I'll propose a YAML syntax here before implementing the changes.

davidlmobley commented 7 years ago

OK, sounds good. Let me know what I can do to help you have the info you need as you get ready to work on it.

jchodera commented 7 years ago

For the SMIRNOFF paper, I thought we had agreed to use serialized XML files to compute hydration free energies. This is already supported now, and only requires @andrrizzi to ensure the workflow you have doesn't crash.

I added constraint support to SMIRNOFF today: https://github.com/open-forcefield-group/smarty/pull/239

We're just getting the final tests worked out before that's merged.

Supporting SMIRNOFF natively will presumably have to wait for a future version of YANK (2.0?) to which we intend to add an OpenMM ForceField (or SMIRNOFF ForceField) based setup path. The time when it would be mutually beneficial to do so is following the porting of the protein forcefield (AMBER99SB-ILDN) to SMIRNOFF format. By that point, we may have made more progress on a YANK-independent setup pipeline with Julien Michel which will make this very easy.

Until then, @andrrizzi can help you finish the XML-import based hydration free energy calculations for the SMIRNOFF paper, but his time is otherwise needed for finishing a YANK 1.0 paper before moving onto 2.0 features.

davidlmobley commented 7 years ago

@andrrizzi - relating to XML-import based hydration free energy calculations for that paper, what's the best place for me to dump instructions on this? Do you want them in a GitHub issue? In a relevant Slack channel on the openforcefield Slack? In an e-mail?

jchodera commented 7 years ago

@davidlmobley : Heads-up that @andrrizzi just left for a week of well-deserved vacation overseas, so he probably won't get back to you until late next week.

jchodera commented 7 years ago

Maybe an email to @andrrizzi, @Lnaden, and myself would be best?

davidlmobley commented 7 years ago

OK, will do. I'll send an e-mail and follow up next week.

jchodera commented 7 years ago

I think this has been handled by https://github.com/MobleyLab/SMIRNOFF_paper_code for now. We'll eventually support SMIRNOFF ForceField native pipelines once it works for biomolecules and small molecules.