Updating old tutorials

GROMACS version: 2020.5
GROMACS modification: Yes (standard macos brew installation)

I’m trying to make this instructions, written for GMX 4.5, below to work with modern GMX:

# Create SPE.mdp file #single point energy
cat << EOF >| SPE.mdp
define = -DFLEXIBLE
integrator               = md
nsteps                   = 0
dt                       = 0.001
constraints              = none
emtol                    = 10.0
emstep                   = 0.01
nstcomm                  = 1
ns_type                  = simple
nstlist                  = 0
rlist                    = 0
rcoulomb                 = 0
rvdw                     = 0
Tcoupl                   = no
Pcoupl                   = no
gen_vel                  = no
nstxout                  = 1
pbc                      = no
nstlog = 1
nstenergy = 1
nstvout = 1
nstfout = 1
nstxtcout = 1
comm_mode = ANGULAR
continuation = yes
EOF

If I run:

gmx grompp -f SPE.mdp -c DnaAmber.pdb -p DnaAmberSB_GMX.top -o speSB.tpr

I got several warnings and 3 errors:

ERROR 1 [file SPE.mdp]:
  With Verlet lists only full pbc or pbc=xy with walls is supported

ERROR 2 [file SPE.mdp]:
  With Verlet lists nstlist should be larger than 0

ERROR 3 [file SPE.mdp]:
  The box volume is required for calculating rlist from the energy drift
  with verlet-buffer-tolerance > 0. You are using at least one unbounded
  dimension, so no volume can be computed. Either use a finite box, or set
  rlist yourself together with verlet-buffer-tolerance = -1.

My intention is to perform a single point calculation and compare the results with sander from AmberTools, like in my original tutorial.

Any help is very much appreciated.

Thanks,

Alan

Hi,

Some options in mdp files are changed from version 4.5 to version 2020.5 and some functions have changed.
Please have a look at
https://manual.gromacs.org/current/user-guide/mdp-options.html

The mdp file above mixes setting of energy minimization with molecular simulation. To perform energy minimization you can use as integrator (steep or cg or …but not md) in mdp file.
To have one step MD, the options

emtol                    = 10.0
emstep                   = 0.01

are not used.
I guess the aim is to simulate a DNA in a box of SPCE water, then one has to set parameters for the treatment of short and long range intergration in the mdp file. Please look at the mdp option documentation also for this.
Best regards
Alessandra

Thanks for your reply. I had a read in the docs and did try few things.
Yet I still get these errors:

Command line:
  gmx grompp -f SPE.mdp -c DnaAmber.pdb -p DnaAmberSB_GMX.top -o speSB.tpr

Ignoring obsolete mdp entry 'ns-type'

ERROR 1 [file SPE.mdp]:
  With Verlet lists only full pbc or pbc=xy with walls is supported


ERROR 2 [file SPE.mdp]:
  With Verlet lists nstlist should be larger than 0


NOTE 1 [file SPE.mdp]:
  With Verlet lists the optimal nstlist is >= 10, with GPUs >= 20. Note
  that with the Verlet scheme, nstlist has no effect on the accuracy of
  your simulation.

My input file is now:

# Create SPE.mdp file #single point energy
cat << EOF >| SPE.mdp
integrator               = steep
nsteps                   = 0
dt                       = 0.001
constraints              = none
emtol                    = 10.0
emstep                   = 0.01
nstcomm                  = 1
ns-type                  = simple
nstlist                  = 0
rlist                    = 0
rcoulomb                 = 0
rvdw                     = 0
Tcoupl                   = no
Pcoupl                   = no
gen_vel                  = no
nstxout                  = 1
pbc                      = no
nstlog = 1
nstenergy = 1
nstcalcenergy = 1
nstvout = 1
nstfout = 1
nstxout-compressed = 1
comm-mode = ANGULAR
continuation = yes
EOF

I’m trying with integrator = steep. I need just ONE step calculation, it does not matter if md or steep, as long as it’s just one step and then I want the energies. I don’t intend to run simulations, my aim here is just to see if my algorithm is converting systems from AMBER to GROMACS correctly.

Also, reading the docs, I don’t understand what happened with ns-type, I see Molecular dynamics parameters (.mdp options) — GROMACS 2021 documentation
and I’m strictly trying to follow what’s written there for pbc = no.

Is the manual missing something?

I also note some inconsistencies in the manual regarding ‘_’ and '-" (underscore x hyphen). For example, in GMX 4.5 and before it used to be: ns_type, comm_mode, but now it’s ns-type, comm-mode, yet gen_vel is still the same (with underscore).

And again about ns-type (or ns_type). The output command states: Ignoring obsolete mdp entry 'ns-type'; yet, the manual still mention it, though only and solely in Molecular dynamics parameters (.mdp options) — GROMACS 2021 documentation as referred before and stated here:

pbc
    xyz
        Use periodic boundary conditions in all directions.

    no
        Use no periodic boundary conditions, ignore the box. To simulate without cut-offs, set all cut-offs and
        nstlist to 0. For best performance without cut-offs on a single MPI rank, set nstlist to zero and
        ns-type=simple.

    xy
        Use periodic boundary conditions in x and y directions only. This works only with ns-type=grid and
        can be used in combination with walls. Without walls or with only one wall the system size is infinite
        in the z direction. Therefore pressure coupling or Ewald summation methods can not be used.
        These disadvantages do not apply when two walls are used.

Nevertheless, my fear resides here: Molecular dynamics parameters (.mdp options) — GROMACS 2021 documentation when it states for nstlist = 0:

... But vacuum simulations are (temporarily) not supported.

So, if I set nstlist = 10 (again, I care only for ONE step), I got just one error:

ERROR 1 [file SPE.mdp]:
  With Verlet lists only full pbc or pbc=xy with walls is supported

However, I got this enigmatic note that drives back to square one, in a catch-22 conundrum:

NOTE 1 [file SPE.mdp]:
  Simulating without cut-offs can be (slightly) faster with nstlist=0,
  nstype=simple and only one MPI rank

And if someone pays careful attention, one will note a ... nstype=simple ... above. But wait, wasn’t it ns_type, or ns-type or is it obsolete? (sorry, I don’t intend to be sarcastic here, I’m just very vexed with all that).

I hope this can be clarified. Any help would be very appreciated.

Best regards,

Alan

To keep it very simple, single-point energies in vacuum are basically impossible in current GROMACS versions. I’ve been advocating for a new implementation because they are essential for force field validation, but as of yet, they can’t exactly be done.

The workaround is to use a huge box and normal cutoff scheme rather than the “correct” in vacuo treatment.

These characters have always been interchangeable. grompp interconverts them silently, so the distinction is irrelevant.

Indeed ns-type should probably be removed as it is no longer needed with the Verlet scheme (since the group scheme was eliminated, hence why one cannot do vacuum calculations any more).

Thanks Justin, that’s what I was afraid to hear. I really hope they will come to theirs sense and have it back, FF validation is critical to MD, I concurs with you.

I’ll see what I can get with a “huge” box.

Register your desire to have it back at Enable vacuum simulations (#3526) · Issues · GROMACS / GROMACS · GitLab! This is a critical feature, indeed.

BTW, what would the latest Gromacs version to have this functionality and how to obtain/install it as easily as possible? Conda?

Vacuum simulations were removed when the group scheme was eliminated in the 2020 version, so 2019.6 is the last to have supported this feature: Downloads — GROMACS 2019.6 documentation

Thanks Justin, I got 2019.1 for Conda on OSX. Fingers crossed it will work for me.