Open mrshirts opened 2 years ago
I agree we need single replica methods for F@H. Expanded ensemble is the general category of algorithm, and SAMS and AWH are two very similar ways to accumulate the biases. As appears to be TSS, though I need to familiarize myself with the details.
Raw notes from story review, shared here for visibility:
In broad terms, what are you trying to do?
Calculate binding free energies using expanded ensemble simulations, AWH, or potentially simple "array of lambda" simulations. Hamiltonian replica exchange is probably out of scope (requiring multiple processors, and one can't do that with F@H).
Simple "run standard simulations at bunch of lambda might also be important, as although there are sampling limitations, it's the most basic, least fail-prone method (other than sampling failures). Pretty much always works if there are no sampling issues.
How do you believe using this project would help you to do this?
I think it's important to have alternate methods to calculate free energies to validate results. Expanded ensembles potentially have different success and failure modes than nonequilibrium switching simulations, because they go back and forth along the lambda collective variable, allowing the same simulation to escape from metastable minima. I'm not saying they are necessarily better that nonequilibrium switching, but they are different, which is a value in and of itself. AWH is a very similar approach (almost exactly similar in theory, somewhat different in implementation), though I'm not as familiar with the implementation.
What problems do you anticipate with using this project to achieve the above?
Two logistic issues are that the simulations need to copy information from one simulation to the next in the same chain of simulations, and that the log files and .edr need to be analyzed during/after the simulations to obtain the free energies.
Note that Vince Voelz is heavily using these calculations for F@H COVID Moonshot simulations and others, and so has workflows that work well that can be borrowed.
For, "run each simulation at separate lambdas", then there needs to be work to make sure that simulations are allocated/complete at each lambda, and then analysis afterwards. Simulations can be handled in normal ways, since there's no dependence on previous simulations other than "start at the same lambda and coordinates you stopped on".