[gmx-users] Help with non-standard residues and molecular structures

Robert Hamers rjhamers at wisc.edu
Wed Jan 4 06:57:54 CET 2012

I'd appreciate any help  --

I'm trying to model a small (~ 20-carbon ) molecule linked to a diamond 
surface.  I got the diamond surface with >1500 atoms working fine all 
the way through to the MD simulation and it looks great.  But I'm 
getting stuck on the molecule, which is not a protein but a moderately 
short-chain molecule that has a triazole (N3C2) in the middle of it.  I 
thought in order to make this work I would need ot learn how to with 
non-standard residues and after reading through the manual endless times 
and searching on the web site and trying things I'm basically stuck.

I thought it would easiest to deal with the triazole ring by creating it 
as a non-standard residue in aminoacids.n2t.  As a starting point I 
thought I would try to work slowly by modifying an existing residue, so 
I arbitrary decided to modify "alanine" in order to understand how to 
work toward the more complicated triazole ring.  So, in 
atomtypebyname.atp I copied the entry for ALA and called it ZZZ, and 
added a new entry "ZZZ  Protein" into "residuetypes.dat".  At that point 
I can read in a pdb file with atoms belonging to residue "ZZZ" and 
pdb2gmx works fine.  However,  if I try to change one of the carbon atoms
to a nitrogen, (say, chance CA to N or NA), I get errors (see below) 
that I'm having trouble interpreting.  I thought that perhaps it was a 
problem of having two atoms with the same definition, so I made one "N1" 
and one "N2" as below, and also tried other variations (e.g., NA1 and NA2)

(This is my entry in aminoacids.n2t)
[ ZZZ ]
  [ atoms ]
     N1    opls_238   -0.500     1
      H    opls_241    0.300     1
     N2   opls_238      0.140     1
     HA    opls_140    0.060     1
     CB    opls_135   -0.180     2
    HB1    opls_140    0.060     2
    HB2    opls_140    0.060     2
    HB3    opls_140    0.060     2
      C    opls_235    0.500     3
      O    opls_236   -0.500     3
  [ bonds ]
      N1     H
      N1    N2
     N2    HA
     N2    CB
     N2     C
     CB   HB1
     CB   HB2
     CB   HB3
      C     O
     -C     N1
  [ impropers ]
     -C    N2     N1     H    improper_Z_N_X_Y
     N2    +N1     C     O    improper_O_C_X_Y

I thought that this would lead to a structure that would connect "C" to 
the previous residue in my pdb file and the "N" to the next . However, 
when I do pdb2gmx, I get:
Back Off! I just backed up topol.top to ./#topol.top.40#
Processing chain 1 (13 atoms, 1 residues)
There are 0 donors and 1 acceptors
There are 0 hydrogen bonds
Identified residue ZZZ1 as a starting terminus.
Identified residue ZZZ1 as a ending terminus.
8 out of 8 lines of specbond.dat converted successfully
Start terminus ZZZ-1: NH3+
End terminus ZZZ-1: COO-

Program pdb2gmx, VERSION 4.5.3
Source code file: /build/buildd/gromacs-4.5.3/src/kernel/pdb2top.c, 
line: 1056

Fatal error:
atom N not found in buiding block 1ZZZ while combining tdb and rtp

I'm using the oplsaa force field, but up to this point it was a pretty 
arbitrary decision.
I think my problem is understanding the mapping between atom names ( N1, 
HB1, etc) and the opls names, as I haven't yet found a good explanation 
for how this mapping is done and/or what flexibility one has in creating 
atom names for non-standard residues.  (So, am I allowed to create a N 
atom and call it N1, as long as I assign it to an existing opls_xxx 
number ?) .

Any suggestions would be very welcome....

Bob Hamers


More information about the gromacs.org_gmx-users mailing list