Re: [AMBER] On alphabetizing impropers

From: David Cerutti <dscerutti.gmail.com>
Date: Fri, 25 Mar 2016 11:07:42 -0400

Yes, I agree--in the mdgx topology data structures, for executing the
energy function, the propers and impropers are all in a list, but each has
a flag. For parameter development, there is again one long list of
"dihedral" data structures read from the parm.dat files, and again each o
them has a flag 0 or 1 to indicate proper or improper. Furthermore, in the
parameter data, there is a partition between the propers at the start of
the list and the impropers at the end, and I keep track of the counts of
each. I did not know that the types are not necessarily alphabetized in a
parm.dat or frcmod file, but I do have code in there to check when reading
those parameter files.

On Fri, Mar 25, 2016 at 8:47 AM, Jason Swails <jason.swails.gmail.com>
wrote:

> 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
>
_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Fri Mar 25 2016 - 08:30:03 PDT
Custom Search