Skip to content

Quickstart#

Go from a SMILES to a bespoke force field. Assumes you've finished Installation.

Train a force field from one SMILES#

presto train --param-settings.molecules "CCO"

By default this runs two iterations of sampling + training using the AIMNet2 reference potential. On a single A4500 GPU, a 50-atom molecule takes around 15 minutes.

Inspect the output#

When the run finishes, the bespoke force field is at:

training_iteration_2/bespoke_ff.offxml

The loss curve and per-iteration diagnostic plots are under plots/. To check whether the fit looks reasonable, see Inspect outputs and plots.

Use the force field#

bespoke_ff.offxml is a standard SMIRNOFF file:

from openff.toolkit import ForceField, Molecule

ff = ForceField("training_iteration_2/bespoke_ff.offxml")
mol = Molecule.from_smiles("CCO")
system = ff.create_interchange(mol.to_topology()).to_openmm()

Run from a YAML file instead#

For reproducible runs, edit a settings file:

presto write-default-yaml workflow_settings.yaml
# edit the `param_settings.molecules` field
presto train-from-yaml workflow_settings.yaml

See the API reference for what every field does.

Common next steps#

If anything goes wrong#

See Reference → Troubleshooting for known failure modes and their fixes.