Skip to main content
Status GH Actions Status Codecov coverage
Latest Release Last release tag Commits since releaseDOI
Communication docs stable user & dev discussions
Foundation license platforms python Funding
Installation Releases Conda Last updated Anaconda Cloud downloads

The Open Force Field toolkit

The Open Force Field Toolkit, built by the Open Force Field Initiative, is a Python toolkit for the development and application of modern molecular mechanics force fields based on direct chemical perception and rigorous statistical parameterization methods.

The toolkit currently covers two main areas we have committed to stably maintain throughout their lifetimes:

Note: Prior to version 0.9.0, this toolkit and its associated repository were named openforcefield and used different import paths. For details on this change and migration instructions, see the release notes of version 0.9.0.

Documentation

Documentation for the Open Force Field Toolkit is hosted at readthedocs. Example notebooks are available in the examples/ directory and also hosted on the Open Force Field website.

How to cite

For instructions on how to cite OpenFF tools or force fields, see our website

Installation

Detailed installation instructions can be found here.

Force Fields

Two major force field development efforts have been undertaken by the Open Force Field Initiative, with results hosted in separate repositories.

  • The OpenFF Force Fields repository, which features the Parsley and Sage force field lines. These are the Open Force Field Initiative's efforts toward building new force fields. The initial parameters are taken from smirnoff99Frosst, but software and data produced by the Initiative's efforts have been used to refit parameter values and add new SMIRKS-based parameters.
  • The smirnoff99Frosst repository, which is descended from AMBER's parm99 force field as well as Merck-Frosst's parm@frosst. This line of force fields did not aim to alter parameter values, but is instead a test of accurately converting an atom type-based force field to the SMIRNOFF format. This repository is now archived, meaning that while the data files will remain available, the python tooling is no longer maintained.

Tables detailing the individual file names/versions within these force field lines are in the README of each repository. By default, installing the openff-toolkit conda package will also install the openff-forcefields conda packages.

A plugin architecture is provided for other force field developers to produce python/conda packages that can be imported by the Open Force Field Toolkit as well. See "How can I distribute my own force fields in SMIRNOFF format?" in our FAQ for details.

Toolkit features

The SMIRKS Native Open Force Field (SMIRNOFF) format

This repository provides tools for using the SMIRKS Native Open Force Field (SMIRNOFF) specification, which currently supports an XML representation for force field definition files.

By convention, files containing XML representations of SMIRNOFF force fields carry .offxml extensions.

Example SMIRNOFF .offxml force field definitions can be found in openff/toolkit/data/test_forcefields/. These force fields are for testing only, and we neither record versions of these files, nor do we guarantee their correctness or completeness.

Working with SMIRNOFF parameter sets

SMIRNOFF force fields can be parsed by the ForceField class, which offers methods including create_openmm_system for exporting to OpenMM and create_interchange for exporting to other formats (GROMACS, Amber, LAMMPS) via Interchange.

# Load a molecule into the OpenFF Molecule object
from openff.toolkit import Molecule
from openff.toolkit.utils import get_data_file_path
sdf_file_path = get_data_file_path('molecules/ethanol.sdf')
molecule = Molecule.from_file(sdf_file_path)

# Create an OpenFF Topology object from the molecule
from openff.toolkit import Topology
topology = Topology.from_molecules(molecule)

# Load the latest OpenFF force field release: version 2.1.0, codename "Sage"
from openff.toolkit import ForceField
forcefield = ForceField('openff-2.3.0.offxml')


# Create an Interchange object for representations in other formats
interchange = forcefield.create_interchange(topology)

# Create an OpenMM system representing the molecule with SMIRNOFF-applied parameters
openmm_system = interchange.to_openmm(topology)

Detailed examples of using SMIRNOFF with the toolkit can be found in the documentation.

Frequently asked questions (FAQ)

See our software ecosystem FAQ for answers to a variety of common problems, such as:

  • Why do I need to provide molecules corresponding to the components of my system, or a Topology with bond orders?
  • Can I use an Amber, CHARMM, or GROMACS topology/coordinate file as a starting point for applying a SMIRNOFF force field?
  • What if I am starting from a PDB file?

Contributors

For a partial list of contributors, see the GitHub Contributors page. Others whose work constitutes significant contributions but did not make it into the git history include Shuzhe Wang.

Metadata

Release files for neoralab-openff-toolkit 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for neoralab-openff-toolkit 0.1.3
File Size Uploaded
neoralab_openff_toolkit-0.1.3.tar.gz 9.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for neoralab-openff-toolkit 0.1.3
File Interpreter ABI Platform
neoralab_openff_toolkit-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 18.3 MB

Release files / neoralab_openff_toolkit-0.1.3.tar.gz

Download URL neoralab_openff_toolkit-0.1.3.tar.gz
Size 9.1 MB
Tags Source
SHA-256 checksum
How to use checksums
c9ae2189939e0361f6576d744fb7591867d26cdb407f86f8daaf2fb181437ae2
BLAKE2b-256 checksum
How to use checksums
e3a9cefd2452147306546220cf791e1ab791b96dc7258494403a9e2bab142336
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / neoralab_openff_toolkit-0.1.3-py3-none-any.whl

Download URL neoralab_openff_toolkit-0.1.3-py3-none-any.whl
Size 9.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3e5ab1cd52dfdd2711df640e36673cd00eef6a697d15d7310f1187b6da9175e3
BLAKE2b-256 checksum
How to use checksums
69b3243a48ebad46aae725f6b39a16e4c6e2a60fdbc8b4b5fd944df0092e1494
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page