Re: [AMBER] On alphabetizing impropers

From: Jason Swails <jason.swails.gmail.com>
Date: Fri, 25 Mar 2016 08:47:20 -0400

On Thu, Mar 24, 2016 at 10:47 AM, David Cerutti <dscerutti.gmail.com> wrote:

> It seems that Dave Case's insight is important:
>
> "The only invariant thing you can do with a torsion (proper or improper) is
> to reverse it: ABCD == DCBA. All other permutations are different."
>
> This jibes with the way the rest of Amber lines up impropers so that they
> can be treated just like any other torsion. However, it seems I now have a
> slightly different problem. In the topology that the student created,
> which I have attached, it appears that there are BOTH proper and improper
> torsions with atoms c3 na ca ca. I am reading the topology verbatim, and I
> find the following dihedrals (without hydrogens):
>
> 23 24 25 26 c3 c3 n4 c3
> 23 24 25 27 c3 c3 n4 c3
> 23 24 25 28 c3 c3 n4 c3
> ...
> 22 1 4 8 c3 na ca ca
> ...
> 22 1 2 5 c3 na ca ca
> ...
> 22 1 -4 -2 c3 na ca ca
>
> In the (abridged) list of dihedrals above, I have taken care to divide each
> array index by three, add 1 if was positive, and subtract 1 if it was
> negative. In this manner I am giving the atom numbers (first atom starting
> at 1) of the atoms involved in various dihedrals, and making those indexes
> negative if the topology is trying to tell me that the dihedral is an
> improper. I then give the type of those same atoms, in the same order.
> Note the final three dihedrals: these are the infamous "c3 na ca ca"
> beasts. This exposes one vulnerability in mdgx parameter fitting, that
> when it is confronted with a parm.dat file containing proper and improper
> dihedrals with the same atom type sequence one will overwrite the other.
>

​Why do you store impropers and propers in the same list? Don't do that!
 tleap doesn't. The parameter files don't (i.e., the parm.dat and frcmod
files). That the prmtop does is an implementation detail of the force
field tied to how it's implemented in the MD engines. If you want to
emulate tleap behavior, impropers and propers should be in separate lists
or hash tables. They are assigned differently and are unrelated (except
that they share the same functional form... but in some sense so do angles
and bonds).

Also, the ordering is done at the time that LEaP writes the prmtop (or
maybe when it's assigning the parameters, but I actually think that's done
at prmtop writing time as well, I can't recall), not in the actual
assigning. The types don't have to be alphabetized when written to a
parm.dat or frcmod file. tleap will check the permutations as needed, I
believe.

All the best,
Jason

-- 
Jason M. Swails
_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Fri Mar 25 2016 - 06:00:08 PDT
Custom Search