Bespoke SMIRNOFF in 5 minutes#
If you have a background in MD but you're new to the SMIRNOFF format, read this before the Method overview.
What a SMIRNOFF force field is#
SMIRNOFF (SMIRKS Native Open Force Field) is OpenFF's force field format. A few key points:
- Parameters are organised into handlers — one each for bonds, angles, proper torsions, improper torsions, van der Waals (vdW), electrostatics, etc.
- Parameters are matched to atoms via SMIRKS patterns (more properly SMARTS patterns with atom-index tags). A bond parameter with SMIRKS
[#6X4:1]-[#6X4:2]applies to every bond between two tetrahedral carbons in your molecule. - Parameters that appear later in a SMIRNOFF specification override those which come earlier if they both match the same bond/ angle/ torsion etc.
What "bespoke" means in presto#
presto starts from a SMIRNOFF force field (default: openff_unconstrained-2.3.0.offxml) and appends a small set of (usually) highly specific SMIRKS parameters tailored to your molecule. Because later parameters take precedence, the bespoke parameters take precedence over the generic ones whenever they match.
Only the valence parameters are bespoke: bonds, angles, proper torsions, improper torsions. The vdW and electrostatic parameters from the input force field are left alone — see "What presto doesn't do" below.
What an MLP gives you here#
A machine-learning potential trained on QM data can give you near-QM energies and forces at orders-of-magnitude lower cost than the underlying QM method. In presto, the MLP plays three roles:
- Reference energies/forces that the bespoke parameters are fitted to reproduce.
- Hessian source for the modified Seminario method, which initialises bond and angle parameters.
- (Optional) Sampling potential in the
ml_mdprotocol, where MD is run on the MLP instead of the current MM force field.
How presto stitches these together#

In short:
- Generate bespoke SMIRKS for your molecule.
- Initialise bond/angle parameters from the MLP Hessian (modified Seminario method).
- Sample the molecule with high-temperature MD (default: MM-driven + metadynamics on rotatable bonds).
- Run short minimisations (with the MLP and MM force field) to supplement the high temperature samples (only in the "torsion_minimisation" protocol, which is default).
- Evaluate MLP energies and forces on the sampled snapshots.
- Optimise the bespoke valence parameters to reproduce the MLP energies and forces.
- Repeat (3-6) for additional iterations using the bespoke force field for sampling.
- Save the bespoke
.offxmland diagnostic plots.
For more algorithmic detail, see Method overview.
What presto does not do#
- Fit charges or vdW parameters. Only valence terms are bespoke. If your molecule has unusual electrostatic or non-bonded behaviour, that's outside
presto's scope. - Add polarisability. SMIRNOFF is a fixed-charge format.
- Provide transferable parameters. The bespoke parameters are tuned to your molecules.
- Check you've selected a suitable MLP for your system. The MLP's accuracy ceiling is the QM method it was trained on, and your molecule(s) of interest may be dissimilar to the MLP training set (e.g. your molecule is charged but the MLP training set is neutral). Picking the right MLP for your chemistry matters — see MLPs in presto.
Glossary#
For one-liners on SMIRNOFF, SMIRKS, MSM, congeneric series, and similar terms, see Reference → Glossary.