[gmx-users] Problem with OPLS Benzene and Bond Constraints

Ran Friedman r.friedman at bioc.uzh.ch
Thu Feb 11 16:32:39 CET 2010


Dear Mike,

It's hard to know what's going on from your input. Did you check the
thermodynamic components with g_energy (especially the pressure bond, LJ
and Coulomb energies)? This may give you a hint. Also, I would do a test
run with PME - you're anyway not following the parametrisation of
Jorgensen and co-workers exactly. As a final note - the correct phase is
something that's very difficult to reproduce exactly with classical MD,
and while a single molecule interacting with a protein may work just
fine, a bulk of such molecules does not always reproduce the correct
phase at a given temperature. This is one reason why lipid models are
still being developed.

Hope that helps a bit,
Ran

Mike Wykes wrote:
> Dear All
>
> I would like to perform MD simulations with benzene as a solvent and
> am observing some strange behaviour when I use Lincs to constrain all
> the bonds. When I run a fully flexible NPT MD of a box of 320 benzene
> molecules simulation at 298K and 1bar, the density comes out at  841
> g/l, not too far away from the experimental value of 876 g/l. However
> when I constrain all bonds using Lincs, the system expands rapidly,
> stabilising at a density of  2.62 g/l ! Both simulations started from
> NVT equilibrated simulations fixed to the experimental density. In the
> papers describing OPLS parametrisation, the MC simulations were indeed
> performed with fully flexible molecules, but it surprises me that the
> bond constraints would affect the density so strongly. Does anyone
> have any ideas why this is occurring? I am using a cutoff of 1.5 nm
> for VDW and Coulomb interactions without EWALD/PME but this is
> consistent with how OPLS was parametrised. There are no Lincs warnings
> in the log file of the constrained simulation.
>
> Please find my mdp and Benzene itp files below, the only difference
> between the flexible and constrained runs being dt = 0.001/0.002 and
> constraints = none/all-bonds respectively.
>
> Many thanks for your ideas/explanations as to what could be going on,
>
> Mike
>
> ;
> ;       File 'mdout.mdp' was generated
> ;       By user: mwykes (7017)
> ;       On host: node168
> ;       At date: Thu Feb  4 20:05:46 2010
> ;
>
> ; VARIOUS PREPROCESSING OPTIONS
> ; Preprocessor information: use cpp syntax.
> ; e.g.: -I/home/joe/doe -I/home/mary/hoe
> include                  =
> ; e.g.: -DI_Want_Cookies -DMe_Too
> define                   = -DFLEX_SPC
>
> ; RUN CONTROL PARAMETERS
> integrator               = md
> ; Start time and timestep in ps
> tinit                    = 0
> dt                       = 0.002
> nsteps                   = 5000000
> ; 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
>
> ; ENERGY MINIMIZATION OPTIONS
> ; Force tolerance and initial step-size
> emtol                    = 1.0
> emstep                   = 0.1
> ; Max number of iterations in relax_shells
> niter                    = 20
> ; Step size (ps^2) for minimization of flexible constraints
> fcstep                   = 0
> ; Frequency of steepest descents steps when doing CG
> nstcgsteep               = 1000
> nbfgscorr                = 10
>
> ; TEST PARTICLE INSERTION OPTIONS
> rtpi                     = 0.05
>
> ; OUTPUT CONTROL OPTIONS
> ; Output frequency for coords (x), velocities (v) and forces (f)
> nstxout                  = 0
> nstvout                  = 0
> nstfout                  = 0
> ; Output frequency for energies to log file and energy file
> nstlog                   = 500
> nstenergy                = 500
> ; Output frequency and precision for xtc file
> nstxtcout                = 500
> 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                 = BNZ
> ; Selection of energy groups
> energygrps               = BNZ
>
> ; NEIGHBORSEARCHING PARAMETERS
> ; nblist update frequency
> nstlist                  = 10
> ; ns algorithm (simple or grid)
> nstype                   = grid
> ; Periodic boundary conditions: xyz, no, xy
> pbc                      = xyz
> periodic_molecules       = no
> ; nblist cut-off
> rlist                    = 1.5
>
> ; OPTIONS FOR ELECTROSTATICS AND VDW
> ; Method for doing electrostatics
> coulombtype              = Cut-off
> rcoulomb-switch          = 0
> rcoulomb                 = 1.5
> ; Relative dielectric constant for the medium and the reaction field
> epsilon_r                = 1
> epsilon_rf               = 1
> ; Method for doing Van der Waals
> vdw-type                 = Cut-off
> ; cut-off lengths
> rvdw-switch              = 0
> rvdw                     = 1.5
> ; Apply long range dispersion corrections for Energy and Pressure
> DispCorr                 = No
> ; 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                = 4
> ewald_rtol               = 1e-05
> ewald_geometry           = 3d
> epsilon_surface          = 0
> optimize_fft             = no
>
> ; IMPLICIT SOLVENT ALGORITHM
> implicit_solvent         = No
>
> ; GENERALIZED BORN ELECTROSTATICS
> ; Algorithm for calculating Born radii
> gb_algorithm             = Still
> ; Frequency of calculating the Born radii inside rlist
> nstgbradii               = 1
> ; Cutoff for Born radii calculation; the contribution from atoms
> ; between rlist and rgbradii is updated every nstlist steps
> rgbradii                 = 2
> ; Dielectric coefficient of the implicit solvent
> gb_epsilon_solvent       = 80
> ; Salt concentration in M for Generalized Born models
> gb_saltconc              = 0
> ; Scaling factors used in the OBC GB model. Default values are OBC(II)
> gb_obc_alpha             = 1
> gb_obc_beta              = 0.8
> gb_obc_gamma             = 4.85
> ; Surface tension (kJ/mol/nm^2) for the SA (nonpolar surface) part of GBSA
> ; The default value (2.092) corresponds to 0.005 kcal/mol/Angstrom^2.
> sa_surface_tension       = 2.092
>
> ; OPTIONS FOR WEAK COUPLING ALGORITHMS
> ; Temperature coupling
> tcoupl                   = berendsen
> ; Groups to couple separately
> tc-grps                  = BNZ
> ; Time constant (ps) and reference temperature (K)
> tau_t                    = 0.1
> ref_t                    = 300
> ; Pressure coupling
> Pcoupl                   = Berendsen
> Pcoupltype               = Isotropic
> ; Time constant (ps), compressibility (1/bar) and reference P (bar)
> tau-p                    = 1.0
> compressibility          = 4.5e-5
> ref-p                    = 1.0
> ; Scaling of reference coordinates, No, All or COM
> refcoord_scaling         = No
> ; Random seed for Andersen thermostat
> andersen_seed            = 815131
>
> ; OPTIONS FOR QMMM calculations
> QMMM                     = no
> ; Groups treated Quantum Mechanically
> QMMM-grps                =
> ; QM method
> QMmethod                 =
> ; QMMM scheme
> QMMMscheme               = normal
> ; QM basisset
> QMbasis                  =
> ; QM charge
> QMcharge                 =
> ; QM multiplicity
> QMmult                   =
> ; Surface Hopping
> SH                       =
> ; CAS space options
> CASorbitals              =
> CASelectrons             =
> SAon                     =
> SAoff                    =
> SAsteps                  =
> ; Scale factor for MM charges
> MMChargeScaleFactor      = 1
> ; Optimization of QM subsystem
> bOPT                     =
> bTS                      =
>
> ; SIMULATED ANNEALING
> ; Type of annealing for each temperature group (no/single/periodic)
> annealing                =
> ; Number of time points to use for specifying annealing in each group
> annealing_npoints        =
> ; List of times at the annealing points for each group
> annealing_time           =
> ; Temp. at each annealing point, for each group.
> annealing_temp           =
>
> ; GENERATE VELOCITIES FOR STARTUP RUN
> gen-vel                  = no
> gen-temp                 = 300
> gen-seed                 = -1
>
> ; OPTIONS FOR BONDS
> constraints              = all-bonds
> ; Type of constraint algorithm
> constraint-algorithm     = Lincs
> ; Do not constrain the start configuration
> continuation             = no
> ; Use successive overrelaxation to reduce the number of shake iterations
> Shake-SOR                = no
> ; Relative tolerance of shake
> shake-tol                = 0.0001
> ; Highest order in the expansion of the constraint coupling matrix
> lincs-order              = 1
> ; 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
> ; Convert harmonic bonds to morse potentials
> morse                    = no
>
> ; ENERGY GROUP EXCLUSIONS
> ; Pairs of energy groups for which all non-bonded interactions are excluded
> energygrp_excl           =
>
> ; WALLS
> ; Number of walls, type, atom types, densities and box-z scale factor for Ewald
> nwall                    = 0
> wall_type                = 9-3
> wall_r_linpot            = -1
> wall_atomtype            =
> wall_density             =
> wall_ewald_zfac          = 3
>
> ; COM PULLING
> ; Pull type: no, umbrella, constraint or constant_force
> pull                     = no
>
> ; NMR refinement stuff
> ; Distance restraints type: No, Simple or Ensemble
> disre                    = No
> ; Force weighting of pairs in one distance restraint: Conservative or Equal
> disre-weighting          = Conservative
> ; Use sqrt of the time averaged times the instantaneous violation
> disre-mixed              = no
> disre-fc                 = 1000
> disre-tau                = 0
> ; Output frequency for pair distances to energy file
> nstdisreout              = 100
> ; Orientation restraints: No or Yes
> orire                    = no
> ; Orientation restraints force constant and tau for time averaging
> orire-fc                 = 0
> orire-tau                = 0
> orire-fitgrp             =
> ; Output frequency for trace(SD) and S to energy file
> nstorireout              = 100
> ; Dihedral angle restraints: No or Yes
> dihre                    = no
> dihre_fc                 = 9999.0
>
> ; Free energy control stuff
> free-energy              = no
> init-lambda              = 0
> delta-lambda             = 0
> sc-alpha                 = 0
> sc-power                 = 0
> sc-sigma                 = 0.3
> couple-moltype           =
> couple-lambda0           = vdw-q
> couple-lambda1           = vdw-q
> couple-intramol          = no
>
> ; Non-equilibrium MD stuff
> acc-grps                 =
> accelerate               =
> freezegrps               =
> freezedim                =
> cos-acceleration         = 0
> deform                   =
>
> ; Electric fields
> ; Format is number of terms (int) and for all terms an amplitude (real)
> ; and a phase angle (real)
> E-x                      =
> E-xt                     =
> E-y                      =
> E-yt                     =
> E-z                      =
> E-zt                     =
>
> ; User defined thingies
> user1-grps               =
> user2-grps               =
> userint1                 = 0
> userint2                 = 0
> userint3                 = 0
> userint4                 = 0
> userreal1                = 0
> userreal2                = 0
> userreal3                = 0
> userreal4                = 0
>
> benzene.itp:
>
> [ defaults ]
> ; nbfunc        comb-rule       gen-pairs       fudgeLJ fudgeQQ
> 1               3               yes             0.5     0.5
>
> [ atomtypes ]
> ; full atom descriptions are available in ffoplsaa.atp
> ; name  bond_type    mass    charge   ptype          sigma      epsilon
>  opls_145   CA  6     12.01100    -0.115       A    3.55000e-01  2.92880e-01
>  opls_146   HA  1      1.00800     0.115       A    2.42000e-01  1.25520e-01
>
> [ bondtypes ]
> ; i    j  func       b0          kb
>   CA    HA      1    0.10800   307105.6   ; PHE, etc.
>   CA    CA      1    0.14000   392459.2   ; TRP,TYR,PHE
>
> [ angletypes ]
> ;  i    j    k  func       th0       cth
>   CA     CA     HA      1   120.000    292.880   ;
>   CA     CA     CA      1   120.000    527.184   ; PHE(OL)
>
> [ dihedraltypes ]
> ;  i    j    k    l   func     coefficients
> ; OPLS Fourier dihedraltypes translated to Gromacs Ryckaert-Bellemans form
> ; according to the formula in the Gromacs manual.
>   X      CA     CA     X       3     30.33400   0.00000 -30.33400
> 0.00000   0.00000   0.00000 ; aromatic ring
>
> [ dihedraltypes ]
> ; Improper OPLS dihedrals to keep groups planar.
> ; (OPLS doesnt use impropers for chiral atoms).
> ; Since these functions are periodic of the form 1-cos(2*x), the are actually
> ; implemented as proper dihedrals [1+cos(2*x+180)] for the moment,
> ; to keep things compatible.
> ; The defines are used in ffoplsaa.rtp or directly in your .top ile.
> #define improper_Z_CA_X_Y       180.0      4.60240   2
>
>
> [  moleculetype  ]
> ; Name            nrexcl
> BNZ             3
>
> [ atoms ]
> ;   nr       type  resnr residue  atom   cgnr     charge       mass
> typeB    chargeB      massB
> 1 opls_145 1 BNZ CA1 1 -0.115 12.011  ; -0.1150
> 2 opls_145 1 BNZ CA2 2 -0.115 12.011  ; -0.2300
> 3 opls_145 1 BNZ CA3 3 -0.115 12.011  ; -0.3450
> 4 opls_145 1 BNZ CA4 4 -0.115 12.011  ; -0.4600
> 5 opls_145 1 BNZ CA5 5 -0.115 12.011  ; -0.5750
> 6 opls_145 1 BNZ CA6 6 -0.115 12.011  ; -0.6900
> 7 opls_146 1 BNZ HA7 1 0.115 1.008  ; -0.5750
> 8 opls_146 1 BNZ HA8 2 0.115 1.008  ; -0.4600
> 9 opls_146 1 BNZ HA9 3 0.115 1.008  ; -0.3450
> 10 opls_146 1 BNZ HA10 4 0.115 1.008  ; -0.2300
> 11 opls_146 1 BNZ HA11 5 0.115 1.008  ; -0.1150
> 12 opls_146 1 BNZ HA12 6 0.115 1.008  ; -0.0000
>
> [ bonds ]
> ;  ai    aj funct            c0            c1            c2            c3
>     1     2     1
>     1     6     1
>     1     7     1
>     2     3     1
>     2     8     1
>     3     4     1
>     3     9     1
>     4     5     1
>     4    10     1
>     5     6     1
>     5    11     1
>     6    12     1
>
> [ angles ]
> ;  ai    aj    ak funct            c0            c1            c2            c3
>     2     1     6     1
>     2     1     7     1
>     6     1     7     1
>     1     2     3     1
>     1     2     8     1
>     3     2     8     1
>     2     3     4     1
>     2     3     9     1
>     4     3     9     1
>     3     4     5     1
>     3     4    10     1
>     5     4    10     1
>     4     5     6     1
>     4     5    11     1
>     6     5    11     1
>     1     6     5     1
>     1     6    12     1
>     5     6    12     1
>
> [ dihedrals ]
> ;  ai    aj    ak    al funct            c0            c1
> c2            c3            c4            c5
>     6     1     2     3     3
>     6     1     2     8     3
>     7     1     2     3     3
>     7     1     2     8     3
>     2     1     6     5     3
>     2     1     6    12     3
>     7     1     6     5     3
>     7     1     6    12     3
>     1     2     3     4     3
>     1     2     3     9     3
>     8     2     3     4     3
>     8     2     3     9     3
>     2     3     4     5     3
>     2     3     4    10     3
>     9     3     4     5     3
>     9     3     4    10     3
>     3     4     5     6     3
>     3     4     5    11     3
>    10     4     5     6     3
>    10     4     5    11     3
>     4     5     6     1     3
>     4     5     6    12     3
>    11     5     6     1     3
>    11     5     6    12     3
>
> [ dihedrals ]
> ;  ai    aj    ak    al funct            c0            c1
> c2            c3
>     2     6     1     7     1 improper_Z_CA_X_Y
>     6     2     1     7     1 improper_Z_CA_X_Y
>     1     3     2     8     1 improper_Z_CA_X_Y
>     3     1     2     8     1 improper_Z_CA_X_Y
>     2     4     3     9     1 improper_Z_CA_X_Y
>     4     2     3     9     1 improper_Z_CA_X_Y
>     3     5     4    10     1 improper_Z_CA_X_Y
>     5     3     4    10     1 improper_Z_CA_X_Y
>     4     6     5    11     1 improper_Z_CA_X_Y
>     6     4     5    11     1 improper_Z_CA_X_Y
>     1     5     6    12     1 improper_Z_CA_X_Y
>     5     1     6    12     1 improper_Z_CA_X_Y
>
> [ pairs ]
>     6         3     1
>     6         8     1
>     7         3     1
>     7         8     1
>     2         5     1
>     2        12     1
>     7         5     1
>     7        12     1
>     1         4     1
>     1         9     1
>     8         4     1
>     8         9     1
>     2         5     1
>     2        10     1
>     9         5     1
>     9        10     1
>     3         6     1
>     3        11     1
>    10         6     1
>    10        11     1
>     4         1     1
>     4        12     1
>    11         1     1
>    11        12     1
>   




More information about the gromacs.org_gmx-users mailing list