{ "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/2021-2/modules/oemdaffinity/docs/source/tutorials/NES_tutorial.html" ] }, { "cell_type": "markdown", "id": "aae789a9-168a-4744-a076-627db9dacbf5", "metadata": {}, "source": [ "## Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "5abe8cb5-23ec-4e5b-b4a8-c9e6f79ce464", "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "from rdkit import Chem\n", "\n", "import openfe\n", "from openfe.setup import ligand_network_planning" ] }, { "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. 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": 2, "id": "c08f9ebb-2da5-4adf-9854-736377957bc7", "metadata": {}, "outputs": [], "source": [ "ligands = [\n", " openfe.SmallMoleculeComponent(mol) \n", " for mol in Chem.SDMolSupplier(\n", " \"assets/somebenzenes.sdf\", \n", " removeHs=False,\n", " )\n", "]" ] }, { "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": 3, "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": "8806bb1e-c960-4eba-8d00-ab2cdfd200e4", "metadata": {}, "source": [ "## Create the network" ] }, { "cell_type": "markdown", "id": "c4218271-ffa7-495e-bda4-970d80d110db", "metadata": {}, "source": [ "Then, create the `LigandNetwork` from the edges in the network file:" ] }, { "cell_type": "code", "execution_count": 4, "id": "2e1aa4df-c8ad-4cca-b81d-3cd56836fa68", "metadata": {}, "outputs": [], "source": [ "ligand_network = ligand_network_planning.load_orion_network(\n", " ligands=ligands,\n", " mapper=mapper,\n", " network_file=\"assets/somebenzenes_nes.dat\",\n", ")\n", "\n", "# ligand_network = ligand_network_planning.load_fepplus_network(\n", "# ligands=ligands,\n", "# mapper=mapper,\n", "# network_file=\"assets/somebenzenes_fepp.edge\",\n", "# )" ] }, { "cell_type": "markdown", "id": "1796f9d2-c68f-4022-bd5d-649cf471fcfd", "metadata": {}, "source": [ "## Visualise the network" ] }, { "cell_type": "markdown", "id": "c99da814-1121-45c6-b81a-664d44337d3d", "metadata": {}, "source": [ "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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tmzZorlz5+qZZ56xukTAZQgsSJEYE7kOm8a5xubNm1W2bFm1bNlSR48e1VNPPaXvvvtO27Zt0/PPP291eYDLEViQojEmMh+bxpnrt99+U+PGjVWhQgXt2rVLmTJl0kcffaTIyEg1a9aMsRtSDAILIMZEZmIkZI5z586pX79+Cg4O1g8//CAfHx917NhRMTExGjBggNKnT291iUCyIrAA/48xkTkYCT2a2NhYffbZZ7Lb7Ro9erRu3LihGjVqaN++fZo6dapy5cpldYmAJQgswL8wJno0dFgejtPp1NKlSxUSEqK33npLp0+fVlBQkJYsWaIVK1aocOHCVpcIWIrAAtwDY6KHQ4flwR04cEAvvvii6tatq4iICD3++OOaPHmywsLCVKdOHdapACKwAP/p1jFR165dGRMlAR2WpDt58qQ6duyookWLatWqVUqTJo369u0rh8OhLl268D0EbkFgAZIga9asmjRpEmOiJKDDcn9Xr17Vxx9/LLvdrmnTpik+Pl6vvvqqwsPDNWrUKGXNmtXqEgG3Q2ABHgBjovujw3JvTqdT3333nYKCgjRw4EBdunRJpUqV0qZNm/T999/rueees7pEwG0RWIAHxJjov9FhubutW7eqXLlyat68uf744w89+eST+uabb7R9+3a98MILVpcHuD0CC/CQGBPdHRvH3e73339X06ZNVb58ee3YsUMZM2bUsGHDFBUVpRYtWsjHhx/DQFLwPwV4RIyJbpfQYUnpI6Hz58/rnXfeUVBQkObPny+bzab27dvL4XDo3XffVYYMGawuEfAoBBbABIyJEqX0DktsbKw+//xz2e12jRw5UtevX1fVqlW1d+9eTZs2Tblz57a6RMAjEVgAE/3XmGjNmjVWl5csUvKi2+XLl6tIkSLq3Lmz/vrrLwUGBuqXX37R6tWrVaRIEavLAzwagQVwgbuNiapXr54ixkQpcdHtoUOHVLt2bdWuXVvh4eHKnj27Jk2apAMHDqhevXps/AaYgMACuEhKHROlpA7LqVOn1LlzZ4WEhGj58uVKnTq1evXqpZiYGHXt2jVFfA+A5EJgAVwspY2JUkKH5dq1axo5cqT8/f31+eefKz4+Xo0aNVJ4eLjGjh2rbNmyWV0i4HUILEAySSljIm/usDidTs2bN09BQUF65513dPHiRZUoUUIbNmzQggUL5O/vb3WJgNci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rBMpV844DTkpIiONs35mzTI+Ejz9tBEs8uQxzkLq398INNevG7fVqiX5JPGlms1mBKh33zWCzl9/Gac+V6xonCYNIPnYnM5/T4TvdOHCBWXJkkXnz5+Xn59fctQFAABSgKRmDEZCAADA7RFYADyw2NhYzZ8/3+oyAKQgBBYAD2T58uUqUqSIRowYYXUpAFIQAguAJDl06JBq166t2rVrKzw8XFnZiARAMiKwAPhPf/31l7p06aIiRYpo+fLlSp06tXr16qVFixZZXRqAFITTmgHc1fXr1zVp0iQNGzZM58+flyQ1bNhQI0eOlN1ut7g6ACkNgQXAbZxOp3788Uf169dPv/32mySpWLFiGjdunCpXrmxtcQBSLAILgH+EhoaqV69e2rhxoyTpiSee0EcffaRWrVrJ999v+gMAyYjAAkDHjx/XwIED9fXXX8vpdCpdunTq06eP+vfvr0y3vhshAFiERbdACnblyhV98MEHstvtmjVrlpxOp1q0aKGoqCh9+OGHDxxW4uLiVLx4cRUvXvyfdS8PauvWrXrllVf+OU7z5s21d+/ehzoWAO/B1vxAChQfH685c+ZowIABOnbsmCSpXLlyGj9+vMqUKfPQx42NjVXq1KklSWfOnFH27Nkf6jg3b97U5MmTNWTIkH+CT7NmzTRq1Cjly5fvoesD4H7Ymh/AXW3evFlly5ZVq1atdOzYMT399NOaO3eutmzZ8khh5d9sNttDPzZ16tTq2bOnHA6HOnToIJvNprlz5yooKEgffvihrl69alqdADwDgQVIIQ4fPqwmTZqoQoUK2rVrlzJlyqSPPvpIkZGRatq06SMFDFfJkSOHvvjiC4WGhuqFF17QlStXNHjwYAUHB+uHH35QEhrEALwEgQXwchcuXNA777yjoKAgff/99/Lx8VGHDh0UExOjAQMGKF26dKY9l6sCRLFixbRx40Z99913evLJJ3XkyBE1btxY1apV04EDB1zynADcC4EF8FKxsbGaOnWq/P39NXLkSN24cUPVqlXT3r179cUXXyhXrlwufX6zOzY2m03NmjVTZGSkBg8erHTp0mndunUqWrSo3nrrLZ05c8bU5wPgXggsgBdatWqVihUrpk6dOumvv/5SQECAfv75Z61atUohISEue97kGNFkzJhRQ4cOVUREhF599VXFx8frs88+k91u1+TJkxUbG+vy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369KlSqpadOmOnLkiNXlwSIEFi937tw59e7dWwUKFNCiRYvk6+urLl26KCYmRn369FHatGmtLhFeiACMR5UqVSp169ZNDodDnTp1ko+Pj+bPn6+goCANGTJEV65csbpEJDMCi5e6efOmPv30U/n7+2vcuHG6efOmatWqpbCwME2ePFk5cuSwukR4ITosMNvjjz+uKVOmaM+ePapUqZKuXbumoUOHKjg4WPPnz+ffXApCYPEyTqdTS5cuVUhIiLp166YzZ86oQIECWrZsmZYtW6YCBQpYXSJSADosMFuRIkW0bt06zZ8/X0899ZT++OMPNW3aVJUrV9a+ffusLg/JgMDiRQ4ePKhatWqpbt26ioyM1OOPP67PPvtM+/fvV61atawuDwAeic1mU+PGjRUREaEhQ4Yoffr02rhxo0qUKKFOnTrp9OnTVpcIFyKweIFTp06pU6dOKlKkiFauXKnUqVOrT58+cjgc6ty5M29QiGRDex7JIUOGDHr//fcVGRmppk2bKj4+XlOnTpXdbtfEiRN18+ZNq0uECxBYPNj169c1atQo2e12TZ06VfHx8WrUqJEiIiI0evRoZc2a1eoSkUIxEkJyeOqppzR37lxt2LBBRYoU0blz59SjRw8VLVpUq1evtro8mIzA4oGcTqd++OEHBQcHq3///rpw4YKKFy+uDRs2aMGCBXruueesLhEpFB0WWKFixYoKDQ3V559/rscee0zh4eGqUaOGGjRooF9//dXq8mASAouH2b17typWrKjGjRvr8OHDypMnj2bOnKldu3apYsWKVpcHSKLDguTn6+urN998Uw6HQz169JCvr69++uknFShQ4J93nodnI7B4iP/9739q1aqVSpUqpc2bNyt9+vQaPHiwoqOj9cYbb/AGhQAgKVu2bPrkk08UFhamGjVq6MaNG/r4448VGBiob775hi6gB+O3nJu7fPmyhgwZooCAAM2ePVuS1LJlS0VHR2vo0KHKmDGjxRUCifhlAHdRoEABrVixQosWLdKzzz6r48eP6/XXX1f58uW1a9cuq8vDQyCwuKn4+Hh9/fXXCggI0NChQ3X16lWVL19eO3fu1OzZs/Xkk09aXSJwT4yE4A5sNpvq16+v8PBwffzxx8qYMaO2bdum0qVLq23btjp58qTVJeIBEFjc0KZNm1S6dGm98cYbOn78uPLnz6/58+dr06ZNKlWqlNXlAfdEhwXuKG3atHrnnXcUHR2t119/XZL+ecf6MWPG6MaNGxZXiKQgsLiR3377Ta+++uo/K94zZ86sESNGKCIiQo0bN+ZVKzwG/1bhjvLkyaOvv/5aW7duValSpXTx4kX17dtXhQoV0pIlS6wuD/dBYHED58+fV79+/RQcHKwFCxbIx8dHb775pmJiYtS/f3+lS5fO6hIBwGuUK1dO27dv11dffaVcuXLJ4XCoXr16qlOnjqKioqwuD/dAYLFQbGyspkyZIn9/f40ePVo3btxQjRo1tG/fPn3++efKmTOn1SUCD4SREDyFj4+P2rRpo+joaPXt21epU6fWsmXLVKhQIfXp00fnz5+3ukT8C4HFIitWrFDRokXVpUsXnT59WoGBgVq8eLFWrFihwoULW10e8EgYCcFT+Pn5adSoUTp48KDq1q2r2NhYjR07VgEBAfryyy8VHx9vdYn4fwSWZBYREaE6deqoVq1aOnTokLJnz65JkybpwIEDqlu3Lj/o4dHosMBTBQQEaPHixVq6dKkCAgJ06tQptW/fXqVLl9bWrVutLg8isCSb06dPq2vXripcuLCWLVumVKlS6e2331ZMTIy6du2q1KlTW10iYBqCNzxV7dq1deDAAY0dO1Z+fn4KDQ1V+fLl1bJlSx07dszq8lI0AouL3bhxQ2PHjpW/v78mT56suLi4f/YFGDdunLJly2Z1iQCAW6RJk0a9evVSdHS02rVrJ5vNpjlz5iggIEDDhw/XtWvXrC4xRSKwuIjT6dTChQtVoECBfxZwFSlSRGvXrtWiRYtkt9utLhEwHSMheJNcuXJp+vTp2rVrl55//nlduXJFgwYNUoECBbRw4UL+vSczAosL7N27V1WqVFGjRo3066+/6oknntCXX36p0NBQValSxeryAJdjJARvUqJECW3evFlz5sxR3rx5dfjwYTVq1Eg1atTQoUOHrC4vxSCwmOj48eNq06aNSpQooQ0bNihdunR69913FR0drbZt28rX19fqEgGX4hUnvJXNZlPz5s0VGRmpd999V2nTptWaNWtUpEgRde/eXWfPnrW6RK9HYDHBlStX9OGHHyogIEAzZ86U0+lU8+bNFRUVpWHDhilz5sxWlwgkKzos8FaZMmXSsGHDFB4erkaNGikuLk6TJk2S3W7XlClTFBcXZ3WJXovA8gji4+M1Z84cBQYGavDgwbp8+bLKli2rbdu2ac6cOXrqqaesLhEA4ALPPvusFixYoNWrV6tgwYI6c+aMunTpouLFi2vDhg1Wl+eVCCwPaevWrSpXrpxatmyp//3vf3rqqaf03XffaevWrSpbtqzV5QGWYCSElKZatWrat2+fJk2apGzZsiksLEyVK1dWkyZNdOTIEavL8yoElgf0+++/q2nTpipfvrx27typTJkyafjw4YqMjFSzZs1ohQNiJISUJVWqVOratauio6PVuXNn+fj46Pvvv1dQUJDef/99XblyxeoSvQKBJYkuXLigAQMGKCgoSPPnz5fNZlP79u3lcDg0cOBApU+f3uoSAcvRYUFK9vjjj+uzzz7T3r17VblyZV27dk0ffPCBgoKCNG/ePP5/PCICy33ExcVp2rRpstvtGjFihK5fv66qVatq7969mjZtmp544gmrSwTcDh0WpGQhISFau3atvv/+ez399NM6evSomjVrpkqVKmnv3r1Wl+exCCz/YfXq1SpWrJg6duyoU6dOyW6366efftLq1atVpEgRq8sDALgpm82mV199VRERERo6dKjSp0+vTZs2qUSJEnrzzTf1119/WV2ixyGw3EVUVJReeukl1ahRQwcOHFDWrFk1fvx4HTx4UC+//DKvHoF7oOUN3C59+vQaPHiwIiMj1bRpUzmdTn3xxRcKCAjQhAkTdPPmTatL9BgEllv8/fff6tGjhwoVKqTFixcrVapU6t69u2JiYtSzZ0+lSZPG6hIBj0CoB2731FNPae7cudq4caOKFi2qc+fOqWfPnipatKhWrVpldXkegcAi4w0KP/nkE/n7+2vixImKjY1VvXr1dPDgQU2YMEGPPfaY1SUCHoEOC/DfKlSooN27d2vq1Kl6/PHHFR4erpo1a6p+/fr69ddfrS7PraXowOJ0OvXzzz+rUKFCevvtt3X27FkVLlxYq1at0i+//KLAwECrSwQ8Eh0W4N58fX3VsWNHRUdHq0ePHvL19dXPP/+sAgUKaMCAAbp48aLVJbqlFBtYEs6XHzJkiDJlyqRq1appwYIF2rt3r6pXr251eQAAL5ctWzZ98sknCgsLU82aNXXjxg2NGDFCgYGBmj17tuLj460u0a3YnEno4V64cEFZsmTR+fPn5efnlxx1AfBA+/btU7FixZQ7d24dP37c6nIAj+F0OvXLL7+oV69e/4yGypYtq4kTJ6pUqVIWV+daSc0YKbbDAsB1GAkBD8Zms+nll1/WoUOHNGLECGXKlEnbt29X6dKl1aZNG508edLqEi1HYAFgGhbdAo8mbdq06t+/v6KiotSqVStJ0syZMxUQEKDRo0frxo0bFldoPh+fpEURAgsA09FhAR5Nnjx5NGvWLG3btk2lSpXSxYsX1a9fPxUqVEhLliyxujxTZcqUKUn3I7AAAOCmypYtq+3bt2vGjBnKlSuXHA6H6tWrpzp16igyMtLq8pIVgQWAaRgJAebz8fFR69atFR0drX79+il16tRatmyZChcurN69e+v8+fNWl5gsPC6w5M8vffKJ1VVIM2dKWbNaXQXgnhgJAebz8/PTyJEjdejQIdWrV0+xsbEaN26cAgIC9OWXXyouLs7qEl3K4wILAPdFhwVwPbvdrl9++UXLli1TYGCgTp06pfbt26t06dLasmWL1eW5DIEFgOnosACuV6tWLR04cEDjxo2Tn5+f9uzZoxdeeEEtWrTQ//73P6vLM53bBZbKlaWuXY2PrFmlxx6TBg2Sbn3hduWK1LatlDmz9NRT0hdf3H6MY8ekpk2lbNmMx9evL/3+e+LtrVtLDRpIY8ZIuXMb93nrLenWN808e1Zq1co4RoYMUu3aksPhsi8bAIAHljp1ar399ttyOBxq3769bDabvv32WwUGBmr48OG6du2a1SWaxu0CiyTNmiWlSiXt2CFNnCiNHy9Nn554+9ixUsmS0t69UpcuUufOUsJi6StXpCpVpEyZpI0bpc2bjc9r1ZJuPX193Trp11+NP2fNMtakzJyZeHvr1tLu3dLPP0vbthmBqU6d20MNgNsxEgKskTNnTk2bNk27du1S+fLldeXKFQ0aNEjBwcH68ccfXfJ/M+HFf3Jxy8CSL58RUgIDpRYtpG7djMsJ6tQxgoq/v9S/v/T449L69cZtc+dKPj5GwClcWAoOlmbMkP74I/E+ktE5+fRTKShIqldPqltXWrPGuM3hMILK9OlShQpSkSLSnDlG52bRomT6JgAejJEQYI0SJUpo06ZNmjNnjvLmzavff/9dr7zyiqpXr66DBw9aXd5dJXUvPLcMLGXLSrf+vCtXzggRCQugQ0ISb7PZpCeekE6dMi6HhkoxMca4KFMm4yN7dunaNaOjkqBgQcnXN/Fy7tyJx4iIMDo8Zcok3v7YY0aAiogw92sFvAkdFsB6NptNzZs3V1RUlAYNGqS0adNq7dq1KlKkiLp27aq///77gY73ww9GAyB9euN3YfXqUt++xnTip5+M38M2m9EUqFrVWNJxqzNnpLRppbVrjcv580vDhhkdmixZpA4dklaHWwaW+0md+vbLNpuU8KaW8fFSiRLSvn23f0RHS82bJ+0Y9/qZ63TeHqQA3B0dFsB6GTNm1IcffqiIiAg1atRI8fHxmjx5sux2uz777DPFxsbe9xgnTkivvWasG42IMEJJo0bS++9LTZoYyy1OnDA+nn9eat9e+vZb6fr1xGPMmSPlyWMs10gwerRUqJDRZHjvvaR9PW4ZWLZvv/Oy3X57R+Reihc3ujE5cxojo1s/smRJ2vMXKCDFxhpraBKcOWOEnuDgpH8dAABY7ZlnntGCBQu0Zs0aFSpUSH///bfeeustlShRQutvXStxFydOGL8PGzUyOiOFCxtLMjJlMjouadMaU44nnpDSpJFeecV4Yf/TT4nHmDHD6Kbc+jqmalWpT5/E389J4ZaB5ehRqVcvKSpK+u47adIkqUePpD22RQtjTUv9+tKmTdLhw9KGDcbjk3qWl91uPL5DB2PR7v79UsuWUt68xvUA7o6REOC+qlatqr179+rTTz9VtmzZFBYWpipVqqhfv373fEyRIlK1akZQadxYmjbNOIv2XtKmNX5ffvWVcXnfPuN3aOvWt9+vZMkHr98tA0urVtLVq1Lp0sbpxt26SR07Ju2xGTIYZwc99ZSRCIODjVbW1auSn1/Sa5gxwxgt1atnrKFxOqWlS+8cJQG4EyMhwD2lSpVKb731lhwOh7p06SIfHx+tXr36nvf39ZVWrZKWLTOmD5MmGes5Dx++93O0b2885n//M4JLtWrS00/ffp+MGR+8dpszCS+JLly4oCxZsuj8+fPye5Df+g+hcmWpaFH32H4fwIPZsWOHypYtq/z58+vwf/1EA+AWwsLC9Omnn+qLf29odg9xcUb46NXL2E7kxAnpl1/uvF+ZMsb6lsmTjZDz2muJt+XPL/XsaXwksNls980YqZJUIQA8ADosgGcICQnR1KlT73n7jh3Glh81axprQ3fskP76y5heXLsmrVhhLN947DFjnWjCFKJ9e+NsoQwZpIYNzanVLUdCAAAgefzXCww/P2OZRZ06UkCAsfP82LHG7u8dOhjjoZIlpRw5pFvfxui114ztQZo3l9KlM6dOt+uw3GfBMgA3xqJbwLsEB0vLl9/9thw5pJUr737b2bNGB6Zduztvu/Wtch6E2wUWAJ6PkRCQMt28aaxreecdYxPY4sXNOzYjIQCmocMCpGxbthiLckNDpc8/N/fYdFgAmI4OC5AyVa58793iHxUdFgAA4PYILABMw0gIgKsQWACYjpEQALMRWACYhg4LAFchsAAwHR0WAGYjsAAAAMtcunQpSfcjsAAwDSMhAA8qPj4+SfcjsAAwHSMhAGYjsAAwDR0WAK5CYAFgOjosAMxGYAEAAG6PwALANIyEALgKgQWA6RgJATAbgQWAaeiwAHAVAgsA09FhAWA2AgsAAHB7BBYApmEkBMBVCCwATMdICIDZCCwATEOHBYCrEFgAmI4OCwCzEVgAAIDbI7AAMA0jIQCuQmABYDpGQgDMRmABYBo6LABchcACwHR0WACYjcACAADcHoEFgGkYCQFwFQILANMxEgJgNgILANPQYQHgKgQWAKajwwLAbAQWAADg9ggsAEzDSAiAqxBYAJiOkRAAsxFYAJiGDgsAVyGwADAdHRYAZiOwAAAAt0dgAWAaRkIAXIXAAsB0jIQAmI3AAsA0dFgAuAqBBYDp6LAAMBuBBQAAuD0CCwDTMBIC4CoEFgCmYyQEwGwEFgCmocMCwFUILABMR4cFgNkILAAAwO0RWACYhpEQAFchsAAwHSMhAGYjsAAwDR0WAK5CYAFgOjosAMxGYAEAAG6PwALANIyEALgKgQWA6RgJATAbgQWAaeiwAHAVAgsA09FhAWA2AgsAAHB7BBYApmEkBMBVCCwATMdICIDZCCwATEOHBYCrEFgAmI4OCwCzEVgAAIDbI7AAMA0jIQCuQmABYDpGQgDMRmABYBo6LABchcACwHR0WACYjcACAADcHoEFgGkYCQFwFQILANMxEgJgNgILANPQYQHgKgQWAKajwwLAbAQWAADg9ggsAEzDSAiAqxBYAJiOkRAAsxFYAJiGDgsAVyGwADAdHRYAZiOwAAAAt0dgAWAaRkIAXIXAAsB0jIQAmI3AAsA0dFgAuAqBBYDp6LAAMBuBBQAAuD0CCwDTMBIC4CoEFgCmYyQEwGwEFgCmocMCwFUILABMR4cFgNkILAAAwO0RWACYhpEQAFchsAAwHSMhAGYjsAAwDR0WAK5CYAFgOjosAMxGYAEAAG6PwALANIyEALgKgQWA6RgJATAbgQWAaeiwAHAVAgsA09FhAWA2AgsAAHB7BBYApmEkBMBVCCwATMdICIDZCCwATEOHBYCrEFgAmI4OCwCzEVgAAIDbI7AAMA0jIQCuQmABYDpGQgDMRmABYBo6LABchcACwHR0WACYjcACAADcHoEFgGkYCQFwFQILANMxEgJgNgILANPQYQHgKgQWAKajwwLAbAQWAADg9ggsAEzDSAiAqxBYAJiOkRAAsxFYAJiGDgsAVyGwADAdHRYAZiOwAAAAt0dgAWAaRkIAXIXAAsA0jz/+uIoVK6Znn33W6lIAeBmbMwkviS5cuKAsWbLo/Pnz8vPzS466AABACpDUjEGHBQAAuD0CCwAAcHsEFgAA4PYILAAAwO0RWAAAgNsjsABwicqVpZ49ra7iv7VuLTVo8N/3edCvY+ZMKWvWh60o+Y8LeAoCCwAAcHsEFgAA4PYILABcJjZW6trVGGU89pg0aJCUsFXljRtSv35S3rxSxoxSmTLS+vWJj00YgaxYIQUHS5kySbVqSSdOJN7HZrvzI39+47a4OKldO+mZZ6T06aXAQGnChP+u9/JlqVUr47ly55bGjr3zPverO8G96t64UUqdWjp58vb79+4tVax4+9f/1FNShgxSw4bSmTN3Pscvv0glSkjp0knPPisNHWp8zwFvRGAB4DKzZkmpUkk7dkgTJ0rjx0vTpxu3tWkjbdkizZ0rhYVJjRsbv9gdjsTHX7kijRkjzZ5t/KL/4w+pT5/E20+cSPyIiZH8/RN/6cfHS08+Kc2fL4WHS4MHSwMHGpfvpW9fad06aeFCaeVKI4iEht5+n0etu2JFI1zMnp14/9hY6ZtvjGNLxverbVupSxdp3z6pShVp2LDb61ixQmrZUure3fj6pk41Qs7w4ff5SwE8lTMJzp8/75TkPH/+fFLuDgDOSpWczuBgpzM+PvG6/v2N62JinE6bzek8duz2x1Sr5nQOGGB8PmOG0ykZ900webLTmSvXnc8VH+90NmzodJYo4XReuXLvmrp0cTpfeSXx8htvOJ316xufX7zodKZJ43TOnZt4+5kzTmf69E5njx7GZbPqHjnS+D4kWLTI6cyUyem8dMm4/NprTmetWrc/R9OmTmeWLImXK1RwOj/66Pb7zJ7tdObOfc8vH3BLSc0YqawOTAC8V9myxpgmQblyxphl925jNBQQcPv9r183RkcJMmSQnnsu8XLu3NKpU3c+z8CB0rZt0q5dxvgnweefGx2dI0ekq1eNcU7Ronev9ddfjdvLlUu8Lnt2Y5SUYM8ec+pu3doYj23fbnyPvvpKatLEGDFJUkSEMQa6Vbly0vLliZdDQ42v99aOSlycdO2a0eHJkOHuXyfgqQgsACzh62v80vX1vf36TJkSP0+d+vbbbLbENTAJvvnGGDWtX2+MgBLMny+9/bYRkMqVkzJnlkaPNsYtd3P/t4E1xkxm1J0zp/TSS9KMGcZ4aOnS29fBJLWWoUOlRo3uvC1duvs/HvA0BBYALrN9+52X7XapWDGjG3DqlFShwsMff9s2qX17Y/1G2bK337Zpk/T888Y6kAS//nrvY/n7G0Fj+3ZjsasknT0rRUdLlSoZl82qWzLqbtbMCFnPPSeVL594W4ECd//e3ap4cSkqyqgbSAkILABc5uhRqVcv6c03jXHKpElGxyMgQGrRwjgjZ+xYIwicPi2tXSsVLizVqXP/Y588aYxNmjWTXnwx8awbX18pRw7jF/nXXxuLU595xljkumuX8fndZMpknFXUt68x3smVS3r3XcnnllMTzKg7wYsvSlmyGItpP/jg9tu6dzfC1qhRxsZ2K1fePg6SjEXE9epJ+fIZC399fIxFwAcO3LlAF/AGnCUEwGVatTLWjpQuLb31ltStm9Sxo3HbjBnG7b17G+tEXn7ZGNfky5e0Y0dGSn/+aZyJlDt34kepUsbtnToZ45KmTY1Tj8+cub3bcjejRxtn8bz8slS9uvTCC8Zpw7d61LoT+PgYa1ni4ozj3apsWWPtzaRJxpqblSuNNS+3evFFafFiadUq42suW1YaN056+ukHqwPwFDan8/7T0gsXLihLliw6f/68/Pz8kqMuAPB6HToYoevnn62uBLBOUjMGIyEASGbnzxvjqTlzpJ9+sroawDMQWAAgmdWvL+3caaztqVHD6moAz0BgAYBkdret/AH8NxbdAgAAt0dgAQAAbo/AAgAA3B6BBQAAuD0CCwAAcHsEFgAA4PYILAAAwO0RWAAAgNsjsAAAALdHYAEAAG6PwAIAANwegQUAALg9AgsAAHB7BBYAAOD2CCwAAMDtEVgAAIDbI7AAAAC3R2ABAABuj8ACAADcHoEFAAC4PQILAABwewQWAADg9ggsAADA7aVKyp2cTqck6cKFCy4tBgAApCwJ2SIha9xLkgLLxYsXJUn58uV7xLIAAADudPHiRWXJkuWet9uc94s0kuLj43X8+HFlzpxZNpvN1AIBAEDK5XQ6dfHiReXJk0c+PvdeqZKkwAIAAGAlFt0CAAC3R2ABAABuj8ACAADcHoEFAAC4PQILAABwewQWAADg9ggsAADA7f0fCQ1PFBL/lXgAAAAASUVORK5CYII=", "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)" ] } ], "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.11.6" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }