Using specbond.dat to define Zn-Cys bonds

GROMACS version: 2019
GROMACS modification: Yes with plumed

Hi all,
I would like to simulate a protein containing a Zn ion bound to 4 Cys. After reading the pdb2gmx input files section in the gromacs documentation and looking for similar cases in the gromacs mailing list/forum I tried the following approach:

  1. Separate the protein residues and the Zn residue in pdb file with a TER line, so that termini are correctly identified.
  2. Merge the 2 chains with the -merge interactive option of pdb2gmx.
  3. Add a line ZN2 Protein to residuetypes.dat in the force field folder.
  4. add a line CYS SG 2 ZN ZN2 4 0.234 CYN ZN2 to specbond.dat in the current folder, where the pdb file also resides (the documentation is not clear about where specbond.dat file should reside.)

There are a couple of things (probably related) that don’t work as expected.
First, when running pdb2gmx I get this warning:

Warning: No residues in chain starting at ZN21201 identified as Protein/RNA/DNA.
This makes it impossible to link them into a molecule, which could either be
correct or a catastrophic error. Please check your structure, and add all
necessary residue names to residuetypes.dat if this was not correct.

But ZN2 is defined in residuetypes.dat. So why does this appear?

Second, when pdb2gmx prints the Special Atom Distance matrix: ZN is not shown (only CYS-CYS distances), and when checking, no bond has been created between ZN and the CYS residues, and the latter have not been renamed as CYN.

I’ve checked, and in the pdb file, the ZN–SG distances are: 0.225, 0.253, 0.211 and 0.247 nm. So they are within 10% of the distance specified in the specbond.dat. Why aren’t these bonds created then and how should I define them or format the pdb so that they are created?

Thanks for your time.


An alternative is to apply simple harmonic restrain between the two atoms (Zn and SG) : use [ bonds ] type 6 in the [ moleculetype ] section in the topology file.

See the following table for the synthax

Best regards

Thanks, Alessandra. That is a clever option. However, I would still like to see how this could be done with specbond.dat as I really think that would be the most automatic or canonical way to do it, and I really don’t see how it works because the documentation is very sparse.
Best regards,

I found out the problem. It was very silly! In the specbond.dat I was using first the atom name and then the residue name (which are very similar for Zn) and it should be the opposite. That is why it never found a satisfying distance. Now it works.
Best regards,

1 Like