-
Notifications
You must be signed in to change notification settings - Fork 16
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
Refactor NCMC code ot eliminate code duplication? #50
Comments
Since we have to worry about external protocol work (external as in work from outside the lambda perturbations) we can't use the NonequilibriumLangevinIntegrat class directly. I think that there were some discussions about modifying the base code so that it can handle the external protocol work case, but it's not implemented as of yet. |
@jchodera @pgrinaway -- thoughts on Sam's response? I would love to avoid code duplication but I'm not seeing an obvious way to do this here. And @sgill2 - have you brought in your work-around yet or is that a "to do" item? |
This is what I would do. You can take a look at the |
Thanks for the input @pgrinaway! |
Wait, where is your external work coming from? |
The external work should be zero in the case of a rotation/translation of a given whole fully non-interacting ligand. |
One idea would be to use Metropolis Monte Carlo on the |
For the BLUES paper, however, you can probably just get away with using |
@jchodera - where is @sgill2 - I think a key question is whether we can replace the Thanks. |
Sam and I just discussed this. We are enthusiastic about the idea of doing Metropolis Monte Carlo on the sidechain (that may make certain other aspects a bit cleaner/easier to deal with as well) as per #50 (comment) so we think we'll proceed in that direction. That also removes the need for the This also means we can do as this issue's title suggests and migrate the code to use So, long story short, I think we can kill a couple birds with one stone here and move to And then separately, we'll use MMC for the sidechain moves in the tangential project. |
Upon further discussion we think it might still be relevant to test a metropolized and external protocol approach and see how they perform in different cases. |
Whoops! Yes,
That's surprising!
|
I believe you can still use |
Update: As noted in choderalab/openmmtools#201 (comment), I got the step order wrong, and BAOAB based methods should have the order |
For the record, I believe the g-BAOAB scheme noted above is not represented correctly, per John in this thread: choderalab/openmmtools#201 (comment) |
We've moved all of the nonequilibrium switching functionality from perses into
NonequilibriumLangevinIntegrat
.All of the nonequilibrium integrators can be moved out of
ncmc_switching.py
and replaced by calls toopenmmtools.integrators.NonequilibriumLangevinIntegrator
with the appropriate integrators splittings:R V O H O V R
, where the Hamiltonian update happens in the middle to make the protocol symmetric. We currently recommend this, neglecting shadow work and only including protocol work in the NCMC acceptance probability---this will be the topic of a paper we're trying to tackle ASAP).O V R H R V O
V R H R V
O { V R H R V } O
@maxentile, @bas-rustenburg, and @patrickgrinaway were integral in putting this together, and can help you if you need more info.
The text was updated successfully, but these errors were encountered: