dihedral_opls format

Dear all User,
I want to use the torsional forcefield parameter of opls in LAMMPS. I am using dihedral opls style for that. But, the parameter given in the oplsaa.ff file in in Ryckaert-Bellemans form. Can anyone suggest how to convert this form into K1,K2,K3,K4 coefficient form. I am using LAMMPS (16 Mar 2018) version. Any suggestions will be highly appreciated. Thank you.

If it helps, I have been getting my OPLSAA parameters from this file:

https://dasher.wustl.edu/tinker/distribution/params/oplsaa.prm
--- excerpt ---
torsion 0 2 2 2 -2.500 0.0 1 1.250 180.0 2 3.100 0.0 3
torsion 0 2 2 6 -2.500 0.0 1 1.250 180.0 2 3.100 0.0 3
torsion 1 2 2 2 -2.000 0.0 1 0.700 180.0 2 3.000 0.0 3

and converting them to LAMMPS format using dihedral_style opls
--- excerpt ----
dihedral_coeff 1 -2.5 1.25 3.1 0.0
dihedral_coeff 2 -2.5 1.25 3.1 0.0
dihedral_coeff 3 -2.0 0.7 3.0 0.0

Out of curiosity, from where are you getting this "oplsaa.ff" file?
Is it publicly available? (I've been converting the version of OPLSAA
that comes with tinker, but that version throws away all the atom type
names and replaces them with integers.)

Andrew

P.S. The excerpt above comes from the version of "oplsaa.lt" that
comes with moltemplate. Moltemplate can build simulations for LAMMPS
containing molecules using the OPLSAA force field. (However
unfortunately it doesn't do automatic atom type selection for you, so
you must manually select each atom type from the list for every atom
in your molecule.)
The complete "oplsaa.lt" file (with all the dihedral interactions) is
available here:
https://github.com/jewettaij/moltemplate/blob/master/moltemplate/force_fields/oplsaa.lt
(Scroll down to line 6536)
Unfortunately, the names of the atoms and dihedral interactions in
that file (eg "@dihedral:X_002_002_002") end up being confusing for a
human to read because of the equivalence tables that OPLS uses, and
the fact that I got my force field parameters from TINKER, which only
allows numeric atom type names.

Hello,

Recently (3 years ago) the Jorgensen group has set up a website providing OPLS/CM1A parameters for relatively small molecules (200 atoms) that you can draw yourself:
http://zarbi.chem.yale.edu/ligpargen/index.html

The output files are given for several simulation softwares including LAMMPS. They include only one molecule but you can use it as a template for more complex systems.

Note that only the data file provided and that you have to define the forcefield style yourself elsewhere. Also note that it contains few errors to correct before using it as a LAMMPS input.

The dihedral style used is nharmonic so you must add the n value in the input file for dihedral coeffs and the improper style is cvff (also note that improper atoms are not correctly ordered for LAMMPS).
I also advise you to compare the forcefield parameters, including the charges, with the model you want to use as they might differ. For my recent work, they were correct for modelling benzene derivatives.

If you still want to know the conversion rules from Ryckaerts-Bellemans to Fourier, a quick shot at Google led me to this page from which you could get all the info you need:
https://www.researchgate.net/post/How_to_compare_dihedral_from_articles_and_from_topology_in_Gromacs

Good luck,

Germain Clavier.

Hello,

Recently (3 years ago) the Jorgensen group has set up a website providing OPLS/CM1A parameters for relatively small molecules (200 atoms) that you can draw yourself:
http://zarbi.chem.yale.edu/ligpargen/index.html

Comment / Warning:

I was really happy when I discovered this web server. Unfortunately,
the author appears to have moved on and is no longer supporting the
software (which is not open-source). Feel free to use the ligpargen
service for inspiration, but don't blindly accept the files it
generates. (Probably this is good advice for all molecule builder
tools.) Also take a look at the bug report list:
https://github.com/leelasd/ligpargen/issues
(At the moment, I would hesitate to depend on this service heavily. I
really hope things change. Potentially, this could be a great
service.)

The output files are given for several simulation softwares including LAMMPS. They include only one molecule but you can use it as a template for more complex systems.

Note that only the data file provided and that you have to define the forcefield style yourself elsewhere. Also note that it contains few errors to correct before using it as a LAMMPS input.
The dihedral style used is nharmonic so you must add the `n` value in the input file for dihedral coeffs and the improper style is cvff

   Comment/Warning (2): I don't know if this is worth point out, but
in case you happen to decide to use moltemplate, be warned that
moltemplate currently uses "improper_style harmonic" with the OPLSAA
force field. (Instead of "cvff") I just realized this when reading
Germain's reply. This appears to be a mistake on my part. (Using
something like "improper_style cvff" is probably closer to the
original OPLS force field high energies. However at most energies and
temperatures, the two improper styles, cvff and harmonic, should be
very similar, since the single cosine term can be approximated by a
quadratic function... For this reason I don't plan to update this
soon unless someone complains.)

Thanks Andrew and Germain for you suggestion and advice. It really help me a lot to know more about the dihedral format. I could generate the data file using the web server. I was comparing the parameter with the oplsaa.lt. But it seems very difficult for me to track back the atomtype of involved in a particular dihedral interaction. For example,

I wanted to know which atoms are involved in the interaction for the following dihedral

dihedral_coeff @dihedral:004_003_084_020 -0.75 1.5 0.0 0.0,
dihedral_coeff @dihedral:004_003_084_087 0.75 1.5 0.0 0.0

But the atom 004, 003, 084 and 020 are different kind and it might form a dihedral. So it is bit confusing which dihedral it really refer. As Andrew wrote earlier it is difficult to understand the names of atom by human eye. Shrabanti

Thanks Andrew and Germain for you suggestion and advice. It really help me a lot to know more about the dihedral format. I could generate the data file using the web server. I was comparing the parameter with the oplsaa.lt. But it seems very difficult for me to track back the atomtype of involved in a particular dihedral interaction. For example,

I wanted to know which atoms are involved in the interaction for the following dihedral

dihedral_coeff @dihedral:004_003_084_020 -0.75 1.5 0.0 0.0,

In the "oplsaa.lt" file that you are reading, this interaction
corresponds to many different atom types.
Unless you are planning on using moltemplate, I would follow Germain's
suggestions instead. I don't recommend trying to understand the
"oplsaa.lt" file. (Perhaps I should not have mentioned this file.)

The remainder of this message concerns the way OPLSAA was implemented
in Moltemplate (and TINKER). This is probably quite different from
the way it was implemented in the "oplsaa.ff" file that you have
because the Moltemplate/TINKER version has an artificially inflated
number of atom types (although, hopefully the resulting simulations
will still be accurate).

Unless you are planning to use moltemplate, please ignore the rest of
this message. I feel guilty about posting these boring details to the
entire list.

Regarding your question, the TINKER version of OPLS has a very large
number of atom types, and (partially to compensate for this) it uses
"equivalence tables" to reduce the size of the dihedral interaction
lookup table.

The numbers 004, 003, 084, and 020, do not refer to atom types, but to
group types.

For example, group "020" is a group of oxygen atoms singly-bonded to
two atoms (-O-), such as Diphenyl Ether, or Dialkyl Ether. In the
TINKER version of OPLSAA, there are 17 different oxygen atom types
which fall into this group, starting with atom type 119. In spite of
the fact that all 17 of these atoms have different types, the angles,
dihedrals, and impropers they participate in are mechanically similar.
Consequently, the number 020 (not 119) is used to lookup the force
field parameters for these angle, dihedral, and improper interactions.
This reduces the size of the tables needed for looking up force field
parameters considerably. (In moltemplate, things are made more
confusing by the fact that each atom has two different type names, a
short name, like "119", and a long name "119_020_020_020_020". This
is the way moltemplate encodes group information for the OPLSAA force
field.)

Consequently, there are many, many different types of possible
combinations of atom types which use the 004_003_084_020 dihedral
interaction that you mentioned.

(The Moltemplate/TINKER version of OPLSAA has a huge number of
different atom types. This is because atoms with different partial
charges are not considered the same type of atom in TINKER, even if
they are otherwise identical. As a result, there are over 900 atom
types in the Moltemplate/TINKER version of OPLSAA. This is one of the
main reasons I'd like to eventually start using some other source for
my OPLS parameters. Thanks again for telling me where you fould
oplsaa.ff.)

   None of this should matter to most moltemplate users. (because
moltemplate generates angles, dihedrals, etc... automatically). Users
typically just select the atom types they want from the long list of
atom types at the beginning of the "oplsaa.lt" file, and indicate
which pairs of atoms are bonded together. Moltemplate does the rest.
Users never have to look at the dihedral force field parameter table.

I hope I did not bore you to tears.

Andrew
P.S. Even more boring details:
Selecting atom types can be tricky.
   http://moltemplate.org/force_field_recommendations.html
Keep in mind that the first 56 atom types in the "oplsaa.lt" file are
reserved for "united atom" molecules. They are not for use in
all-atom simulations. United atom force fields are used for
coarse-grained models which lack explicit hydrogen atoms. Unless this
is what you want, I would avoid these.) Things get tricky if the atom
type you need does not appear in the "oplsaa.lt" file. In that case,
one strategy you can use is to find a similar atom type from the list
of 906 atom types. Then create a new atom type belonging to the same
angle,dihedral,improper group as that atom, and assign to it the new
partial charge that it should have.