Best way to add rules to OPLS-AA?

Hi all,

I am interested in using the OPLS-AA force field in EMC to build some polysulfone polymer chains; I had been working with the PCFF force field previously but it seems that that field doesn’t have any atom types defined for S atoms with four connections.

I’m a bit confused about the process for adding new atom types (or rather, new rules) to OPLS-AA. The ~/v9.4.4/field/opls/2012/ directory has opls-aa.prm, opls-aa.define, and opls-aa.top, plus the src/ directory also contains oplsaa.par and oplsaa.sb.

As I am trying to build smaller molecules with the same functional groups to test my ability to use the field, I am running into some issues. For example, if I build a DMSO (SMILES string S(=O)(=O)(C)(C) ) molecule this seems to work, but if I try to build a diethylsulfone (SMILES string S(=O)(=O)(CC)(CC) ) then the hydrogens which I believe should by “hc” atom type on the CH2 groups throw an error. Likewise, if I try to build a diphenylsulfone molecule (SMILES string C1=CC=CC=C1S(=O)=O ) it can’t seem to find rules for any of the atoms.

Is there a guide somewhere that explains how to add rules in more detail? I’m pretty sure I understand what atom types I need to use, I just don’t know how to get EMC to recognize them as such.

Thank you very much,

Sam

Hi Sam,

In general, addition of rules to OPLS force fields is directed by their accompanying .define files. These files define the rules for the parameters as can be found in the src/ directory. OPLS force fields use direct partial charge assignment, as opposed to the concept of bond increments, which is used in most other EMC force fields. This means, that each rule also contains the partial charge, which results from the site’s chemical environment. Conversion op both OPLS-UA and OPLS-AA is described by convert.sh. OPLS .define files consist of multiple sections. Each section allows for providing data, which is additional to the information provided by the original OPLS force field files in the src/ directory. As such, the define files serve as a record of the changes made to the original files, such that the end product entails a functional force field.

The opls-aa.define file contains of 15 sections:

  1. DEFINE: deviations to force field default settings
  2. REFERENCES: list of source papers
  3. MASSES: obligatory list of masses and derived definitions; types are only considered when appearing in this list
  4. REDEFINE: redefinition of OPLS source types into new types; types containing * are redefined, since * is used as a wildcard character in EMC
  5. REPAIR: repair lines in original src/oplsaa.par to reflect types as they appear in the MASSES section
  6. PRECEDENCE: order in which types are evaluated by EMC
  7. EXTRA: creation of new types needed for force field consistency; the format uses index[.serial], where index refers to the index number in the first column of src/oplsaa.par; extension serial is an increasing serial number to allow for instances of the same index number, which display similar properties but need a new instance; typically used to create new type instances with different partial charges
  8. EQUIVALENCE: establishes equivalences between types, e.g. the new type car should behave as existing type ca for all force field parameters
  9. NONBOND: addition or redefinition of non-bonded parameters; column order: type1 type2 sigma epsilon
  10. BOND: addition or redefinition of bond parameters; column order: type1 type2 k l0
  11. ANGLE: addition or redefinition of angle parameters; column order: type1 type2 type3 k theta0
  12. TORSION: addition or redefinition of torsion parameters; column order: type1 type2 type3 type4 [k n delta [...]] [index]
  13. IMPROPER: addition or redefinition of improper parameters; column order: type1 type2 type3 type4 k psi0
  14. RULES: list of typing rules with reference to src/oplsaa.par first column index number; column order `index rule [rule […]]
  15. COMPLEX_RULES: future section, currently not in use

Note that you can use the * wildcard character in the definition of types for force field parameters in sections NONBOND, BOND, ANGLE, TORSION, and IMPROPER. OPLS force fields are strict force field, which means that rules are interpreted in a strict way. Unfortunately, you currently cannot set FFSTRICT in the DEFINE section. This needs to be added by hand. Because of this problem, I am attaching OPLS-AA force field files, that work correctly for the SMILES you reported. Changes are reflected by opls-aa.define. The latter cannot be converted with what currently is available online. Replace ./scripts/emc_opls.pl with the file below, if you want to be able to convert the attached opls-aa.define. You can replace opls-aa.prm and opls-aa.top in ./field/opls/2012/ with the files below, if you want to use the new ones as general force field files. On a side note: DMSO stands for dimethyl sulfoxide and has a SMILES of CS(=O)C, which is also typed correctly by the files below.

Best,
Pieter

emc_opls.pl (35.2 KB)
opls-aa.define (26.4 KB)

opls-aa.prm (35.1 KB)
opls-aa.top (30.7 KB)