From 5dc76a1998bdd9bc2711f007746028e01bf044ed Mon Sep 17 00:00:00 2001 From: Andrea Volkamer Date: Wed, 10 May 2023 22:15:35 +0200 Subject: [PATCH 1/4] remove datamol dependencies --- .../talktorial.ipynb | 271 +++++++++++++----- 1 file changed, 194 insertions(+), 77 deletions(-) diff --git a/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb b/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb index 79023b8c..83976415 100644 --- a/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb +++ b/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb @@ -10,9 +10,6 @@ "\n", "**Note:** This talktorial is a part of TeachOpenCADD, a platform that aims to teach domain-specific skills and to provide pipeline templates as starting points for research projects.\n", "\n", - "**Important:** Currently, this talktorial uses Datamol which has to be installed using `conda install -c conda-forge datamol`.\n", - "\n", - "\n", "Authors:\n", "\n", "- [Gerrit Großmann](https://mosi.uni-saarland.de/people/gerrit/), 2022, Saarland University" @@ -576,7 +573,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "284b644ac9d4424887859970a9036d1a", + "model_id": "d657b60c92c443468df390f222f78935", "version_major": 2, "version_minor": 0 }, @@ -590,23 +587,22 @@ "import matplotlib.pyplot as plt\n", "import networkx as nx # for graphs\n", "import numpy as np # for matrices\n", + "import time\n", "\n", - "# import nglview\n", "import nglview as nv # for 3D visualizations\n", "\n", "from rdkit import Chem\n", "from rdkit.Chem.Draw import IPythonConsole\n", "from rdkit.Chem import Draw\n", - "from rdkit.Chem import AllChem\n", + "from rdkit.Chem import AllChem, rdDistGeom\n", + "from rdkit.Chem import rdFingerprintGenerator\n", "\n", - "IPythonConsole.ipython_useSVG = True\n", - "\n", - "import datamol as dm # for conformer generation TODO remove datamol and use only RDKit => you might need to install this: !pip install datamol" + "IPythonConsole.ipython_useSVG = True" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -618,7 +614,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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\n", "image/svg+xml": [ "\n", "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 4, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -945,7 +941,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -996,7 +992,7 @@ "" ] }, - "execution_count": 5, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -1020,7 +1016,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1042,7 +1038,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "513ff36416f040e0a5a9834b80e9f693", + "model_id": "9a92d40c8b7048bdb8687d147494ca12", "version_major": 2, "version_minor": 0 }, @@ -1074,52 +1070,65 @@ }, { "cell_type": "markdown", - "metadata": { - "id": "_kDbGQnnwoqv" - }, + "metadata": {}, "source": [ - "To generate conformers, we can use [Datamol](https://datamol.io/), a Python library that is a wrapper around RDKit to make it easier to use. We will use the butane molecule from ealier." + "We can generate a set of n conformers using rdkit's improved conformer generator [ETKDGv3](https://pubs.acs.org/doi/10.1021/acs.jcim.0c00025).\n", + "\n", + "We use aspirin as example molecule." ] }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "C-IxBX86_cLy", - "outputId": "53045b54-58c1-412d-821e-b6b8e8c74fce" - }, + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# generate moleucle from Smiles\n", + "aspirin = Chem.MolFromSmiles(\"CC(=O)OC1=CC=CC=C1C(=O)O\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Generate 200 conformers" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[ 0.66958642, 1.19766614, -1.58514339],\n", - " [-0.21687196, 0.19637962, -0.87796397],\n", - " [ 0.08440721, -1.1953641 , -1.43463842],\n", - " [-0.82423895, -2.17384268, -0.70102649]])" + "200" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "# add hydrogens\n", + "aspirin_h = Chem.AddHs(aspirin)\n", "# generate conformers\n", - "mol_butane = dm.to_mol(\"CCCC\")\n", - "mol = dm.conformers.generate(mol_butane, align_conformers=True)\n", - "\n", - "# print the x,y,z coordinates of the 4 atoms of the first conformer.\n", - "mol.GetConformer(0).GetPositions()" + "ps = rdDistGeom.ETKDGv3()\n", + "ps.randomSeed = 0xd06f00d\n", + "ps.numThreads = 10\n", + "conf_ids = rdDistGeom.EmbedMultipleConfs(aspirin_h,200,ps)\n", + "len(conf_ids)" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 7, "metadata": {}, + "outputs": [], "source": [ - "Next, we visualize 9 conformers. We can clearly see that the bond in the middle is rotatable. " + "# remove hydrogens again\n", + "aspirin_3d = Chem.RemoveHs(aspirin_h)" ] }, { @@ -1127,15 +1136,84 @@ "execution_count": 8, "metadata": {}, "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 3.17177358e+00, 1.13975092e+00, 6.12050422e-01],\n", + " [ 1.98734957e+00, 3.90834457e-01, 9.19310127e-02],\n", + " [ 1.95434233e+00, -8.20849379e-02, -1.07284503e+00],\n", + " [ 8.65900335e-01, 1.97098454e-01, 9.10857701e-01],\n", + " [-2.14068548e-01, -5.02003119e-01, 3.95375173e-01],\n", + " [-3.07586031e-01, -1.87543768e+00, 5.04952185e-01],\n", + " [-1.40162108e+00, -2.53917464e+00, -2.25174878e-02],\n", + " [-2.39467097e+00, -1.80935952e+00, -6.57796038e-01],\n", + " [-2.31798424e+00, -4.42863585e-01, -7.75844847e-01],\n", + " [-1.20389423e+00, 2.11393890e-01, -2.36134063e-01],\n", + " [-1.08680181e+00, 1.64513299e+00, -3.38077955e-01],\n", + " [-1.97512940e+00, 2.30934384e+00, -9.08542136e-01],\n", + " [ 1.01675229e-03, 2.30156728e+00, 1.89444696e-01]])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# print the x,y,z coordinates of the 4 atoms of the first conformer.\n", + "aspirin_3d.GetConformer(0).GetPositions()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def show_conformers(molecule, ids):\n", + " \"\"\"Generate a view of the ligand conformations.\n", + "\n", + " Parameters\n", + " -----------\n", + " molecule: rdkit.Chem.rdchem.Mol\n", + "\n", + " Returns\n", + " ----------\n", + " nglview.widget.NGLWidget\n", + " \"\"\"\n", + " \n", + " view = nv.NGLWidget()\n", + " print(type(molecule))\n", + " for i in range(0, ids):\n", + " mb = Chem.MolToMolBlock(molecule, confId=i)\n", + " component = view.add_component(mb, ext='sdf')\n", + " time.sleep(0.1)\n", + " component.clear()\n", + " component.add_ball_and_stick(multipleBond=True)\n", + " return view" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "c46822bff92c48a69ee5ae77af41978b", + "model_id": "6e3397b9eee6401692d9b48bbe6830de", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "GridspecLayout(children=(NGLWidget(layout=Layout(align_self='stretch', grid_area='widget001', width='auto')), …" + "NGLWidget()" ] }, "metadata": {}, @@ -1143,8 +1221,8 @@ } ], "source": [ - "# 3D viz (using nglview)\n", - "dm.viz.conformers(mol, n_confs=9)" + "view = show_conformers(aspirin_3d, 5)\n", + "view" ] }, { @@ -1167,7 +1245,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1199,7 +1277,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1261,21 +1339,44 @@ "id": "IYD_ShME-0vb" }, "source": [ - "### Fingerprints" + "### Fingerprints\n", + "\n", + "Generate circular fingerprint (`ecfp`) and print information." ] }, { - "cell_type": "markdown", - "metadata": { - "id": "lAuCns2z06R_" - }, + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Common arguments : countSimulation=0 fpSize=2048 bitsPerFeature=1 --- MorganArguments includeChirality=0 onlyNonzeroInvariants=0 radius=3 --- MorganEnvironmentGenerator --- MorganInvariantGenerator includeRingMembership=1 --- MorganInvariantGenerator useBondTypes=1 useChirality=0'" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "We can also use Datamol to easily create fingerprints. " + "fpg = rdFingerprintGenerator.GetMorganGenerator()\n", + "fpg.GetInfoString()" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "fp = fpg.GetFingerprintAsNumPy(mol_caffeine)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1284,6 +1385,23 @@ "id": "_h443LFp-2Cn", "outputId": "1f90d027-f5f1-4059-f25b-0667e52f6c57" }, + "outputs": [], + "source": [ + "def visualize_fingerprint_info(fp):\n", + " print(\"Number of elements: \", fp.size)\n", + " print(\"Types of entries: \", set(list(fp)))\n", + " print(\"Number of Ones: \", np.count_nonzero(fp))\n", + " plt.vlines(\n", + " [i for i in range(fp.size) if fp[i] > 0.5], ymin=0, ymax=300\n", + " ) # 300 gives a nice aspect ratio\n", + " plt.vlines(fp.size, ymin=0, ymax=0.0) # dummy to calibrate scale\n", + " plt.gca().set_aspect(\"equal\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -1296,7 +1414,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1306,23 +1424,29 @@ } ], "source": [ - "fp = dm.to_fp(\n", - " mol_caffeine, fp_type=\"ecfp\"\n", - ") # dm.list_supported_fingerprints() lists the available options\n", - "print(\"Number of elements: \", fp.size)\n", - "print(\"Types of entries: \", set(list(fp)))\n", - "print(\"Number of Ones: \", np.count_nonzero(fp))\n", - "# plt.scatter(range(fp.size), list(fp))\n", - "plt.vlines(\n", - " [i for i in range(fp.size) if fp[i] > 0.5], ymin=0, ymax=300\n", - ") # 300 gives a nice aspect ratio\n", - "plt.vlines(fp.size, ymin=0, ymax=0.0) # dummy to calibrate scale\n", - "plt.gca().set_aspect(\"equal\")" + "visualize_fingerprint_info(fp)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Try another fingerprint: Rdkit fingerprint" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "fpg2 = rdFingerprintGenerator.GetRDKitFPGenerator()\n", + "fp2 = fpg2.GetFingerprintAsNumPy(mol_caffeine)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1343,7 +1467,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAB0CAYAAACv3skgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAOG0lEQVR4nO3de2yTZf/H8U+Brcyla5hz68rq0hiMxk0SB8IWTkGpLJmA/CEKWSBBI8KWLGCMhCdhml+AkDhJQDAagnjA8Q8oiWRaHsYEtynPHOGkhAR0Q1any+jGwY3D9fvj9/POU8ZBcNt9t7xfyZ2s1/Vtd135cq+f3G2pyxhjBAAA4CBD7F4AAADA9QgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcYbZvYC7ce3aNZ09e1Yej0cul8vu5QAAgL/BGKPu7m75/X4NGXLrayRxGVDOnj2rQCBg9zIAAMBdaG1tVU5Ozi1r4jKgeDweSf+3wbS0NJtXAwAA/o6uri4FAgHrefxW4jKg/PWyTlpaGgEFAIA483fenhGXAWWg/HH+T435n3/fcO7riokKrds/yCvCQNr/+hRNXLvP7mUA/c5J/7b/86+nbvp3Nd7dC88Lx996Rvcl2xMV+BQPAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwnDsKKKtXr9bYsWPl8XiUmZmpWbNm6cSJEzE1xhhVVlbK7/crJSVFU6ZM0bFjx2Jqenp6VF5eroyMDKWmpmrGjBk6c+bMP98NAABICHcUUOrq6rRkyRI1NjYqHA7rypUrCoVCunDhglWzdu1aVVVVacOGDTp48KB8Pp+mTZum7u5uq6aiokI7d+5UdXW1Dhw4oPPnz6ukpERXr17tv50BAIC4NexOimtqamJub9myRZmZmWpqatKkSZNkjNG6deu0YsUKzZ49W5K0detWZWVladu2bXrllVcUjUa1efNmffzxx3r66aclSZ988okCgYD27NmjZ555pp+2BgAA4tU/eg9KNBqVJKWnp0uSTp8+rUgkolAoZNW43W5NnjxZ9fX1kqSmpiZdvnw5psbv9ysvL8+quV5PT4+6urpiDgAAkLjuOqAYY7R06VJNmDBBeXl5kqRIJCJJysrKiqnNysqy5iKRiJKTkzVixIib1lxv9erV8nq91hEIBO522QAAIA7cdUApKyvT4cOH9dlnn/WZc7lcMbeNMX3GrnermuXLlysajVpHa2vr3S4bAADEgbsKKOXl5dq1a5dqa2uVk5Njjft8PknqcyWkvb3duqri8/nU29urzs7Om9Zcz+12Ky0tLeYAAACJ644CijFGZWVl2rFjh/bu3atgMBgzHwwG5fP5FA6HrbHe3l7V1dWpqKhIklRQUKCkpKSYmra2Nh09etSqAQAA97Y7+hTPkiVLtG3bNn3xxRfyeDzWlRKv16uUlBS5XC5VVFRo1apVGjVqlEaNGqVVq1bpvvvu09y5c63ahQsXatmyZbr//vuVnp6u1157Tfn5+danegAAwL3tjgLKpk2bJElTpkyJGd+yZYsWLFggSXr99dd16dIlLV68WJ2dnRo3bpy+/vpreTweq/6dd97RsGHD9Pzzz+vSpUt66qmn9OGHH2ro0KH/bDcAACAh3FFAMcbctsblcqmyslKVlZU3rRk+fLjWr1+v9evX38mvBwAA9wi+iwcAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADiOrQFl48aNCgaDGj58uAoKCrR//347lwMAABzCtoCyfft2VVRUaMWKFWpubtbEiRNVXFyslpYWu5YEAAAcwraAUlVVpYULF+qll17So48+qnXr1ikQCGjTpk12LQkAADiELQGlt7dXTU1NCoVCMeOhUEj19fV96nt6etTV1RVzAACAxOUyxpjB/qVnz57VyJEj9e2336qoqMgaX7VqlbZu3aoTJ07E1FdWVurNN9/s8zjRaFRpaWkDvl4AAPDPdXV1yev1/q3nb1vfJOtyuWJuG2P6jEnS8uXLFY1GraO1tXWwlggAAGwwzI5fmpGRoaFDhyoSicSMt7e3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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAB0CAYAAACv3skgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAOG0lEQVR4nO3de2yTZf/H8U+Brcyla5hz68rq0hiMxk0SB8IWTkGpLJmA/CEKWSBBI8KWLGCMhCdhml+AkDhJQDAagnjA8Q8oiWRaHsYEtynPHOGkhAR0Q1any+jGwY3D9fvj9/POU8ZBcNt9t7xfyZ2s1/Vtd135cq+f3G2pyxhjBAAA4CBD7F4AAADA9QgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcYbZvYC7ce3aNZ09e1Yej0cul8vu5QAAgL/BGKPu7m75/X4NGXLrayRxGVDOnj2rQCBg9zIAAMBdaG1tVU5Ozi1r4jKgeDweSf+3wbS0NJtXAwAA/o6uri4FAgHrefxW4jKg/PWyTlpaGgEFAIA483fenhGXAWWg/HH+T435n3/fcO7riokKrds/yCvCQNr/+hRNXLvP7mUA/c5J/7b/86+nbvp3Nd7dC88Lx996Rvcl2xMV+BQPAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwnDsKKKtXr9bYsWPl8XiUmZmpWbNm6cSJEzE1xhhVVlbK7/crJSVFU6ZM0bFjx2Jqenp6VF5eroyMDKWmpmrGjBk6c+bMP98NAABICHcUUOrq6rRkyRI1NjYqHA7rypUrCoVCunDhglWzdu1aVVVVacOGDTp48KB8Pp+mTZum7u5uq6aiokI7d+5UdXW1Dhw4oPPnz6ukpERXr17tv50BAIC4NexOimtqamJub9myRZmZmWpqatKkSZNkjNG6deu0YsUKzZ49W5K0detWZWVladu2bXrllVcUjUa1efNmffzxx3r66aclSZ988okCgYD27NmjZ555pp+2BgAA4tU/eg9KNBqVJKWnp0uSTp8+rUgkolAoZNW43W5NnjxZ9fX1kqSmpiZdvnw5psbv9ysvL8+quV5PT4+6urpiDgAAkLjuOqAYY7R06VJNmDBBeXl5kqRIJCJJysrKiqnNysqy5iKRiJKTkzVixIib1lxv9erV8nq91hEIBO522QAAIA7cdUApKyvT4cOH9dlnn/WZc7lcMbeNMX3GrnermuXLlysajVpHa2vr3S4bAADEgbsKKOXl5dq1a5dqa2uVk5Njjft8PknqcyWkvb3duqri8/nU29urzs7Om9Zcz+12Ky0tLeYAAACJ644CijFGZWVl2rFjh/bu3atgMBgzHwwG5fP5FA6HrbHe3l7V1dWpqKhIklRQUKCkpKSYmra2Nh09etSqAQAA97Y7+hTPkiVLtG3bNn3xxRfyeDzWlRKv16uUlBS5XC5VVFRo1apVGjVqlEaNGqVVq1bpvvvu09y5c63ahQsXatmyZbr//vuVnp6u1157Tfn5+danegAAwL3tjgLKpk2bJElTpkyJGd+yZYsWLFggSXr99dd16dIlLV68WJ2dnRo3bpy+/vpreTweq/6dd97RsGHD9Pzzz+vSpUt66qmn9OGHH2ro0KH/bDcAACAh3FFAMcbctsblcqmyslKVlZU3rRk+fLjWr1+v9evX38mvBwAA9wi+iwcAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADiOrQFl48aNCgaDGj58uAoKCrR//347lwMAABzCtoCyfft2VVRUaMWKFWpubtbEiRNVXFyslpYWu5YEAAAcwraAUlVVpYULF+qll17So48+qnXr1ikQCGjTpk12LQkAADiELQGlt7dXTU1NCoVCMeOhUEj19fV96nt6etTV1RVzAACAxOUyxpjB/qVnz57VyJEj9e2336qoqMgaX7VqlbZu3aoTJ07E1FdWVurNN9/s8zjRaFRpaWkDvl4AAPDPdXV1yev1/q3nb1vfJOtyuWJuG2P6jEnS8uXLFY1GraO1tXWwlggAAGwwzI5fmpGRoaFDhyoSicSMt7e3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\n", "text/plain": [ "
" ] @@ -1354,14 +1478,7 @@ ], "source": [ "# The \"rdkit\" fingerprint is less sparse than ECFP\n", - "fp = dm.to_fp(mol_caffeine, fp_type=\"rdkit\")\n", - "print(\"Number of elements: \", fp.size)\n", - "print(\"Types of entries: \", set(list(fp)))\n", - "print(\"Number of Ones: \", np.count_nonzero(fp))\n", - "# plt.scatter(range(fp.size), list(fp))\n", - "plt.vlines([i for i in range(fp.size) if fp[i] > 0.5], ymin=0, ymax=300)\n", - "plt.vlines(fp.size, ymin=0, ymax=0) # dummy to calibrate scale\n", - "plt.gca().set_aspect(\"equal\")" + "visualize_fingerprint_info(fp2)" ] }, { From 01a08f75ed42a9d894acf4031f704eb53b4400ae Mon Sep 17 00:00:00 2001 From: Andrea Volkamer Date: Thu, 11 May 2023 00:00:09 +0200 Subject: [PATCH 2/4] fix file --- .../talktorial.ipynb | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb b/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb index 92a5232d..e9a467a6 100644 --- a/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb +++ b/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb @@ -1160,7 +1160,9 @@ "200" ] }, - "execution_count": 6, + } + ], + "source": [ "# add hydrogens\n", "aspirin_h = Chem.AddHs(aspirin)\n", "# generate conformers\n", @@ -1174,19 +1176,6 @@ { "cell_type": "code", "execution_count": 7, -======= - "# Generate conformers\n", - "mol_butane = dm.to_mol(\"CCCC\")\n", - "mol = dm.conformers.generate(mol_butane, align_conformers=True)\n", - "\n", - "# Print the x,y,z coordinates of the 4 atoms of the first conformer.\n", - "mol.GetConformer(0).GetPositions()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", ->>>>>>> 5880ac9368621063924669ac1de6f4917bd60850 "metadata": {}, "outputs": [], "source": [ From cbfacd6337a490fa4eeff13ee2c077144c070df1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Backenk=C3=B6hler?= Date: Wed, 17 May 2023 13:51:16 +0200 Subject: [PATCH 3/4] T033: fix json bug --- .../talktorial.ipynb | 327 ++++++++++-------- 1 file changed, 188 insertions(+), 139 deletions(-) diff --git a/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb b/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb index cc0955c2..db4b080c 100644 --- a/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb +++ b/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb @@ -567,13 +567,14 @@ "cell_type": "code", "execution_count": 1, "metadata": { - "id": "W8uKK-US_0Tc" + "id": "W8uKK-US_0Tc", + "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d2a9b08541d6412cb87696cbd816b32e", + "model_id": "d7666ef2fe1d45ce8022443bccba5a56", "version_major": 2, "version_minor": 0 }, @@ -609,12 +610,13 @@ "height": 171 }, "id": "EPAeW6hoKo1p", - "outputId": "81af701f-6a94-40cd-fdc8-1fd72dfcde1e" + "outputId": "81af701f-6a94-40cd-fdc8-1fd72dfcde1e", + "tags": [] }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAIAAADCEh9HAAAABmJLR0QA/wD/AP+gvaeTAAAeh0lEQVR4nO3deVjU1f4H8PcMMMogCOLCdmVxQYZUlNDENUHtFl6XH9o1QUALU+/FrvcaZClFhaL13Hq6VlgIKKISloqpiaiJieYCLiwmCi6AubDKDOuc3x9DgEgCw8ycGfi8np555HyZOZ/J53l7vt/zPecrYIyBEEKIsoS8CyCEEN1GMUoIIZ1CMUoIIZ1CMUoIIZ1CMUoIIZ1CMUqUJJfLjx07dvXqVd6FEMIZxShR0ieffOLh4bFp0ybehRDCmYDuGyXKyc/Pd3BwEIvFRUVFxsbGvMshhBsajRIl2dnZTZo0qbKy8rvvvuNdCyE8UYwS5QUEBACIjo7mXQghPNFJPVFeZWWlpaVlRUVFdnb2sGHDeJdDCB80GiXKMzIymjdvHoC4uDjetRDCDY1GSaekpqZOmjTJ2tr61q1benp6vMshhAMajZJOmThxoqOjY0FBQUpKCu9aCOGDYpR0lq+vL2iiiXRjdFJPOqugoMDW1tbAwKCwsNDMzIx3OYRoGo1GSWdZW1t7eHhUVVXt3r2bdy2EcEAxSlTA398fXeK8vqwMS5diy5YnGt95B8eOcSqI6AI6qScqUFVVpbiB9MqVm05OA3mXo7yiIlhZQV8f587BxaWh0dYWq1Zh5UqulREtRqNRogI9e/ZcuXJn//75W7fqcIY2cnXF8uWQy3nXQXQExShRjZdffqmoyGb7dtTW8i6l00JDkZmJb7/lXQfRERSjRDXGjMHw4fj9d/z0E+9SOs3CAuvWISQE9+/zLoXoAopRojK+vgCg+/NMABAUBCsr/Oc/vOsguoBilKjMokUwMMCBA3jwgHcpnWZggK+/xo4dSE3lXQrRehSjRGUGDMCMGaipQXw871JUYcIELFyI1avReDNLcTHXgoi2ohglqhQQAABRUbzr6Lh79/Dbby0bN23CtWu4excA4uIwaFDLW0oJAcUoUS0vL/TrhytXkJHBu5SOuHgRY8fCywvl5U+0DxiADz9sGI0ePozSUixdCi+vhmAlRIFilKiSSIQFCwCdmmiKioK7O27fhpUVevVCQgLs7ZuOLluGxES8/DLi4pCQAHNz/PgjnJ3x+ed0YylpQKuYiIpduYIRI2BujoIC9OjBu5pnqqvDe+8hIgIAAgPxv//BwKCNt/z+O1aswJ49ADBxIqKiMGSI2uskWo5Go0TFhg+HiwsePcKBA7xLeaYHDzB9OiIi0KMHoqIQGdl6hj56BH9/FBY2/DhgABITkZCAfv2QmgoXF0REoL5ek4UTrUMxSlRPMdEUE8O5jGe4eBFubjh+HNbW+PlnLF78p7+5Zg1iY+HsjOjopin7efNw7RoCAyGVIiQEkyYhJ0czhROtxAhRtYcPWY8eTF+fFRbyLqU1cXHM0JABbPx4VlTUxi8XFbG5cxnAADZ9OsvPf+LogQPMxoYBrGdPtmEDq6tTX9VEe9FolKieuTmCgrBhA8Ri3qU8qa4OISHw8YFMhsBAHDsGC4s23mJhgT17Gs7ijxyBRIKIiKbJpVdeweXL8PNDVRVCQuDujuzsMnV/C6JtKEaJ6tXWws0Nkyahd++mxsOHOZ/5PnyIGTMaLoZ++y0iIyEStfe98+bh6lX4+jadxV+71nDIzAwxMTh8GAMHorS0ys3NPiQkpKamRk3fgmgj3sNh0gWVlDCAmZiwgoKmRkdHFh7OraRz5y44OZUBzNqanT2r/OckJTFrawYwQ8OWZ/FlZSw4+BuBQADAxcUlPT2982UTnUCjUaIuxsb49795FwEA2LFjx6RJE4yNfSZOlJ87hzFjlP8oLy9cvYrAQMhkCAnBhAnIymo4ZGKCDRteP3ny5NChQzMyMtzc3EJCQqqrq1XyFYg2oxgl6rJuHRITceQIzxpqa2uDgoJ8fHxkMpmrq01KitzSsrOfaWqKyEj8+CNsbHDmDP7xj8z169fX1dUpjk6YMCEjIyM4OJgxFhER4erqevbs2c52SbQc7+Ew6YIUJ/WnTrF//pMNHsykUsZ4nNQ/ePBg6tSpAHr06PHNN9+o/PNLS1lQkMzY2ArA6NGjL1261Pzo6dOnnZycAAiFwsDAwMePH6u8AKIlKEaJ6jXGaEkJGzCArV3L2B8xmpvLNm1ihw6xvDwml6uxhosXL9rZ2QGwsrJKS0tTX0cnT54cMmQIAH19/eDg4KqqqsZDMpksNDTUwMAAgIODw7Fjx9RXBuGIYpSoXmOMMsZiY5lIxH77rSFGo6Ia7sEEmEjEJBI2bx4LDWUJCezqVZXdd7ljxw6xWAzA3d29UP03r0ql0uDgYD09PQDOzs5nn5zDysjIGDVqFACBQBAYGFheXq7ueoiGUYwS1Wseo3I5mzSJzZ3bEKOnT7MVK9jUqczCoilPG//r2ZO5uLC//519+CFLTGTZ2Y9ramo61HVtbW1wcLDiglVgYGB1dbVavmFrfvnll2HDhimGpUFBQc3P4qurq9etW6cYllpbW0dFRWmsKqIBFKNE9ZrHKGPsyhVmYMAMDVteGy0pYefPs9hYFhzMvLyYgwMTCp9I1SlTPtbX13dwcPDy8goODo6NjT1//nxlZeWf9fvw4UMPDw/FxdAtW7ao8yu2TiaTNQ5LBw0adPz48eZHL1++PHLkSIFA4ODgoPnaiPpQjBLVaxGjjLF//5sBbU8xlZWxs2fZ1q3s7bfZK6+wmTNXCoUtbybR09MbMmTIrFmzQkJCtm3bdv78ecW4Lz09vfFi6OnTp9X5/dqQnp7e/Cy+oqKi8VBCQgKAoUOHciyPqBzFKFG9ykoWGMhyc5taKirYsmXs0KEOf5RUKr1w4UJcXNyaNWvmzJkzdOhQfX39FsEqEAgGDhzYo0cPAOPGjdPAxdA2VVdXr1271sDAQCQSXblypbF9xYoVAMLCwjjWRlSO9hslqhQdjbQ0/O9/HVhn2VG1tbV37tzJzMzMyspSvGZlZclksj59+gwZMuTkyZMi9fXdQZcuXTp//vySJUsaW4YOHXr9+vUzZ86MHTuWY2FEtShGicqkpsLTEzU1OHAAr7yiuX7r6uqioqLefPNNR0fHnGbr9qVSaX5+vkQi0Vwpz5Sfn29vb29mZvbgwQPF9VPSNdAqJqIat27B2xs1NVi9WqMZCkBfX3/JkiWWlpbXrl1rXDJ05coVKysrb29vjZbyTD/99BMADw8PytAuhmKUqIBMhv/7P9y/j+nTsX49hwL09fV9fHwARP/xECgnJyexWJydna09azGTk5MBTJs2jXchRMUoRklnMYaAAFy4AEdH7N4NXiMtxSXIXbt2SaVSNAvWGO3Yhb++vv748eOgGO2KKEZJZ4WFYfdumJjg++9hasqtDEdHxzFjxpSVle3bt0/RogjWnTt3KoKVr19//bW4uHjo0KH2zZ87SroEilHSKXv3IiwMQiHi48F9LicgIADNzuufDlaOjhw5AmD69Om8CyGqRzFKlJeVBT8/yOXYuFHT00qtWrBggVgsTklJuX37tqKlRbByRBdGuzCKUaKk4mL87W8oL4evr7Zsz9y7d+9Zs2bJ5fJt27YpWp4OVi7Ky8t//fVXfX39KVOmcCyDqAnFKFFGbS28vXHjBlxdERnJu5pm/P39AWzdulVxQ/TTwcpFSkpKbW2tu7u7iYkJxzKImlCMEmV8+OGt48dhZYX9+2FoyLuaZjw9PQcOHJiXl3fq1ClFi+K8vjFYuaAz+q6NYlTXxMfjxRdhbQ1bW8yZgz/CQpMiIyM/+sjB0/P4Dz/Aykrz/T+LUCj09fVFs+uhHh4eLYJV827e9Jsy5Z2XXprNqwCiXnyX9JOOefdd1rMnW7eOJSezffvYkiVMT48lJmqyhFOnTikWrWvtppk3b94UCARGRkaNWyu9++67AAICAjjVwwBmZqayTamJtqEY1R1ZWUwoZJGRTzT6+7MBA5jiwRWbN7Ndu9ilS6zZcyxUKz8/v3///gDefvttNXWhEhMnTgQQExOj+LExWLnsPP/llwxg8+drvmeiIRSjuuPjj1nv3qzFbvCXLzOAHTnC6uuZWNyw3bGeHnNwYJ6eLCiIRUay1FTWbMtLpUmlUldXVwDTp0+v0+6RVVRUFIDJkyc3tiiCNTo6WvPFzJnDAKaGR+oRbUE7POmOgABkZCA9/YnG6mqIxfjiC/j746OPkJODq1eRl4c/nvfbQCiErS2cnODsrHitGzZMvyOzxoyxBQsW7N6929HR8cyZM6Yclyu1w+PHjy0tLSsrK69fvz5o0CAA0dHRixcvnjx58okTJzRZSX09+vVDSQny8mBnp8meiQbxznHSbr6+bMyYlo11dczAgH3++RONNTXsxg22fz/bsIH5+jJXV2Zo2OKxRx+4uZmZmY0fPz4wMPCzzz5LTk4uKip6Rufvv/8+ABMTk8zMTFV/MbXw8/MDsG7dOsWPjx8/7tWrl0AgyG2+m7T6nTrFADZsmCb7JJpGMao7goOZhUXLxtu3GcD27GnjvTU1LDubJSayjz5iCxYwF5dpgwc//W/qgAEDpk6dunz58s2bNx87duzevXuKd//www9CoVAoFB44cEANX0wtFPuA2NjYNF5/UATrWsXjnjUlNJQBLChIk30STaMY1R3JyQxgJ0480RgRwXr0YA8esLNnOzS5VFdXl5ubu2/fvg0bNixatOj555/v1avX08Hap0+f0aNHGxoaAvjkk09U/6XURi6XK07njx49qmhRnM43D1YNGDeOASwpSWMdEg7o2qjuYAwvvoj797FrF0aMQH09jhzBggVYuhQRERgzBufOAYClJZydIZE0vLq4oLV8bFVhYWFWVtbNmzcVD+e4fPny/fv3FYd8fX35LgRSQlhYWGho6MKFC+Pi4gAwxoYMGXLjxo3k5GRPT08NFFBain79IBTi0aP2/yUQHcQ7x0lHlJQwb28mFDIzMyYWs5492TvvNNyO6OvLhgxh+votH/0uFDIHB/bKK2z1arZ1Kzt7lrX7pp/KykrFEy6HDx8ulUrV+L3UIz8/XygUGhoalpSUKFrCwsIALFy4UDMF7NmjeEy0Znoj3NBoVAfdv4/ffoO+PoYPh5HRE4dqapCTg+xsZGU1vP72G2prW3zAidmz10ulzs7OTk5OEolEIpGYmZk93U9sbOzixYvFYvG1a9estG25Uvt4enqmpKRERkYGBgYCuHv3rp2dnUgkKiws1MDNBsuW4euv8fHHWLNG3V0Rnlo+q5bogP790b9/64dEIowYgREjmlrq6nD7NjIzkZXV8JqTc7ao6MjZs4odMBXMzMwkEomzs7Pi1cHBwcHB4dGjR3K53MzMTEczFIC/v39KSkpMTIwiRm1sbKZMmZKSkpKQkKBoUSvF/2DaYrTLo9Fo91Nfn5+XdykzMzs7OysrKzs7Ozs7u7KyssVvmZubOzs7X7x48fHjx7/88ou7uzuXYjtJJpNZWVmVlpZmZWU5OTkB2LFjh4+PzwsvvJCWlqbWrnNzMWQIzM1x/z6EtHdFl0YxSoBnTi4BeOONN7Zs2cKxvM4IDAz85ptvgoODN2zYgNaCVU2+/BIrVuDvf8fOnerrhGgFilHSuoKCguzs7BMnToSHhxsbGxcVFYnFYt5FKSMtLc3d3d3CwuLOnTv6+voAli5dumXLlsZgVZPSUhw/jgEDoJvjeNIBFKOkDe7u7mlpadu3b1c8aFMXOTk55eTkHDx48K9//StaC1aVqK3F2rVwdERAQFPjZ59h+HB4eKiqE6KN6JoNaYP2PM5IaYr1S41fYdy4cZMnT37ttddkMpkKe6mrQ0QE3ngDFy82NUZHc9kSlmgUjUZJG8rLyy0tLWUyWW5uroODA+9ylFFYWDhw4EA9Pb2CgoK+ffuqqReZDGIxRo6ESIS0NOjpAcDIkZg7F6GhauqTaAUajZI2mJiYzJ07lzGmWAuki6ysrKZPn15TU7Nr1y5197VmDXJz8dVX6u6HaBGKUdI2xXPioqOj5XI571qUpPgKMTExKvm0khIUFOD6dVy4gBMncPAgjh9vONS3Lz74AO+9h6IilXRFdACd1JO2McYGDx588+bN48eP6+gjgmtqaqytrR8+fJiRkTFixIjS0tLKysrKysrHjx+XlZVJpVKpVKpolEqlFRUV5eXlYvG4W7d8S0tRWQmpFBUVKC+HVAqptJXPd3VFairEYqSkYNIkuLnB0RG7dtFJfbdAq5hI2wQCgY+PT1hYWHR0tI7GqEgkmjFjxo4dO9zc3GqfWh3bqhEjBJcv+7Z6qHdviMUQi2FqCiMjiMUYNqzpqL4+tmzBCy/gzTdVUjvRdjQaJe2Sn58/aNAgQ0PDoqIiY2Nj3uV0WHFx8ejRo+/fv6+YnTczMxOLxWKx2MTExNjYWCwWGxkZmZqaKv6gaOzd204ketnUtCExe/dGr14Qi/90rybFFFNKCqZOBYDXX8fFi6ithbc3jUa7OBqNknaxs7ObNGnSyZMn9+1L9fF5mXc5HVNfX+/j43Pr1i0XF5fk5GT1TdY3t2EDhg1DSYkGuiKc0RQTaa9lyz6zsMiPjNSxDAXwr3/969ChQxYWFklJSZrJUAB9+yI8HDo7J0c6gE7qSXtVVsLSEhUVyM5+4lKglouNjfX39xeJREePHlU8H1RN6uqwdSu8vNC4H5ZcjthYjBgBV1fI5bRBSZdFf7GkvYyMMG8eAGzfzruUdjt9+vTSpUsBbN68Wa0ZCkBfH4GBaL6noFCIgAC4umLnTjz/PMrK1No/4YZGo6QDTp3CxImwtsatWw2rdLRZYWGhm5tbYWHhqlWrPv30U15l1NTg+edx5Qpmz8b330Mg4FUIURcajZIOmDABjo4oKEBKCu9S2iKTyWbPnl1YWDht2rSIiAiOlYhE2L8fffti7158+CHHQoi6UIySjvH1BQAt36iEMbZkyZJz587Z29vHx8ercBsn5djZIT4eenp4/33s2cO3FqJ6dFJPOqagALa2MDBAYSFae4CTVvj444/fe+89Y2PjtLQ0Z2dn3uU0iIhASAiMjXHmDCQS3tUQ1aHRKOkYa2t4eKCqCurf5UNJhw4dCg0NFQqF8fHx2pOhAN5+G6++iooKzJ1L001dCsUo6TDFtsQq2uVDxXJychYsWFBfXx8eHu7l5cW7nCcIBIiOxujRuHYNixbRLaVdB53Ukw6rqoKVFUpKcPkyhg/nXU0zxcXFY8eOzc3N9fb2TkhIEGjlpHh+Ptzc8PAhQkPx/vu8qyGqQKNR0mE9e+LVVwFg2zbepTSjWPGZm5s7atSo2NhY7cxQAHZ22LkTenoIC0NiIu9qiCpQjBJlKM7rt29H+zZL0oTGFZ/79+/X8qfveXoiPByMYfFiZGbyroZ0GsUoUcaYMRg+HL//jsOHeZcCAIiNjf3iiy9EIlFCQoKNjQ3vctq2enXDdNNbb5WX0XyTjqMdnoiSVq/GvXsYO5Z3HZpd8akqAgGioiCX5x08OM7Xd8zevXuFtOReZ9HfHFGSgQFsbdG/f1NLSgqOHtV0GYWFhfPmzauurl61atXrr7+u6e47wcgImzYJDQ3rk5KSPvjgA97lEOXRTD1R0uDBuHEDP/6Il//YOe+111BXh4QEzdUgk8kmT5587ty5adOmHTx4kPtqJSWkpKS89NJL9fX1u3fvnqfY+oXoGhqNEuXZ22PlSlRV8eld21Z8KsfDw2P9+vWMscWLF2fSfJNuohglynvzTdTUIDycT+/h4eE7d+40NjbW5GbM6vCf//zH39//8ePHc+bMKS0t5V0O6TCKUaI8Q0Ns2oSNG5GTo+mutXbFp3K+/PJLV1fX69evv/rqq/X19bzLIR1DMUo6Zf58TJiA5cvReI29shKrVyMqCmfOqGvleOOKz/Xr12vbik/lGBoa7tmzp1+/fkeOHAmlB+DpGp28nES0yldfYfjwppmlnBx88knTUTMzSCRwdm54dXaGpWWnuisuLp45c2ZZWZm3t/fq1as79VnaxNbWdteuXTNmzAgPDx8xYsT8+fN5V0Tai2bqiZIGD8bKlfjnPwHg3XexYwdGj4a+Pj79FNu3IzMT2dnIyYFM1vKN/frB2RlOTopsrXJyKrWwsGhnp/X19V5eXocPHx41atSpU6e0fLWSEv773/+uWrWqV69eaWlpzz33HO9ySLtQjBIlNY9RqRTOzigsxKxZLW94KixEVhYyMxteL19GRUXTUTe3++fODTA1NR00aJBEInF2dla82tnZtXo7elBQ0BdffGFubp6RkaETq5WUsHjx4ujoaHt7+3Pnzpmbm/Muh7SNTuqJCojF+OwzzJ7dyiErK1hZwdOzqeX2beTkNAxXa2vzc3PNSkpKLly4cOHChcbfMTY2dnJycnZ2dnJykkgkTk5OdnZ2y5Yt27JlCwA7O7uumqEANm/efOnSpcrKyrKyMopRnUCjUdJhjEEgwKZNGD8e7u5N7Z9+CgsLLFzY4Q+8d+9eZmZmdnZ2VlZWdnZ2ZmbmgwcPWvxOz549q6qqABgYGNTV1d24ccPe3r5TX0OLFRQUGBsbm5iY8C6EtAvFKOmYo0fxzjvYswcDB6qxl5KSkps3b2ZmZh46dGjXrl2K6GSMjR8/3tbWNj4+PiwsbO3atWqsgJB2oxglHZCbi7FjUVyMDRsQHKyJHuVyuYODw61btxITExUn+EePHp02bZq9vf2NGze0dlNR0q3QfaOkvSoqMHs2iosxezY0dqORUChctGgRgKSkJIlEAmDq1Km2trZ5eXknT57UUBGEPBPFKGkXuRwLFyIzExIJYmOhyU3dAgICBAJBYmJiRUUFmgVrjHY+DYp0PxSjpF3WrEFSEvr0wf790PDMh729/cSJEysrKxP/eOaGIli/++67iuY3TxHCCcUoaVtiIjZuhIEBEhMxaBCHAgICAgBER0crfnw6WAnhiGKUtCE9HX5+YAyff44XX+RTw7x584yNjVNTU69du6ZoaRGshHBEMUqe5d49zJoFqRQBAVi2jFsZRkZG3t7eAOLi4hQtTwcrIbxQjJI/VVuL+fNx5w7Gj8fXX3Muxt/fH0BMTIxiH7mng5UQXihGyZ9avhypqbC1xfffQyTiXMzEiRMHDx589+7dY8eOKVpaBCshvFCMktZ9++3PMTF1RkbYt++J59bxIhAI/Pz80Ox66NPBSggXFKOkFcnJycuWeY4c+cq2bfUjR/Ku5g/+/v56eno//PBDSUkJ/ghWe1NT9tNPvEsj3RrFKGkpLy/vtddeq6ur8/IaN3euHu9ymtjY2EydOrWqqmr37t2Klrf8/G7W1Ez/8kvQI4wIPxSj5AkVFRUzZ858+PDh7Nmz161bx7uclgICAqbb2bmmpSl+7PWXv2D8eMhk+CNYCdE82pqENJHL5bNmzTpw4IBEIklLS9PCjdrqZTI9a2uUlDSsSwUQH4+FCzF2LM6c4V0d6aZoNEqarFmz5sCBA3369Nm/f78WZigAPUNDKB5S1Ligfu5cmJri7FlkZfGri3RrFKOkQWJi4saNGw0MDBITEwdxWfLZTgEBALBtG2prAaBnT7z6KtAsWAnRLIpRAgDp6el+fn6Msc8///xFXks+22nsWEgk+P13NE7QNwZrXR3Huki3RTFKcO/evVmzZkml0oCAgGUcl3y2n58f0Gz4OXYsnJyeCFZCNIhitLurra2dP3/+nTt3xo8f/zX3JZ/t5OcHfX0kJaHxkU3+/gBAO5UQHihGu7vly5enpqba2tp+//33Iu5LPttpwADMmIGaGuzc2dDydLASoikUo90aY6xfv369evXau3dvf21Y8tl+iuuh337b8OPTwUqIptB9owQFBQXW1ta8q+igmhrY2ODBA6Snw8UFAPbsgbc3Ro3CxYu8iyPdC41GCXQvQwGIRFiwAGg20TRzJvr2RXo6MjL4lUW6I4pRorMU00pxcaiuBloLVkI0gmKU6KxRo+DigkeP8OOPDS0BAdDTw6NHXMsi3Q7FKNFlLe5zGjUKd+5g+3Z+BZHuiGKU6LKFC2FuDhsbNM6UWlpyLYh0RxSjRJf17YuiInz1VcOTS597DiIRDA3h7o69e3kXR7oLilGi4wwMAOAf/0BoKJYtw6+/4sQJTJkCb++mu0oJUSe6b5TovowMjBqF7dvh49PUuHIlYmNx9y569eJXGekWaDRKdF9SEkxNG+52arRiBcrK8PPPnGoi3QjFKNF9N2/C3h56Tz42StGSl8epJtKNUIySLkEgaNkiFEIgAF2zIupHMUp031/+gtu3Wybm3buoq8PAgZxqIt0IxSjRfS+9hIcPcfDgE40xMRCLMXkyp5pIN0IxSnSfuztmzcLy5Th6FFVVKCvDtm3YuBFr1sDUlHdxpOujG55IlyCTYfVqREejpgb19ejbF++8g7feauWaKSGqRjFKupDqauTnQySCrS2EdKZFNIRilBBCOoX+xSaEkE6hGCWEkE6hGCWEkE6hGCWEkE6hGCWEkE75fyJD9sdx0h6IAAABKnpUWHRyZGtpdFBLTCByZGtpdCAyMDIyLjA5LjEAAHice79v7T0GIOBlgABGIOYDYn4gbmBkY0gAiTGzO2gAaWZmNocMMM2IEADTLOg0BwOYZkJXhyEOtQBGcwMdwMiUwMScwcTMksDCmsHEypbAxq7BxMaRwMGZwMmlwcTJncDNw8DBy8DKmMDNkiDCxMoIVMvKxsbByc3CKr4J6gkw4PttH+Gw8cvq/SBOvZmMw2cRw30gtni7qcMGwcX2IPaC/lP2dyzZHEBso2+X7A4kTAGLf3cvtOfZUQlW/+PHh93NFzaDzXnzitVeaYvxARA7NmfffpdLU8DiaZqMB95pl9mB2BLP4w985fsOZl/f27GfIX4z2Ey3JWf2J1Qbg+1aySBz4PFWEbA5YgB7KUioomVK/wAAAYt6VFh0TU9MIHJka2l0IDIwMjIuMDkuMQAAeJx9U1lOAzEM/Z9T+AKNvGX7pC1CCDGVoHAH/rm/eB5UMoiIpB451vPybHehOC/np49P+jl6XhYi/ufXe6d3Y+blmUKh4/3D40qn693xZjld3tbrK4mTZPjg/sbeXS/PN4vQiSxZbZ0zHSSZm0PjxNsZrkoraXLnpoUOnKRqN5kADRE1NStWET5ptV7rBOcIKCk3zdzgwL1qm8XLiMfJRdkyHCR3aBNc2XDdEc+jQHVrpUyAFcBDmKtlD87O3niWutEF1qwmAs4gxbWB1F9gB5cI1GppGpoULWXGWjiyg640yUpRJjvrDCnIfrDkvaG8aAFaZTNCot/pGcm7URASs2n2GA6QuaNSizGxz8eN5dnqdKvZOTRTK9Mu3a/nXyv1vWTHy3oeSxZXxyo5xMbCeMjYi7h5jB8PKmPKDqljlgppY2COZx9jcYjsm6/xEdk12TeL7pop28d2TZMI47veRBHDJWqES953ZM8/3rc/KPTlC/TZvYMzRzT7AAAA0HpUWHRTTUlMRVMgcmRraXQgMjAyMi4wOS4xAAB4nC2PuQ3DQAwEW3EoAdSB/wPBkQpwEZerAhdvnuCMGHCXw+umub0/++S53fPma7+3a5/0/ry+28FDJUyhB2FxOA8amuEJPZCzRyMciCEmtaCiJpw4jIXIVzAxMhYqZcPuwsEq6b6YEqMYdJkVw0nDko2AB1ZwF3VcXKIXOKQeoIopq4WCSwhOGRL5HBcVfRzRkwuWDf2JVWvDslHtTHshJRksGVTs24cMrWz7tmqJ/nb//gD7iTrPO/9tZAAAAABJRU5ErkJggg==", "image/svg+xml": [ "\n", "\n", "\n", " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", "\n", " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, { "data": { "text/plain": [ @@ -1221,7 +1254,7 @@ " [ 1.01675229e-03, 2.30156728e+00, 1.89444696e-01]])" ] }, - "execution_count": 8, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -1233,8 +1266,10 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": {}, + "execution_count": 11, + "metadata": { + "tags": [] + }, "outputs": [], "source": [ "def show_conformers(molecule, ids):\n", @@ -1262,8 +1297,10 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, + "execution_count": 12, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -1275,7 +1312,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "6e3397b9eee6401692d9b48bbe6830de", + "model_id": "3f26eb12c32f4fe3be3253bc94488c31", "version_major": 2, "version_minor": 0 }, @@ -1312,14 +1349,15 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 507 }, "id": "nt1GMi8mAC3a", - "outputId": "bd4019a7-1684-453c-c14e-7d130fcd8606" + "outputId": "bd4019a7-1684-453c-c14e-7d130fcd8606", + "tags": [] }, "outputs": [ { @@ -1338,6 +1376,17 @@ " [1 0 0 0]\n", " [1 0 0 0]]\n" ] + }, + { + "ename": "AttributeError", + "evalue": "module 'networkx' has no attribute 'from_numpy_matrix'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[13], line 8\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124mMatrix 2:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m, adj_matrix_2)\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# convert adjacency matrices to graphs\u001b[39;00m\n\u001b[0;32m----> 8\u001b[0m graph_1 \u001b[38;5;241m=\u001b[39m \u001b[43mnx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_numpy_matrix\u001b[49m(adj_matrix_1)\n\u001b[1;32m 9\u001b[0m graph_2 \u001b[38;5;241m=\u001b[39m nx\u001b[38;5;241m.\u001b[39mfrom_numpy_matrix(adj_matrix_2)\n", + "\u001b[0;31mAttributeError\u001b[0m: module 'networkx' has no attribute 'from_numpy_matrix'" + ] } ], "source": [ From 917b3fa05560196bc173d4dec42783febc332a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Backenk=C3=B6hler?= Date: Wed, 17 May 2023 15:40:20 +0200 Subject: [PATCH 4/4] T033: re-run --- .../talktorial.ipynb | 51 ++++++++----------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb b/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb index db4b080c..9abbe340 100644 --- a/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb +++ b/teachopencadd/talktorials/T033_molecular_representations/talktorial.ipynb @@ -574,7 +574,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d7666ef2fe1d45ce8022443bccba5a56", + "model_id": "72ac40d0d5fc4b3186e3524a09827b89", "version_major": 2, "version_minor": 0 }, @@ -616,7 +616,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "image/svg+xml": [ "\n", "\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 2, @@ -1064,7 +1064,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "4e2f27249d0547b5861f353078be92d8", + "model_id": "3df2b356f772445eb0cd6f5f403a83ac", "version_major": 2, "version_minor": 0 }, @@ -1312,7 +1312,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "3f26eb12c32f4fe3be3253bc94488c31", + "model_id": "cf72efb0a52f4695a3a1a50df6c12d3b", "version_major": 2, "version_minor": 0 }, @@ -1349,7 +1349,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1376,17 +1376,6 @@ " [1 0 0 0]\n", " [1 0 0 0]]\n" ] - }, - { - "ename": "AttributeError", - "evalue": "module 'networkx' has no attribute 'from_numpy_matrix'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[13], line 8\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124mMatrix 2:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m, adj_matrix_2)\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# convert adjacency matrices to graphs\u001b[39;00m\n\u001b[0;32m----> 8\u001b[0m graph_1 \u001b[38;5;241m=\u001b[39m \u001b[43mnx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_numpy_matrix\u001b[49m(adj_matrix_1)\n\u001b[1;32m 9\u001b[0m graph_2 \u001b[38;5;241m=\u001b[39m nx\u001b[38;5;241m.\u001b[39mfrom_numpy_matrix(adj_matrix_2)\n", - "\u001b[0;31mAttributeError\u001b[0m: module 'networkx' has no attribute 'from_numpy_matrix'" - ] } ], "source": [ @@ -1397,13 +1386,13 @@ "print(\"\\nMatrix 2:\\n\", adj_matrix_2)\n", "\n", "# convert adjacency matrices to graphs\n", - "graph_1 = nx.from_numpy_matrix(adj_matrix_1)\n", - "graph_2 = nx.from_numpy_matrix(adj_matrix_2)\n" + "graph_1 = nx.from_numpy_array(adj_matrix_1)\n", + "graph_2 = nx.from_numpy_array(adj_matrix_2)\n" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -1417,7 +1406,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -1476,16 +1465,16 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'Common arguments : countSimulation=0 fpSize=2048 bitsPerFeature=1 --- MorganArguments includeChirality=0 onlyNonzeroInvariants=0 radius=3 --- MorganEnvironmentGenerator --- MorganInvariantGenerator includeRingMembership=1 --- MorganInvariantGenerator useBondTypes=1 useChirality=0'" + "'Common arguments : countSimulation=0 fpSize=2048 bitsPerFeature=1 includeChirality=0 --- MorganArguments onlyNonzeroInvariants=0 radius=3 --- MorganEnvironmentGenerator --- MorganInvariantGenerator includeRingMembership=1 --- MorganInvariantGenerator useBondTypes=1 useChirality=0'" ] }, - "execution_count": 12, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -1497,7 +1486,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -1506,7 +1495,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1530,7 +1519,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -1544,7 +1533,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -1566,7 +1555,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -1576,7 +1565,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 22, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1597,7 +1586,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAB0CAYAAACv3skgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAOG0lEQVR4nO3de2yTZf/H8U+Brcyla5hz68rq0hiMxk0SB8IWTkGpLJmA/CEKWSBBI8KWLGCMhCdhml+AkDhJQDAagnjA8Q8oiWRaHsYEtynPHOGkhAR0Q1any+jGwY3D9fvj9/POU8ZBcNt9t7xfyZ2s1/Vtd135cq+f3G2pyxhjBAAA4CBD7F4AAADA9QgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcYbZvYC7ce3aNZ09e1Yej0cul8vu5QAAgL/BGKPu7m75/X4NGXLrayRxGVDOnj2rQCBg9zIAAMBdaG1tVU5Ozi1r4jKgeDweSf+3wbS0NJtXAwAA/o6uri4FAgHrefxW4jKg/PWyTlpaGgEFAIA483fenhGXAWWg/HH+T435n3/fcO7riokKrds/yCvCQNr/+hRNXLvP7mUA/c5J/7b/86+nbvp3Nd7dC88Lx996Rvcl2xMV+BQPAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwnDsKKKtXr9bYsWPl8XiUmZmpWbNm6cSJEzE1xhhVVlbK7/crJSVFU6ZM0bFjx2Jqenp6VF5eroyMDKWmpmrGjBk6c+bMP98NAABICHcUUOrq6rRkyRI1NjYqHA7rypUrCoVCunDhglWzdu1aVVVVacOGDTp48KB8Pp+mTZum7u5uq6aiokI7d+5UdXW1Dhw4oPPnz6ukpERXr17tv50BAIC4NexOimtqamJub9myRZmZmWpqatKkSZNkjNG6deu0YsUKzZ49W5K0detWZWVladu2bXrllVcUjUa1efNmffzxx3r66aclSZ988okCgYD27NmjZ555pp+2BgAA4tU/eg9KNBqVJKWnp0uSTp8+rUgkolAoZNW43W5NnjxZ9fX1kqSmpiZdvnw5psbv9ysvL8+quV5PT4+6urpiDgAAkLjuOqAYY7R06VJNmDBBeXl5kqRIJCJJysrKiqnNysqy5iKRiJKTkzVixIib1lxv9erV8nq91hEIBO522QAAIA7cdUApKyvT4cOH9dlnn/WZc7lcMbeNMX3GrnermuXLlysajVpHa2vr3S4bAADEgbsKKOXl5dq1a5dqa2uVk5Njjft8PknqcyWkvb3duqri8/nU29urzs7Om9Zcz+12Ky0tLeYAAACJ644CijFGZWVl2rFjh/bu3atgMBgzHwwG5fP5FA6HrbHe3l7V1dWpqKhIklRQUKCkpKSYmra2Nh09etSqAQAA97Y7+hTPkiVLtG3bNn3xxRfyeDzWlRKv16uUlBS5XC5VVFRo1apVGjVqlEaNGqVVq1bpvvvu09y5c63ahQsXatmyZbr//vuVnp6u1157Tfn5+danegAAwL3tjgLKpk2bJElTpkyJGd+yZYsWLFggSXr99dd16dIlLV68WJ2dnRo3bpy+/vpreTweq/6dd97RsGHD9Pzzz+vSpUt66qmn9OGHH2ro0KH/bDcAACAh3FFAMcbctsblcqmyslKVlZU3rRk+fLjWr1+v9evX38mvBwAA9wi+iwcAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADiOrQFl48aNCgaDGj58uAoKCrR//347lwMAABzCtoCyfft2VVRUaMWKFWpubtbEiRNVXFyslpYWu5YEAAAcwraAUlVVpYULF+qll17So48+qnXr1ikQCGjTpk12LQkAADiELQGlt7dXTU1NCoVCMeOhUEj19fV96nt6etTV1RVzAACAxOUyxpjB/qVnz57VyJEj9e2336qoqMgaX7VqlbZu3aoTJ07E1FdWVurNN9/s8zjRaFRpaWkDvl4AAPDPdXV1yev1/q3nb1vfJOtyuWJuG2P6jEnS8uXLFY1GraO1tXWwlggAAGwwzI5fmpGRoaFDhyoSicSMt7e3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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAB0CAYAAACv3skgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAOG0lEQVR4nO3de2yTZf/H8U+Brcyla5hz68rq0hiMxk0SB8IWTkGpLJmA/CEKWSBBI8KWLGCMhCdhml+AkDhJQDAagnjA8Q8oiWRaHsYEtynPHOGkhAR0Q1any+jGwY3D9fvj9/POU8ZBcNt9t7xfyZ2s1/Vtd135cq+f3G2pyxhjBAAA4CBD7F4AAADA9QgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcQgoAADAcYbZvYC7ce3aNZ09e1Yej0cul8vu5QAAgL/BGKPu7m75/X4NGXLrayRxGVDOnj2rQCBg9zIAAMBdaG1tVU5Ozi1r4jKgeDweSf+3wbS0NJtXAwAA/o6uri4FAgHrefxW4jKg/PWyTlpaGgEFAIA483fenhGXAWWg/HH+T435n3/fcO7riokKrds/yCvCQNr/+hRNXLvP7mUA/c5J/7b/86+nbvp3Nd7dC88Lx996Rvcl2xMV+BQPAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwHAIKAABwnDsKKKtXr9bYsWPl8XiUmZmpWbNm6cSJEzE1xhhVVlbK7/crJSVFU6ZM0bFjx2Jqenp6VF5eroyMDKWmpmrGjBk6c+bMP98NAABICHcUUOrq6rRkyRI1NjYqHA7rypUrCoVCunDhglWzdu1aVVVVacOGDTp48KB8Pp+mTZum7u5uq6aiokI7d+5UdXW1Dhw4oPPnz6ukpERXr17tv50BAIC4NexOimtqamJub9myRZmZmWpqatKkSZNkjNG6deu0YsUKzZ49W5K0detWZWVladu2bXrllVcUjUa1efNmffzxx3r66aclSZ988okCgYD27NmjZ555pp+2BgAA4tU/eg9KNBqVJKWnp0uSTp8+rUgkolAoZNW43W5NnjxZ9fX1kqSmpiZdvnw5psbv9ysvL8+quV5PT4+6urpiDgAAkLjuOqAYY7R06VJNmDBBeXl5kqRIJCJJysrKiqnNysqy5iKRiJKTkzVixIib1lxv9erV8nq91hEIBO522QAAIA7cdUApKyvT4cOH9dlnn/WZc7lcMbeNMX3GrnermuXLlysajVpHa2vr3S4bAADEgbsKKOXl5dq1a5dqa2uVk5Njjft8PknqcyWkvb3duqri8/nU29urzs7Om9Zcz+12Ky0tLeYAAACJ644CijFGZWVl2rFjh/bu3atgMBgzHwwG5fP5FA6HrbHe3l7V1dWpqKhIklRQUKCkpKSYmra2Nh09etSqAQAA97Y7+hTPkiVLtG3bNn3xxRfyeDzWlRKv16uUlBS5XC5VVFRo1apVGjVqlEaNGqVVq1bpvvvu09y5c63ahQsXatmyZbr//vuVnp6u1157Tfn5+danegAAwL3tjgLKpk2bJElTpkyJGd+yZYsWLFggSXr99dd16dIlLV68WJ2dnRo3bpy+/vpreTweq/6dd97RsGHD9Pzzz+vSpUt66qmn9OGHH2ro0KH/bDcAACAh3FFAMcbctsblcqmyslKVlZU3rRk+fLjWr1+v9evX38mvBwAA9wi+iwcAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADgOAQUAADiOrQFl48aNCgaDGj58uAoKCrR//347lwMAABzCtoCyfft2VVRUaMWKFWpubtbEiRNVXFyslpYWu5YEAAAcwraAUlVVpYULF+qll17So48+qnXr1ikQCGjTpk12LQkAADiELQGlt7dXTU1NCoVCMeOhUEj19fV96nt6etTV1RVzAACAxOUyxpjB/qVnz57VyJEj9e2336qoqMgaX7VqlbZu3aoTJ07E1FdWVurNN9/s8zjRaFRpaWkDvl4AAPDPdXV1yev1/q3nb1vfJOtyuWJuG2P6jEnS8uXLFY1GraO1tXWwlggAAGwwzI5fmpGRoaFDhyoSicSMt7e3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", "text/plain": [ "
" ]