[gmx-users] Problem with temperature and stochastic dynamics in FEP

Sanku M msanku65 at yahoo.com
Wed Aug 3 03:02:58 CEST 2011


Hi,
  I am trying to calculate the solvation free energy using thermodynamic 
integration(TI) method . I am using gromacs 4.0.7 . But, I am having a problem 
in getting accurate average temperature .
The following is what I did:
   I found that when doing TI, grompp recommends using 'sd' ( stochastic 
dynamics ) as integrator ( provides an warning that for decoupled system, it is 
better to use sd in stead of md ).
Also I went through Justin Lemkul's tutorial which also recommends using 'sd' 
for TI method.   So, I tried to use sd integrator. 

I wanted to run NVT simulation at 300 K.
I also found from manual and also from Justin's website on FEP, sd integrator 
implicitly controls temperature and so there is no need to specify a thermostat. 
So, I did not specify any thermostat ( I wrote tcoupl = No ). But, 
unfortunately, I found that after a long simulation  , the average temperature 
actually goes to 303 K in stead of 300 K( the desired temperature). This 
happened for all Lambda values where the average temperature turned out to be 
303 K. The .mdp file is pasted at the end of the email and I felt I am using 
reasonable cutoffs and PME as electrostatics.

Here is the output from g_energy command to get the temperature. 
 
 Statistics over 4000001 steps [ 0.0000 thru 8000.0005 ps ], 1 data sets
All averages are exact over 4000001 steps

Energy                      Average       RMSD     Fluct.      Drift  Tot-Drift
-------------------------------------------------------------------------------
Temperature                 303.333    4.78084    4.78082 5.46937e-06   0.043755
Heat Capacity Cv:      12.4764 J/mol K (factor = 0.00024841)


I tried three  further tests:
a) I removed tcoupl = No option . But, it is giving same 303K as average 
temperature when using sd.

a)  I tried to specify the Nose-Hoover thermostat along with sd. But still, I 
found that when using sd, the average  temperature is going to 303 K in stead of 
300 K.

c)  Finally, I tried to overlook grompp warning and went ahead and used 'md' 
along with Nose-Hoover thermostat. This time I found the right average 
temperature 300 K is being achieved.B
But, I understand that for a decoupled system like here, I need to use a method 
like stochastic dynamics. 

 But , I was wondering why it is reaching 303 K in stead of 300 K when using sd 
 but 300K is achieved when using md. I looked at the mailing list where people 
had issues with sd and temperature control. But, I could not find a good 
solution. So, any help on the right protocol will be really appreciated.


Here is my .mdp file.

; RUN CONTROL PARAMETERS
integrator               = sd
; Start time and timestep in ps
tinit                    = 0.0
dt                       = 0.002
nsteps                   = 4000000
; For exact run continuation or redoing part of a run
; Part index is updated automatically on checkpointing (keeps files separate)
simulation_part          = 1
init_step                = 0
; mode for center of mass motion removal
comm-mode                = Linear
; number of steps for center of mass motion removal
nstcomm                  = 1
; group(s) for center of mass motion removal
comm-grps                =
; LANGEVIN DYNAMICS OPTIONS
; Friction coefficient (amu/ps) and random seed
bd-fric                  = 0
ld-seed                  = 1993



; OUTPUT CONTROL OPTIONS
; OUTPUT CONTROL OPTIONS
; Output frequency for coords (x), velocities (v) and forces (f)
nstxout                  = 10000
nstvout                  = 10000
nstfout                  = 0
; Output frequency for energies to log file and energy file
nstlog                   = 1000
nstenergy                = 10
; Output frequency and precision for xtc file
nstxtcout                = 1000
xtc-precision            = 1000
; This selects the subset of atoms for the xtc file. You can
; select multiple groups. By default all atoms will be written.
xtc-grps                 =
; Selection of energy groups
energygrps               =

; NEIGHBORSEARCHING PARAMETERS
; nblist update frequency
nstlist                  = 10
; ns algorithm (simple or grid)
ns_type                  = grid
; Periodic boundary conditions: xyz, no, xy
pbc                      = xyz
periodic_molecules       = no
; nblist cut-off
rlist                    = 1.4

; OPTIONS FOR ELECTROSTATICS AND VDW
; Method for doing electrostatics
coulombtype              = pme
rcoulomb-switch          = 0
rcoulomb                 = 1.4
; Relative dielectric constant for the medium and the reaction field
epsilon_r                = 1
epsilon_rf               = 1
; Method for doing Van der Waals
epsilon_rf               = 1
; Method for doing Van der Waals
vdw-type                 = shift
; cut-off lengths
rvdw-switch              = 1.0
rvdw                     = 1.4
; Apply long range dispersion corrections for Energy and Pressure
DispCorr                 = EnerPres
; Extension of the potential lookup tables beyond the cut-off
table-extension          = 1
; Seperate tables between energy group pairs
energygrp_table          =
; Spacing for the PME/PPPM FFT grid
fourierspacing           = 0.12
; FFT grid size, when a value is 0 fourierspacing will be used
fourier_nx               = 0
fourier_ny               = 0
fourier_nz               = 0
; EWALD/PME/PPPM parameters
pme_order                = 6
ewald_rtol               = 1e-6
ewald_geometry           = 3d
epsilon_surface          = 0
; OPTIONS FOR WEAK COUPLING ALGORITHMS
; Temperature coupling
tcoupl                   = No
; Groups to couple separately
tc_grps                  = System
; Time constant (ps) and reference temperature (K)
tau_t                    = 1.0
ref_t                    = 300
; Pressure coupling
Pcoupl                   = no
Pcoupltype               = isotropic
; Time constant (ps), compressibility (1/bar) and reference P (bar)
tau-p                    = 1.0
compressibility          = 4.5e-5
ref-p                    = 1
; Scaling of reference coordinates, No, All or COM
refcoord_scaling         = No
; Random seed for Andersen thermostat
andersen_seed            = 124821

gen-vel                  = no
gen-temp                 = 300
gen-seed                 = -1

; OPTIONS FOR BONDS
constraints              = hbonds
; Type of constraint algorithm
constraint-algorithm     = Lincs
; Do not constrain the start configuration
continuation             = yes
; Use successive overrelaxation to reduce the number of shake iterations
Shake-SOR                = no
; Relative tolerance of shake
shake-tol                = 1e-04
; Highest order in the expansion of the constraint coupling matrix
lincs-order              = 12
; Number of iterations in the final step of LINCS. 1 is fine for
; normal simulations, but use 2 to conserve energy in NVE runs.
; For energy minimization with constraints it should be 4 to 8.
lincs-iter               = 1
; Lincs will write a warning to the stderr if in one step a bond
; rotates over more degrees than
lincs-warnangle          = 30

; Free energy control stuff
free-energy              = yes
init-lambda              = .05
delta-lambda             = 0
sc-alpha                 = 0.0
sc-power                 = 0
sc-sigma                 = 0.0
couple-moltype           = Protein
couple-lambda0           = vdw
couple-lambda1           = vdw-q
couple-intramol          = no
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-users/attachments/20110802/9f1c7db5/attachment.html>


More information about the gromacs.org_gmx-users mailing list