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

Justin A. Lemkul jalemkul at vt.edu
Wed Aug 3 03:08:20 CEST 2011



Sanku M wrote:
> 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. 
> 

The tutorial uses BAR for calculation free energy, not TI.  Though the protocols 
are similar, there is a difference, FYI.

> 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.
> 

 From the manual description of the sd integrator: "The parameter tcoupl is 
ignored."  This explains (a) and (b).

> 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.
> 

What type of equilibration did you do prior to the data collection?  If your 
system isn't sampling the desired ensemble, then you shouldn't proceed.

-Justin

> 
> 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
> 

-- 
========================================

Justin A. Lemkul
Ph.D. Candidate
ICTAS Doctoral Scholar
MILES-IGERT Trainee
Department of Biochemistry
Virginia Tech
Blacksburg, VA
jalemkul[at]vt.edu | (540) 231-9080
http://www.bevanlab.biochem.vt.edu/Pages/Personal/justin

========================================



More information about the gromacs.org_gmx-users mailing list