understanding openMM minimization, equilibration and production
Posted: Mon Nov 08, 2021 7:14 am
I have recently switched to openMM coming from GROMACS for simulations of proteins and ligands in explicit solvent
.
In GROMACS, energy minimization, equilibration and production parameters are stored and read in ".mdp"-files, for example:
Energy minimization:
All this is now just one line of code in openMM:
And according to the docs (http://docs.openmm.org/7.1.0/api-python ... ation.html), minimizeEnergy() only accepts 2 parameters: tolerance and maxIterations.
SO if I understand correctly, I can define only one integrator for my entire simulation using for example :
which I then call when defining my simulation, including other parameters that I define:
I am having trouble wrapping my head around this because in GROMACS I have previously used different integrators for minimization and equilibration/production (steepest descent and leap-frog/leap-frog, respectively), and I am now wondering if this is possible/recommended to do in openMM.
Any thoughts/input on this are welcome.
.
In GROMACS, energy minimization, equilibration and production parameters are stored and read in ".mdp"-files, for example:
Energy minimization:
Code: Select all
; LINES STARTING WITH ';' ARE COMMENTS from tutorial gromacs
title = Minimization ; Title of run
; Parameters describing what to do, when to stop and what to save
integrator = steep ; Algorithm (steep = steepest descent minimization)
emtol = 1000.0 ; Stop minimization when the maximum force < 10.0 kJ/mol
emstep = 0.01 ; Energy step size
nsteps = 50000 ; Maximum number of (minimization) steps to perform
nstxout-compressed = 500 ; save coordinates every 1 ps (to xtc file)
; Parameters describing how to find the neighbors of each atom and how to calculate the interactions
nstlist = 1 ; Frequency to update the neighbor list and long range forces
cutoff-scheme = Verlet
ns_type = grid ; Method to determine neighbor list (simple, grid)
rlist = 1.2 ; Cut-off for making neighbor list (short range forces)
coulombtype = PME ; Treatment of long range electrostatic interactions
rcoulomb = 1.2 ; long range electrostatic cut-off
vdwtype = cutoff
vdw-modifier = force-switch
rvdw-switch = 1.0
rvdw = 1.2 ; long range Van der Waals cut-off
pbc = xyz ; Periodic Boundary Conditions
DispCorr = no
Code: Select all
simulation.minimizeEnergy()
SO if I understand correctly, I can define only one integrator for my entire simulation using for example :
Code: Select all
integrator = LangevinIntegrator(
temperature*unit.kelvin, # Temperature of heat bath
1.0/unit.picoseconds, # Friction coefficient
2.0*unit.femtoseconds, # Time step
)
Code: Select all
simulation = Simulation(complex.topology, system, integrator, platform)
Any thoughts/input on this are welcome.