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
ProtocolSimulation procedure for an alchemic mutation.
- Chemical component definition
SDF, PDB, RDKit, OpenFF Molecule, solvent spec, etc.
SmallMoleculeComponentThe ligands that will be mutated.
LigandAtomMappingCorresponds atoms in one small molecule to those in another.
SmallMoleculeComponent,SolventComponentandProteinComponentThe components that make up the chemical system.
ChemicalSystemEach of the chemical systems, composed of components, that the
Transformationmutates between.
TransformationA single alchemic mutation from one chemical system to another.
- Run
TransformationA single alchemic mutation from one chemical system to another.
ProtocolDAGA directed acyclic graph describing how to compute a
Transformation.
ProtocolUnitA single unit of computation within a
ProtocolDAG
ProtocolUnitResultThe result of a completed
ProtocolUnit
ProtocolDAGResultA completed transformation.
- Gather
TransformationThe specification for the alchemic mutation.
ProtocolA completed single run of a transformation.
ProtocolResultA completed single run of a transformation.
ProtocolDAGResultA completed transformation with multiple user-defined replicas.