Missing dihedral define
There is a separate residue for charged GLN (QLN) in the OPLS-forcefield file aminoacids.rtp.
This residue uses the preprocessor define "dih_GLN_chi4_C_C_O_H" for a dihedral parameter set.
However, this macro is not defined anywhere (esp. not in ffbonded.itp with all the others).
The reason why grompp does not complain, is because the function push_bond() in toppush.cpp uses sscanf()
nread = sscanf(line,format,&cc0,.....
expecting double values. When strings are read instead, the variable nread is zero, and grompp assumes
default values for this dihedral.
This happens always when one uses the -gln flag in pdb2gmx to select charged glutamines.
I have attached a single GLN-pdb file as example, which shows the undefined macro being present in the output
topology (of course this will work with any protein containing at least one GLN). For this, one must run
....pdb2gmx -f gln.pdb -gln
and then select the OPLS-ff as well as charged GLN (QLN, enter 1). If the resulting topology is processed
with grompp (with any valid .mpd file), it will accept it without throwing errors or warnings (....grompp -f any.mdp).
I have tested this with versions up to 2019.3.
If I'm correct, we should either delete the non-existing macro, or have to add values for this dihedral.
Thanks and regards