Gromacs Oplsaa parameters with Tinker

Oplsaa force field is widely used in molecular dynamics and allows to model liquid systems, proteins, lipids, polymers and organic molecules. Unfortunately, Tinker comes with quite few atom types, so I’m used to get the parameters I need from the huge Oplsaa force field coming with Gromacs (see ffoplsaa.atp, ffoplsaanb.it and ffoplsaabon.itp files in your gromacs distribution). Because of "Uncle Murphy" and his law, the parameters in Gromacs cannot be plugged in Tinker as they are… some work is required.

Atom types/atom classes
In Tinker, the definition of Oplsaa atom types and classes is given in line like this:

atom x y CT "RCH3 Alkane" 6 12.000 4

here x is the atom type: is used to specify atomic properties that strongly depend on the chemical environment (i.e., charges). Note that Tinker, in contrast to what is done in Gromacs, assigns vdw parameters over atom classes, not atom types.

//y/ is the atom class, which defines vdw parameters and the bonding parameters, i.e., properties that are not strongly affected by the chemical environment.

The Gromacs equivalents are non-bonded and bonded parameters (indeed vdw parameters are bond type in Tinker… be careful). To obtain them, in Gromacs we start by reading the atomic descriptions in the ffoplsaa.atp file. This allows to determine the non-bond types, given by the labels opls_XXX. We move then to search those label in the ffoplsaanb.it file, so to obtain charges, vdw parameters and the bond type. The bond types are stored in the ffoplsaabon.it file. Once we have retrieve all the informations we need, is time to make some easy-math to convert the numerical values to be used with Tinker. Yes, units are different between the two codes.

Atomic charges
No conversion is required.

Van der Waals parameter
Gromacs: ε =kJ/mol ; σ=nm
Tinker: ε =kcal/mol ; σ=Å

ε(tnk)=ε(gro)/4.184 ; σ(tnk)=10*σ(gro)

Bonds
Gromacs: $V(r)=(1/2)K(r-r_0)^2 ; K=kJ/(mol*nm^2) ; r_0=nm$
Tinker: $V(r)=K(r-r_0)^2 ; K=kcal/(mol*\AA^2) ; r_0=\AA$

$K_{tnk}=\frac{K_{gro}}{2*100*4.184} ; r_0^{tnk}=10*r_0^{gro}$

Angles
Gromacs: $V(r)=(1/2)K(α-α_0)^2 ; K=kJ/(mol*rad^2) ; α_0=deg$
Tinker: $V(r)=K(α-α_0)^2 ; K=kcal/(mol*rad^2) ; α_0=deg$

$K_{tnk}=\frac{K_{gro}}{2*4.184} ; a_0^{tnk}=a_0^{gro}$

Proper dihedrals
Gromacs: $V(x)=\sum_{n=0}^{n=5}C_n*(cosx)^n$
Tinker: $V(x)=V_1(1+cosx)+V_2(1-cos(2x))+V_3(1+cos(3x))$

To convert $C_n$ into $V_n$:
$V_1=-2*C_1/4.184+3*V_3$
$V_2=-C_2/4.184$
$V_3=(-C_3/2)/4.184$

See Gromacs manual for further informations.

Improper dihedrals
Same as for angles

Attached to this page you will find an ods spreadsheet that use the rules above to convert the gromacs OPLSAA force field for Tinker. Hope I'm not braking any license agreement, but if I'm doing so, please tell me and I will remove the spreadsheet from the wiki.