Difficulties with distance restraints of multiple molecules

GROMACS version: 2021.1
GROMACS modification: No
Here post your question

Hello,

I have a problem with using NMR restraints in my system. I have a simulation including 10 glycolipids that was setup with CHARMM-GUI. This simulations runs fine but agreement to NMR-data could be better. So I try to improve it with restraints. Unfortunately this is giving me some trouble.

CHARMM-GUI set this up such that each of the 10 glycolipids has its own section in the topol.top:

#include “toppar/GLPA1.itp”
#include “toppar/GLPA2.itp”
#include “toppar/GLPA3.itp”
#include “toppar/GLPA4.itp”
#include “toppar/GLPA5.itp”
#include “toppar/GLPA6.itp”
#include “toppar/GLPA7.itp”
#include “toppar/GLPA8.itp”
#include “toppar/GLPA9.itp”
#include “toppar/GLPA10.itp”

It is explicitly stated that a distance restraints section has be after the molecule for which it is meant or it will be for the wrong atoms. So this is my solution:

#include “toppar/GLPA1.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 0 1 1.5 1.5 4.0 1.0

#include “toppar/GLPA2.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 1 1 1.5 1.5 4.0 1.0

#include “toppar/GLPA3.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 2 1 1.5 1.5 4.0 1.0

#include “toppar/GLPA4.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 3 1 1.5 1.5 4.0 1.0

#include “toppar/GLPA5.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 4 1 1.5 1.5 4.0 1.0

#include “toppar/GLPA6.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 5 1 1.5 1.5 4.0 1.0

#include “toppar/GLPA7.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 6 1 1.5 1.5 4.0 1.0

#include “toppar/GLPA8.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 7 1 1.5 1.5 4.0 1.0

#include “toppar/GLPA9.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 8 1 1.5 1.5 4.0 1.0

#include “toppar/GLPA10.itp”

[ distance_restraints ]
; ai aj type index type’ low up1 up2 fac
56 124 1 9 1 1.5 1.5 4.0 1.0

Also I use the following mdp options:

; CONSTRAINTS
disre = ensemble
disre-weighting = equal
disre-mixed = no
disre-fc = 300
disre-tau = 5000
nstdisreout = 50000

This works fine with gmx grompp but when I want to run the simulation I get this error in the log file:

Assertion failed:
Condition: type_max - type_min + 1 == dd->nres
All distance restraint parameter entries in the topology should be consecutive

So now I do understand the error message but i don’t know how to change the topol.top file to make that work. I also found a post on the mailing list that has the same problem (apparently the problem did not appear with 5.1.4), but it never got a reply: https://mailman-1.sys.kth.se/pipermail/gromacs.org_gmx-users/2019-January/123651.html

Any ideas?

Alexander

I was on vacation and have now seen that nobody has replied in the meantime. So I’m just pushing this up once more to try to get some help.

Thanks!

Alexander

There is a bug in that grompp should have given you a clear error message. You should not get an assertion failure in mdrun.

I assume all your lipids that you want to restraints are identical. In that case you should be able to solve this by using a single moleculetype and specify a count of 10 molecules of this in the [ system ] section.

Thanks for the answer. Yes all lipids are identical. So I’ll try your suggestion. But how would one solve this problem if you want to restrain different molecules at the same time? Wouldn’t that always require to have the restraints in different sections so that they are not consecutive?

Thanks again,

Alexander

Hi

Just a small note GROMACS use “nm” as length units. It seems that low up1 and up2 are on the larger side.

Alessandra

Thanks for the heads up but that is actually intentional for my project.

Alexander