Skip to content

Instantly share code, notes, and snippets.

@richardjgowers
Created July 18, 2023 16:59
Show Gist options
  • Save richardjgowers/fe00284753259241f16da1995f396c4e to your computer and use it in GitHub Desktop.
Save richardjgowers/fe00284753259241f16da1995f396c4e to your computer and use it in GitHub Desktop.
CDK2 example
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "35354229",
"metadata": {},
"source": [
"# Setting up a relative binding free energy network\n",
"\n",
"This tutorial gives a step-by-step process to set up a relative binding free energy (RBFE) simulation campaign using OpenFE. This tutorial is designed as an accompaniment to the CLI tutorial found in the same directory as this notebook.\n",
"\n",
"With the CLI, all the steps here were performed by the `openfe plan-rbfe-network` command. However, that command offers little room for customization. Using the Python interface gives us the ability to customize all aspects of how our simulation runs. This tutorial provides a step-by-step Python guide to reproducing the setup done in the CLI tutorial, highlighting areas where the Python interface enables customization."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "fc97de03",
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import openfe"
]
},
{
"cell_type": "markdown",
"id": "2fea29c3",
"metadata": {},
"source": [
"## Loading the ligands\n",
"\n",
"First we must load the chemical models between which we wish to calculate free energies.\n",
"In this example these are initially stored in a molfile (`.sdf`) containing multiple molecules.\n",
"This can be loaded using the `SDMolSupplier` class from rdkit and passed to openfe."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "41cf8be7",
"metadata": {},
"outputs": [],
"source": [
"from rdkit import Chem\n",
"supp = Chem.SDMolSupplier(\"cdk2/02_ligands/ligands.sdf\", removeHs=False)\n",
"ligands = [openfe.SmallMoleculeComponent.from_rdkit(mol) for mol in supp]"
]
},
{
"cell_type": "markdown",
"id": "6963be83",
"metadata": {},
"source": [
"## Creating the `LigandNetwork`\n",
"\n",
"The first step is to create a `LigandNetwork`, which is a network with small molecules as nodes, and atom mappings, the description of how to alchemically mutate between the molecules, as its edges.\n",
"\n",
"The pipeline for creating a `LigandNetwork` can involve three components:\n",
"\n",
"* **Atom Mapper**: Proposes potential atom mappings (descriptions of the alchemical change) for pairs of ligands. We will use the `LomapAtomMapper`.\n",
"* **Scorer**: Given an atom mapping, provides an estimate of the quality of that mapping (lower scores are better). We will use `default_lomap_scorer`.\n",
"* **Network Planner**: Creates the actual `LigandNetwork`; different network planners provide different strategies. We will create a minimal spanning network with the `generate_minimal_spanning_network` method.\n",
"\n",
"Each of these components could be replaced by other options."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "5a3cf244",
"metadata": {},
"outputs": [],
"source": [
"mapper = openfe.LomapAtomMapper(max3d=1.0, element_change=False)\n",
"scorer = openfe.lomap_scorers.default_lomap_score\n",
"network_planner = openfe.ligand_network_planning.generate_minimal_spanning_network"
]
},
{
"cell_type": "markdown",
"id": "acc13581",
"metadata": {},
"source": [
"The exact call signature depends on the network planner: a minimal spanning network requires a score, whereas that is optional for a radial network (but a radial network needs the central ligand to be provided)."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "f6e7bce5",
"metadata": {},
"outputs": [],
"source": [
"ligand_network = network_planner(\n",
" ligands=ligands,\n",
" mappers=[mapper],\n",
" scorer=scorer\n",
")"
]
},
{
"cell_type": "markdown",
"id": "b7492637",
"metadata": {},
"source": [
"Now we can look at the overall structure of the `LigandNetwork`:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "e6ca6131",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 800x800 with 1 Axes>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from openfe.utils.atommapping_network_plotting import plot_atommapping_network\n",
"plot_atommapping_network(ligand_network)"
]
},
{
"cell_type": "markdown",
"id": "5f99678c",
"metadata": {},
"source": [
"We can also inspect the individual atom mappings:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "c55cbcac",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# get the first edge; it automatically displays in a Jupyter notebook\n",
"mapping = next(iter(ligand_network.edges))\n",
"mapping"
]
},
{
"cell_type": "markdown",
"id": "dd0c96d7",
"metadata": {},
"source": [
"To get the score for this mapping, we inspect its `annotations` attribute. Arbitrary annotations can be added when a mapping is created, although our network generator only includes the score."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "6b7492d7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'score': 0.09516258196404048}"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# lower score is better\n",
"mapping.annotations"
]
},
{
"cell_type": "markdown",
"id": "30b276b6",
"metadata": {},
"source": [
"You can output the ligand network to the same `graphml` format as we saw in the CLI tutorial with the following:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "2263838f",
"metadata": {},
"outputs": [],
"source": [
"with open(\"ligand_network.graphml\", mode='w') as f:\n",
" f.write(ligand_network.to_graphml())"
]
},
{
"cell_type": "markdown",
"id": "056924a3",
"metadata": {},
"source": [
"## Creating a single `Transformation`\n",
"\n",
"The `LigandNetwork` only knows about the small molecules and the alchemical connections between them. It doesn't know anything about environment (e.g., solvent) or about the `Protocol` that will be used during the simulation.\n",
"\n",
"That information in included in a `Transformation`. Each of these transformations corresponds to a single leg of the simulation campaign, so for each edge in the `LigandNetwork`, we will create two `Transformation`s: one for the complex and one for solvent.\n",
"\n",
"In practice, this will be done for each edge of the `LigandNetwork` in a loop, but for illustrative purposes we'll dive into the details of creating a single transformation. In particular, we'll create the solvent leg for the pair of molecules we selecting for the mapping above."
]
},
{
"cell_type": "markdown",
"id": "d0cb1329",
"metadata": {},
"source": [
"### Creating `ChemicalSystem`s\n",
"\n",
"OpenFE describes complex molecular systems as being composed of `Component`s. For example, we have `SmallMoleculeComponent` for each small molecule in the `LigandNetwork`. We'll create a `SolventComponent` to describe the solvent, and binding free energy calculations involve a `ProteinComponent`.\n",
"\n",
"The `Component`s are joined in a `ChemicalSystem`, which describes all the particles in the simulation."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "9d2fbc22",
"metadata": {},
"outputs": [],
"source": [
"# defaults are water with NaCl at 0.15 M\n",
"solvent = openfe.SolventComponent()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "6c69b130",
"metadata": {},
"outputs": [],
"source": [
"import pdbinf\n",
"import gemmi"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "61b403a2",
"metadata": {},
"outputs": [],
"source": [
"# from https://www.rcsb.org/ligand/TPO\n",
"TPO = \"\"\"\n",
"data_TPO\n",
"#\n",
"\n",
"_chem_comp.id TPO\n",
"_chem_comp.name PHOSPHOTHREONINE\n",
"_chem_comp.type \"L-PEPTIDE LINKING\"\n",
"_chem_comp.pdbx_type ATOMP\n",
"_chem_comp.formula \"C4 H10 N O6 P\"\n",
"_chem_comp.mon_nstd_parent_comp_id THR\n",
"_chem_comp.pdbx_synonyms PHOSPHONOTHREONINE\n",
"_chem_comp.pdbx_formal_charge 0\n",
"_chem_comp.pdbx_initial_date 1999-07-08\n",
"_chem_comp.pdbx_modified_date 2020-06-17\n",
"_chem_comp.pdbx_ambiguous_flag N\n",
"_chem_comp.pdbx_release_status REL\n",
"_chem_comp.pdbx_replaced_by ?\n",
"_chem_comp.pdbx_replaces ?\n",
"_chem_comp.formula_weight 199.099\n",
"_chem_comp.one_letter_code T\n",
"_chem_comp.three_letter_code TPO\n",
"_chem_comp.pdbx_model_coordinates_details ?\n",
"_chem_comp.pdbx_model_coordinates_missing_flag N\n",
"_chem_comp.pdbx_ideal_coordinates_details ?\n",
"_chem_comp.pdbx_ideal_coordinates_missing_flag N\n",
"_chem_comp.pdbx_model_coordinates_db_code 1FMO\n",
"_chem_comp.pdbx_subcomponent_list ?\n",
"_chem_comp.pdbx_processing_site EBI\n",
"# #\n",
"loop_\n",
"_chem_comp_atom.comp_id\n",
"_chem_comp_atom.atom_id\n",
"_chem_comp_atom.alt_atom_id\n",
"_chem_comp_atom.type_symbol\n",
"_chem_comp_atom.charge\n",
"_chem_comp_atom.pdbx_align\n",
"_chem_comp_atom.pdbx_aromatic_flag\n",
"_chem_comp_atom.pdbx_leaving_atom_flag\n",
"_chem_comp_atom.pdbx_stereo_config\n",
"_chem_comp_atom.model_Cartn_x\n",
"_chem_comp_atom.model_Cartn_y\n",
"_chem_comp_atom.model_Cartn_z\n",
"_chem_comp_atom.pdbx_model_Cartn_x_ideal\n",
"_chem_comp_atom.pdbx_model_Cartn_y_ideal\n",
"_chem_comp_atom.pdbx_model_Cartn_z_ideal\n",
"_chem_comp_atom.pdbx_component_atom_id\n",
"_chem_comp_atom.pdbx_component_comp_id\n",
"_chem_comp_atom.pdbx_ordinal\n",
"TPO N N N 0 1 N N N 21.891 2.133 -14.748 1.153 -1.040 2.377 N TPO 1 \n",
"TPO CA CA C 0 1 N N S 22.318 2.994 -13.673 0.572 0.199 1.844 CA TPO 2 \n",
"TPO CB CB C 0 1 N N R 21.313 4.075 -13.361 1.111 0.449 0.434 CB TPO 3 \n",
"TPO CG2 CG2 C 0 1 N N N 21.837 5.045 -12.302 2.634 0.580 0.485 CG2 TPO 4 \n",
"TPO OG1 OG1 O 0 1 N N N 20.898 4.716 -14.523 0.755 -0.645 -0.412 OG1 TPO 5 \n",
"TPO P P P 0 1 N N N 19.424 4.424 -14.993 -0.142 -0.039 -1.603 P TPO 6 \n",
"TPO O1P O1P O 0 1 N N N 19.358 5.014 -16.321 0.644 0.968 -2.350 O1P TPO 7 \n",
"TPO O2P O2P O 0 1 N N N 19.243 2.986 -14.834 -0.580 -1.224 -2.601 O2P TPO 8 \n",
"TPO O3P O3P O 0 1 N N N 18.506 5.082 -14.021 -1.456 0.656 -0.985 O3P TPO 9 \n",
"TPO C C C 0 1 N N N 22.539 2.278 -12.384 -0.927 0.070 1.794 C TPO 10 \n",
"TPO O O O 0 1 N N N 21.778 1.390 -12.005 -1.435 -1.012 1.626 O TPO 11 \n",
"TPO OXT OXT O 0 1 N Y N 23.582 2.721 -11.720 -1.700 1.159 1.935 OXT TPO 12 \n",
"TPO H H H 0 1 N N N 22.570 1.402 -14.958 2.154 -0.949 2.296 H TPO 13 \n",
"TPO H2 2HN H 0 1 N Y N 21.663 2.673 -15.582 0.877 -1.782 1.751 H2 TPO 14 \n",
"TPO HA HA H 0 1 N N N 23.275 3.418 -14.056 0.844 1.034 2.490 HA TPO 15 \n",
"TPO HB HB H 0 1 N N N 20.410 3.593 -12.916 0.680 1.369 0.039 HB TPO 16 \n",
"TPO HG21 1HG2 H 0 0 N N N 21.094 5.844 -12.071 3.065 -0.339 0.881 HG21 TPO 17 \n",
"TPO HG22 2HG2 H 0 0 N N N 22.154 4.506 -11.378 3.018 0.758 -0.518 HG22 TPO 18 \n",
"TPO HG23 3HG2 H 0 0 N N N 22.821 5.477 -12.598 2.906 1.415 1.131 HG23 TPO 19 \n",
"TPO HOP2 2HOP H 0 0 N N N 18.353 2.809 -15.117 -1.114 -0.819 -3.298 HOP2 TPO 20 \n",
"TPO HOP3 3HOP H 0 0 N N N 17.616 4.905 -14.304 -1.938 -0.033 -0.509 HOP3 TPO 21 \n",
"TPO HXT HXT H 0 1 N Y N 23.722 2.264 -10.898 -2.662 1.076 1.902 HXT TPO 22 \n",
"# #\n",
"loop_\n",
"_chem_comp_bond.comp_id\n",
"_chem_comp_bond.atom_id_1\n",
"_chem_comp_bond.atom_id_2\n",
"_chem_comp_bond.value_order\n",
"_chem_comp_bond.pdbx_aromatic_flag\n",
"_chem_comp_bond.pdbx_stereo_config\n",
"_chem_comp_bond.pdbx_ordinal\n",
"TPO N CA SING N N 1 \n",
"TPO N H SING N N 2 \n",
"TPO N H2 SING N N 3 \n",
"TPO CA CB SING N N 4 \n",
"TPO CA C SING N N 5 \n",
"TPO CA HA SING N N 6 \n",
"TPO CB CG2 SING N N 7 \n",
"TPO CB OG1 SING N N 8 \n",
"TPO CB HB SING N N 9 \n",
"TPO CG2 HG21 SING N N 10 \n",
"TPO CG2 HG22 SING N N 11 \n",
"TPO CG2 HG23 SING N N 12 \n",
"TPO OG1 P SING N N 13 \n",
"TPO P O1P DOUB N N 14 \n",
"TPO P O2P SING N N 15 \n",
"TPO P O3P SING N N 16 \n",
"TPO O2P HOP2 SING N N 17 \n",
"TPO O3P HOP3 SING N N 18 \n",
"TPO C O DOUB N N 19 \n",
"TPO C OXT SING N N 20 \n",
"TPO OXT HXT SING N N 21 \n",
"# #\n",
"loop_\n",
"_pdbx_chem_comp_descriptor.comp_id\n",
"_pdbx_chem_comp_descriptor.type\n",
"_pdbx_chem_comp_descriptor.program\n",
"_pdbx_chem_comp_descriptor.program_version\n",
"_pdbx_chem_comp_descriptor.descriptor\n",
"TPO SMILES ACDLabs 10.04 \"O=P(O)(O)OC(C(N)C(=O)O)C\" \n",
"TPO SMILES_CANONICAL CACTVS 3.341 \"C[C@@H](O[P](O)(O)=O)[C@H](N)C(O)=O\" \n",
"TPO SMILES CACTVS 3.341 \"C[CH](O[P](O)(O)=O)[CH](N)C(O)=O\" \n",
"TPO SMILES_CANONICAL \"OpenEye OEToolkits\" 1.5.0 \"C[C@H]([C@@H](C(=O)O)N)OP(=O)(O)O\" \n",
"TPO SMILES \"OpenEye OEToolkits\" 1.5.0 \"CC(C(C(=O)O)N)OP(=O)(O)O\" \n",
"TPO InChI InChI 1.03 \"InChI=1S/C4H10NO6P/c1-2(3(5)4(6)7)11-12(8,9)10/h2-3H,5H2,1H3,(H,6,7)(H2,8,9,10)/t2-,3+/m1/s1\" \n",
"TPO InChIKey InChI 1.03 USRGIUJOYOXOQJ-GBXIJSLDSA-N \n",
"# #\n",
"loop_\n",
"_pdbx_chem_comp_identifier.comp_id\n",
"_pdbx_chem_comp_identifier.type\n",
"_pdbx_chem_comp_identifier.program\n",
"_pdbx_chem_comp_identifier.program_version\n",
"_pdbx_chem_comp_identifier.identifier\n",
"TPO \"SYSTEMATIC NAME\" ACDLabs 10.04 O-phosphono-L-threonine \n",
"TPO \"SYSTEMATIC NAME\" \"OpenEye OEToolkits\" 1.5.0 \"(2S,3R)-2-amino-3-phosphonooxy-butanoic acid\" \n",
"# #\n",
"loop_\n",
"_pdbx_chem_comp_audit.comp_id\n",
"_pdbx_chem_comp_audit.action_type\n",
"_pdbx_chem_comp_audit.date\n",
"_pdbx_chem_comp_audit.processing_site\n",
"TPO \"Create component\" 1999-07-08 EBI \n",
"TPO \"Modify descriptor\" 2011-06-04 RCSB \n",
"TPO \"Modify synonyms\" 2020-06-05 PDBE \n",
"#\n",
"_pdbx_chem_comp_synonyms.ordinal 1\n",
"_pdbx_chem_comp_synonyms.comp_id TPO\n",
"_pdbx_chem_comp_synonyms.name PHOSPHONOTHREONINE\n",
"_pdbx_chem_comp_synonyms.provenance ?\n",
"_pdbx_chem_comp_synonyms.type ?\n",
"##\n",
"\"\"\"\n",
"TPO_DOC = gemmi.cif.read_string(TPO)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "3f1706ee",
"metadata": {},
"outputs": [],
"source": [
"#protein = openfe.ProteinComponent.from_pdb_file(\"./tyk2_protein.pdb\")\n",
"# rather than load directly from PDB, construct using PDBinf and providing cif template for TPO\n",
"\n",
"m = pdbinf.load_pdb_file('./cdk2/01_protein/crd/protein.pdb',\n",
" templates=[pdbinf.STANDARD_AA_DOC, TPO_DOC])\n",
"protein = openfe.ProteinComponent(m)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "710285ca",
"metadata": {},
"outputs": [],
"source": [
"systemA = openfe.ChemicalSystem({\n",
" 'ligand': mapping.componentA,\n",
" 'solvent': solvent,\n",
" 'protein': protein\n",
"})\n",
"systemB = openfe.ChemicalSystem({\n",
" 'ligand': mapping.componentB,\n",
" 'solvent': solvent,\n",
" 'protein': protein \n",
"})"
]
},
{
"cell_type": "markdown",
"id": "340d1a6e",
"metadata": {},
"source": [
"### Creating a `Protocol`\n",
"\n",
"The actual simulation is performed by a `Protocol`. We'll use an OpenMM-based hybrid topology relative free energy `Protocol`."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "3f394a0d",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"from openfe.protocols.openmm_rfe import RelativeHybridTopologyProtocol"
]
},
{
"cell_type": "markdown",
"id": "3bddfa3c",
"metadata": {},
"source": [
"The easiest way to customize protocol settings is to start with the default settings, and modify them. Many settings carry units with them."
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "fb839094",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"298.15 kelvin"
],
"text/latex": [
"$298.15\\ \\mathrm{kelvin}$"
],
"text/plain": [
"298.15 <Unit('kelvin')>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"settings = RelativeHybridTopologyProtocol.default_settings()\n",
"settings.thermo_settings.temperature # display default value"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "e83630f0",
"metadata": {},
"outputs": [],
"source": [
"from openff.units import unit\n",
"\n",
"# change the value\n",
"settings.thermo_settings.temperature = 310.0 * unit.kelvin"
]
},
{
"cell_type": "markdown",
"id": "56658a3a",
"metadata": {},
"source": [
"We'll use the default settings for the protocol we'll use later, to match the behavior of the CLI."
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "7adf42d6",
"metadata": {},
"outputs": [],
"source": [
"default_settings = RelativeHybridTopologyProtocol.default_settings()\n",
"protocol = RelativeHybridTopologyProtocol(default_settings)"
]
},
{
"cell_type": "markdown",
"id": "318ff872",
"metadata": {},
"source": [
"### Creating the `Transformation`\n",
"\n",
"Once we have the mapping, the two `ChemicalSystem`s, and the `Protocol`, creating the `Transformation` is easy:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "44ba94ca",
"metadata": {},
"outputs": [],
"source": [
"transformation = openfe.Transformation(\n",
" systemA,\n",
" systemB,\n",
" protocol,\n",
" mapping={'ligand': mapping},\n",
")"
]
},
{
"cell_type": "markdown",
"id": "4283dfe4",
"metadata": {},
"source": [
"To summarize, this `Transformation` contains:\n",
"- chemical models of both sides of the alchemical transformation in `systemA` and `systemB`\n",
"- the correspondence of items in these two sides in `mapping` \n",
"- a description of the exact computational algorithm to use to perform the estimate in `protocol`"
]
},
{
"cell_type": "markdown",
"id": "1e29d1c8",
"metadata": {},
"source": [
"## Creating the `AlchemicalNetwork`\n",
"\n",
"The `AlchemicalNetwork` contains all the information needed to run the entire campaign. It consists of a `Transformation` for each leg of the campaign. We'll loop over all the mappings, and then loop over the legs. In that inner loop, we'll make each transformation."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "66666a80",
"metadata": {},
"outputs": [],
"source": [
"transformations = []\n",
"for mapping in ligand_network.edges:\n",
" for leg in ['solvent', 'complex']:\n",
" # use the solvent and protein created above\n",
" sysA_dict = {'ligand': mapping.componentA,\n",
" 'solvent': solvent}\n",
" sysB_dict = {'ligand': mapping.componentB,\n",
" 'solvent': solvent}\n",
" \n",
" if leg == 'complex':\n",
" sysA_dict['protein'] = protein\n",
" sysB_dict['protein'] = protein\n",
" \n",
" # we don't have to name objects, but it can make things (like filenames) more convenient\n",
" sysA = openfe.ChemicalSystem(sysA_dict, name=f\"{mapping.componentA.name}_{leg}\")\n",
" sysB = openfe.ChemicalSystem(sysB_dict, name=f\"{mapping.componentB.name}_{leg}\")\n",
" \n",
" prefix = \"easy_rbfe_\" # prefix is only to exactly reproduce CLI\n",
" \n",
" transformation = openfe.Transformation(\n",
" stateA=sysA,\n",
" stateB=sysB,\n",
" mapping={'ligand': mapping},\n",
" protocol=protocol, # use protocol created above\n",
" name=f\"{prefix}{sysA.name}_{sysB.name}\"\n",
" )\n",
" transformations.append(transformation)\n",
"\n",
"network = openfe.AlchemicalNetwork(transformations)"
]
},
{
"cell_type": "markdown",
"id": "6c61fe36",
"metadata": {},
"source": [
"## Writing the `AlchemicalNetwork` to disk\n",
"\n",
"We'll write out each transformation to disk, so that they can be run independently using the `openfe quickrun` command:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "d6cebd9a",
"metadata": {},
"outputs": [],
"source": [
"import pathlib\n",
"# first we create the directory\n",
"transformation_dir = pathlib.Path(\"transformations\")\n",
"transformation_dir.mkdir(exist_ok=True)\n",
"\n",
"# then we write out each transformation\n",
"for transformation in network.edges:\n",
" transformation.dump(transformation_dir / f\"{transformation.name}.json\")"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "b96b57a9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"easy_rbfe_lig_1h1q_complex_lig_17_complex.json\r\n",
"easy_rbfe_lig_1h1q_complex_lig_1h1r_complex.json\r\n",
"easy_rbfe_lig_1h1q_complex_lig_1oiy_complex.json\r\n",
"easy_rbfe_lig_1h1q_complex_lig_21_complex.json\r\n",
"easy_rbfe_lig_1h1q_complex_lig_22_complex.json\r\n",
"easy_rbfe_lig_1h1q_solvent_lig_17_solvent.json\r\n",
"easy_rbfe_lig_1h1q_solvent_lig_1h1r_solvent.json\r\n",
"easy_rbfe_lig_1h1q_solvent_lig_1oiy_solvent.json\r\n",
"easy_rbfe_lig_1h1q_solvent_lig_21_solvent.json\r\n",
"easy_rbfe_lig_1h1q_solvent_lig_22_solvent.json\r\n",
"easy_rbfe_lig_1oi9_complex_lig_1h1q_complex.json\r\n",
"easy_rbfe_lig_1oi9_complex_lig_26_complex.json\r\n",
"easy_rbfe_lig_1oi9_solvent_lig_1h1q_solvent.json\r\n",
"easy_rbfe_lig_1oi9_solvent_lig_26_solvent.json\r\n",
"easy_rbfe_lig_1oiu_complex_lig_22_complex.json\r\n",
"easy_rbfe_lig_1oiu_solvent_lig_22_solvent.json\r\n",
"easy_rbfe_lig_20_complex_lig_1h1q_complex.json\r\n",
"easy_rbfe_lig_20_solvent_lig_1h1q_solvent.json\r\n"
]
}
],
"source": [
"!ls transformations/"
]
},
{
"cell_type": "markdown",
"id": "c30e8ae2",
"metadata": {},
"source": [
"Each of these individual `.json` files contains a `Transformation`, which contains all the information to run the calculation. These could be farmed out as individual jobs on a HPC cluster. These files are identical to what were created in setup stage of the CLI tutorial; for details on running them, follow from the section on running simulations in the CLI tutorial"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment