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 ChemicalSystem
s,
which describe the specific molecules involved. The edges are
Transformation
objects, which carry all the information about how
the simulation is to be performed.

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
ChemicalSystem
s 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 AlchemicalNetwork
s.
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.