AMBER Archive (2006)

Subject: Re: AMBER: erroneous placement of TER card

From: Robert Duke (
Date: Thu Nov 16 2006 - 07:56:11 CST

Hi Greg,
To my mind, this is a sort of frustrating problem that sources from some
unclear specification of the behaviour of leap. When running pmemd in
parallel, the code assumes that each residue is in one and only one
"molecule", where molecules are essentially defined by a list structure of
one or more residues in the parameter-topology file, or prmtop. To be sure
this is the case, pmemd actually checks for this uniqueness during setup;
the reason sander works for you is this check is not done (I go through a
lot of extra hoops to get really good workload distribution). The
uniprocessor version of pmemd does not do this check because it does not
have to split up the workload, so it should execute like sander does with
your problem prmtop. Okay, so how does one get in this situation? Well, I
have never managed to do it myself, but I think that one possibility is that
if you define a residue, and don't set up the connectivity relations
properly, leap may make some decisions for you that you won't like. Another
possibility is use of the bond command in some scenarios creates grief. I
don't know the parameters for this causing trouble. We bond cysteines in
different molecules to each other all the time, but you also change the
residue name from CYS to CYX in the pdb prior to bonding to create an open
valence on S for the bond. I believe that two peptides so-joined are still
recognized as separate molecules in leap; there are issues about how one
calculates the molecular virial that depend on whether you count this as one
or two molecules; the way it was treated changed between amber 6 and 7 - I
unfortunately don't recall which way. So pmemd DOES handle bonds between
two molecules (ie., a CYX-CYX between two molecules is permitted), it just
refuses to handle a residue that is considered to be in two molecules
(taking the high ground here - in some ways it does not matter much, but it
is clearly incorrect). The final issue is the TER cards. Depending on
whether you have the latest patches and amber 9, you may still have a leap
that actually only recognizes TER cards with a trailing blank, ie., 'TER '.
I was pretty much agog over this when I discovered it to be the case; the
somewhat funny thing is that TER cards will be generated by some amber code,
including leap, without the trailing blank (I think this is a holdover from
the days of record-oriented processing, before the unix forefathers declared
that a file would be nothing more than a collection of unstructured bytes).
In some situations I think it is possible leap actually ignores TER cards
that have the trailing blank, but I don't know the rules - it should be
specified. So, do you have a unique new residue here, perhaps not properly
defined in terms of connectivity? Do you have 'TER ' cards at the proper
places in the pdb that is fed into leap prior to bonding, solvating, etc.?
You COULD define the two polypeptides with the bond as a single molecule if
you want by removing the TER card between them and having them contiguous in
the pdb. I presume, though, that if you look at your residue definition you
will find something that is not quite right there. If you give more details
on the residue and polypeptides, other folks on the list that understand
leap better than I do can probably offer more specific solutions; hope this
helps a little though.
Regards - Bob Duke

----- Original Message -----
From: "Gregory Sandala" <>
To: <>
Sent: Thursday, November 16, 2006 4:12 AM
Subject: AMBER: erroneous placement of TER card

> Dear Amber users,
> My name is Greg and I'm a fairly new user of Amber (by the way, great
> program!).
> I've encountered a strange phenomenon that I hope you can help me with.
> The
> system has 107170 atoms in 30090 residues (including 28699 waters). Using
> Leap
> I've added a bond between two specific atoms (in different residues),
> solvated
> the system (with both solvateoct and solvatebox separately, see below)
> and
> added Na+ counter ions.
> Ultimately, the problem boils down to the following error when I attempt
> to run
> PMEMD for an MD simulation beginning from a restart file obtained from a
> successful SANDER run using the same topology.
> ------------------------------------------------------------------------
> --------
> begin time read from input coords = 25.000 ps
> | ERROR: Bad residue/molecule data in prmtop!
> | Residue 739(atoms 11384- 11398) is in multiple
> molecules.
> Again, the exact same run executes successfully if I use the SANDER
> executable instead
> of PMEMD.
> When I inspect a PDB file of this structure made with the AMBPDB utility
> I
> notice a 'TER' card has automatically been inserted in the middle of a
> residue
> (between atoms 11388 and 11389). This residue is not involved in the bond
> that
> I manually inserted. Interestingly, when I use 'savepdb' directly through
> this 'TER' is not present in the resulting PDB (nor was it present in the
> protein PDB that I loaded into leap).
> At first I thought it had something to do with the size of the system
> (some form
> of a numerical loop that clashed). To test this I tried smaller buffers
> and
> various closenesses in the solvation card, as well as trying solvateoct
> and
> solvatebox. However, I would always get the TER card present in the
> resulting
> PDB from ambpdb and PMEMD would not like the topology. Strangely, if I
> re-run
> LEAP without the BOND command only (i.e., retaining the solvation and
> addions
> commands), then PMEMD initializes just fine and the PDB files generated
> using
> AMBPDB do not contain the previously mentioned TER.
> This all seems quite strange to me and I'm wondering if any of you can
> provide
> me with some insights into this problem.
> With best wishes,
> Greg
> ---
> Gregory M. Sandala
> School of Chemistry
> University of Sydney
> Sydney NSW 2006
> Australia
> Ph: +61 2 9351 5361
> -----------------------------------------------------------------------
> The AMBER Mail Reflector
> To post, send mail to
> To unsubscribe, send "unsubscribe amber" to

The AMBER Mail Reflector
To post, send mail to
To unsubscribe, send "unsubscribe amber" to