Re: [AMBER] tleap output of mol2 format incorrect bond order/atom types

From: Jason Swails <jason.swails.gmail.com>
Date: Tue, 18 Mar 2014 12:49:57 -0400

On Tue, 2014-03-18 at 16:25 +0000, Browning, Nicholas wrote:
> Hi Hannes,
>
> I'll briefly describe the process of what I'm doing as follows to clarify whats happening.
>
> - Obtain starting PDB structure either from some builder or from data bank.
> - Load non-standard residue .off files into leap
> - Load PDB file into leap.
> - Create prmtop and mol2 file
> - Modify mol2 file with some atomic modifications to change one residue from one non-standard residue to another.
> - Run a minimisation with amber on the new mol2 file.
>
> I realise the modification procecss can be done without OpenBabel,
> however this is somewhat of a focus for me, since my code does a
> number of other things all of which are funnelled through OB - i'd
> like to retain everything being piped through one tool.
>
> Since (as far as I'm aware) it's not possible to load non-standard
> residue lib files into OpenBabel prior to loading a structure, I need
> to create a file which is self-sufficient currently mol2, since leap
> is supposed to support this), such that OpenBabel can load the
> structure correctly internally.
>
> Since I am loading the .off files into leap prior to loading a
> mol2/pdb structure, surely leap would now have both bonding and atom
> type information since these are contained within the lib files?

LEaP has the connectivity stored in the OFF files for sure (this is used
in many places). However, none of the standard OFF library files
included with AmberTools contains 'correct' bond order information
AFAIK. If you refer to the OFF documentation I wrote (very recently
compared to the age of tleap), you'll see that there's a flag for bond
orders to be specified in the OFF file (which indeed indicates that
_somewhere_ leap probably stores this information away in some obscure
struct). You'll also see (and can verify this by looking at
the .lib/.off files stored in $AMBERHOME/dat/leap/lib) that the bond
orders for every connection in OFF files bundled with Amber is 1.

Furthermore, if you look at the mol2 writing code (in mol2File.c),
you'll see on line 370 that the bond order here is, alas, hard-coded to
1:

fprintf(fOut, "%5d %5d %5d 1\n", i,(((CONTAINER)(aAtom1))->iTempInt),(((CONTAINER)(aAtom2))->iTempInt));
                          ^^^

Fixing this is not as simple as it would seem and since the vast
majority of cases will still lead to mol2 files whose bond orders are
just plain wrong (since they're wrong almost everywhere else in leap),
fixing this unfortunate quirk is unlikely to climb high on peoples'
priority lists. (Bond orders are also not used anywhere inside Amber
save for some legacy minimization code inside tleap, AFAIK).

Hope this helps,
Jason

I imagine we'd be open to suggested patches, though, if someone else
were to present a fix...

-- 
Jason M. Swails
BioMaPS,
Rutgers University
Postdoctoral Researcher
_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Tue Mar 18 2014 - 10:00:03 PDT
Custom Search