Note: In this section the lambda values are specified manually. For sequential sampling of lambda values, it is simpler to call the runFEP or runFEPlist procedure of fep.tcl. See the comments in that file for instructions.
The first example illustrates the use of TCL scripting for running an alchemical transformation with the FEP feature of NAMD. In this calculation, is changed continuously from 0 to 1 by increments of = 0.1.
|
|
The user should be reminded that by setting run 10000, 10,000 MD steps will be performed, which includes the preliminary fepEquilSteps equilibration steps. This means that here, the ensemble average of equation (38) will be computed over 5,000 MD steps.
Alternatively, -states may be declared explicitly, avoiding the use of TCL scripting:
|
|
This option is generally preferred to set up windows of diminishing widths as 0 or 1 -- a way to circumvent end-point singularities caused by appearing atoms that may clash with their surroundings.
The following second input is proposed for the measuring via TI the free energy of a particle insertion.
alch On ;# Enable alchemical simulation module alchType ti ;# Set method to thermodynamic integration alchFile ion.alch.pdb ;# PDB file with perturbation flags alchCol B ;# Perturbation flags in Beta column alchOutfile ion.ti.out alchOutFreq 5 alchEquilSteps 5000 alchVdWShiftCoeff 1 ;# Enable soft-core vdW potential alchElecLambdaStart 0.1 ;# Introduce electrostatics for lambda > 0.1 alchLambda 0 run 10000 alchLambda 0.00001 run 10000 alchLambda 0.0001 run 10000 alchLambda 0.001 run 10000 alchLambda 0.01 run 10000 set Lambda 0.1 while {$Lambda <= 0.9} { alchLambda $Lambda run 10000 set Lambda [expr $Lambda + 0.1] } alchLambda 0.99 run 10000 alchLambda 0.999 run 10000 alchLambda 0.9999 run 10000 alchLambda 0.99999 run 10000 alchLambda 1 run 10000
Robust sampling of the free energy of particle insertion is enabled by the use of soft-core van der Waals scaling with the alchVdWShiftCoeff parameter, delayed introduction of electrostatics with a non-zero alchElecLambdaStart value, and very gradual scaling of towards its end points.