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 fromopenff.toolkit import ForceField
- Same forMolecule
,Topology
,RDKitToolkitWrapper
and othersMolecule
andTopology
objects no longer store virtual sites, since those should only exist AFTER the force field has been applied (and then you have an OpenMMSystem
or anInterchange
object which does contain the vsites). So API points likeoffmol.virtual_sites
andoffmol.particles
are being deprecated. To replace uses ofoffmol.particles
, useoffmol.atoms
Topology
objects no longer consist ofTopologyMolecules
, now they're a very much like a list ofMolecules
. So things liketopology.topology_atoms
are being deprecated in favor oftopology.atoms
(to migrate your code, just remove thetopology_
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 ofForceField.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 OpenFFTopology
(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.