{ "cells": [ { "cell_type": "markdown", "id": "4197d26d-c9e2-47ca-8d19-8372568371d8", "metadata": {}, "source": [ "# Creating Ligand Networks Exported from Orion or FEP+" ] }, { "cell_type": "markdown", "id": "fd2a0058-94c5-4476-9609-ab84f6a24b18", "metadata": {}, "source": [ "OpenFE provides functions to load a ligand network from an [OpenEye Orion NES] `.dat` file or Schrödinger FEP+ `.edge` file. With this, we can create a network of transformations using their tools and then run the actual simulations with OpenFE.\n", "\n", "[OpenEye Orion NES]: https://docs.eyesopen.com/floe/modules/oemdaffinity/docs/source/tutorials/NES_tutorial.html" ] }, { "cell_type": "markdown", "id": "474d19d6-df9a-4d0a-b50a-5c755a20e039", "metadata": {}, "source": [ "## Load the ligands" ] }, { "cell_type": "markdown", "id": "eeb1aef1-da67-4d07-ad7e-052b53a5a108", "metadata": {}, "source": [ "Both FEP+ `.edge` and Orion `.dat` files identify molecules by name, so to load the network OpenFE requires a list of named ligands.\n", "\n", "Load the ligands used by the network into instances of `SmallMoleculeComponent`. For more information, see [Loading Small Molecules]:\n", "\n", "[Loading Small Molecules]: https://docs.openfree.energy/en/stable/cookbook/loading_molecules.html#loading-small-molecules" ] }, { "cell_type": "code", "execution_count": 1, "id": "c08f9ebb-2da5-4adf-9854-736377957bc7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[SmallMoleculeComponent(name=benzene),\n", " SmallMoleculeComponent(name=toluene),\n", " SmallMoleculeComponent(name=phenol),\n", " SmallMoleculeComponent(name=benzonitrile),\n", " SmallMoleculeComponent(name=anisole),\n", " SmallMoleculeComponent(name=benzaldehyde),\n", " SmallMoleculeComponent(name=styrene)]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib inline\n", "from rdkit import Chem\n", "import openfe\n", "\n", "supplier = Chem.SDMolSupplier(\"assets/somebenzenes.sdf\", removeHs=False)\n", "ligands = [openfe.SmallMoleculeComponent(mol) for mol in supplier]\n", "\n", "ligands" ] }, { "cell_type": "markdown", "id": "f217871f-ccfb-49f2-b30d-09aaa6043af0", "metadata": {}, "source": [ "## Select an atom mapper" ] }, { "cell_type": "markdown", "id": "a384b52d-06e4-4fd2-b4eb-995c95d7dbf0", "metadata": {}, "source": [ "Both formats encode only the network itself, leaving mappings between atoms in each edge undefined. OpenFE needs an atom mapper to produce atom mappings; for more information, see [Choose an Atom Mapper]:\n", "\n", "[Choose an Atom Mapper]: https://docs.openfree.energy/en/stable/cookbook/generate_ligand_network.html#Choose-an-atom-mapper" ] }, { "cell_type": "code", "execution_count": 2, "id": "7c52a29f-e8e6-4894-bdb2-9be069c04076", "metadata": {}, "outputs": [], "source": [ "mapper = openfe.setup.LomapAtomMapper(\n", " threed=True, # Use atom positions to prune symmetric mappings\n", " max3d=1.0, # Forbid mapping between atoms more than 1.0 Å apart\n", " element_change=False, # Forbid mappings that change an atoms element\n", ")" ] }, { "cell_type": "markdown", "id": "c4218271-ffa7-495e-bda4-970d80d110db", "metadata": {}, "source": [ "Then, create the `LigandNetwork` from the edges in the network file:" ] }, { "cell_type": "markdown", "id": "8806bb1e-c960-4eba-8d00-ab2cdfd200e4", "metadata": {}, "source": [ "## Loading an FEP+ edges network\n", "Here we show how to take an FEP+ edge network file, `assets/somebenzenes_fepp.edge` and load it into an LigandNetwork object." ] }, { "cell_type": "code", "execution_count": 3, "id": "14cdc1ee-bb31-434f-ba9c-8345dddbf380", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "parallel map scoring\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/atravitz/micromamba/envs/openfe-notebooks/lib/python3.13/site-packages/gufe/components/explicitmoleculecomponent.py:74: UserWarning: RDKit does not preserve Mol properties when pickled by default, which may drop e.g. atom charges; consider setting `Chem.SetDefaultPickleProperties(Chem.PropertyPickleOptions.AllProps)`\n", " warnings.warn(\n", "/Users/atravitz/micromamba/envs/openfe-notebooks/lib/python3.13/site-packages/gufe/components/explicitmoleculecomponent.py:74: UserWarning: RDKit does not preserve Mol properties when pickled by default, which may drop e.g. atom charges; consider setting `Chem.SetDefaultPickleProperties(Chem.PropertyPickleOptions.AllProps)`\n", " warnings.warn(\n" ] } ], "source": [ "from openfe.setup.ligand_network_planning import load_fepplus_network\n", "\n", "ligand_network = load_fepplus_network(\n", " ligands=ligands,\n", " mapper=mapper,\n", " network_file=\"assets/somebenzenes_fepp.edge\",\n", ")" ] }, { "cell_type": "markdown", "id": "063b9564-8b29-4267-84d9-427e5ef93e32", "metadata": {}, "source": [ "## Loading an Orion NES network file\n", "\n", "Similarly we can take an Orion network edge file, `data/benzenes.dat` and load it into an LigandNetwork object." ] }, { "cell_type": "code", "execution_count": 4, "id": "2e1aa4df-c8ad-4cca-b81d-3cd56836fa68", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "parallel map scoring\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/atravitz/micromamba/envs/openfe-notebooks/lib/python3.13/site-packages/gufe/components/explicitmoleculecomponent.py:74: UserWarning: RDKit does not preserve Mol properties when pickled by default, which may drop e.g. atom charges; consider setting `Chem.SetDefaultPickleProperties(Chem.PropertyPickleOptions.AllProps)`\n", " warnings.warn(\n" ] } ], "source": [ "from openfe.setup.ligand_network_planning import load_orion_network\n", "\n", "ligand_network = load_orion_network(\n", " ligands=ligands,\n", " mapper=mapper,\n", " network_file=\"assets/somebenzenes_nes.dat\",\n", ")\n" ] }, { "cell_type": "markdown", "id": "c99da814-1121-45c6-b81a-664d44337d3d", "metadata": {}, "source": [ "## Visualizing the Network\n", "\n", "Once defined we can visualise the network as we normally would.\n", "\n", "For more ways to visualize a `LigandNetwork`, see [Visualizing Ligand Networks].\n", "\n", "[Visualizing Ligand Networks]: https://docs.openfree.energy/en/stable/cookbook/ligandnetwork_vis.html" ] }, { "cell_type": "code", "execution_count": 5, "id": "8e3ac363-90bb-479f-9efc-6aefcb4057a4", "metadata": {}, "outputs": [ { "data": { "image/png": "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jXSTglaut2zZYp78Xbp0SXr27ClPPvmkLF261Ne3hwcgsLjAhQsXpHfv3uZsjPnz55sFtLraXQ8o1OsPPfSQr28RAAJGiRIlZNu2bTJ16lRJly6d2VlUq1YtMyX80KFDvr493AOBxccHFOrcAJ3O+O6775qypK5q13Mx9HratGl9eXtAlNESgr/QJ4atWrUybSKtsuiEcD1vTastOilcn0jCXQgsPrJy5UozjVFH5+tofV1cu2TJErOqPW/evL66LcAWtITgL0JCQswTxu+++05q1qxpnkjqCfe6vmXKlClmAwTcgcASy3Q9iv6nePrpp81hhSlTpjRnX+zfv99c5xs9/BkVFvgrDSj6pHHZsmXm96dPn5a2bduaHUW65gW+R2CJJXqKaMeOHU31RP9D6IGEXbt2NetUOnXqZMqRQKAgeMNfVa9e3TyB1CqLVl90uriOlND5V7prE75DYHGYrksZNWqUWacyfvx4uXnz5u25AHpdpzICANwjYcKE0q1bN7O+pU2bNiaAz54921RehgwZIteuXfP1LQYlAouDpXGdsJgnTx7p3r27OUVUTxNds2aNua4BBgg0tIQQSHQH0eTJk81k3JIlS5oBnv369TNTdBcuXMi/91hGYHHAnj17pGLFilK/fn3T8vH+o9fSol4HAh0tIQSSwoULm4GeWmXJlCmTHDlyRBo0aGB2depaRMQOAouNTp48acY96z/udevWmfkpffv2NXv8tayop4cCgYwKCwI5hDdt2lQOHjxovq/r9FytmGvl/NVXX5Vz5875+hYDHoHFBlevXpW33nrLtHl03LN+037uuefMACK9rhNrgWBChQWBKlmyZOb7uq5D1CqLrkscN26c+f7/wQcfmNfhDAJLDGgwmTNnjpmh8sYbb5iTlYsXL24O19LrWbNmte8rBQBwDT0BesGCBbJ69WqzVvHs2bPSvn17KVSokKxfv97XtxeQCCzRpPvydbxzs2bN5NixYyacfPLJJ+a6hhYgGNESQrCpVKmSmU6uVRbd9blv3z4pX768NGrUSH777Tdf315AIbBEkf4DbNKkidmXv337dlMe1G1u2tfU65TCAVpCCC46V0vnbOk2aJ1ermP/P/vsM8mVK5cMGDDA7C5CzBFYIunixYvy+uuvm/bPvHnzTDDRhbS6oFavJ06c2IYvB+DfqLAgmKVOnVomTJhg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5hr92amVEa20tG9vdRe04qKVk/TprZeECUWeecYqBGjlxUt/5mo1JfzzGK3E6FpU789QvwssKVJY5aZJk0QOH7YqItrSia6rV63SlH49fvtNRLen6+JbDUKqe3drYe/gwdbsFi1vvf++9SDejZbBSpSwFhmtWGHtWtKAowEr/M4jIFjREgLcq2LFirJnzx55//33JUWKFLJv3z6pUKGCmZ57L7oTVwsIGlQaNrS6H/crJGiAef55kalTrde1C6E7aTWwhPfUU1G/f1cFFt0RNHeuVSLSUpFWRbRsFF1aJdGqjR54qVUTLV9Vry4yaFBYxeTTT63PqZ+vf3+RN9+884H10nSou4PKlrXKY/oxdYeRBpd06aJ/n0CgoSUEuFP8+PFNdUW3Qbdv396M/V+9evV9f46uWiXy1VdWV2LcOJHHH7fWbt6LtoX0z+goGA0uGniyZYv4PkmTRv3e4+jK2we908WLFyU0NNScV6DDaQDgbrZv324Oa8uePbscud93NACusG/fPlNxmaStjUjQDSkaPrT7oWcvasvoyy/vfL9ixaz1LePHWyFH18F4aWupSxfrJfyTnAdljPhR+6sBwINRYQH8Q758+WTixIn3fLtufNGlE1WrWgNT9fU//7SWVuhMOl0eoRtPdDmH7vjxborRKosuydABrzpLzQ6uagkBAAD3PMEICRHZsEGkRg1rGYSu2dSJ8Lq8Qrcja3tI16OkSWOtE/XSiopuUNExJQ89ZM99UmEBYBsW3QKBJXdu68icu9GQortv70YX5moFpk2bO9+m6z6jg8ACwHa0hIDg9M8/1roWPQaneHFrc4tdaAkBsA0VFiC4bd5sLcrV3b4ffmjvx6bCAsB2VFiA4FS+/P0nxscEFRYAAOB6BBYAtqElBMApBBYAtqMlBMBuBBYAtqHCAsApBBYAtqPCAsBuBBYAAOAzly9fjtT7EVgA2IaWEICounXrVqTej8ACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwHa0hADYjcACwDZUWAA4hcACwHZUWADYjcACAABcj8ACwDa0hAA4hcACwDapU6eWggULyv/+9z8eVQC2iuOJxFOiixcvSmhoqFy4cEFCQkLsvQMAABC0LkYyY1BhAQAArkdgAQAArkdgAQAArkdgAQAArkdgAQAArkdgAeCI8uVFunRx94PbsqVIvXr2/j2mTxd5+OEY31qsfVzAXxBYAACA6xFYAACA6xFYADjm339FOna0Whmp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", "text/plain": [ "
" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from openfe.utils.atommapping_network_plotting import plot_atommapping_network\n", "\n", "plot_atommapping_network(ligand_network)" ] }, { "cell_type": "code", "execution_count": 6, "id": "959565d0-4ad0-4c8a-840b-66b8bf4d42c4", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f0394b8c95664ad3ba3424f9fa486906", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=0, description='index', max=5), Output()), _dom_classes=('widget-interac…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Similarly we can visualize the invidual mappings\n", "\n", "from ipywidgets import interact, widgets\n", "\n", "def display_edge(index):\n", " view = edges[index].view_3d(spheres=True, show_atomIDs=True)\n", " view.show()\n", "\n", "# traverse through all views\n", "\n", "edges = list(ligand_network.edges)\n", "\n", "interact(display_edge, index=widgets.IntSlider(min=0, max=len(edges)-1, step=1));" ] }, { "cell_type": "markdown", "id": "eebedd8c-fdcb-4868-8497-295ce6ab7a62", "metadata": {}, "source": [ "## Creating an AlchemicalNetwork" ] }, { "cell_type": "markdown", "id": "18bc78e1-6aae-401f-bfef-2a98d0af5672", "metadata": {}, "source": [ "See [Creating an Alchemical Network] for how to use these defined `ligand_network` objects to create an AlchemicalNetwork, which we can then be executed using the OpenFE CLI.\n", "\n", "[Creating an Alchemical Network]: https://docs.openfree.energy/en/stable/cookbook/create_alchemical_network.html" ] } ], "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.13.11" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }