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

Robert Hamers rjhamers at wisc.edu
Wed Jan 4 18:33:27 CET 2012

Thanks-- that clarifies a lot.  I hadn't quite realized how much is 
assumed about the residue terminii.  It seems like I was trying to fit a 
square peg into a round hole.   I'm going to re-think this and maybe 
take a different approach just based on using HETATMs and not trying to 
define a separate residue.

The pdb file specification for HETATM still requires a "residue name".  
I've found that using "LIG" seems to work. Any reason I shouldn't just 
continue using that, and define my molecule using HETATMs ?

Thanks again for your help!
Bob Hamers

For something like what I'm trying to do, where I"m using a pdb file 
that does not represent a protein, is

On 1/4/2012 2:02 AM, Mark Abraham wrote:
> On 4/01/2012 4:57 PM, Robert Hamers wrote:
>> 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)
> Atom naming needs to be unique within the residue, so that grompp can 
> later confirm that the order of the names in the topology and 
> coordinate files match.
>> (This is my entry in aminoacids.n2t)
> aminoacids.rtp I assume you mean.
>> [ 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:
> *N2* to the next, but yeah...
>> **
>> 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-
> So the default(?) terminus selection is trying to give you charged 
> termini (perhaps because the type is protein, but I'm not sure here). 
> It is always appropriate to supply the command line you used.
>> -------------------------------------------------------
>> 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
> aminoacids.n.tdb applies to protein residues and assumes that NH3+ can 
> be applied. Evidently that won't work for your case. You will need to 
> come up with some termini that make sense, or use more than one residue.
>> ************
>> 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 ?) .
> Yes. Atom and residue names exist only for matching pieces of force 
> fields together. The atom type determines the physics of the resulting 
> model. The two are technically orthogonal, but in practice there are 
> strong correlations.
> Mark

Robert J. Hamers
Wisconsin Distinguished Professor
Univ. of Wisconsin-Madison	
1101 University Avenue
Madison, WI 53706
Ph: 608-262-6371
  Web: http://hamers.chem.wisc.edu

More information about the gromacs.org_gmx-users mailing list