LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Mailing List Archives
Re: [lammps-users] Moltemplate OPLS-AA improper parameters
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lammps-users] Moltemplate OPLS-AA improper parameters


From: Andrew Jewett <jewett@...1937...>
Date: Wed, 6 Sep 2017 18:23:00 -0700

On Tue, Sep 5, 2017 at 5:57 AM, David Huang <david.huang@...3703...> wrote:
> The OPLS-AA parameters in Gromacs are provided in the share/top/oplsaa.ff
> directory of the gromacs code distribution, which can be downloaded from
> http://www.gromacs.org/Downloads
> The bonded parameters are in ffbonded.itp and the nonbonded parameters
> in ffnonbonded.itp. Gromacs uses units of kJ/mol for energies and nm for
> distances, so there are differences in the parameters to those in oplsaa.lt
> due to units. Also, the harmonic bond length and angle force constant
> parameters differ by a factor of two from those for the LAMMPS "harmonic
> style" and the proper dihedrals use the Ryckaert-Bellemans function, so
> the dihedral parameters in Gromacs are related to linear combinations of
> those for the LAMMPS "opls" dihedral style (the Gromacs manual gives
> the formulae relating the OPLS and Ryckaert-Bellemans parameters).
>
> For the systems I am studying, I only spotted inconsistencies between
> the OPLS papers and Gromacs parameters vs moltemplate parameters for the improper dihedrals.

Grumbling because I've never been able to locate a complete list of
force field parameters in any of the OPLS papers or their supplemental
files.  (It seems to be common practice.  Perhaps they just like to
announce that new software tools are available.  I do that too.)
Anyway, thanks for the reference to the GROMACS
"oplsaa.ff/ffbonded.itp" file.  That helps.  Here's the link:
https://github.com/gromacs/gromacs/blob/master/share/top/oplsaa.ff/ffbonded.itp
For reference, here's the TINKER "oplsaa.prm" file we get our parameters:
https://dasher.wustl.edu/tinker/distribution/params/oplsaa.prm

Alas, now I am more confused than before, since there are a number of
disagreements between these files.  I'll make some guesses about where
the these files agree and the two files differ.

1)  AGREEMENT: This line from "oplsaa.ff/ffbonded.itp":
define improper_O_C_X_Y 180.0 43.93200  #(gromacs)
     ...seems to correspond to these lines from moltemplate and tinker:
improper_coeff @improper:X-X-3-4 harmonic 10.5 180.0 #(moltemplate)
imptors 0 0 3 4  21.000 180.0 2   #(tinker)
     It also seems to corresponds to these lines as well:
improper_coeff @improper:X-X-3-52 harmonic 10.5 180.0  #(moltemplate)
imptors 0 0 3 52  21.000 180.0 2  #(tinker)

     (Notes to self: A) gromacs files use kJ units instead of kCal.
B) Improper energies in tinker files are larger because they do not
absorb the factor of 2 into the coefficient.  C)  The central "hub"
atom is the 2nd atom in the list in gromacs files, but it is the 3rd
atom in the list in tinker and the corresponding moltemplate files.)

2)  CONFLICT:  This line from "oplsaa.ff/ffbonded.itp":
define improper_Z_N_X_Y 180.0  4.18400  #(gromacs)
   ...seems to disagree with these lines from moltemplate and tinker:
improper_coeff @improper:X-X-24-X harmonic 2.5 180.0 #(moltemplate)
imptors 0 0 24 0  5.000 180.0 2  #(tinker)
   If the gromacs file is correct, I should change the 2.5 to 1.0

3)  AGREEMENT: This line from "oplsaa.ff/ffbonded.itp":
define improper_Z_CM_X_Y 180.0 62.76000 2  #(gromacs)
     ...seems to correspond to these lines from moltemplate and tinker:
improper_coeff @improper:X-X-47-X harmonic 15.0 180.0 #(moltemplate)
imptors 0 0 47 0  30.000 180.0 2" #(tinker)

4)  CONFLICT:  This line from "oplsaa.ff/ffbonded.itp":
define improper_Z_CA_X_Y 180.0 4.60240 2  #(gromacs)
   ...seems to disagree with these lines from moltemplate and tinker:
improper_coeff @improper:X-X-48-X harmonic 2.5 180.0 #(moltemplate)
imptors 0 0 48 0  5.000 180.0 2  #(tinker)
   If the gromacs file is correct, I should change the 2.5 to 1.1

5)  CONFLICT:  The next line from "oplsaa.ff/ffbonded.itp":
define improper_N2_X_N2_N2 180.0 43.93200 2  #(gromacs)
    ...does not correspond to anything in the gromacs or tinker files.
    David, should I create a new line in the moltemplate file like this?:
improper_coeff @improper:24_24_X_24 harmonic 10.5 180.0

    (Background information:  I chose "24" because it corresponds to
"i24" which appears to correspond to several different types of
nitrogen atoms (all of which are hopefully equivalent to "N2" in the
gromacs file) according to these equivalence rules (which originally
come from the "oplsaa.prm" and replace atom types 179,180,181... with
"i24":
set type @atom:179 charge -0.76  # "Amide -CO-NH2"
set type @atom:180 charge -0.5  # "Amide -CO-NHR"
set type @atom:181 charge -0.14  # "Amide -CO-NR2"
replace{ @atom:179 @atom:179_b24_a24_d24_i24 }
replace{ @atom:180 @atom:180_b24_a24_d24_i24 }
replace{ @atom:181 @atom:181_b24_a24_d24_i24 }
    Let me know if you think I guessed the atom types incorrectly or
if I am misunderstanding this entirely.  (My chemistry may be rusty,
but it seems weird to have 3 nitrogen atoms connected to the same
atom.  Perhaps this does not happen often.  Should we just ignore this
weird rule?)


6)  CONFLICT:  The next line from "oplsaa.ff/ffbonded.itp":
define improper_X_NO_ON_NO 180.0 43.93200
    ...does not seem to correspond to anything in the gromacs or tinker files.
   I am not certain what "NO" and "ON" correspond to.  Again, in
gromacs files, the second atom ("NO") is the central hub in the
interaction.  In TINKER(oplsaa.prm), and hence, in
MOLTEMPLATE(oplsaa.lt), it looks like these might be the relevant atom
types:
set type @atom:701 charge 0.54  # "Nitroalkane -NO2" (NITROGEN)
set type @atom:702 charge -0.37  # "Nitroalkane -NO2" (OXYGEN)
replace{ @atom:701 @atom:701_b102_a102_d102_i102 }
replace{ @atom:702 @atom:702_b103_a103_d103_i103 }
    Hence I perhaps I could add a rule like this to moltemplate:
improper_coeff @improper:X_103_102_102 harmonic 10.5 180.0
    ...but I won't add this rule unless someone can reassure me that I
guessed the atom types correctly    (Note to self: remember we have to
swap the 2nd and 3rd atoms in the list, because gromacs and tinker
disagree on atom order)

   I'm happy to make changes #2 and #4.  I'm curious to hear your
opinion #5 and #6.

Cheers, and thanks again for reporting the differences.

Andrew


On Sat, Sep 2, 2017 at 10:16 PM, Andrew Jewett <jewett@...1937...> wrote:
> On Fri, Sep 1, 2017 at 6:45 AM, David Huang <david.huang@...3703...> wrote:
>> Firstly, I would like you to thank you for making the Moltemplate tool
>> available. It has been invaluable to me. The reason I'm writing is because
>> of what appears to me to be a couple of errors in the specification of
>> improper torsions for the OPLS-AA force field in oplsaa.lt, but perhaps I am
>> misunderstanding something.
>>
>> Firstly, the "harmonic" improper_style is used, when the OPLS-AA force field
>> uses the same type of function for impropers as the AMBER force field, which
>> is equivalent to the "cvff" improper_style in LAMMPS.
>
> Jason Lambert wrote the conversion script.  ("tinkerparm2lt.py")  I
> don't know why Jason chose "harmonic" instead of "cvff" but I strongly
> suspect it is because improper_style "harmonic" can be used with GPU
> acceleration (harmonic/kk), and "cvff" can not (yet). Since, for small
> angles the "harmonic" function is a pretty good approximation of the
> cosine function used in "improper_style cvff", this is a pretty
> important reason to keep things as they are.
>     If the entire purpose of the improper interaction is to keep the 4
> atoms coplanar (which it is), then hopefully it does not matter too
> much if you use one or the other (as long as I did not screw up the
> magnitude of the spring constants.  I think they are correct, but it's
> possible they might be off by a factor of 2.  Let me know if you spot
> something.)  I should also admit that we also ignore the
> "Urey-Bradley" terms in the OPLS force field.  (Although I think there
> is only one of them, and apparently most people don't bother with
> these terms unless they care about the high frequency vibrational
> spectra.)
>
>    Nevertheless, if you have reason to believe that it's important to
> use a cosine function instead of a quadratic one, I can make an
> alternative version of the oplsaa.lt file which uses "cvff" instead.
> Nobody has asked for this so far, but perhaps they are just not as
> diligent as you.  I'm happy to do this.
>
>> Secondly, the
>> parameters for the improper torsions do not seem to match those in the
>> papers in which the OPLS-AA force field is specified - in particular, the
>> improper torsion parameters are apparently from the original AMBER paper,
>> and the latest revision of OPLS (OPLS3) (published in
>> http://dx.doi.org/10.1021/acs.jctc.5b00864) appears to use similar
>> parameters. I realise you have taken these parameters from the TINKER
>> parameter file for OPLS, but they do not seem to be correct.
>
> The OPLSAA parameters in the "oplsaa.lt" file were taken from this file:
> https://dasher.wustl.edu/tinker/distribution/params/oplsaa.prm
> Here's an excerpt from the most recent version of that file:
> "The parameters supplied with TINKER are from "OPLS All-Atom Parameters
> for Organic Molecules, Ions, Peptides & Nucleic Acids, July 2008" as
> provided by W. L. Jorgensen, Yale University during June 2009. These
> parameters are taken from those distributed with BOSS Version 4.8."
>
> It's really confusing.  There are multiple sets of OPLSAA parameters,
> as they have changed over the years.  I am under the impression that
> they update the parameters frequently and they don't always publish a
> new paper when they do this (but perhaps I'm wrong).  The parameters
> have definitely changed a lot from the original OPLS papers.
>
> I don't know if this helps, but here is a link to the parameters used
> in BOSS 4.9.  Hopefully they are similar to BOSS 4.8.  The list of
> parameters is located on pages 66-74 of this file:
> http://zarbi.chem.yale.edu/doc/boss49.pdf
>
> Unfortunately, I could not tell if there are any _improper_ torsion
> parameters in this file (or just ordinary torsion parameters).
>
> If you can find a recent source for OPLSAA parameters which disagrees
> with the moltemplate parameters in "oplsaa.lt" file, let me know and I
> will definitely fix it.  There are only 5 improper interactions in
> this version of OPLSAA.  If that's all that's wrong, it is easy to fix
> them manually.
>
> Thanks for the kindly words about moltemplate.
>
> Cheers
>
> Andrew