Skip to content

Instantly share code, notes, and snippets.

@greglandrum
Created June 22, 2022 04:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greglandrum/2622118cd1384a881f429adbd7b68ddb to your computer and use it in GitHub Desktop.
Save greglandrum/2622118cd1384a881f429adbd7b68ddb to your computer and use it in GitHub Desktop.
3D MCS.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"id": "c9b20c54",
"cell_type": "markdown",
"source": "One of the \"underdocumented\", and perhaps lesser known, features of the RDKit MCS code is the ability to take atomic coordinates into account when generating the MCS."
},
{
"metadata": {
"trusted": true
},
"id": "78e669f1",
"cell_type": "code",
"source": "from rdkit import Chem\nfrom rdkit.Chem import rdDistGeom\nfrom rdkit.Chem import rdFMCS\nfrom rdkit.Chem import Draw\nfrom rdkit.Chem.Draw import IPythonConsole\nfrom rdkit.Chem import rdDepictor\nrdDepictor.SetPreferCoordGen(True)\nIPythonConsole.ipython_3d = True",
"execution_count": 4,
"outputs": []
},
{
"metadata": {},
"id": "f5898f49",
"cell_type": "markdown",
"source": "Let's start with an artifical example as a demo:"
},
{
"metadata": {
"trusted": true
},
"id": "04216357",
"cell_type": "code",
"source": "m1 = Chem.MolFromSmiles('c1ccccc1-c1c(C(F)(F)F)cc(-c2c(C(F)(F)F)cccn2)cc1')\nIPythonConsole.drawOptions.addAtomIndices = True\nm1",
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 5,
"data": {
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x1b7485d4c40>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "c6f32518",
"cell_type": "markdown",
"source": "Generate a conformer:"
},
{
"metadata": {
"trusted": true
},
"id": "4dcf2d91",
"cell_type": "code",
"source": "m1 = Chem.AddHs(m1)\nrdDistGeom.EmbedMolecule(m1,randomSeed=0xf00d)\nm1 = Chem.RemoveHs(m1)",
"execution_count": 6,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"id": "94a9bd66",
"cell_type": "code",
"source": "m1",
"execution_count": 7,
"outputs": [
{
"output_type": "display_data",
"data": {
"application/3dmoljs_load.v0": "<div id=\"3dmolviewer_16558239537993562\" style=\"position: relative; width: 400px; height: 400px\">\n <p id=\"3dmolwarning_16558239537993562\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://3dmol.org/build/3Dmol.js');\n}\n\nvar viewer_16558239537993562 = null;\nvar warn = document.getElementById(\"3dmolwarning_16558239537993562\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_16558239537993562 = $3Dmol.createViewer($(\"#3dmolviewer_16558239537993562\"),{backgroundColor:\"white\"});\nviewer_16558239537993562.zoomTo();\n\tviewer_16558239537993562.removeAllModels();\n\tviewer_16558239537993562.addModel(\"\\n RDKit 3D\\n\\n 26 28 0 0 0 0 0 0 0 0999 V2000\\n 3.4911 -1.0942 -0.1991 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.8522 -1.1869 -0.2997 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.6169 -0.0602 -0.0838 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.0614 1.1583 0.2305 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.6681 1.2379 0.3304 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.8866 0.1319 0.1193 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.4247 0.1260 0.1698 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.6768 0.7463 -0.7960 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.2734 1.4044 -1.9689 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.2159 1.8964 -2.7602 F 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.0572 2.4923 -1.6877 F 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.9881 0.5359 -2.7614 F 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.7184 0.7098 -0.6417 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3370 0.0898 0.4144 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.7886 0.1797 0.4716 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.6155 -0.9186 0.4018 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.1246 -2.3148 0.3223 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.2540 -3.1403 0.1540 F 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.5951 -2.7444 1.5418 F 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2747 -2.4997 -0.7293 F 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.9926 -0.6664 0.3906 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -5.4889 0.6041 0.4455 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.6285 1.6642 0.5132 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.3285 1.4255 0.5241 N 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.5683 -0.5082 1.3431 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.7947 -0.5014 1.2392 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 2 0\\n 6 7 1 0\\n 7 8 2 0\\n 8 9 1 0\\n 9 10 1 0\\n 9 11 1 0\\n 9 12 1 0\\n 8 13 1 0\\n 13 14 2 0\\n 14 15 1 0\\n 15 16 2 0\\n 16 17 1 0\\n 17 18 1 0\\n 17 19 1 0\\n 17 20 1 0\\n 16 21 1 0\\n 21 22 2 0\\n 22 23 1 0\\n 23 24 2 0\\n 14 25 1 0\\n 25 26 2 0\\n 6 1 1 0\\n 26 7 1 0\\n 24 15 1 0\\nM END\\n\",\"sdf\");\n\tviewer_16558239537993562.setStyle({\"stick\": {}});\n\tviewer_16558239537993562.setBackgroundColor(\"0xeeeeee\");\n\tviewer_16558239537993562.zoomTo();\nviewer_16558239537993562.render();\n});\n</script>",
"text/html": "<div id=\"3dmolviewer_16558239537993562\" style=\"position: relative; width: 400px; height: 400px\">\n <p id=\"3dmolwarning_16558239537993562\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://3dmol.org/build/3Dmol.js');\n}\n\nvar viewer_16558239537993562 = null;\nvar warn = document.getElementById(\"3dmolwarning_16558239537993562\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_16558239537993562 = $3Dmol.createViewer($(\"#3dmolviewer_16558239537993562\"),{backgroundColor:\"white\"});\nviewer_16558239537993562.zoomTo();\n\tviewer_16558239537993562.removeAllModels();\n\tviewer_16558239537993562.addModel(\"\\n RDKit 3D\\n\\n 26 28 0 0 0 0 0 0 0 0999 V2000\\n 3.4911 -1.0942 -0.1991 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.8522 -1.1869 -0.2997 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.6169 -0.0602 -0.0838 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.0614 1.1583 0.2305 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.6681 1.2379 0.3304 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.8866 0.1319 0.1193 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.4247 0.1260 0.1698 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.6768 0.7463 -0.7960 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.2734 1.4044 -1.9689 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.2159 1.8964 -2.7602 F 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.0572 2.4923 -1.6877 F 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.9881 0.5359 -2.7614 F 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.7184 0.7098 -0.6417 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3370 0.0898 0.4144 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.7886 0.1797 0.4716 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.6155 -0.9186 0.4018 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.1246 -2.3148 0.3223 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.2540 -3.1403 0.1540 F 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.5951 -2.7444 1.5418 F 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2747 -2.4997 -0.7293 F 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.9926 -0.6664 0.3906 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -5.4889 0.6041 0.4455 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.6285 1.6642 0.5132 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.3285 1.4255 0.5241 N 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.5683 -0.5082 1.3431 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.7947 -0.5014 1.2392 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 2 0\\n 6 7 1 0\\n 7 8 2 0\\n 8 9 1 0\\n 9 10 1 0\\n 9 11 1 0\\n 9 12 1 0\\n 8 13 1 0\\n 13 14 2 0\\n 14 15 1 0\\n 15 16 2 0\\n 16 17 1 0\\n 17 18 1 0\\n 17 19 1 0\\n 17 20 1 0\\n 16 21 1 0\\n 21 22 2 0\\n 22 23 1 0\\n 23 24 2 0\\n 14 25 1 0\\n 25 26 2 0\\n 6 1 1 0\\n 26 7 1 0\\n 24 15 1 0\\nM END\\n\",\"sdf\");\n\tviewer_16558239537993562.setStyle({\"stick\": {}});\n\tviewer_16558239537993562.setBackgroundColor(\"0xeeeeee\");\n\tviewer_16558239537993562.zoomTo();\nviewer_16558239537993562.render();\n});\n</script>"
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 7,
"data": {
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x1b74ac30b80>",
"text/html": "",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAIAAADCEh9HAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3dd1xTV/sA8OcGEkLYyJLtqAoiyHBVqaMWta5adytqHdTdOqqvWsXXYqFQrVJrxUEdFRStFZQColQqIiooCEGUGRBkBghhZd3fH+c1vzSIMpJcxvl+/PhJTpJ7zpX4cO495zyHIEkSMAzDsI6iUd0ADMOw7g2HUQzDsE7BYRTDMKxTcBjFMAzrFBxGMQzDOgWHUQxrq6qqKjSzpaioqK6ujurmYF0FDqMY1iZ//vnnzJkz6+rqTp06FRoaunbt2vLycqobhXUJOIxiWJvMmTNn/PjxAHDv3r3t27cvX748NjaW6kZhXQIOoxjWPgRBAACDwRCJRFS3BesScBjFsDYpKSkpLS3NyMjo379/eHh4aGgo6pxiGIEXg2JYW+Tl5eXl5dHpdHd397i4OFtb24EDB1LdKKxLwGEUwzCsU9SpbgCGdUUxXG5AUZH0qQmDEWJnR2F7sK4Mh1EMe4NmkuxDpx977z30lEYQ1LYH68pwGMWwN1MjiD50OtWtwLoBHEYx7M2aJJKn9fXosQWDgUMq1hocRjHszcoEgh8KC9HjZaamHoaG1LYH67JwGMWwN7NhMi/gYSWsDfD0ewzDsE7BYRTDMKxT8EU9hv2LQCIBAA2C0FFTo7otWPeAVzFh2L/8UFj4mM/37d+/P5NJdVuw7gH3RrEuJCws7MmTJx4eHhMnTqSkAYm1tVcqKugEIZRIKGkA1h3he6NYVyEQCKKionx9fY8fP05JAyqEwr0FBSTABguLwSwWJW3AuiPcG8W6CgaD0dzcHBAQwOFw5F6KrKoqam6WPnXW1h6lq6vY2iUA3gUFNSLRaF3dxaamij041rPhMIp1ISEhIXw+n81my5VHcrkA4KSlhZ4qY337+dLShzyegbr6PltbvH4eaxccRlWtsrIyISFh9OjRxsbGd+7c0dHRGTlyJNWN6iqOHTvG4XA2bNjQ8qXRurpLldZJfNbQcLykhADYa2trhBd9Yu2Ew6iqXblyxdXVdd26devWrSMIIjg4WFNTc9iwYVS3q0tYt26d6ittlEi+zc8XkuRnJibuenqqbwDW3eEwqmpr1qwhSVJTU3Py5MkA8PDhQ6pb1D2ElpVFc7nocdCgQQqc1PlDYSGnqWmApuZ6CwtFHRPrVXAYVTWSJH/44Ye1a9cCwP3798ViMe6KtsUkA4Npr5ODsGi0KqGQIAhD9c5+gWNzc2/U1DBpNL/+/TVoeOIK1hH4e6NqixYtKioqyszMvHTp0rZt20xMTF68eEF1o7oBUwbDQUsL/VEjiOMlJTOePt1bUFDY1NThYxYUFMx3dTWPidlqbt4PT7bHOgr3RlXNz88PrRzT1tYeMWIEABgbG1PdqG6GBOCLxSKS/KuqKobLnWxgsMzUdNC7ZnoWFRVpaWkZvu7SikSizz//vLa2Vj05ec6uXcpvNdZj4TCqav369ZM+NjExyc/P19TUVHalGRkZlZWV48ePr66ufvDgwejRow0MDJRdqfIQAL79+xc1N18qL79aWRnD5cZwuU7a2svMzD5oZYzo0qVLbDa7sLBw165dgwYNAoD9+/cnJiZaWFicPHlStc3Hehq8pp4yOTk5/v7+Fy9ebGpqeu+991xdXYcOHWpvbz9y5EhThc7s4XA4UVFRfD7f2Ni4oaHBwcHh+PHjFy5cUGAVyva4rq4PnW7zpuvucoHgQnn5n5WVDWIxANhraS0zNZ2ory+3e9KNGzfu3LlDp9M3bNhgYWFx9+7diRMnkiQZGxs7adIkFZ0G1kPhMEqNurq60aNHZ2Zm6uvr19bWyv0UrKysHB0dHR0dhw8fPnz4+wMGWL59XPrpU/DxgU2bYNy4/5Xs3w9ubvDxx///nvj4+OfPny9fvvzgwYNMJnPz5s0KPykK1YvFEVVV50pLK4RCK4JIX7hw44YNXl5e0p5+UFCQvr5+QkLCkiVLBg8ePHz4cA6Hs3v3bh8fH2pbjvUEJKZyEolk3rx5AGBnZ1dbW8vj8ZKTk8+ePbtp06axY8dqa2vL/oAmTPibwSDt7UlPT/LwYTI2lqyokD9gTAxJo5FDhpBNTf8r+fBD8qef/v8NZWVla9eubWhokEgkOTk5q1atUtGpqlaTWHy5vNzT3x/905mZmfn5+dXU1JAkuWPHjsjISH9///Dw8EWLFgHAiBEjBAIBtQ0uLy9/8uQJtW3AOg/3Rimwd+/e7777ztDQ8MGDBwMHDpR7VSKR5Obmpr0mEh2LirKUe0+/fuDkBE5O4OgITk6QkwNffgnW1uDhAd9+CwAweTLMmAFffw0AwGazV65cuWHDBnt7++joaEtLy/j4+NOnT6viVKkgkUgiIyN9fHzQnFwdHZ0vvvhi8+bNz549MzAwSE9P9/Ly0tbWfvz48Xuv90+mysaNGxsaGnrwz6K3oDqO9zpXr14lCEJNTe2vv/5q40dqa8m7d8mgIHLTJnLsWJLFIgH+/4+ODhkdTdrYkI8fk5qaZFYWSf67N8rj8XJzc3NzcysqKhoaGrKysoRCoXJOrmu5e/fujBkz0PecwWB4enpGR0fr6OgAwO+//05168izZ8/GxsauXbtW2RWx2exXr14pu5beDIdRlWKz2bq6ugDwk+wldzsJhSSbTYaGkjt2kNOmkZ98QsbEkDY2JEmSXl6khwdJtrio780ePXo0b948Go0GAARBAICnpyfVjSKrq6tHjRoVFBQ0fvx4pca4sLCwsLCwOXPmVFdXK6+WXg5PeFIdLpc7a9YsHo/n6en5Nbrefu3evXsNDQ1OTk4mJibvPI66Otjbg709LFr0v5KbN//3wNcXhgyBP/5QcMu7NTc3t8uXL7948cLDw6OwsBAALC3lb5KoHovFCgkJAYB//vlHX19feRXNnz8/Pj7exMRE63V+LEzhcBhVEZFINH/+/NzcXBcXl6CgILlXAwICwsPDAcDAwMDe3t7V1RXNf3JwcNDQ0Gh7LYaG8MMPsH07mJsrsvHdHUmSvr6+HA5HT0+Pz+f7+fk5OTktXLiQwiYxGIz+/fsDwOHDh5lKXkBlZWVFp9OrqqrMzMyUWlGvhcOoimzdujUuLs7MzCw8PLzlfHsXF5eqqqr09PTq6up79+7du3cPlU+YkFFePtTVFYYOBXt7GDUK3tlbXb4cTp+GxESYO1cZ59EtffPNN2fOnGGxWFFRUffv39+6desXX3wxYMAANzc3qpsGRkZGPB4vJiZGT09PV1cX/a2rq4vu4XbelStXdHV1uVyuWCxWyAGxlvBIvSqcO3du2bJldDr99u3b7u7ub3lnfn4+GqB/+vRpamoqi5WWkfGv+U9WVuDkBFu2gOxmRTdvgpcXFBT872lGBri4gL8//PvOQS8VEBCwfft2Op1+/fr1KVOmAMDq1atPnTplbW398OFDxa506IDLr7V8iclkGhgYGBgYaGpqSh/Lkivv06dPy2sXgUDw6NEjW1tbC5y/SmlwGFW6pKSkCRMmNDc3nzhxYvXq1e36bF0dvHgBbDakpEBKCqSlAZ8PABAeDrNm/f/bGhuhogKsrf+/JDUVCAKcnBRyBt1YSEgIGlA6c+bM0qVLUaFQKJw8efI///zz/vvvx8XFteu2iWK9fPnSycmJy+WOHDlSV1eXx+OhecQ8Hq++vr4DB2SxWNIurb29/cmTJ+k4C7Xy4TCqXKWlpW5ubsXFxZs2bTpy5EgnjyaRQE4OpKXBxIlgZNTq2/78ExYvhunTe/tY061bt6ZPny4QCA4dOiS3aqusrGzEiBFFRUXLli07c+YMJc2TSCQeHh63b9+eOnXqX3/9RRDye5c0NjZWv9bU1CT79I2FVVVVAoFA+nETExM1NTW0Uk61Z9b7UDpPoIdrbGwcNWoUALi7uzc3N6us3rIyUkODVFMj8/JUVmeX8/DhQ7QebOfOnW98Q0pKCovFYuroXExPV3HbkICAAAAwNjZW4ISnurq64uLizMzMpKQk9N1DGcUwpcJhVIlWrlwJADY2NuXl5SqueskSEoDctk3F1bYqMTGxsrKyubk5IiIiMTFRUYf19fXdsWPHypUrm6TLYEmSJMns7Gw0dWzJkiUSiaS1j/9x7dq8R49GpKTcr61VVJPaKD09nclkEgRx/fp1JVURExMDAKampo2NjUqqAkNwGFWWn376CQA0NTWTk5NVX3tKCglA6uuTdXWqr1xeQkKCl5dXQkJCdHT0vXv3Vq1alYXWWimCWCzeuHGjbElxcbGtrS0AzJgx453rtX4tLnZNTv7gyZNcFcaaxsZGtOXB+vXrlVqRs7MzAAQHByu1FgyHUaW4deuWuro6QRAXL16kqg3vv08CkMeOUVX/v/z+++8JCQno8Z49e7KzsxV15KtXr0ZHR0uf1tTUODk5AcCoUaP4fP47Py4hyf/k5romJ3+akcETiRTVqrdDW5/a2dnV19crtaLz588DwJAhQ8RisVIr6uVwGFW8/Px8IyMjANizZw+Fzbh0iQQgBw0iW7+oVR1pGL1169aPP/6owCN7eXlJL9sbGhrQfDJ7e/uqqqo2HqFeLF7EZrsmJ69/8UKk/H+smJgYgiDodPrDhw9ly7du3RoVFaXYugQCgbW1NQBERkYq9siYLBxGFayurg5dr02dOlWkqt7NGwmFpJUVCUDGxFDYCpIkyby8vJUrV27fvj0oKGjChAlBQUE5OTkKOXJhYeGVK1fQY5FI9OmnnwKAhYUFh8Np13FKmps/Sk11TU7+qahIIQ1rTUVFRd++fQHghx9+kC2/dOkSAGhpaXXyNnpWVtb27dtlv3g//vgjAEyYMKEzh8XeDodRRZJIJAsWLACAwYMHozSX1PL1JQHIjz+muBnNzc1cLpfL5fJ4PPRAUfMWBAIBOmBBQYGnpycA9OnTJzMz850fzMnJ2bFjR0NDA5vN3r59O0mSqXV1Y1JSXJOT/2yZz1VxUJ5Zd3d32Uj38uVLtEPU8ePHO3NwiUQyePBgALh06ZK0kMfjoQlPSUlJnTk49hZ4MWi7CYXCnJycQYMGqamplZWVGRkZqb3OTb9///6wsDADA4Pr16/rtbIpkCp9+SX4+EBUFGRlwZAhlDWDwWAwGAz0mCTJxMRENpstEonq6uoAoL6+XiAQSCSS2tpaAGhoaEBBtqamBgDQ1EgAQL+WmpubGxoaAKC2tlYikcjW0qdPH3V19T///NPOzu6dTWpsbGxsbGxubhYKhRUVFQDgpK39jbX1AQ7nj4oKZ21tocx8amM6Xa/TOzkDwIkTJ65cuaKvr3/+/Hnpd0YikSxdupTL5U6bNs3Ly6szxycIYvPmzWvWrAkICEC/zgFAR0fHy8vL39//p59+unjxYmfPAXsjisN4N7R79+7Tp097eXlFRER88MEHpaWlqPzatWs0Go1Go3Wp+1CrV5MA5IYNXWKEoba2duzYsdOmTVPUt5dOp6N1kJaWlmiTvvHjx1e0rTu5c+dOlDtONuPntYqKepFoIZs9NS1tXkYG+nOjsrLz556Tk4OWyYeEhMiW+/v7A4CJiYn0i9QZTU1NKP/InTt3pIUvX75kMBhqamqKupeCycG90XZDu/fcunVr5syZKSkpqDArK2vZsmUSiSQgIOBj2S2QqLZpE5mdvSciIsTH5wm1HWQejzdlypSkpKS+ffuuWrWKTqej1KssFktDQ4MgCHTtidaJAwAKixoaGiwWCwD09PRoNBqDwUAJ33R1ddX+vUFVamrq7Nmz4+PjR40aFRERMXTo0A40cvbrxWEbLCym9+nTqROWgTZzrqur8/T0XLx4sbQ8IyNj7969BEGcPn1aIav7NTQ01q5d6+3tHRAQMH78eFRoYWGxePHis2fPHjlyJDAwsPO1YPKojuPd0qFDh27fvk2SpLe3N+pEXL58mcFgzJs3j+qmvcGHH34IAIcOHaKwDbW1taNHjwYAa2vrPKUtriopKRk5ciQAaGtrX7t27S3vTEhI+PzzzwMCAm7durVgwYKgoCDZVxey2QrpgUrt2rULAKysrLhcrrRQSbNHq6qqtLS0CILIyMiQFqanpxMEwWKxKhV6XhiCw2j7iESiNWvWeHt7x8fH5+fne3p6/vHHHyRJzp8/n/JQ1ZqIiAgAsLW1pWrmgGpiKNLU1IRSkBAE4e3t3bGDLGSzt+fmnn716vSrV8GdXqmZkJCgpqZGo9FkL7RJkly/fj0oZ/YoOvKKFStkC9G9FB8fH8XWhZE4jLaXQCCIjY2NjY1FYTQ2NjYuLo4kybCwMABwdHSUfXNpaen+/fuPHDlCUWP/RyKRDBo0CADe3kFTEj6f/8EHH6gmhiISicTPzw/tGrJ48eKGhob2HmEhm73xxYtDRUWHiooOd24KVE1NDVpS9e2338qWtzZ7VCHy8vLU1NQ0NDSKi4ulhbdv3wYAExOTDvyDYG+Hw6hiNDc3o0Xcjx49khbevXsXAMzMzCjfQu7w4cMAMHHiRBXXq7IY2nIGVWRkJLr3OmbMmNZGb9LS0iIiIlp+tmMX9U+ePElOTpa9bCdJ8vPPPwcAV1dX2c2cpbNH/f3921tLG6GZVXJpWdAdjxMnTiip0l4Lh1GF2bp1KwCsWbNGttDe3h4AIiIiqGoVwuPx0PhSamqqyip9SwzNz8//9ddfFVVRfn6+ra3t1atX5crT0tJQT9DS0rJlZoNr1675+/snJia2/CXXgTAqEonmzJkTFhZWUlIiLbxy5QoAaGlpyeUQmDVrFrSYPapYaHNpPT29WpmsK6GhoQAwaNAgvDZUsXAYVZisrCyCIHR1dWWXcqNkaLNnz6awYcimTZsAYOXKlaqpTjaG5ubmyr6Eoh4obpdjb29vAKDRaD4+PnL5nCoqKtCAtZaWllycXb58+cGDB318fGT7iUgHwmhJScmsWbMCAwOlNzqLiorQpHq53t/x48cBQF9fv71LrdoL/fvL7kErEonQBlDh4eFKrbq3wWFUkcaOHQsAv/32m7SkoqJCQ0NDXV1d9i4VJbKzs2k0moaGRllZmbLr4vP5KHi1jKEcDgf9Tx4zZkyt4tLTHT58GM1/WrBggdyITVNT0/Lly6WDTtI4u3Tp0vr6+nPnzrVMVXeoqCiFx2tvG2pra9PT09E9ULFYPGnSpJa/QbOzs1EW1NDQ0PYev73Q0KKlpaXs7wl0e2fcuHHKrr1XwWFUkYKDg1t+R9Fdqu+//56qVknNmDEDAA4cOKDUWlQfQ5GoqCh048LZ2bmwsFDu1ZZx9sqVK3v27PH09CwoKOh87fn5+b/99tvRo0fRL1E/Pz9oMaleKBSiVMpLly7tfI3vJJFI0D2lCxcuSAv5fH6fPn0AQIFZXzEcRhWpoaEBzSFns9nSwqioKADo37//W/IHK1x9fX3LAdnY2FgAMDY2joqKSk5OzsnJqaysVOzwF1UxFHn+/DlaVG5ubt5yBLxlnC0tLW1LMr02Sk1Nffz4MUmSjx8/ZjAYBEHcuHFD9g07d+4EgH79+inp9Fs6efIkADg5Ocl+99Ak1rlz56qmDb0B3otJwdasWRMUFLRt2zZ0VxQAJBJJ//79ORxOXFzcRNn9PJVpxYoVjx8/vnz58nvvvSctFAgEffv21dTULC4uln3zO3eglGVoaNjavur19fXTp0+Pj4+3trb++++/UdBECgsLJ06cmJeXN2bMmOjoaDSGrgxcLnf+/PlxcXFMJvPkyZNLliyRffXFixezZs16/vy5ubl5QEAAirkAIBQK+WizwDZrbGxsampqWS4UCr29vXNycuR230pISEBpluLi4qTri5Stubm5X79+r169unXrFlqFAQDl5eU2NjYCgSArK0v264F1HNVxvKdBI6RGRkay21qgMZDPP/9cNW0ICQkBACaTKTcuv2XLFgAwNDScOHGii4tL//79DQwM0PzKdtHU1Ozbt6+dnd3o0aOnTp26aNGiL7/8ctu2begS0sbGRm5cvrCwUNn9UFlCoRDlRSYIYseOHXKj0lVVVejKGt2jVAYrKyszMzO5q4Hff/+dxWLJzR5VgQMHDgDA1KlTZQvR9jayyQSwzsC9UcVzdnZOTU29fPkyuisKAC9fvrS1taXT6cXFxWj0VnnYbPaoUaPq6+uDg4O/+OILafmNGzdmzZqlpqZ2584dNBQm9c4dKGWhNHdvrHrgwIF5eXnnzp1DkyWRoqKiiRMn5ubmurq6xsbGopXyKnDixIkNGzYIhcK5c+eePXsWrcQHgKysrEmTJr169crGxsbo9Qp6Op3e3qgqXfsvp7a2NjY2lslk5ufnyy2Tz87ORl+DDp1QB1VXV1tbW/P5/CdPngwfPhwVPn/+3N7eXkNDg8PhGBsbq7I9PRPVcbwHQtkf5H7/T506FQACAwOVWjWfz0ddwsWLF8uWczgcNLBw8OBBhdTy8uXLjIyMhISEyMjICxcu/PLLLwcOHHBzcwMAOp0unWRTWFg4YMAAAHB1dZWbl64CMTEx6Fa1s7MzmimRlZVlbm4OAB988IEC74rKmT17NgB88803Sjp+e3311VfQYlxr5syZALBv3z7ZwoqKCmpzjXdTOIwqXnV1NYvFotFoskPAly9fBoBhw4Ypteply5YBwODBg3ky83UEAsGYMWMAYMaMGQoc5srLy9u5cyeXy3327Nm+ffsCAwNFIpG3tze6SzB79uyampq9e/cCwKhRo6hKYp2dnW1nZ2dnZ1dTU6OaGEqS5OPHjwmC0NLSUsHcsrbIz89fuHCh7Po6kiTj4+MBoE+fPtJ/Cj8/v4MHD3722WdUtLF7w2FUKdBVrWxqDIFAgBJBKmMNNXL69GkA0NLSkp0nQL7ujFhZWSk2u09mZubu3bsLCwsfP34skUjWrVuHYmVERATqAw4ePDg9Pd3f35/ajQC4XC6Hw5HG0I8++kgFi8rR3DK5tZhdjZmZ2bRp0+TSs8pdx2BtgcOoUsTFxQGApaWl7CXStm3bAODLL79URo3p6ekoL+eZM2dkyyMiIlAKjHv37im80u+//x7NHPrll18WLFgg7eq+ePECpYDT1taW3dCCKllZWWgNu2piKEmSycnJBEFoa2t3cm8l5UFzofr06SN74XLz5s2ff/6ZwlZ1U3iISSlIkhw8eHB2dnZUVBS6KwoAz58/t7Oz09LSevXqlWKHievr60eMGPHs2bMVK1agPinC4XBcXFy4XO7hw4dRn1RKKBQSBKGuro4+TqfTpft8tJ2vr++SJUtMTEw0NDQOHDiwcOHCgQMHopeamprWrVv322+/AYCXl9fRo0ffPrTC4/HQJAfZErFY/M42iEQiY2PjyZMnt/YG6ZiSh4fHtWvXNDU123RunTZt2rTo6Ohvv/32u+++U02NbVdQUODk5MTj8UJCQqRppE+ePMnhcFasWGFra9uB+Ru9GtVxvMf6/vvvAUAukfO4ceMAIDg4WLF1oQybQ4cOlV0HKRAIUJbPlrdEU1NTFy1ahNaYV1VVvf/++9L9Ndvu4cOHy5cv/+9//3vx4sU9e/Zs2bKl5eL0oKAgFJ3d3d1lc3a09OjRow5/h+fPn9/aYZ89e4b6oR4eHipOEHf//n0A0NXVVf3Y2ttJJBIPDw8A+OSTT2TLw8PDw8LCwsLCFLXhYO+Be6PKUlpaam1tTRBEUVERyqEHAGfOnPniiy/Gjh2bkJCgqIpOnjzp5eWlpaX18OFDNEyPbNy48ejRo9bW1k+ePGk5yyo2NpbP58+ZM2fr1q1ubm4MBmPu3LmKapKs5OTkefPmcTgcExOT0NBQtNK8pezs7HXr1smW6OjoqLdhIzl1dfXx48d/+eWXLV+iqh8q5eHhERsb6+3tvW/fPhVX/RaBgYFfffWVsbFxRkaG9JuJdQrVcbwnQxNfAgICpCVvXC3aGdJbomfPnpUtRxMD6HR6a0unb968efXq1Zs3b27ZsuXYsWNKzS1dUVHx0UcfAYC6urqfn59qFsU+e/YMjelNmTKlsbFRBTW2dO/ePQDQ09NDe+d1Bbm5ueiGUgeuP7DW4DCqRCjFzuDBg2UDx9q1a2k02rFjxzp//Lq6OrSZ8OrVq2XLc3Jy0OLx1oYLGhsbz549++uvvz569CgsLGzPnj0d3m+jjVrOhVJqdZmZmZTHUAQt/92/fz+FbZASi8Xu7u6gqtwovQcOo0okEomsrKwA4O7du9JCDoejqDzwaMG4g4OD7C3RpqYmFxcXaHFbVlZFRQW6C4Z6SaWlpUWd2yqjjWTnQsluuKZY0hg6depUamMoSZJ///03ABgaGvLan3lP4VDeKXNz8652u7a7w2FUuXbv3g0Ay5cvV/iRf/31VwDQ1tbOzMyULV+7di0ADBgwgNrZmq15y1wosVjMbZuysrLcVkRFRaElnl0hhiIofTLlmRIzMzOZTCZBEH/99Re1Lel5cBhVrry8PBqNpqmpqdi7Y0+fPkUDJufPn5ctv3TpEgBoaGi03DOj6+Dz+Z999hnqoyn8Xj/a8n769OmyqWGohfITys3QVDGhUDhixAhQ2rTlXg6HUaVDCcoUuPWQSCRCI/Jy/yWys7NRAjqF3HhVtp9//hmtR5Ci0Whvz9EnZWJi0r8VQ4cOjYyM7DoxFEET3ZS3gd07oRxjtra2XeHeQs+Dw6jSobR1bm5uCjxmYmLizJkzZS9aGxsbnZ2d4a2TKDGqoNTdRkZGdXV1qq/98ePHdDqdRqP9/fffqq+9N8BhVOmamppQdqUVK1aEhoay2Wxl7Lfs5eUFAAMHDuyat0SlUlNTpTccKisrU1JSFHv8P/74w9vbu6io6O7duzt27JDd0I1aKDmhQjJstUtTUxO6Gb1582YVV9174DCqCufPn582bZr06pVOp9vb23t6evr5+UVERHQ+D9DFixcBgMlkKjwqKdaTJ0+Cg4O3bdsWGxtLkuTGjRsVO/jW0NAQFxdXWlq6atWqnTt3yu1tR60bN24AQMt0zsq2fft2NDVCxfX2KngVk4rcuXPnzoZiEXkAAA1TSURBVJ07aWlpaWlpKIGe7KvW1tZOTk6Ojo5OTk5OTk4DBw5s+6Lm7OxsNzc3Ho8XFBSE+qRdXFhYmIaGRnNzM5PJjImJ+eWXXxR7/KdPn4aHhxsYGPD5fD6f7+Pjo9jjd9jIkSMfPXp05MgRtNm1Cty/f9/d3Z0kyfj4eHR/FlMGHEYVTyAQeHt7o43aTUxM/vjjD4lEcvDgQQ0NDfSGurq6Fy9esNnslJSUlJSU1NTU+vp62SMwGIyBAwe6urq6uroOHTp0+PDh0jztcpqamsaMGZOamrpgwQI0TN/FcTicH3/80cfHZ+bMmRs3bjx16tS5c+fkssR3Rk5OTlBQ0HfffYdS03/zzTe7d+9Gk1UpFx4e/sknn/Tt2zc3N1duZWpBQcGmTZvQVlfSPa9kHxgaGrZlaayshoYGZ2fnFy9e7Nq1C20lgikJDqNKwefzNTU1ly5dymAwgoODr169qqGhgXJQvlFJSQkKqZmZmWw2+9mzZ3I/l759+6KQam9v7+rqamdnh7qrq1atOn369HvvvZecnKy8feIUJSkpacuWLRs3bhw6dChakujt7X3ixAlFrXYvKSlZsGDBxx9/bGNjU1NTU1xcTKPRuk5vlCTJkSNHJicnHz16dP369bIvJSYmyu3s0pKOjs4b46yLi8uUKVNavn/Tpk0///yzvb19SkpKa7sQYgqBw6iy/P777xoaGlFRUcHBwXfv3s3JyZHdGentqqur0eX/06dP09LS2Gy23CaUurq6w4YNYzKZt2/f1tTUTEpKcnR0lH2DQCBQV1cnSZLH4wGAvr4+QRCKOrUOQ7s5AQD6/w8AlZWVrXW0e6SrV6/OnTvXysoqOztbenUCAFwu9969e1wuV7rhVcsHIpHojcdcsmTJ+fPn5Qrj4uImT56spqaWlJTk6uqqxFPCANp3mYC10alTp7S0tObPnx8fH19RUXH//n3p9rZtYWBgMGHChAkTJqCnYrGYw+FIbwJkZmbm5eWhtBdGRkabN2+Wi6GJiYl+fn7bt28Xi8VnzpwZMmTIli1bVLyT2htJo6dUr4qhADBnzhxHR8enT5+eOXNGNiuVoaEh2hzpLerq6t4YXuV++gDA5/O9vLxIkty7dy+OoSqAe6OKV15eHhgYqKOjY2ZmNn369GPHjg0YMEB2s8zOq6ioSEtL+/bbbx88ePDGPGwhISHW1tYvX77Myclxd3dX2cbo2DuFhYUtXLjQ2to6Ozu7A6my2wLd6nFxcUlKSuoKvz57PBxGu7HY2FgPD48BAwZkZ2fLXbOjMOrg4FBdXX327NkpU6agXe0wykkkEicnp4yMjJMnT65atUrhx4+NjZ0yZQqDwUhOTnZwcFD48bGW8EV9N/bhhx+am5vn5uYmJyejFdNIfX19eXm5urq6WCzW19dvbm5WfcZirDU0Gm3Xrl2fffbZ9u3br1271tq4PHoqe/+0LWpqalasWEGS5IEDB3AMVRkcRrsxGo02f/78I0eOhIaGyobRmpoaCwsLALCzs7t9+/a8efOGDx9OXTMxeQsWLCgtLfX19Y2MjHz7O5lMZhvzDBgbG9Pp9PXr1798+fL999//+uuvVXMuGOCL+u7uwYMHo0eP7tu3b1FRkZqaGtXNwdrhwYMHlZWVrY3Lo78FAkHbD6irq1tfX89kMlNTU6V7C2IqgMNotzdo0KDs7Oxbt261azIApnokSR46dKiysnLVqlUDBgxoy0caGxur26ayslIoFO7YscPV1XX+/PnKPhdMFr6o7/YWLVr03XffhYaG4jDaxSUkJGhra69du/brr78+ceJEWz6iqampqalpbm7eljfX1NSoqanp6Oh0rplYu+HdqLs9lAL58uXLclP0sa4mNzfXzs6OxWK1NpG+k/T19XV0dCQSSXR0NJfLVUYV2BvhMNrtDRkyxNnZmcfjoaSWWJdlZWXF4XCEQmHb8850QGJi4vXr13Nzc5VXBSYHh9GeYPHixQAQGhpKdUOwt5kwYUJOTs6OHTuUmuFp3Lhxbm5uyjs+1hIeYuoJSkpKrKysGAxGaWkp2loZ681+++03BwcH2TlwmFLh3mhPYG5u7u7u3tTUdO3aNarbglHs2bNnf/3117lz5xobG6luS2+Be6M9RFBQ0Jo1a6ZMmRIdHU11WzAqCQQClL62i6T16g1wGO0hqqurzczMxGJxcXGxArMgYxj2TviivocwMDCYMmWKWCwOCwujui0Y1rvgMNpz4PF6DKMEvqjvORoaGkxNTfl8fnZ2Nl5SjWEqg3ujPQeLxZo9ezYAdIu97TCsx8BhtEdB1/UXLlyguiEY1ovgi/oeRSQSWVhYlJeXp6amOjk5Ud0cDOsVcG+0R1FXV587dy7ggSYMUyEcRnsadF0fEhIikUiobguG9Qo4jPY048aNs7W1LSoqQjswAwDaqh4AampqcP40DFM4HEZ7GoIgFi1aBK+v68+dO+fh4QEAZ8+eDQwMDA8Pp7h9GNbj4DDaA6Hr+kuXLgkEgqVLl7q6ugLAzZs3BwwYMGzYMKpbh2E9DQ6jPZCjo6ODgwOXy42NjZUWVlVVjRkz5tChQzU1NRS2DcN6HhxGeybpwlAOh1NeXp6Zmdm/f/+ysjKJRMJkMqluHYb1KHjeaM/E4XD69evHZDJPnjzJYDD09PTGjRt38+ZNFxcXa2trqluHYT0K3hm0Z8rOzmYymWpqakuWLNHR0XF0dBw3btzYsWNZLFZrHwkoKoqorJQ+nWRg8F9bW1W0FcO6Odwb7WkEAsGuXbsOHTpEkqSamppYLJZ9lSCIVcePW3h4OGhpDdPSGqCpqfY6s+8BDkcCsNnSEj2lE4SGMndew7AeA/dGe5SCgoLPPvvs/v376urqu3fvXrp06aeffpqWlsZiseZ8+mlZaWliYmLjwIHXq6quV1UBgCaNZqel5aClNVZXFwDoBKGtpkb1SWBYN4N7oz3HlStXVq9eXVNTY21tHRISMnbsWABoampavXr1xUuX5sXHT7SxWW5snFNfnyEQZNTXZ9TXFzY3o8/ONTaWkCRXJFpsYoJK7FksFg6pGNYGOIz2BI2Njf/5z38CAwMB4NNPPz116pSBgYH0VZIkzz169IuamgTAw9Bwr40N8/XVeq1IlF5fn1Ff76ytfau6+p/aWgsNDfTSHhubfjJj+uXl5SEhIV999VVhYeH58+fd3d3Hjx+vwlPEsK4LX9R3e2w2e9GiRRkZGZqamr6+vl999ZXcGwiCWDZyZL/a2j35+Te5XE5T00ozs5+Li6VvoBHEGnPzW9XVE/X1/9PKOH5GRkZSUtKmTZv27t37yy+/bN261dnZWVdXV4knhmHdBA6j3RhJkoGBgTt27Ghubra3t7948eJbFil9oKd33s5ua07Oq+bmeomkViwOHjwYvdSW3SMnTZp09epVAGAwGDExMRUVFRwOB6+JwjDAYbT7qhGJ/HNygo8ebW5uXrdu3cGDB985r95aQyN4yJDCpqY6sVgNwLZD8/B//vnn9PR0S0vLvn37dqjhGNbT4DDaLaXU1e3Jzy8XCj8+e3ZmWdmcOXPa+EEdNbWhWlpJPJ4YoKCpCRXqqasbqKvrqKu/ZUQpMjIyLS3N39/f3t4+OTnZ1tbWyMio0+eBYT0BHmLqZiQkeerVq1OlpRKSdNDS+r5fP/PXg0Jtl8TjbcrONnv9wblGRsvMzBTdUgzrLXBvtDspEwi+zc9/wufTABaZmHxtaalOtOXG5hvoqatHODgotnkY1jvhMNpt3Kmp2c/h8EQiQzp9v63taDxKjmFdAw6j3YBAIgksLr5UXk4CfKCv721jo6eOf3AY1lXg/41dy4mSkjKhUPp0ioGBCYOxKy/vRWMjgyA2WlouMjHp4GW8DAKAaOVugEAgoNPpBEHweDwGg4Gz6mHYO+Ehpq5lYWbmUBbLQUsLPbVmMjfn5DRKJDZM5vf9+g1uPT+TQiQkJPj6+u7du7eysjI2NraysnLfvn0DBw5UaqUY1t3h3miX46aj83GfPtKn84yNq0Si/1hbs5Sfb2ncuHELFiwAAIFAoKenp6en11qnFcMwKRxGu7qNlpaqT1fX3NxsamqalpZWW1ur8soxrJvBYbTL+aGo6PDLlwBAI4hoR0dVxlA+n19RUaGrq5ucnDxnzhwNDY3nz5+7uLiosAkY1v3gMNrlrDE3n6SvD21b6q5YZWVlurq6FRUVu3btio6ONjU1nTFjhspbgWHdDB5i6loWZmYuMzWVvTeKYVgXh3eJwDAM6xR8UU+NgoICQ0PD4uLi4uJiABg2bJipqSnVjcIwrCNwb5QCjx492rt378OHD9HTy5cvl5SUoMf/tbUdradHXdMwDGs3HEYpMGLEiE8++QQA7OzsPvzwQ3V1dWdnZ/TSEBbLEC/0xLBuBYdRikVGRk6bNo3qVmAY1nE4jFLg1atX9+/f/+eff+rr669fv/7xxx9T3SIMwzoOT3iiQG1tbU5ODgAMHTq0vLzcupVd5DAM6xZwGMUwDOsUfFGPYRjWKTiMYhiGdQoOoxiGYZ2CwyiGYVin4DCKYRjWKf8Hyf/smRAHWwwAAAIgelRYdHJka2l0UEtMIHJka2l0IDIwMjIuMDMuMgAAeJx7v2/tPQYg4GWAAEYglgJiGSBuYGRLqADSzIwsJLA0QCwWDFpBAUizcIIpRlSKeroxWewQE5ixyXEzMGYwMTIlMDFnMDGzJLCwZjCxsimwsWcwsXMwcHAycHAxcHAzsPMk8PBmMPHyKfDxZzDxCzAICDIICDEICDPwiySIiGYwiYoliIkDFUgkSEgCTWBIkGRLEOdLEGFmY2BlYWZiZGPn4ZWQZGPjFxEVE+cTd2KEhDIIM0jtzY13sOXv2V/30ntfsetsB9bX0/efyJ2579zezQ7K88v2vti2eu+0bwsd3jpOsddhyLFrP5jlYFI0z55Fd6Vd614Lh6/S7HaCXl9s90Vvs/fkYLTru6xrd8VJ176Z297+5BHv/Rl/F9krHd5s/4P5z/5O0Vi7V7s/2QctNzhwbiWzQ2mTvEMr+439X6v+2W814rTfscvgwPtn5vuzt5naJ7ip7L+hvHp/zMPttuyaV+wmVxgdYGe2sMso+Gi3JiX9QLJ29n7XHWftnv5wPyCmJnJgG+tSO13FjgN7fnkceLVR1q5DTO1A+BL9A8GRR+03ThE88OmX/IG2zVb71Q/PPzB7ptb+N0wn7NYuWX+gf7GU/VOhJ3aXZaYcEGK+an80ntn+A1vogXVl2+w7NdjsH9YJ7u8XY9r/+OVq++JCb/uqOIb9b+bMsxcDAPxAtG8hILI+AAAC0HpUWHRNT0wgcmRraXQgMjAyMi4wMy4yAAB4nH1VSW5bMQzd+xS6gD84i1xmLIoiDtCmvUP3vT9K6jcRs6ltCRqeKPLxUb6M+nx//Pb7z/j48OPlMgb85xcR4xcDwOVl1GDcP335ehsPb3f37ysPrz9vbz8G2SDPM/n9jL17e315X8HxMPiQQJg8rnhACKGOKxwYgcz7LCVSDlcimoVENzcoJEWY2UZyIvUwtKC1DwaE58jZRTdSFhIMWXGkSXUyGmmRQSw2TpeXZg65jbk962o4OHFEG2eJo8Pd1GZuI2MI1wCDvOFm4vAQEpta22QAXgOLqQ3niYPDZl6MOZhilG5lIDM0Jm5gLIM0mdXLMggHFUth7h2YPDxXgKgBFYqHcbFIxyyW2t2IiaQDdBJHDiSIeTFvPic1dvLUc5oKd6QKW1mD/9lEjpYZrNSU++hsFfCE8DPdJhl8N1q5ycvyTuAKHjymF1uCwrMbrezUZck7RLE4Y5k6ZKJaD77yc81EoiouHiNVtKwL1KkGnScUSTS1leYZxanuZ0p5dE89w7/KQSqgsA4JpDDKE+X4FFQUlA4NxbRVTovkqWRPBac3KMEJpSkTFpmSMq+kJmuU/LZUUVVRehBBWmWUbJoJWDkbYDIbtMroqoe4eyntMMj7KxUiKtqRfBo18iIr054p0rKpqWtvVU0ybhU2J1KW/JKKWEqgNN5YJT3zr+YsKxSFzP/MMywMs5Um2dL+jDP8QqLIWX2BJhv5dHv89KScj8z96+1xPzKSjfZLItl4PxdSbb8J9dVd+jkZtiscs81dyJLNd71itthVidV68a0FbDW2FqiVkpQVbhUj1aG0wsDVaSuAmqa8m9BxdbPpGVfnTbbnSjR1rhXqIpSyQ9ikJtURNUVJdcRNOVIdSVOIlM+kTQk1zTS3hEvR+zEvbqlxnX8mUpZ24JX5nueav/8R5fjyF3aoSNKTy9SLAAACGHpUWHRTTUlMRVMgcmRraXQgMjAyMi4wMy4yAAB4nE1Ry4ocMQz8lRxnYcao9LLkPgb2GPILYckx2RD2uB8fqSfQHprBUrkekl+/3l5f6nvD2+3xxm/945f6O6vbf/S1O7+rjy+fNxoMS+I7RqSL3x88phPjwOAp1cBQUsn7AyM9Yh48yCbrnYcmizbgMacUIyMgdxomlvKUgh40fHoQCpjq7KVVp7Sc7aKsPgsCO1H0wXMal02E24kIUlsWSA4+ZHjJdTKWGV6ACCnzYYMcYgXAghvgAjwL8FLl9qUejvQ8hoTaoSOMWXoOhJdeQZzp7uWkCZoNUZZDQ8iEyNET6OyGEVT5TJPwozseovzEAjUDhqhQHKUjMqlnocgZ1ieFyixebasm7i1hpmc2NGGO41ETw+xUzMoofUmprzUG1vIovkCDex01DuXx0MGmZPe+o6crTDKzvSwNzydSVVRC09JrhKeealo7eD4VpxC3XCbbOXMtR+ncfJLrPB42NCKsOk5l2e+oapWrac614bIoEppUzohOLgX0cylbU42Lem5wIsRbZFLWBk/L4ma+3H98vP/6/vf9z6LRx2/vHz9HLlxFLL4K0JKtwtKrmsuuwpdfha15FbriKmTlVfDCFgILWwpa2GKwLWw5WBe2IJCFLQoK3cKguFsc+MIWCHNhi4Safs+Ui7dQTIv3VFi8p+LFWyqWxXsq/vwHEBcPLj5dQAsAAAAASUVORK5CYII=\n"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "28561b59",
"cell_type": "markdown",
"source": "Clip out the central ring and change one of the atoms to an N"
},
{
"metadata": {
"trusted": true
},
"id": "9038db9f",
"cell_type": "code",
"source": "m2 = Chem.RWMol(m1)\nkeep = [6,7,12,13,24,25]\nremove = set(range(m2.GetNumAtoms())).difference(keep)\nm2.BeginBatchEdit()\nfor aidx in remove:\n m2.RemoveAtom(aidx)\nm2.CommitBatchEdit()\nm2.GetAtomWithIdx(0).SetAtomicNum(7)\nm2",
"execution_count": 8,
"outputs": [
{
"output_type": "display_data",
"data": {
"application/3dmoljs_load.v0": "<div id=\"3dmolviewer_1655823954542065\" style=\"position: relative; width: 400px; height: 400px\">\n <p id=\"3dmolwarning_1655823954542065\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://3dmol.org/build/3Dmol.js');\n}\n\nvar viewer_1655823954542065 = null;\nvar warn = document.getElementById(\"3dmolwarning_1655823954542065\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_1655823954542065 = $3Dmol.createViewer($(\"#3dmolviewer_1655823954542065\"),{backgroundColor:\"white\"});\nviewer_1655823954542065.zoomTo();\n\tviewer_1655823954542065.removeAllModels();\n\tviewer_1655823954542065.addModel(\"\\n RDKit 3D\\n\\n 6 6 0 0 0 0 0 0 0 0999 V2000\\n 1.4247 0.1260 0.1698 N 0 0 0 0 0 4 0 0 0 0 0 0\\n 0.6768 0.7463 -0.7960 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.7184 0.7098 -0.6417 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3370 0.0898 0.4144 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.5683 -0.5082 1.3431 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.7947 -0.5014 1.2392 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 2 0\\n 6 1 1 0\\nM END\\n\",\"sdf\");\n\tviewer_1655823954542065.setStyle({\"stick\": {}});\n\tviewer_1655823954542065.setBackgroundColor(\"0xeeeeee\");\n\tviewer_1655823954542065.zoomTo();\nviewer_1655823954542065.render();\n});\n</script>",
"text/html": "<div id=\"3dmolviewer_1655823954542065\" style=\"position: relative; width: 400px; height: 400px\">\n <p id=\"3dmolwarning_1655823954542065\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://3dmol.org/build/3Dmol.js');\n}\n\nvar viewer_1655823954542065 = null;\nvar warn = document.getElementById(\"3dmolwarning_1655823954542065\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_1655823954542065 = $3Dmol.createViewer($(\"#3dmolviewer_1655823954542065\"),{backgroundColor:\"white\"});\nviewer_1655823954542065.zoomTo();\n\tviewer_1655823954542065.removeAllModels();\n\tviewer_1655823954542065.addModel(\"\\n RDKit 3D\\n\\n 6 6 0 0 0 0 0 0 0 0999 V2000\\n 1.4247 0.1260 0.1698 N 0 0 0 0 0 4 0 0 0 0 0 0\\n 0.6768 0.7463 -0.7960 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.7184 0.7098 -0.6417 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3370 0.0898 0.4144 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.5683 -0.5082 1.3431 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.7947 -0.5014 1.2392 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 2 0\\n 6 1 1 0\\nM END\\n\",\"sdf\");\n\tviewer_1655823954542065.setStyle({\"stick\": {}});\n\tviewer_1655823954542065.setBackgroundColor(\"0xeeeeee\");\n\tviewer_1655823954542065.zoomTo();\nviewer_1655823954542065.render();\n});\n</script>"
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 8,
"data": {
"text/plain": "<rdkit.Chem.rdchem.RWMol at 0x1b74868c2c0>",
"text/html": "",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "e96e6090",
"cell_type": "markdown",
"source": "A normal MCS will, of course, match this to the N-containing ring:"
},
{
"metadata": {
"trusted": true
},
"id": "a77da068",
"cell_type": "code",
"source": "ps = rdFMCS.MCSParameters()\nres = rdFMCS.FindMCS([m1,m2],ps)\nprint(res.smartsString)",
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"text": "[#7]1:[#6]:[#6]:[#6]:[#6]:[#6]:1\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"id": "33cadd7d",
"cell_type": "code",
"source": "ps = rdFMCS.MCSParameters()\nps.AtomCompareParameters.MaxDistance = 0.5\nres = rdFMCS.FindMCS([m1,m2],ps)\nprint(res.smartsString)",
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"text": "[#6]:[#6]:[#6]:[#6]:[#6]\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"id": "6407bac9",
"cell_type": "code",
"source": "ps = rdFMCS.MCSParameters()\nps.AtomCompareParameters.MaxDistance = 0.5\nps.AtomTyper = rdFMCS.AtomCompare.CompareAny\nres = rdFMCS.FindMCS([m1,m2],ps)\nprint(res.smartsString)",
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": "[#7,#6]1:[#6]:[#6]:[#6]:[#6]:[#6]:1\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"id": "e4fa0a1f",
"cell_type": "markdown",
"source": "# A real example"
},
{
"metadata": {
"trusted": true
},
"id": "254f4ca3",
"cell_type": "code",
"source": "# exported from the binding db and converted to SDF in pymol\nms = [x for x in Chem.ForwardSDMolSupplier('../data/1TDU-results.sdf')]\nms2d = [Chem.Mol(x) for x in ms]\nfor m in ms2d:\n rdDepictor.Compute2DCoords(m)\nIPythonConsole.drawOptions.addAtomIndices = False\nDraw.MolsToGridImage(ms2d)",
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 12,
"data": {
"image/png": "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\n",
"text/plain": "<IPython.core.display.Image object>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"id": "b3cd6bfb",
"cell_type": "code",
"source": "import py3Dmol\nviewer = py3Dmol.view(width=350, height=350)\nIPythonConsole.addMolToView(ms[0],viewer)\nIPythonConsole.addMolToView(ms[1],viewer)\nIPythonConsole.addMolToView(ms[2],viewer)\nviewer.zoomTo()\nviewer.show()\n",
"execution_count": 13,
"outputs": [
{
"output_type": "display_data",
"data": {
"application/3dmoljs_load.v0": "<div id=\"3dmolviewer_16558239572295372\" style=\"position: relative; width: 350px; height: 350px\">\n <p id=\"3dmolwarning_16558239572295372\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://3dmol.org/build/3Dmol.js');\n}\n\nvar viewer_16558239572295372 = null;\nvar warn = document.getElementById(\"3dmolwarning_16558239572295372\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_16558239572295372 = $3Dmol.createViewer($(\"#3dmolviewer_16558239572295372\"),{backgroundColor:\"white\"});\nviewer_16558239572295372.zoomTo();\n\tviewer_16558239572295372.addModel(\"BindingDB_18050\\n RDKit 3D\\n\\n 33 35 0 0 0 0 0 0 0 0999 V2000\\n 14.0825 17.4134 33.7894 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.2616 18.4748 34.0351 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.6516 18.6164 31.7628 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5622 19.0757 33.0348 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7548 16.8376 34.8004 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.7402 20.1071 33.3039 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4386 17.5548 31.4573 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.1922 16.9246 32.4699 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.2713 15.9899 29.8698 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.0278 15.3430 30.8715 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9579 15.8547 32.1367 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5103 17.0662 30.1949 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.8163 14.1133 30.5962 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.4721 13.5689 31.7866 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.9207 13.5301 31.7882 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.7459 13.1625 32.9058 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5873 12.7615 34.0599 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3245 13.0786 32.9031 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.3722 12.8426 34.1380 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.6374 12.5640 35.3014 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.2202 12.5439 35.3057 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4819 12.3139 36.4782 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.2891 12.0275 36.4008 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.0468 12.3720 37.6815 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4607 12.1636 38.9753 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5547 13.3581 39.3962 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1056 13.3184 40.8874 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.4658 14.5747 41.3134 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 10.1412 14.7677 41.1209 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1727 15.5211 41.9760 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.8339 10.8243 39.0884 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.6158 10.6358 39.6539 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4697 9.7379 38.5772 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 1 5 1 0\\n 1 8 1 0\\n 2 4 1 0\\n 3 4 2 0\\n 3 7 1 0\\n 4 6 1 0\\n 7 8 2 0\\n 7 12 1 0\\n 8 11 1 0\\n 9 10 1 0\\n 9 12 2 0\\n 10 11 2 0\\n 10 13 1 0\\n 13 14 1 0\\n 14 15 1 0\\n 14 16 1 0\\n 16 18 1 0\\n 16 19 2 0\\n 17 18 2 0\\n 17 21 1 0\\n 19 20 1 0\\n 20 21 2 0\\n 21 22 1 0\\n 22 23 2 0\\n 22 24 1 0\\n 24 25 1 0\\n 25 26 1 0\\n 25 31 1 0\\n 26 27 1 0\\n 27 28 1 0\\n 28 29 2 0\\n 28 30 1 0\\n 31 32 2 0\\n 31 33 1 0\\nM CHG 2 30 -1 33 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558239572295372.setStyle({\"stick\": {}});\n\tviewer_16558239572295372.addModel(\"BindingDB_20676\\n RDKit 3D\\n\\n 31 33 0 0 0 0 0 0 0 0999 V2000\\n 18.1936 16.0518 32.9100 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.4323 18.3879 32.6772 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.5420 18.4144 31.6502 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.7390 17.2078 33.2855 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.5327 15.0421 33.5058 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 19.0289 19.5181 33.0846 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.2774 16.0208 31.8533 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.9794 17.2423 31.2482 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.0779 16.9970 30.2357 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.8386 15.6227 30.2255 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.8876 15.0377 29.2554 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.5749 15.0398 31.2217 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6189 13.6372 31.5703 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.9095 13.3242 32.8454 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8179 13.1073 34.1133 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4994 13.4048 32.9106 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6013 12.9311 34.0049 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.9185 12.6188 35.1971 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.5069 12.6902 35.2817 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8212 12.3939 36.4694 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.7060 12.8686 36.6695 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3411 11.5847 37.3863 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8369 11.2544 38.7036 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.9405 12.4718 39.6748 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8543 12.1565 41.1937 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9882 11.3735 41.7219 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2648 11.7769 41.5288 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7730 10.2677 42.4666 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.4950 10.6314 38.6064 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.4911 10.8988 39.4711 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.2197 9.8166 37.5567 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 4 1 0\\n 1 5 2 0\\n 1 7 1 0\\n 2 3 2 0\\n 2 4 1 0\\n 2 6 1 0\\n 3 8 1 0\\n 7 8 2 0\\n 7 12 1 0\\n 8 9 1 0\\n 9 10 2 0\\n 10 11 1 0\\n 10 12 1 0\\n 12 13 1 0\\n 13 14 1 0\\n 14 16 1 0\\n 14 17 2 0\\n 15 16 2 0\\n 15 19 1 0\\n 17 18 1 0\\n 18 19 2 0\\n 19 20 1 0\\n 20 21 2 0\\n 20 22 1 0\\n 22 23 1 0\\n 23 24 1 0\\n 23 29 1 0\\n 24 25 1 0\\n 25 26 1 0\\n 26 27 2 0\\n 26 28 1 0\\n 29 30 2 0\\n 29 31 1 0\\nM CHG 2 28 -1 31 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558239572295372.setStyle({\"stick\": {}});\n\tviewer_16558239572295372.addModel(\"BindingDB_50008294\\n RDKit 3D\\n\\n 35 37 0 0 0 0 0 0 0 0999 V2000\\n 12.8065 19.3059 32.2234 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5341 19.8046 30.9926 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.8643 19.0872 29.8886 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4039 18.1358 32.4019 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.7823 17.3649 31.2972 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4841 17.8733 30.0043 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8285 17.1233 28.8634 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4627 15.8748 29.0012 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7708 15.3485 30.2804 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4359 16.1185 31.4190 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5876 17.7715 33.5545 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.9559 21.0095 30.8839 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.3549 13.9791 30.4145 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2223 13.7804 31.5768 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.7357 13.3016 32.7953 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.6292 14.1290 31.3776 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.1352 14.9477 32.3475 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3484 13.1465 33.0780 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8632 12.7744 34.3544 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7565 12.5005 35.4094 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.1375 12.5561 35.1284 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6065 12.9521 33.8636 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3054 12.1312 36.6760 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5555 12.9599 37.4000 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.6867 11.0634 37.1407 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.0402 12.7813 38.7403 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1453 11.5970 38.8098 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.1724 12.7687 39.8304 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.7994 12.1854 41.2374 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.0925 11.5928 39.6612 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.4772 10.4329 38.1997 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9196 11.4155 41.8332 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2055 11.7795 41.6207 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.6864 10.2029 42.3892 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.5903 15.6475 33.2179 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 1 4 1 0\\n 2 3 1 0\\n 2 12 1 0\\n 3 6 1 0\\n 4 5 1 0\\n 4 11 2 0\\n 5 6 2 0\\n 5 10 1 0\\n 6 7 1 0\\n 7 8 2 0\\n 8 9 1 0\\n 9 10 2 0\\n 9 13 1 0\\n 13 14 1 0\\n 14 15 1 0\\n 14 16 1 0\\n 15 18 2 0\\n 15 22 1 0\\n 16 17 1 0\\n 17 35 3 0\\n 18 19 1 0\\n 19 20 2 0\\n 20 21 1 0\\n 20 23 1 0\\n 21 22 2 0\\n 23 24 1 0\\n 23 25 2 0\\n 24 26 1 0\\n 26 27 1 0\\n 26 28 1 0\\n 27 30 2 0\\n 27 31 1 0\\n 28 29 1 0\\n 29 32 1 0\\n 32 33 1 0\\n 32 34 2 0\\nM CHG 2 31 -1 33 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558239572295372.setStyle({\"stick\": {}});\n\tviewer_16558239572295372.zoomTo();\nviewer_16558239572295372.render();\n});\n</script>",
"text/html": "<div id=\"3dmolviewer_16558239572295372\" style=\"position: relative; width: 350px; height: 350px\">\n <p id=\"3dmolwarning_16558239572295372\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://3dmol.org/build/3Dmol.js');\n}\n\nvar viewer_16558239572295372 = null;\nvar warn = document.getElementById(\"3dmolwarning_16558239572295372\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_16558239572295372 = $3Dmol.createViewer($(\"#3dmolviewer_16558239572295372\"),{backgroundColor:\"white\"});\nviewer_16558239572295372.zoomTo();\n\tviewer_16558239572295372.addModel(\"BindingDB_18050\\n RDKit 3D\\n\\n 33 35 0 0 0 0 0 0 0 0999 V2000\\n 14.0825 17.4134 33.7894 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.2616 18.4748 34.0351 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.6516 18.6164 31.7628 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5622 19.0757 33.0348 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7548 16.8376 34.8004 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.7402 20.1071 33.3039 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4386 17.5548 31.4573 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.1922 16.9246 32.4699 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.2713 15.9899 29.8698 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.0278 15.3430 30.8715 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9579 15.8547 32.1367 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5103 17.0662 30.1949 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.8163 14.1133 30.5962 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.4721 13.5689 31.7866 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.9207 13.5301 31.7882 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.7459 13.1625 32.9058 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5873 12.7615 34.0599 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3245 13.0786 32.9031 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.3722 12.8426 34.1380 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.6374 12.5640 35.3014 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.2202 12.5439 35.3057 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4819 12.3139 36.4782 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.2891 12.0275 36.4008 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.0468 12.3720 37.6815 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4607 12.1636 38.9753 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5547 13.3581 39.3962 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1056 13.3184 40.8874 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.4658 14.5747 41.3134 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 10.1412 14.7677 41.1209 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1727 15.5211 41.9760 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.8339 10.8243 39.0884 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.6158 10.6358 39.6539 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4697 9.7379 38.5772 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 1 5 1 0\\n 1 8 1 0\\n 2 4 1 0\\n 3 4 2 0\\n 3 7 1 0\\n 4 6 1 0\\n 7 8 2 0\\n 7 12 1 0\\n 8 11 1 0\\n 9 10 1 0\\n 9 12 2 0\\n 10 11 2 0\\n 10 13 1 0\\n 13 14 1 0\\n 14 15 1 0\\n 14 16 1 0\\n 16 18 1 0\\n 16 19 2 0\\n 17 18 2 0\\n 17 21 1 0\\n 19 20 1 0\\n 20 21 2 0\\n 21 22 1 0\\n 22 23 2 0\\n 22 24 1 0\\n 24 25 1 0\\n 25 26 1 0\\n 25 31 1 0\\n 26 27 1 0\\n 27 28 1 0\\n 28 29 2 0\\n 28 30 1 0\\n 31 32 2 0\\n 31 33 1 0\\nM CHG 2 30 -1 33 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558239572295372.setStyle({\"stick\": {}});\n\tviewer_16558239572295372.addModel(\"BindingDB_20676\\n RDKit 3D\\n\\n 31 33 0 0 0 0 0 0 0 0999 V2000\\n 18.1936 16.0518 32.9100 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.4323 18.3879 32.6772 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.5420 18.4144 31.6502 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.7390 17.2078 33.2855 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.5327 15.0421 33.5058 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 19.0289 19.5181 33.0846 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.2774 16.0208 31.8533 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.9794 17.2423 31.2482 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.0779 16.9970 30.2357 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.8386 15.6227 30.2255 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.8876 15.0377 29.2554 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.5749 15.0398 31.2217 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6189 13.6372 31.5703 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.9095 13.3242 32.8454 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8179 13.1073 34.1133 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4994 13.4048 32.9106 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6013 12.9311 34.0049 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.9185 12.6188 35.1971 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.5069 12.6902 35.2817 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8212 12.3939 36.4694 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.7060 12.8686 36.6695 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3411 11.5847 37.3863 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8369 11.2544 38.7036 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.9405 12.4718 39.6748 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8543 12.1565 41.1937 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9882 11.3735 41.7219 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2648 11.7769 41.5288 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7730 10.2677 42.4666 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.4950 10.6314 38.6064 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.4911 10.8988 39.4711 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.2197 9.8166 37.5567 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 4 1 0\\n 1 5 2 0\\n 1 7 1 0\\n 2 3 2 0\\n 2 4 1 0\\n 2 6 1 0\\n 3 8 1 0\\n 7 8 2 0\\n 7 12 1 0\\n 8 9 1 0\\n 9 10 2 0\\n 10 11 1 0\\n 10 12 1 0\\n 12 13 1 0\\n 13 14 1 0\\n 14 16 1 0\\n 14 17 2 0\\n 15 16 2 0\\n 15 19 1 0\\n 17 18 1 0\\n 18 19 2 0\\n 19 20 1 0\\n 20 21 2 0\\n 20 22 1 0\\n 22 23 1 0\\n 23 24 1 0\\n 23 29 1 0\\n 24 25 1 0\\n 25 26 1 0\\n 26 27 2 0\\n 26 28 1 0\\n 29 30 2 0\\n 29 31 1 0\\nM CHG 2 28 -1 31 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558239572295372.setStyle({\"stick\": {}});\n\tviewer_16558239572295372.addModel(\"BindingDB_50008294\\n RDKit 3D\\n\\n 35 37 0 0 0 0 0 0 0 0999 V2000\\n 12.8065 19.3059 32.2234 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5341 19.8046 30.9926 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.8643 19.0872 29.8886 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4039 18.1358 32.4019 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.7823 17.3649 31.2972 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4841 17.8733 30.0043 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8285 17.1233 28.8634 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4627 15.8748 29.0012 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7708 15.3485 30.2804 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4359 16.1185 31.4190 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5876 17.7715 33.5545 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.9559 21.0095 30.8839 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.3549 13.9791 30.4145 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2223 13.7804 31.5768 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.7357 13.3016 32.7953 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.6292 14.1290 31.3776 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.1352 14.9477 32.3475 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3484 13.1465 33.0780 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8632 12.7744 34.3544 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7565 12.5005 35.4094 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.1375 12.5561 35.1284 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6065 12.9521 33.8636 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3054 12.1312 36.6760 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5555 12.9599 37.4000 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.6867 11.0634 37.1407 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.0402 12.7813 38.7403 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1453 11.5970 38.8098 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.1724 12.7687 39.8304 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.7994 12.1854 41.2374 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.0925 11.5928 39.6612 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.4772 10.4329 38.1997 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9196 11.4155 41.8332 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2055 11.7795 41.6207 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.6864 10.2029 42.3892 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.5903 15.6475 33.2179 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 1 4 1 0\\n 2 3 1 0\\n 2 12 1 0\\n 3 6 1 0\\n 4 5 1 0\\n 4 11 2 0\\n 5 6 2 0\\n 5 10 1 0\\n 6 7 1 0\\n 7 8 2 0\\n 8 9 1 0\\n 9 10 2 0\\n 9 13 1 0\\n 13 14 1 0\\n 14 15 1 0\\n 14 16 1 0\\n 15 18 2 0\\n 15 22 1 0\\n 16 17 1 0\\n 17 35 3 0\\n 18 19 1 0\\n 19 20 2 0\\n 20 21 1 0\\n 20 23 1 0\\n 21 22 2 0\\n 23 24 1 0\\n 23 25 2 0\\n 24 26 1 0\\n 26 27 1 0\\n 26 28 1 0\\n 27 30 2 0\\n 27 31 1 0\\n 28 29 1 0\\n 29 32 1 0\\n 32 33 1 0\\n 32 34 2 0\\nM CHG 2 31 -1 33 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558239572295372.setStyle({\"stick\": {}});\n\tviewer_16558239572295372.zoomTo();\nviewer_16558239572295372.render();\n});\n</script>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"id": "cebca03e",
"cell_type": "code",
"source": "ps = rdFMCS.MCSParameters()\n# ps.AtomCompareParameters.MaxDistance = 0.5\n# ps.AtomTyper = rdFMCS.AtomCompare.CompareAny\nres = rdFMCS.FindMCS(ms,ps)\nqry = Chem.MolFromSmarts(res.smartsString)\nqry",
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 14,
"data": {
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x1b7485d4d00>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"id": "e631aab0",
"cell_type": "code",
"source": "matches = [x.GetSubstructMatch(qry) for x in ms2d]\n\nconf = Chem.Conformer(qry.GetNumAtoms())\nfor i,mi in enumerate(matches[0]):\n conf.SetAtomPosition(i,ms2d[0].GetConformer().GetAtomPosition(mi))\nqry.AddConformer(conf)\nfor m in ms2d:\n rdDepictor.GenerateDepictionMatching2DStructure(m,qry)\nDraw.MolsToGridImage(ms2d,highlightAtomLists=matches)",
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 15,
"data": {
"image/png": "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\n",
"text/plain": "<IPython.core.display.Image object>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"id": "2713eb3f",
"cell_type": "code",
"source": "ps = rdFMCS.MCSParameters()\n# ps.AtomCompareParameters.MaxDistance = 0.5\nps.AtomTyper = rdFMCS.AtomCompare.CompareAny\nres = rdFMCS.FindMCS(ms,ps)\nqry = Chem.MolFromSmarts(res.smartsString)\nqry\n",
"execution_count": 16,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 16,
"data": {
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x1b7485d4520>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"id": "05770b56",
"cell_type": "code",
"source": "matches = [x.GetSubstructMatch(qry) for x in ms2d]\n\nconf = Chem.Conformer(qry.GetNumAtoms())\nfor i,mi in enumerate(matches[0]):\n conf.SetAtomPosition(i,ms2d[0].GetConformer().GetAtomPosition(mi))\nqry.AddConformer(conf)\nfor m in ms2d:\n rdDepictor.GenerateDepictionMatching2DStructure(m,qry)\nDraw.MolsToGridImage(ms2d,highlightAtomLists=matches)",
"execution_count": 17,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 17,
"data": {
"image/png": "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\n",
"text/plain": "<IPython.core.display.Image object>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "5130b709",
"cell_type": "markdown",
"source": "Both of those results are matching significant parts of the molecules, but we saw that the molecules didn't actually align quite that well.\n\nWhat about if we take atom coordinates into account?"
},
{
"metadata": {
"trusted": true
},
"id": "1376808b",
"cell_type": "code",
"source": "ps = rdFMCS.MCSParameters()\nps.AtomCompareParameters.MaxDistance = 1.0\nps.AtomTyper = rdFMCS.AtomCompare.CompareAny\nres = rdFMCS.FindMCS(ms,ps)\nqry = Chem.MolFromSmarts(res.smartsString)\nqry\n",
"execution_count": 18,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 18,
"data": {
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x1b74ad61ee0>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"id": "b01c04d7",
"cell_type": "code",
"source": "matches = [x.GetSubstructMatch(qry) for x in ms2d]\n\nconf = Chem.Conformer(qry.GetNumAtoms())\nfor i,mi in enumerate(matches[0]):\n conf.SetAtomPosition(i,ms2d[0].GetConformer().GetAtomPosition(mi))\nqry.AddConformer(conf)\nfor m in ms2d:\n rdDepictor.GenerateDepictionMatching2DStructure(m,qry)\nDraw.MolsToGridImage(ms2d,highlightAtomLists=matches)",
"execution_count": 19,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 19,
"data": {
"image/png": "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\n",
"text/plain": "<IPython.core.display.Image object>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "markdown",
"source": "The MCS gave us a SMARTS which matches, but unfortunately not the matching atoms. Finding those via substructure search would be easy if we could assume that the MCS only matches each molecule once, but that's not always going to be the case.\n\nThis is actually one of those examples"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "allMatches = []\nfor m in ms:\n allMatches.append(m.GetSubstructMatches(qry,uniquify=False))\nallMatches",
"execution_count": 37,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 37,
"data": {
"text/plain": "[((13, 15, 17, 16, 20, 19, 18, 21), (13, 15, 18, 19, 20, 16, 17, 21)),\n ((12, 13, 15, 14, 18, 17, 16, 19),\n (12, 13, 16, 17, 18, 14, 15, 19),\n (19, 18, 14, 15, 13, 16, 17, 12),\n (19, 18, 17, 16, 13, 15, 14, 12)),\n ((13, 14, 17, 18, 19, 20, 21, 22), (13, 14, 21, 20, 19, 18, 17, 22))]"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def getAlignedSubstructMatch(ms,qry,distTol=1.0):\n allMatches = []\n for m in ms:\n allMatches.append(m.GetSubstructMatches(qry,uniquify=False))\n\n keepMatches = []\n for match0 in allMatches[0]:\n allMatched = True\n for i in range(1,len(ms)):\n imatched = False\n for matchi in allMatches[i]:\n matched = True\n for i0,ii in zip(match0,matchi):\n dist = (ms[0].GetConformer().GetAtomPosition(i0) - ms[i].GetConformer().GetAtomPosition(ii)).Length()\n if dist > distTol:\n matched = False\n break\n if matched:\n keepMatches.append(matchi)\n imatched = True\n break\n if not imatched:\n allMatched = False\n keepMatches = []\n break\n if allMatched:\n keepMatches = [match0] + keepMatches\n break\n else:\n keepMatches = []\n return keepMatches\n \n",
"execution_count": 43,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 43,
"data": {
"text/plain": "[(13, 15, 17, 16, 20, 19, 18, 21),\n (12, 13, 15, 14, 18, 17, 16, 19),\n (13, 14, 17, 18, 19, 20, 21, 22)]"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "keepMatches = getAlignedSubstructMatch(ms,qry)\nkeepMatches",
"execution_count": 44,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 44,
"data": {
"text/plain": "[(13, 15, 17, 16, 20, 19, 18, 21),\n (12, 13, 15, 14, 18, 17, 16, 19),\n (13, 14, 17, 18, 19, 20, 21, 22)]"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "Draw.MolsToGridImage(ms2d,highlightAtomLists=keepMatches)",
"execution_count": 45,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 45,
"data": {
"image/png": "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\n",
"text/plain": "<IPython.core.display.Image object>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import py3Dmol\nviewer = py3Dmol.view(width=350, height=350)\nIPythonConsole.addMolToView(ms[0],viewer)\nIPythonConsole.addMolToView(ms[1],viewer)\nIPythonConsole.addMolToView(ms[2],viewer)\nfor idx,clr in zip((-1,-2,-3),('redCarbon','cyanCarbon','blueCarbon')):\n viewer.setStyle({'model':idx,},\n {'stick':{'colorscheme':clr,'radius':.15}})\n viewer.setStyle({'model':idx,'serial':keepMatches[idx]},\n {'stick':{'colorscheme':clr},'sphere':{'colorscheme':clr,'radius':.5}})\n\nviewer.zoomTo()\nviewer.show()\n",
"execution_count": 79,
"outputs": [
{
"output_type": "display_data",
"data": {
"application/3dmoljs_load.v0": "<div id=\"3dmolviewer_16558722299894614\" style=\"position: relative; width: 350px; height: 350px\">\n <p id=\"3dmolwarning_16558722299894614\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://3dmol.org/build/3Dmol.js');\n}\n\nvar viewer_16558722299894614 = null;\nvar warn = document.getElementById(\"3dmolwarning_16558722299894614\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_16558722299894614 = $3Dmol.createViewer($(\"#3dmolviewer_16558722299894614\"),{backgroundColor:\"white\"});\nviewer_16558722299894614.zoomTo();\n\tviewer_16558722299894614.addModel(\"BindingDB_18050\\n RDKit 3D\\n\\n 33 35 0 0 0 0 0 0 0 0999 V2000\\n 14.0825 17.4134 33.7894 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.2616 18.4748 34.0351 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.6516 18.6164 31.7628 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5622 19.0757 33.0348 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7548 16.8376 34.8004 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.7402 20.1071 33.3039 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4386 17.5548 31.4573 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.1922 16.9246 32.4699 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.2713 15.9899 29.8698 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.0278 15.3430 30.8715 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9579 15.8547 32.1367 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5103 17.0662 30.1949 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.8163 14.1133 30.5962 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.4721 13.5689 31.7866 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.9207 13.5301 31.7882 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.7459 13.1625 32.9058 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5873 12.7615 34.0599 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3245 13.0786 32.9031 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.3722 12.8426 34.1380 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.6374 12.5640 35.3014 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.2202 12.5439 35.3057 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4819 12.3139 36.4782 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.2891 12.0275 36.4008 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.0468 12.3720 37.6815 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4607 12.1636 38.9753 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5547 13.3581 39.3962 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1056 13.3184 40.8874 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.4658 14.5747 41.3134 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 10.1412 14.7677 41.1209 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1727 15.5211 41.9760 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.8339 10.8243 39.0884 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.6158 10.6358 39.6539 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4697 9.7379 38.5772 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 1 5 1 0\\n 1 8 1 0\\n 2 4 1 0\\n 3 4 2 0\\n 3 7 1 0\\n 4 6 1 0\\n 7 8 2 0\\n 7 12 1 0\\n 8 11 1 0\\n 9 10 1 0\\n 9 12 2 0\\n 10 11 2 0\\n 10 13 1 0\\n 13 14 1 0\\n 14 15 1 0\\n 14 16 1 0\\n 16 18 1 0\\n 16 19 2 0\\n 17 18 2 0\\n 17 21 1 0\\n 19 20 1 0\\n 20 21 2 0\\n 21 22 1 0\\n 22 23 2 0\\n 22 24 1 0\\n 24 25 1 0\\n 25 26 1 0\\n 25 31 1 0\\n 26 27 1 0\\n 27 28 1 0\\n 28 29 2 0\\n 28 30 1 0\\n 31 32 2 0\\n 31 33 1 0\\nM CHG 2 30 -1 33 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558722299894614.setStyle({\"stick\": {}});\n\tviewer_16558722299894614.addModel(\"BindingDB_20676\\n RDKit 3D\\n\\n 31 33 0 0 0 0 0 0 0 0999 V2000\\n 18.1936 16.0518 32.9100 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.4323 18.3879 32.6772 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.5420 18.4144 31.6502 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.7390 17.2078 33.2855 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.5327 15.0421 33.5058 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 19.0289 19.5181 33.0846 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.2774 16.0208 31.8533 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.9794 17.2423 31.2482 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.0779 16.9970 30.2357 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.8386 15.6227 30.2255 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.8876 15.0377 29.2554 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.5749 15.0398 31.2217 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6189 13.6372 31.5703 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.9095 13.3242 32.8454 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8179 13.1073 34.1133 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4994 13.4048 32.9106 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6013 12.9311 34.0049 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.9185 12.6188 35.1971 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.5069 12.6902 35.2817 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8212 12.3939 36.4694 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.7060 12.8686 36.6695 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3411 11.5847 37.3863 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8369 11.2544 38.7036 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.9405 12.4718 39.6748 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8543 12.1565 41.1937 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9882 11.3735 41.7219 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2648 11.7769 41.5288 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7730 10.2677 42.4666 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.4950 10.6314 38.6064 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.4911 10.8988 39.4711 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.2197 9.8166 37.5567 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 4 1 0\\n 1 5 2 0\\n 1 7 1 0\\n 2 3 2 0\\n 2 4 1 0\\n 2 6 1 0\\n 3 8 1 0\\n 7 8 2 0\\n 7 12 1 0\\n 8 9 1 0\\n 9 10 2 0\\n 10 11 1 0\\n 10 12 1 0\\n 12 13 1 0\\n 13 14 1 0\\n 14 16 1 0\\n 14 17 2 0\\n 15 16 2 0\\n 15 19 1 0\\n 17 18 1 0\\n 18 19 2 0\\n 19 20 1 0\\n 20 21 2 0\\n 20 22 1 0\\n 22 23 1 0\\n 23 24 1 0\\n 23 29 1 0\\n 24 25 1 0\\n 25 26 1 0\\n 26 27 2 0\\n 26 28 1 0\\n 29 30 2 0\\n 29 31 1 0\\nM CHG 2 28 -1 31 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558722299894614.setStyle({\"stick\": {}});\n\tviewer_16558722299894614.addModel(\"BindingDB_50008294\\n RDKit 3D\\n\\n 35 37 0 0 0 0 0 0 0 0999 V2000\\n 12.8065 19.3059 32.2234 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5341 19.8046 30.9926 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.8643 19.0872 29.8886 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4039 18.1358 32.4019 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.7823 17.3649 31.2972 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4841 17.8733 30.0043 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8285 17.1233 28.8634 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4627 15.8748 29.0012 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7708 15.3485 30.2804 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4359 16.1185 31.4190 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5876 17.7715 33.5545 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.9559 21.0095 30.8839 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.3549 13.9791 30.4145 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2223 13.7804 31.5768 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.7357 13.3016 32.7953 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.6292 14.1290 31.3776 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.1352 14.9477 32.3475 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3484 13.1465 33.0780 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8632 12.7744 34.3544 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7565 12.5005 35.4094 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.1375 12.5561 35.1284 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6065 12.9521 33.8636 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3054 12.1312 36.6760 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5555 12.9599 37.4000 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.6867 11.0634 37.1407 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.0402 12.7813 38.7403 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1453 11.5970 38.8098 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.1724 12.7687 39.8304 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.7994 12.1854 41.2374 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.0925 11.5928 39.6612 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.4772 10.4329 38.1997 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9196 11.4155 41.8332 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2055 11.7795 41.6207 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.6864 10.2029 42.3892 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.5903 15.6475 33.2179 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 1 4 1 0\\n 2 3 1 0\\n 2 12 1 0\\n 3 6 1 0\\n 4 5 1 0\\n 4 11 2 0\\n 5 6 2 0\\n 5 10 1 0\\n 6 7 1 0\\n 7 8 2 0\\n 8 9 1 0\\n 9 10 2 0\\n 9 13 1 0\\n 13 14 1 0\\n 14 15 1 0\\n 14 16 1 0\\n 15 18 2 0\\n 15 22 1 0\\n 16 17 1 0\\n 17 35 3 0\\n 18 19 1 0\\n 19 20 2 0\\n 20 21 1 0\\n 20 23 1 0\\n 21 22 2 0\\n 23 24 1 0\\n 23 25 2 0\\n 24 26 1 0\\n 26 27 1 0\\n 26 28 1 0\\n 27 30 2 0\\n 27 31 1 0\\n 28 29 1 0\\n 29 32 1 0\\n 32 33 1 0\\n 32 34 2 0\\nM CHG 2 31 -1 33 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558722299894614.setStyle({\"stick\": {}});\n\tviewer_16558722299894614.setStyle({\"model\": -1},{\"stick\": {\"colorscheme\": \"redCarbon\", \"radius\": 0.15}});\n\tviewer_16558722299894614.setStyle({\"model\": -1, \"serial\": [13, 14, 17, 18, 19, 20, 21, 22]},{\"stick\": {\"colorscheme\": \"redCarbon\"}, \"sphere\": {\"colorscheme\": \"redCarbon\", \"radius\": 0.5}});\n\tviewer_16558722299894614.setStyle({\"model\": -2},{\"stick\": {\"colorscheme\": \"cyanCarbon\", \"radius\": 0.15}});\n\tviewer_16558722299894614.setStyle({\"model\": -2, \"serial\": [12, 13, 15, 14, 18, 17, 16, 19]},{\"stick\": {\"colorscheme\": \"cyanCarbon\"}, \"sphere\": {\"colorscheme\": \"cyanCarbon\", \"radius\": 0.5}});\n\tviewer_16558722299894614.setStyle({\"model\": -3},{\"stick\": {\"colorscheme\": \"blueCarbon\", \"radius\": 0.15}});\n\tviewer_16558722299894614.setStyle({\"model\": -3, \"serial\": [13, 15, 17, 16, 20, 19, 18, 21]},{\"stick\": {\"colorscheme\": \"blueCarbon\"}, \"sphere\": {\"colorscheme\": \"blueCarbon\", \"radius\": 0.5}});\n\tviewer_16558722299894614.zoomTo();\nviewer_16558722299894614.render();\n});\n</script>",
"text/html": "<div id=\"3dmolviewer_16558722299894614\" style=\"position: relative; width: 350px; height: 350px\">\n <p id=\"3dmolwarning_16558722299894614\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://3dmol.org/build/3Dmol.js');\n}\n\nvar viewer_16558722299894614 = null;\nvar warn = document.getElementById(\"3dmolwarning_16558722299894614\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_16558722299894614 = $3Dmol.createViewer($(\"#3dmolviewer_16558722299894614\"),{backgroundColor:\"white\"});\nviewer_16558722299894614.zoomTo();\n\tviewer_16558722299894614.addModel(\"BindingDB_18050\\n RDKit 3D\\n\\n 33 35 0 0 0 0 0 0 0 0999 V2000\\n 14.0825 17.4134 33.7894 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.2616 18.4748 34.0351 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.6516 18.6164 31.7628 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5622 19.0757 33.0348 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7548 16.8376 34.8004 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.7402 20.1071 33.3039 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4386 17.5548 31.4573 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.1922 16.9246 32.4699 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.2713 15.9899 29.8698 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.0278 15.3430 30.8715 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9579 15.8547 32.1367 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5103 17.0662 30.1949 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.8163 14.1133 30.5962 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.4721 13.5689 31.7866 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.9207 13.5301 31.7882 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.7459 13.1625 32.9058 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5873 12.7615 34.0599 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3245 13.0786 32.9031 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.3722 12.8426 34.1380 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.6374 12.5640 35.3014 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.2202 12.5439 35.3057 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4819 12.3139 36.4782 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.2891 12.0275 36.4008 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.0468 12.3720 37.6815 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4607 12.1636 38.9753 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5547 13.3581 39.3962 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1056 13.3184 40.8874 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.4658 14.5747 41.3134 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 10.1412 14.7677 41.1209 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1727 15.5211 41.9760 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.8339 10.8243 39.0884 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.6158 10.6358 39.6539 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4697 9.7379 38.5772 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 1 5 1 0\\n 1 8 1 0\\n 2 4 1 0\\n 3 4 2 0\\n 3 7 1 0\\n 4 6 1 0\\n 7 8 2 0\\n 7 12 1 0\\n 8 11 1 0\\n 9 10 1 0\\n 9 12 2 0\\n 10 11 2 0\\n 10 13 1 0\\n 13 14 1 0\\n 14 15 1 0\\n 14 16 1 0\\n 16 18 1 0\\n 16 19 2 0\\n 17 18 2 0\\n 17 21 1 0\\n 19 20 1 0\\n 20 21 2 0\\n 21 22 1 0\\n 22 23 2 0\\n 22 24 1 0\\n 24 25 1 0\\n 25 26 1 0\\n 25 31 1 0\\n 26 27 1 0\\n 27 28 1 0\\n 28 29 2 0\\n 28 30 1 0\\n 31 32 2 0\\n 31 33 1 0\\nM CHG 2 30 -1 33 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558722299894614.setStyle({\"stick\": {}});\n\tviewer_16558722299894614.addModel(\"BindingDB_20676\\n RDKit 3D\\n\\n 31 33 0 0 0 0 0 0 0 0999 V2000\\n 18.1936 16.0518 32.9100 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.4323 18.3879 32.6772 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.5420 18.4144 31.6502 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.7390 17.2078 33.2855 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.5327 15.0421 33.5058 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 19.0289 19.5181 33.0846 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.2774 16.0208 31.8533 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.9794 17.2423 31.2482 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.0779 16.9970 30.2357 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.8386 15.6227 30.2255 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.8876 15.0377 29.2554 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.5749 15.0398 31.2217 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6189 13.6372 31.5703 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.9095 13.3242 32.8454 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8179 13.1073 34.1133 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4994 13.4048 32.9106 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6013 12.9311 34.0049 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.9185 12.6188 35.1971 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.5069 12.6902 35.2817 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8212 12.3939 36.4694 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.7060 12.8686 36.6695 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3411 11.5847 37.3863 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8369 11.2544 38.7036 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.9405 12.4718 39.6748 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8543 12.1565 41.1937 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9882 11.3735 41.7219 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2648 11.7769 41.5288 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7730 10.2677 42.4666 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.4950 10.6314 38.6064 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.4911 10.8988 39.4711 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.2197 9.8166 37.5567 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 4 1 0\\n 1 5 2 0\\n 1 7 1 0\\n 2 3 2 0\\n 2 4 1 0\\n 2 6 1 0\\n 3 8 1 0\\n 7 8 2 0\\n 7 12 1 0\\n 8 9 1 0\\n 9 10 2 0\\n 10 11 1 0\\n 10 12 1 0\\n 12 13 1 0\\n 13 14 1 0\\n 14 16 1 0\\n 14 17 2 0\\n 15 16 2 0\\n 15 19 1 0\\n 17 18 1 0\\n 18 19 2 0\\n 19 20 1 0\\n 20 21 2 0\\n 20 22 1 0\\n 22 23 1 0\\n 23 24 1 0\\n 23 29 1 0\\n 24 25 1 0\\n 25 26 1 0\\n 26 27 2 0\\n 26 28 1 0\\n 29 30 2 0\\n 29 31 1 0\\nM CHG 2 28 -1 31 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558722299894614.setStyle({\"stick\": {}});\n\tviewer_16558722299894614.addModel(\"BindingDB_50008294\\n RDKit 3D\\n\\n 35 37 0 0 0 0 0 0 0 0999 V2000\\n 12.8065 19.3059 32.2234 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.5341 19.8046 30.9926 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.8643 19.0872 29.8886 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4039 18.1358 32.4019 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.7823 17.3649 31.2972 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.4841 17.8733 30.0043 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8285 17.1233 28.8634 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4627 15.8748 29.0012 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7708 15.3485 30.2804 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.4359 16.1185 31.4190 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5876 17.7715 33.5545 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.9559 21.0095 30.8839 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.3549 13.9791 30.4145 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2223 13.7804 31.5768 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 15.7357 13.3016 32.7953 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 17.6292 14.1290 31.3776 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.1352 14.9477 32.3475 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3484 13.1465 33.0780 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.8632 12.7744 34.3544 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.7565 12.5005 35.4094 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.1375 12.5561 35.1284 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.6065 12.9521 33.8636 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.3054 12.1312 36.6760 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.5555 12.9599 37.4000 N 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.6867 11.0634 37.1407 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.0402 12.7813 38.7403 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.1453 11.5970 38.8098 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.1724 12.7687 39.8304 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 13.7994 12.1854 41.2374 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 11.0925 11.5928 39.6612 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 12.4772 10.4329 38.1997 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.9196 11.4155 41.8332 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 16.2055 11.7795 41.6207 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 14.6864 10.2029 42.3892 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 18.5903 15.6475 33.2179 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 1 4 1 0\\n 2 3 1 0\\n 2 12 1 0\\n 3 6 1 0\\n 4 5 1 0\\n 4 11 2 0\\n 5 6 2 0\\n 5 10 1 0\\n 6 7 1 0\\n 7 8 2 0\\n 8 9 1 0\\n 9 10 2 0\\n 9 13 1 0\\n 13 14 1 0\\n 14 15 1 0\\n 14 16 1 0\\n 15 18 2 0\\n 15 22 1 0\\n 16 17 1 0\\n 17 35 3 0\\n 18 19 1 0\\n 19 20 2 0\\n 20 21 1 0\\n 20 23 1 0\\n 21 22 2 0\\n 23 24 1 0\\n 23 25 2 0\\n 24 26 1 0\\n 26 27 1 0\\n 26 28 1 0\\n 27 30 2 0\\n 27 31 1 0\\n 28 29 1 0\\n 29 32 1 0\\n 32 33 1 0\\n 32 34 2 0\\nM CHG 2 31 -1 33 -1\\nM END\\n\",\"sdf\");\n\tviewer_16558722299894614.setStyle({\"stick\": {}});\n\tviewer_16558722299894614.setStyle({\"model\": -1},{\"stick\": {\"colorscheme\": \"redCarbon\", \"radius\": 0.15}});\n\tviewer_16558722299894614.setStyle({\"model\": -1, \"serial\": [13, 14, 17, 18, 19, 20, 21, 22]},{\"stick\": {\"colorscheme\": \"redCarbon\"}, \"sphere\": {\"colorscheme\": \"redCarbon\", \"radius\": 0.5}});\n\tviewer_16558722299894614.setStyle({\"model\": -2},{\"stick\": {\"colorscheme\": \"cyanCarbon\", \"radius\": 0.15}});\n\tviewer_16558722299894614.setStyle({\"model\": -2, \"serial\": [12, 13, 15, 14, 18, 17, 16, 19]},{\"stick\": {\"colorscheme\": \"cyanCarbon\"}, \"sphere\": {\"colorscheme\": \"cyanCarbon\", \"radius\": 0.5}});\n\tviewer_16558722299894614.setStyle({\"model\": -3},{\"stick\": {\"colorscheme\": \"blueCarbon\", \"radius\": 0.15}});\n\tviewer_16558722299894614.setStyle({\"model\": -3, \"serial\": [13, 15, 17, 16, 20, 19, 18, 21]},{\"stick\": {\"colorscheme\": \"blueCarbon\"}, \"sphere\": {\"colorscheme\": \"blueCarbon\", \"radius\": 0.5}});\n\tviewer_16558722299894614.zoomTo();\nviewer_16558722299894614.render();\n});\n</script>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3 (ipykernel)",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.9.12",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"base_numbering": 1,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
},
"gist": {
"id": "",
"data": {
"description": "3D MCS.ipynb",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment