Streamline forcefield/atom-typing issue in pdb2gmx

GROMACS version: 2022.3
GROMACS modification: No


I tried to generate .gro and .top files from a pdb that was prepared for simulation by Schrodinger’s protein preparation wizard. It’s a single chain molecule of calmodulin (PDB ID 2v02) complexed with calcium and barium ions and capped with ACE and NMA.

I ran pdb2gmx, selecting the AMBER03 force field, and received an error regarding the caps:

:-) GROMACS - gmx pdb2gmx, 2018.8 (-:

                        *GROMACS is written by:*
  • Emile Apol      Rossen Apostolov      Paul Bauer     Herman J.C. Berendsen*
  • Par Bjelkmar Aldert van Buuren Rudi van Drunen Anton Feenstra*
  • Gerrit Groenhof Aleksei Iupinov Christoph Junghans Anca Hamuraru*
  • Vincent Hindriksen Dimitrios Karkoulis Peter Kasson Jiri Kraus*
  • Carsten Kutzner Per Larsson Justin A. Lemkul Viveca Lindahl*
  • Magnus Lundborg Pieter Meulenhoff Erik Marklund Teemu Murtola*
  • Szilard Pall Sander Pronk Roland Schulz Alexey Shvetsov*
  • Michael Shirts Alfons Sijbers Peter Tieleman Teemu Virolainen*
  • Christian Wennberg Maarten Wolf*
  •                       and the project leaders:*
  •    Mark Abraham, Berk Hess, Erik Lindahl, and David van der Spoel*

Copyright (c) 1991-2000, University of Groningen, The Netherlands.
Copyright (c) 2001-2017, The GROMACS development team at
Uppsala University, Stockholm University and
the Royal Institute of Technology, Sweden.
check out for more information.

GROMACS is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2.1
of the License, or (at your option) any later version.

Command line:

  • gmx pdb2gmx -f 2v02_full_prep.pdb -o 2v02.gro -p -water tip3p -ignh*

Select the Force Field:
From ‘/usr/share/gromacs/top’:

  • 1: AMBER03 protein, nucleic AMBER94 (Duan et al., J. Comp. Chem. 24, 1999-2012, 2003)*
  • 2: AMBER94 force field (Cornell et al., JACS 117, 5179-5197, 1995)*
  • 3: AMBER96 protein, nucleic AMBER94 (Kollman et al., Acc. Chem. Res. 29, 461-469, 1996)*
  • 4: AMBER99 protein, nucleic AMBER94 (Wang et al., J. Comp. Chem. 21, 1049-1074, 2000)*
  • 5: AMBER99SB protein, nucleic AMBER94 (Hornak et al., Proteins 65, 712-725, 2006)*
  • 6: AMBER99SB-ILDN protein, nucleic AMBER94 (Lindorff-Larsen et al., Proteins 78, 1950-58, 2010)*
  • 7: AMBERGS force field (Garcia & Sanbonmatsu, PNAS 99, 2782-2787, 2002)*
  • 8: CHARMM27 all-atom force field (CHARM22 plus CMAP for proteins)*
  • 9: GROMOS96 43a1 force field*
    10: GROMOS96 43a2 force field (improved alkane dihedrals)
    11: GROMOS96 45a3 force field (Schuler JCC 2001 22 1205)
    12: GROMOS96 53a5 force field (JCC 2004 vol 25 pag 1656)
    13: GROMOS96 53a6 force field (JCC 2004 vol 25 pag 1656)
    14: GROMOS96 54a7 force field (Eur. Biophys. J. (2011), 40, 843-856, DOI: 10.1007/s00249-011-0700-9)
    15: OPLS-AA/L all-atom force field (2001 aminoacid dihedrals)

Using the Amber03 force field in directory amber03.ff

Opening force field file /usr/share/gromacs/top/amber03.ff/aminoacids.r2b
Opening force field file /usr/share/gromacs/top/amber03.ff/dna.r2b
Opening force field file /usr/share/gromacs/top/amber03.ff/rna.r2b
Reading 2v02_full_prep.pdb…
WARNING: all CONECT records are ignored
Analyzing pdb file
Splitting chemical chains based on TER records or chain id changing.
WARNING: Chain identifier ‘A’ is used in two non-sequential blocks.
They will be treated as separate chains unless you reorder your file.
There are 2 chains and 1 blocks of water and 164 residues with 2317 atoms

  • chain #res #atoms*
  • 1 ‘A’ 151 2288*
  • 2 ‘A’ 5 5*
  • 3 ’ ’ 8 24 (only water)*

WARNING: there were 0 atoms with zero occupancy and 6 atoms with

  •     occupancy unequal to one (out of 2317 atoms). Check your pdb file.*

Opening force field file /usr/share/gromacs/top/amber03.ff/atomtypes.atp
Atomtype 68
Reading residue database… (amber03)
Opening force field file /usr/share/gromacs/top/amber03.ff/aminoacids.rtp
Residue 93
Sorting it all out…
Opening force field file /usr/share/gromacs/top/amber03.ff/dna.rtp
Residue 109
Sorting it all out…
Opening force field file /usr/share/gromacs/top/amber03.ff/rna.rtp
Residue 125
Sorting it all out…
Opening force field file /usr/share/gromacs/top/amber03.ff/aminoacids.hdb
Opening force field file /usr/share/gromacs/top/amber03.ff/dna.hdb
Opening force field file /usr/share/gromacs/top/amber03.ff/rna.hdb
Opening force field file /usr/share/gromacs/top/amber03.ff/aminoacids.n.tdb
Opening force field file /usr/share/gromacs/top/amber03.ff/aminoacids.c.tdb

Processing chain 1 ‘A’ (2288 atoms, 151 residues)
Analysing hydrogen-bonding network for automated assignment of histidine

  • protonation. 208 donors and 256 acceptors were found.*
    There are 242 hydrogen bonds
    Will use HISE for residue 107

Program: gmx pdb2gmx, version 2018.8
Source file: src/gromacs/gmxpreprocess/pdb2gmx.cpp (line 920)

Fatal error:
The residues in the chain ACE-1–NMA148 do not have a consistent type. The
first residue has type ‘Protein’, while residue NMA148 is of type ‘Other’.
Either there is a mistake in your chain, or it includes nonstandard residue
names that have not yet been added to the residuetypes.dat file in the GROMACS
library directory. If there are other molecules such as ligands, they should
not have the same chain ID as the adjacent protein chain since it’s a separate

I seemed to fix the issue by renaming NMA to NME in the pdb and changing the atom types to match that of the AMBER aminoacids.rtp, as well as adding in parameters for Ba2+.

Is there a way to fix this problem without having to manually edit the pdb coordinates each time to fit the new forcefield formatting, thus allowing for a more streamlined MD set-up?

Many thanks for the help in advance :)

Did you try modifying share/gromacs/top/residuetypes.dat ? I’m not sure if a residuetypes.dat copy in your local directory would override that or if you have to modify the one in share/gromacs/top but this is one approach that may work.

Hi Chris, I ended up just using python to rename residues/atoms that were opls-formatted to those of the AMBER-format. But thanks for the suggestion, that seems like that would have done the job also.