[gmx-developers] multicomponent lambda free energy calculations.
Sander Pronk
pronk at cbr.su.se
Tue Mar 16 14:49:39 CET 2010
Hi Michael,
This sounds really useful, and I personally think something like this should be included in the main distribution: it is the natural generalization of the current code to something more usable.
One question:
Does this mean that the couple-lambda0 and couple-lambda1 keywords are essentially obsolete?
I have two suggestions:
1) there should probably be a pull code lambda
2) A small suggestion: the naming of these mdp variables is slightly confusing. I'd suggest naming the lambda sets 'lambdas': that way the idea that this is a set is reinforced. Also, the main setting (fep-lambda) can be named 'lambdas'. The lambda point identifier 'init_fep_state' should probably be something like 'init_lambda_state'.
init_lambda_state =
lambdas = ...
coul-lambdas = ...
vdw-lambdas =
Sander
On 15 Jan 2010, at 05:46 , Michael Shirts wrote:
> I've put together a reworking of the foreign lambda calculation in the
> CVS to make it easier to use best practices for free energy
> calculations. This code is caught up to CVS master (as of today).
> This can be downloaded for testing with the command:
>
> git clone git://git.gromacs.org/~mrshirts/gromacs_mrs.git
>
> What is described below sounds userful, You should 1) try to see if
> you can rewrite your topologies in a way that can use fewer separate
> topologies with this new code and 2) see if you can set up tests that
> -verify- that what is being done is actually correct, comparing
> between the old and new codes. I've checked for several test cases,
> but there may always be some new test case that I missed.
>
> Key points:
>
> 1. Previous functionality is preserved (including couple keywords),
> with the exception that instead of using the key word
> 'foreign_lambda', the key word 'fep-lambda' is used instead. A bug in
> the free energy calculations code 1,4 interactions without LJ terms
> was found -- this has also been fixed in the main branch as well.
>
> 2. Lambda can now be expressed as a vector of the different
> interaction terms; currently 'coul-lambda', 'vdw-lambda',
> 'bonded-lambda', 'restraint-lambda' and 'mass-lambda' are possible,
> but finer/different divisions are possible in the future as needed.
>
>
<snip>
> Examples:
>
> Example A:
> fep-lambda = 0.0 0.0 0.0
> coul-lambda = 0.0 0.8 1.0
> vdw-lambda = 0.0 0.2 1.0
>
> Coul and vdw terms change, all other terms remain in A state; the same
> as if fep-lambda was omitted.
>
> Example B:
> fep-lambda = 0.0 0.0 0.0
> coul-lambda = 0.0 0.8 1.0
> vdw-lambda = 0.0 0.2 0.4
> Restraint-lambda = 0.0 0.4 1.0
> Bonded-lambda = 0.0 0.1 1.0
> Mass-lambda = 0.0 0.0 1.0
>
> Fep-lambda does nothing, since all defined components are specified.
>
> Example C:
> fep-lambda = 0.0 0.2 0.8
> coul-lambda = 0.0 0.8 1.0
>
> Vdw, restraint, bonded, mass all have 0.0 in the first state, 0.2 in
> the second state, and 0.8 in the last state, copied from fep-lambda.
>
> This scheme should be sufficient to handle almost all possible
> transformations, but can be extended fairly easily as needed.
More information about the gromacs.org_gmx-developers
mailing list