- Posts: 12
Equilibration problem
- Navarro
- Topic Author
- Offline
- Fresh Boarder
I'm trying to perform a CG simulations of a system consisting in a protein locate at 5 nm with respect to the charged groups of a MGDG membrane.
I first performed an EM in vaccum.
After that, to constructed the system i use insane.py as following:
./insane.py -f minimization-vaccum.gro -o system.gro -pbc square -dm 5 -box 10,10,10 -l MGDG -sol W -orient
Later, i ran a em with the whole system, with the respective output:
Steepest Descents converged to machine precision in 2081 steps,
but did not reach the requested Fmax < 10.
Potential Energy = -2.6833109e+05
Maximum force = 3.5193942e+02 on atom 3598
Norm of force = 6.2432761e+00,
Sadly, when i'm trying to perform an equilibration i goet the following error message:
Step 10:
Atom 8449 moved more than the distance allowed by the domain decomposition (1.590000) in direction Z
distance out of cell 1330.886108
Old coordinates: 1.667 4.809 0.710
New coordinates: -1840.027 -454.814 1335.667
Old cell boundaries in direction Z: 0.000 5.000
New cell boundaries in direction Z: 0.000 4.781
Program mdrun, VERSION 5.0.4
Source code file: /home/krlitros87/Downloads/gromacs-5.0.4/src/gromacs/mdlib/domdec.c, line: 4390
Fatal error:
An atom moved too far between two domain decomposition steps
This usually means that your system is not well equilibrated
For more information and tips for troubleshooting, please check the GROMACS
website at www.gromacs.org/Documentation/Errors
This is the .mdp file:
define = -DPOSRES
dt = 0.02
cutoff-scheme = group
nsteps = 500000
nstxout = 0
nstvout = 0
nstlog = 100
nstxtcout = 100
xtc-precision = 10
rlist = 1.4
coulombtype = shift
rcoulomb = 1.2
epsilon_r = 15
vdw-type = shift
rvdw-switch = 0.9
rvdw = 1.2
tcoupl = v-rescale
tc-grps = Protein MGDG W ION
tau-t = 1.0 1.0 1.0 1.0
ref-t = 323 323 323 323
Pcoupl = Berendsen
Pcoupltype = isotropic
tau-p = 5.0
compressibility = 3e-4
ref-p = 1.0
refcoord_scaling = all
If you need more info related my problem please let me know.
Hope someone can help me.
Best regards,
Carlos
Please Log in or Create an account to join the conversation.
- Clement
- Offline
- Admin
- Posts: 211
Please Log in or Create an account to join the conversation.
- Navarro
- Topic Author
- Offline
- Fresh Boarder
- Posts: 12
Dear Clement,Clement wrote: You're using too much processors. Run 10000 steps on less processors/threads (mdrun flag -nt 1 for instance), with a shorter timestep if the problem persists, and everything should be good for the next run.
First of all thanks for your kind reply, but i don't understand you. What do you mean with 'processors'? Why should the number of processors alteres the final output of the simulation? (considering that using less processors will also decreased my performance? )
In any case i tried decreasing the timestep, but it only works at 5fs (which i think is to low and it'll altere my performance significantly).
I tried to used the same parameters used here -> dx.doi.org/10.1016/j.bbamem.2015.02.025 (timestep of 10fs without luck).
And also one more thing.
Considering that i want to run several simulation at a us level i was wondering:
Should i used a shift potencial for the vdw and electrostatic componentes, or instead a modifier Potential-shift,in order to be able to use GPU's to improve the performance of my simulation?
Thanks a lot and sorry for all my questions, i'm just starting in the field of the CG simulations, and i'm trying to learn as fast as possible.
Best regards,
Carlos
Please Log in or Create an account to join the conversation.
- Clement
- Offline
- Admin
- Posts: 211
Concerning your second question, I have absolutely no idea. I never used Gromacs 5.0 and I'm not sure how Martini performs there (people reported good behavior though), or with GPUs for that matter. One thing though: Martini was parameterized using a shift potential. Not sure how it behaves using something else. Probably similarly, but take it with a grain of salt. Try it out, but check *carefully* what happens.
Please Log in or Create an account to join the conversation.
- sumar
- Visitor
I tried simulating peptides with Alkane at a temperature of 343 K, my problem is the same as above are always getting Fatal error:
An atom moved too far between two domain decomposition steps
This usually means that your system is not well equilibrated. I've been doing equilibration at 10 ns with mdrun -nt 1 , MD production with -rdd 1.8 and/or with -nt 1 but still get error. I attach the following files and md.mdp equlibration.mdp. does there somebody can solve this problem ??
equilibration.mdp
define = -DPOSRES
integrator = md
dt = 0.03
nsteps = 100000 ;50000
nstcomm = 100
comm-grps =
nstxout = 0
nstvout = 0
nstfout = 0
nstlog = 1000
nstenergy = 100
nstxout-compressed = 1000
compressed-x-precision = 100
compressed-x-grps =
energygrps = Protein non-protein ;DPPC W
cutoff-scheme = Verlet
nstlist = 25 ;20
ns_type = grid
pbc = xyz
verlet-buffer-tolerance = 0.005
coulombtype = reaction-field
rcoulomb = 1.1
epsilon_r = 15 ; 2.5 (with polarizable water)
epsilon_rf = 0
vdw_type = cutoff
vdw-modifier = Potential-shift-verlet
rvdw = 1.1
tcoupl = v-rescale
tc-grps = Protein_D W_WF_ION ;DPPC W
tau_t = 1.0 1.0
ref_t = 343 343
;Pcoupl = parrinello-rahman
;Pcoupltype = isotropic ;semiisotropic
;tau_p = 12.0 12.0 ;parrinello-rahman is more stable with larger tau-p, DdJ, 20130422
;compressibility = 3e-4 3e-4
;ref_p = 1.0 1.0
;refcoord_scaling = all ;tambahan
gen_vel = no
gen_temp = 320
gen_seed = 473529
; MARTINI and CONSTRAINTS
; for ring systems and stiff bonds constraints are defined
; which are best handled using Lincs.
constraints = none
constraint_algorithm = Lincs
md.mdp
title = Martini
integrator = md
dt = 0.03
nsteps = 10000000 ;50000
nstcomm = 100
comm-grps =
nstxout = 0
nstvout = 0
nstfout = 0
nstlog = 1000
nstenergy = 100
nstxout-compressed = 1000
compressed-x-precision = 100
compressed-x-grps =
energygrps = Protein non-protein ;DPPC W
cutoff-scheme = Verlet
nstlist = 25 ;20
ns_type = grid
pbc = xyz
verlet-buffer-tolerance = 0.005
coulombtype = reaction-field
rcoulomb = 1.1
epsilon_r = 15 ; 2.5 (with polarizable water)
epsilon_rf = 0
vdw_type = cutoff
vdw-modifier = Potential-shift-verlet
rvdw = 1.1
tcoupl = v-rescale
tc-grps = Protein_D W_WF_ION ;DPPC W
tau_t = 1.0 1.0
ref_t = 343 343
;Pcoupl = parrinello-rahman
;Pcoupltype = isotropic ;semiisotropic
;tau_p = 15.0 15.0 ;12.0 12.0 ;parrinello-rahman is more stable with larger tau-p, DdJ, 20130422
;compressibility = 3e-4 3e-4
;ref_p = 1.0 1.0
gen_vel = no
gen_temp = 320
gen_seed = 473529
; MARTINI and CONSTRAINTS
; for ring systems and stiff bonds constraints are defined
; which are best handled using Lincs.
constraints = none
constraint_algorithm = Lincs
Regards
Sumar
Please Log in or Create an account to join the conversation.
- MOURI
- Offline
- Fresh Boarder
- Posts: 8
I am a new-user of MARTINI method. I am confused about the equilibration time. I want to run a 150ns CG simulation. What will be the equilibration time?
Best Regards
Mouri
Please Log in or Create an account to join the conversation.
- bart
- Offline
- Admin
- Posts: 98
In general the equilibration time is independent of the length of the production run. You need to define a variable which describes how close your system is to equilibrium. Then if it reached convergence during your equilibration, your system is equilibrated (in equilibrium) and you can start with the production.
However, we usually use a smaller time step during equilibration. Therefore equilibrations are usually computationally more expensive then the production run (which uses a larger time step). Therefore we use the term pre-equilibration for the equilibration to the point where your system is stable enough to use the maximum time step (system dependent, e.g. lipids dt_max = 40, elnedyn_protein dt_max = 20). Then you equilibrate till equilibrium with the same time step as you production run. If you reach equilibrium you can start the production run which you will use for analysis. This all is a bit different if you want to do non-equilibrium simulations, but then equilibrating starts to loose sense anyway.
I hope this answered you question,
Cheers,
Bart
PhD student at the MARTINI lab.
Please Log in or Create an account to join the conversation.
- MOURI
- Offline
- Fresh Boarder
- Posts: 8
Thanks Bart.
I have run equilibration.mdp file for 100ns for my system. How I will know that my system is equilibrated?
Best Regards
Mouri
Please Log in or Create an account to join the conversation.
- peterkroon
- Offline
- Gold Boarder
- Posts: 210
Please Log in or Create an account to join the conversation.
- MOURI
- Offline
- Fresh Boarder
- Posts: 8
Please Log in or Create an account to join the conversation.
- MOURI
- Offline
- Fresh Boarder
- Posts: 8
After 0.4ns equilibration, I analysed the RMSD of the protein. The RMSD is very stable. Can RMSD suggest me whether the system is equilibrated or not?
Best Regards
Mouri
Please Log in or Create an account to join the conversation.
- peterkroon
- Offline
- Gold Boarder
- Posts: 210
Also look at the standard deviation of the RMSD as function of time, to make sure you sample all fluctuations.
Please Log in or Create an account to join the conversation.
- MOURI
- Offline
- Fresh Boarder
- Posts: 8
Coarse grained topic is new for me. I am also confused with the term " standard deviation of the RMSD as function of time". Is it root mean square fluctuation (RMSF)?
I am working with GROMACS software only. In GROMACS we can analyse root mean square deviation (RMSD) and RMSF.
Best Regards
Mouri
Please Log in or Create an account to join the conversation.
- peterkroon
- Offline
- Gold Boarder
- Posts: 210
I'm not a dr yet ;)
What I mean is, that if you run 'gmx rms' you get an xvg file with the rmsd as a function of time. What relevant now, is the so called running average and running standard deviation ( en.wikipedia.org/wiki/Moving_average#Cumulative_moving_average ). You want to make sure that this doesn't change any more.
In other words: the running standard deviation at time t = the standard deviation of the data up to and including time t (r_std(t) = std(data[:t]); r_avg(t) = avg(data[:t]))
Note that there are other ways to measure convergence, you can try asking around in your lab.
HTH
Please Log in or Create an account to join the conversation.