Home

Awesome

SMIRNOFF99Frosst

Build Status

This provides the first general-purpose implementation of a SMIRKS Native Open Force Field (SMIRNOFF) created by the Open Force Field Initiative. You can parameterize small molecules with SMIRNOFF using the ForceField class in the openforcefield toolkit for simulations with OpenMM. Details about this new format are documented in our recent publication (doi:10.1021/acs.jctc.8b00640 or bioRxiv). Usage examples can be found in the openforcefield repository.

DOIs for each force field in this repository can be found in the following table:

FilenameDOI
smirnoff99Frosst-1.1.0.offxmlDOI
smirnoff99Frosst-1.0.9.offxmlDOI
smirnoff99Frosst-1.0.8.offxmlDOI
smirnoff99Frosst-1.0.7.offxmlDOI
smirnoff99Frosst-1.0.6.offxmlDOI
smirnoff99Frosst-1.0.5.offxmlDOI
smirnoff99Frosst-1.0.4.offxmlDOI
smirnoff99Frosst-1.0.3.offxmlDOI
smirnoff99Frosst-1.0.2.offxmlDOI
smirnoff99Frosst-1.0.1.offxmlDOI
smirnoff99Frosst-1.0.0.offxmlSame as 1.0.1

Installation

conda install -c omnia smirnoff99frosst

(SMIRNOFF99frosst was formerly known as SMIRFF99frosst)

Use

Installing this package exposes an entry point that makes the smirnoff99frosst/offxml directory easily accessible by other packages in the same python installation. If the Open Force Field toolkit is installed, it will automatically detect and use this entry point:

>>> from openforcefield.typing.engines.smirnoff import ForceField
>>> ff = ForceField('smirnoff99Frosst-1.0.9.offxml') 

Otherwise, the entry point can be accessed by querying the openforcefield.smirnoff_forcefield_directory entry point group.

>>> from pkg_resources import iter_entry_points
>>> for entry_point in iter_entry_points(group='openforcefield.smirnoff_forcefield_directory'):
...     print(entry_point.load()())

What it is

The provided OFFXML (force field) files are successive versions of a general-purpose small molecule force field, written in the SMIRNOFF format; this force field should cover all or almost all of drug-like chemical space, and illustrate some of the major functionality of the SMIRNOFF format as well as how it simplifies the specification of force field parameters in a compact and chemically sensible way.

HOWEVER, this is not expected to be (at present) an especially accurate small molecule force field. Its authors (see History, below) expect that while coverage will initially be good, additional refinements will be required (and possibly some expansion of the number of parameters) before it can rival current force fields such as GAFF or OPLS in accuracy. However, we are optimistic that it already rivals them in extensibility, and potentially with relatively minimal work can be extended to be a compelling present-day small molecule force field.

As with typical members of the AMBER force field family, SMIRNOFF99Frosst is intended to be used with RESP or AM1-BCC charges which are not specified by the force field itself.

Differences from parm99 and parm@frosst:

SMIRNOFF99Frosst is neither parm99 nor parm@frosst exactly, for a number of reasons including that:

The second and third bullet points are particularly important. When many parameters (such as torsional barrier heights, or equlibrium angles) for similar chemical functionality differed only slightly in the existing force fields, these were often deliberately consolidated to have a single value.

The last bullet point is also noteworthy. Because of limitations of atom typing, many torsions were missing in parm99/parm@frosst, resulting in generics being erroneously applied when a more specialized torsion could have served. The use of SMIRKS typically means that this is not the case, so many mistakes are eliminated.

History

This forcefield, SMIRNOFF99Frosst, is a logical descendant of AMBER's parm99 forcefield as well as Merck-Frosst's parm@frosst, but is generalized/simplified and put into the SMIRNOFF format.

SMIRNOFF99Frosst was created by Christopher I. Bayly (with help from Caitlin C. Bannan and David L. Mobley, UC Irvine) during his sabbatical at UCI during Summer 2016. It was created by hand curation of the original parm99 and parm@frosst parameter and frcmod files (manually creating SMIRKS patterns, condensing parameters, etc.). Usage of SMIRKS, along with application of Bayly's chemical intuition and extensive history with the AMBER force field family, allowed the number of parameter lines to be reduced from the multiple thousands of parm99+parm@frosst to the few hundred seen here.

Tentative plan

We expect to continue to manually expand this to cover more chemical space and, when needed, to introduce additional parameters to improve accuracy. Subsequent versions are expected to build on Bayly's hand created version with some enhancements by Caitlin Bannan by improving specific parameters, further differentiating some chemical functionality, etc. However, derivatives are expected to retain this basic structure and the AMBER legacy/history; a full refitting of bonded parameters would result in a separate force field rather than a new version of this force field.

In general, this repository will only contain force fields that aim to reproduce the behavior of parm99/parm@Frosst using the SMIRNOFF format. Once the Open Force Field Initiative begins parameter optimizations, the resulting force field should be migrated to separate base name.

General versioning guidelines

Applicable in general to SMIRNOFF-format FFs produced by the Open Force Field Consortium

Force fields moving forward will be called name-X.Y.Z

Using SMIRNOFF99Frosst

In OpenMM, application of SMIRNOFF99Frosst to small molecules should be straightforward via openforcefield with examples available in the openforcefield repository. Additionally, with ParmEd, it should be possible to convert parameterized OpenMM systems into other formats such as AMBER, CHARMM, or GROMACS, making this forcefield available in a variety of packages.

Versions

Contributors

Contributors to the relevant .offxml files include:

Special thanks go to John D. Chodera (MSKCC) for his initial implementation of openforcefield toolkits and the SMIRNOFF format.

Andrea Rizzi (MSKCC) and Jeff Wagner (OFF/UC Irvine) contributed to the Python and Conda infrastructure of this package.

Acknowledgements

Project based on the Computational Molecular Science Python Cookiecutter version 1.0.