Toolkit 0.11.0 and Interchange 0.2.0 RC user guide

Installation

To make a new environment containing the OpenFF Toolkit 0.11.0 release candidate, run

conda create -n offtk-011rc -c conda-forge/label/openff-interchange_rc -c conda-forge/label/openff-toolkit_rc -c conda-forge "openff-toolkit-examples >=0.11.0rc2"

If you have trouble installing locally, you can also use this link to connect to a temporary Binder notebook instance running the release candidate (Note that you can load up the example notebook on the left side of the Binder interface).

Summary of changes

For an example showcasing some of the new features, download this notebook from GitHub (you don’t need the environment file).

The changes include:

  • The ability to load proteins from PDB - Molecule.from_polymer_pdb('path_to_pdb') - These proteins need to have explicit hydrogens and no missing atoms. More info is available in the RC docs. Only a single protein molecule should be present in the PDB.

  • Easier imports - from openff.toolkit.typing.engines.smirnoff import ForceField is now just from openff.toolkit import ForceField - Same for Molecule, Topology, RDKitToolkitWrapper and others

  • Molecule and Topology objects no longer store virtual sites, since those should only exist AFTER the force field has been applied (and then you have an OpenMM System or an Interchange object which does contain the vsites). So API points like offmol.virtual_sites and offmol.particles are being deprecated. To replace uses of offmol.particles, use offmol.atoms

  • Topology objects no longer consist of TopologyMolecules, now they're a very much like a list of Molecules. So things like topology.topology_atoms are being deprecated in favor of topology.atoms (to migrate your code, just remove the topology_ in the attribute names)

  • Switching from simtk/OpenMM units to OpenFF units (based on Pint)

  • First-class support for openff-interchange - Just run ForceField.create_interchange instead of ForceField.create_openmm_system and check it out!

FAQ

To answer some likely questions:

  • The release candidate period is scheduled to be one month. Barring any major issues we’ll make the stable release at the end of this period.

  • We’re updating all of the toolkit example notebooks during the RC period, so they may not work at the moment, but they will all be functional at the full release.

  • While Rosemary isn’t out yet, we DO have a protein force field available for the OpenFF Toolkit. It’s a SMIRNOFF-format port of Amber’s ff14SB, called ff14sb_off_impropers_0.0.3.offxml. We're pretty sure the parameters are right, but it's a bit large and unwieldy due to the differences between atom typed and SMIRNOFF FFs. Rosemary will have far fewer parameters and will be applied much faster.

    • This first release won’t handle post-translational modifications. The big functionality gaps there are 1) loading nonstandard amino acids from PDB and 2) generating reasonable charges for just the unrecognized residue/modification. We’ll run a workshop on an example workflow that solves these two problems using a dangerously naive approach in the coming months. Watch the #general channel on slack for more info.

  • Right now you can only load proteins consisting of canonical amino acids. In later releases you’ll be able to load other biopolymers (like nucleic acids), and the toolkit will expose functionality to let the user define other residues/polymers as well.

  • Right now you can only load PDBs containing a single protein and nothing else. To combine many components, load them as OpenFF Molecules separately, and then combine them into a single OpenFF Topology (in future releases we may relax this restriction, but PDB files are so difficult to handle correctly that we’re starting by only supporting a simple case!)

  • Please report bugs to the OpenFF Toolkit issue tracker. We expect to make several bugfix releases during the RC period.