Alchemical Networks: Planning a Simulation Campaign#

The ultimate goal of the setup stage is to create an AlchemicalNetwork, which contains all the information needed for a campaign of simulations, including the openfe objects that define the chemical systems and alchemical transformations.

Like any network, an AlchemicalNetwork can be described in terms of nodes and edges between nodes. The nodes are ChemicalSystems, which describe the specific molecules involved. The edges are Transformation objects, which carry all the information about how the simulation is to be performed.

../../_images/AlchemicalNetwork.png

In practice, nodes must be associated with a transformation in order to be relevant in an alchemical network; that is, there are no disconnected nodes. This means that the alchemical network can be fully described by just the edges (which contain information on the nodes they connect). Note that this does not mean that the entire network must be fully connected – just that there are no solitary nodes.

Each Transformation represents everything that is needed to calculate the free energy differences between the two ChemicalSystems that are the nodes for that edge. In addition to containing the information for each ChemicalSystem, the Transformation also contains a Protocol and, when relevant, atom mapping information for alchemical transformations. The latter is often done through a LigandNetwork.

3 Ways to Create an Alchemical Network#

1. Python API#

You can manually create a AlchemicalNetwork by creating a list of Transformation objects. For examples using the Python API, see cookbook on creating alchemical networks.

2. Python NetworkPlanner Convenience Classes#

OpenFE also provides the convenience classes RBFEAlchemicalNetworkPlanner and RHFEAlchemicalNetworkPlanner, which use the RelativeHybridTopologyProtocol for creating AlchemicalNetworks. For example usage of these convenience classes, see Relative Alchemical Network Planners cookbook.

Note

The Network Planners are provided for user convenience. While they cover majority of use cases, they may not currently offer the complete range of options available through the Python API.

3. Command Line NetworkPlanner#

The Alchemical Network Planners can also be called directly from the command line interface.

For example, you can create a Relative Hydration Free Energy (RHFE) network using:

$ openfe plan-rhfe-network -M dir_with_sdfs/

or a Relative Binding Free Energy (RBFE) network using:

$ openfe plan-rbfe-network -p protein.pdb -M dir_with_sdfs/

For more CLI details, see RBFE CLI tutorial and the CLI Interface.

See Also#