Home
presto
Parameter Refinement Engine for Smirnoff Training / Optimisation
Train bespoke SMIRNOFF force fields quickly using a machine learning potential (MLP). All valence parameters (bonds, angles, proper torsions, and improper torsions) are trained to MLP energies sampled using molecular dynamics. Please see the documentation.
Warning: ⚠️ This code is under active development and the API may change without notice.
Please note that the MACE-OFF models are released under the Academic Software License which does not permit commercial use. However, the default AIMNet-2 model (as well as Egret-1, Orb-v3 OMOL, and others) does.
Installation#
Ensuring that you have pixi installed, install and start a shell with the current environment with:
This will create an environment with CUDA 12.9. You'll need to update to CUDA >= 12.9 (check withnvidia-smi) to use presto (older versions are not usable as we require OpenMM 8.5 for the PythonForce class, and this requires CUDA 12.9).
For more information on activating pixi environments, see the documentation.
Usage#
Run with command line arguments:
then see the bespoke force field attraining_iteration_2/bespoke_ff.offxml.
Sensible defaults have been set, but all available options can be viewed with:
Run from a yaml file:
presto write-default-yaml default.yaml
# Modify the yaml to set the desired input_type and molecule input(s)
presto train-from-yaml default.yaml
For SDF inputs, set molecule_input_type: sdf and list one or more .sdf files under molecules. Each SDF may contain one or more molecules. For example, with the CLI:
For more details on the theory and implementation, please see the documentation.
Copyright#
Copyright (c) 2025-2026, Finlay Clark, Newcastle University, UK
Copyright (c) 2025-2026, Thomas James Pope, Newcastle University, UK
This package includes models from other projects under the MIT license. See presto/models/LICENSES.md for details.
Acknowledgements#
Early development was completed by Thomas James Pope. Many ideas taken from Simon Boothroyd's super helpful python-template.
Where next?#
- New to
presto? Start with Get started → Installation, then Quickstart. - Want to read first? Concepts → Bespoke SMIRNOFF in 5 minutes is a 5-minute primer for readers new to OpenFF or MLPs.
- Need to look up an option? Reference → API documents every settings class and field.
- Something not working? Reference → Troubleshooting lists the known failure modes.
- Contributing? Development → Contributing.