Under the Hood#
If you want to implement your own atom mapper or free energy procedure, or you want to do something a bit more bespoke, it’s helpful to understand how OpenFE thinks about individual alchemic mutation specifications. A Transformation
stores all the information needed to run an alchemic mutation from one chemical system to another and is the basic unit of an OpenFE simulation campaign. Indeed, Transformation
objects describe the edges of the graph in the AlchemicalNetwork
class.
- Setup
Protocol
Simulation procedure for an alchemic mutation.
- Chemical component definition
SDF, PDB, RDKit, OpenFF Molecule, solvent spec, etc.
SmallMoleculeComponent
The ligands that will be mutated.
LigandAtomMapping
Corresponds atoms in one small molecule to those in another.
SmallMoleculeComponent
,SolventComponent
andProteinComponent
The components that make up the chemical system.
ChemicalSystem
Each of the chemical systems, composed of components, that the
Transformation
mutates between.
Transformation
A single alchemic mutation from one chemical system to another.
- Run
Transformation
A single alchemic mutation from one chemical system to another.
ProtocolDAG
A directed acyclic graph describing how to compute a
Transformation
.
ProtocolUnit
A single unit of computation within a
ProtocolDAG
ProtocolUnitResult
The result of a completed
ProtocolUnit
ProtocolDAGResult
A completed transformation.
- Gather
Transformation
The specification for the alchemic mutation.
Protocol
A completed single run of a transformation.
ProtocolResult
A completed single run of a transformation.
ProtocolDAGResult
A completed transformation with multiple user-defined replicas.