NVT equillibrations: remaining wall clock time

GROMACS version:
GROMACS modification: Yes/No
Here post your question

Hi! I got this message the end of my slurm output that I haven’t seen before. I’m unfamiliar with wall clock time and was struggling to find anything extensive explaining it. Is this anything to be concerned about?

Also seeing this error which I didn’t see in the em run:

Update groups can not be used for this system because there are three or more consecutively coupled constraints

I also saw this on my NPT equillibration and it looks oddly similar to my em.gro, indicaitng that it didn’t really do anything.

Wall clock time is what you would consider “real world time”, as opposed to the simulation time. In this case it reports how long it is expected to take until the simulation finishes. This is reported when using the -v option in gmx mdrun. Early in the simulation, it writes the expected finishing time, but when there is just a few minutes left it switches to writing the expected remaining time in seconds.

If you run gmx mdrun (with the -v option) in slurm or if you dump the output of the command to a separate log file, you will get each time estimate (along with the current step) on a new line, as above. If you run the command in a terminal, the lines will be overwritten every time, making it seem like one line that is updating.

Hi Magnus,

Thank you for your response! Looking at the nvt.gro and the npt.gro, it looks like my membranes still look crystalline as opposed to a more equilibrated membrane. Judging from the slurm output and what you said about there being a few minutes left, it looks like the simulation is running much shorter than expected or at least much shorter than what I’ve seen for other runs.

This is what I’m talking about! (my nvt.gro that looks like it never went through nvt). Do you think it’s possibly because of the molecular structure? Or is it likely an issue with positional restraints? Attached is also my nvt.mdp file!


nvt.mdp.txt (2.3 KB)

You are only running 50,000 steps (100 ps). You could increase it. Restraints will keep most of your lipids in place, but the water should be moving during the simulation. You could definitely run NVT for a few ns. I assume you will then follow-up with one or two NPT equilibration stages, right? During an unrestrained NPT simulation you should see more movement in the system.

Hi Magnus!! Thank you again for responding. I have just a trivial question regarding formatting for the position restraints. I currently only have them in my molecule.itp file because when I wrote them in #ifdef POSRES (which was specific to the atoms in my molecule and not the entire system) in the .top file it was giving me weird errors about Atom index being wrong. Is this the case because the .top file is for the entire system as opposed for the one molecule? And another question, when running subsequent equillibrations with weaker restraints, should I change that within the .itp file or do you recommend doing that within a posre.itp file that’s included in the .top file? Should I be getting the atom indexes from the system.gro as opposed to the molecule.itp?
I’m a bit confused where and how to write position restraints correctly, so clarification would be lovely! Thank you in advance.

In my molecule.itp:

It depends on where you do it in the .top file. If the position restraint block (or file include) is placed just after including the .itp file it is the the same as placing it at the end of the .itp file. But it must be done before starting the next [ moleculetype ] block. The atom indexing is easiest to base on the .itp file (as that is what is used).

If you want to use weaker and weaker restraints, I would suggest making more restraint files with different names and use different define criteria for including them, e.g.,

#ifdef POSRES_STRONG
#include "posres_strong.itp"
#endif
#ifdef POSRES_WEAK
#include "posres_weak.itp"
#endif

Then you must make sure that you use the correct define statement in the .mdp file, e.g.
define = -DPOSRES_STRONG
or
define = -DPOSRES_WEAK
This is not the most elegant solution, but it’s simple enough. Just make sure you avoid
define = -DPOSRES_STRONG -DPOSRES_WEAK

It would also be possible to explicitly set the force constant by defining it as a constant (in the mdp file) and replacing the force columns in the posres file accordingly. I think it would look like this.
define = -DPOSRES -DRESTFC=1000 in the .mdp file
and

[ position_restraints ]
2   1   RESTFC   RESTFC   RESTFC
3   1   RESTFC   RESTFC   RESTFC
...

in the position restraints file (or section). But you would have to test that this works correctly.

I would not recommend modifying the force constant in the restraint file depending what equilibration stage you are currently running. If you have to re-run anything, or run other replicas, it is easy to forget to update it. It is easier can track what restraint settings you are using by looking at the .mdp file.