Cookbook#
This section describes common tasks involving the OpenFE Python API.
The OpenFE CLI provides a simple way to perform the most common procedures for free energy calculations, but does not provide much flexibility for fine-tuning your approach or combining OpenFE with other tools. The Python API allows that flexibility, but using it is more complex. This cookbook breaks down common steps that would be implemented in Python to help navigate that complexity.
Note
This section is a work-in-progress.
The Basic Workflow#
The typical way to use the Python API is to load a number of molecules you want to calculate free energies of, construct a LigandNetwork connecting them in an efficient way, and then combine that with information for how each ligand should be simulated to construct an AlchemicalNetwork, which specifies the entire simulation campaign. This provides a lot of flexibility in how molecules are specified, mapped, connected, and simulated, without exposing a great deal of complexity. OpenFE recommends this workflow for most users.
- Setup
ProtocolSimulation procedure for an alchemic mutation.
- Chemical component definition
SDF, PDB, RDKit, OpenFF Molecule, solvent spec, etc.
SolventComponentandProteinComponentOther chemical components needed to simulate the ligand.
SmallMoleculeComponentThe ligands that will be mutated.
- Orion/FEP+
Network from another tool.
LigandNetworkA network of ligand transformations.
AlchemicalNetworkA complete simulation campaign.
- Run
- openfe quickrun
OpenFE recommends using the
openfe quickrunCLI command to execute a transformation.
- Gather
- openfe gather
OpenFE recommends using the
openfe gatherCLI command to collect the results of a transformation.
List of Cookbooks#
- Loading Molecules and Chemical Systems
- Dumping a
Transformationto JSON - Using
jqto inspect OpenFE JSONs - Choose and Configure a Protocol
- Planning a Ligand Network
- Relative Free Energy Alchemical Network Planners
- Creating Ligand Networks Exported from Orion or FEP+
- Ligand Networks by Hand
- Visualizing Ligand Networks
- Create an Alchemical Network
- Assigning partial charges to an OpenFF Molecule
- BespokeFit: Using bespoke force field parameters with OpenFE protocols
- Recap