{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A notebook to visualize some of the test systems in the C++ test code from `Code/GraphMol/RGroupDecomposition/testRGroupDecomp.cpp`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from rdkit import Chem\n",
    "from rdkit.Chem import AllChem\n",
    "from rdkit.Chem.Draw import IPythonConsole\n",
    "IPythonConsole.ipython_useSVG=True\n",
    "from rdkit.Chem.rdRGroupDecomposition import RGroupDecomposition, RGroupDecompositionParameters, \\\n",
    "   RGroupMatching, RGroupScore, RGroupLabels, RGroupCoreAlignment\n",
    "import pandas as pd\n",
    "from rdkit.Chem import PandasTools\n",
    "from collections import OrderedDict\n",
    "from IPython.display import HTML\n",
    "from rdkit import rdBase\n",
    "from io import StringIO\n",
    "from rdkit.Chem import Draw\n",
    "rdBase.DisableLog(\"rdApp.debug\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\n",
    "def decomp(options):\n",
    "    options.removeHydrogensPostMatch = True\n",
    "    decomp = RGroupDecomposition(cores, options)\n",
    "    for mol in mols:\n",
    "        decomp.Add(mol)\n",
    "    decomp.Process()\n",
    "    cols = decomp.GetRGroupsAsColumns()\n",
    "    return cols\n",
    "\n",
    "def show_decomp(cols, input_core=None):\n",
    "    if input_core:\n",
    "        if isinstance(input_core, list):\n",
    "            cols['Input core'] = input_core\n",
    "        else:\n",
    "            cols['Input core'] = [input_core] * len(mols)\n",
    "    cols['Mol'] = mols\n",
    "    df = pd.DataFrame(cols);\n",
    "    PandasTools.ChangeMoleculeRendering(df)\n",
    "    return HTML(df.to_html())\n",
    "\n",
    "# for when we can't display structures (\"non-ring aromatic\")\n",
    "def show_decomp_smiles(cols):\n",
    "    cols['mol'] = mols\n",
    "    for c in cols:\n",
    "        cols[c] = ['{}:{}'.format(c, Chem.MolToSmiles(m)) for m in cols[c]]\n",
    "    df = pd.DataFrame(cols);\n",
    "    PandasTools.ChangeMoleculeRendering(df)\n",
    "    return HTML(df.to_html())\n",
    "\n",
    "def print_rows(options):\n",
    "    decomp = RGroupDecomposition(cores, options)\n",
    "    for mol in mols:\n",
    "        decomp.Add(mol)\n",
    "    decomp.Process()\n",
    "    rows = decomp.GetRGroupsAsRows()\n",
    "    for i, r in enumerate(rows):\n",
    "        labels = ['{}:{}'.format(l, Chem.MolToSmiles(r[l])) for l in r]\n",
    "        print('\"{}\",'.format(' '.join(labels)))\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testSDFGRoupMultiCoreNoneShouldMatch\n",
    "\n",
    "Cores, compounds and python code "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:rdkit=\"http://www.rdkit.org/xml\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" baseProfile=\"full\" xml:space=\"preserve\" width=\"600px\" height=\"200px\" viewBox=\"0 0 600 200\">\n",
       "<!-- END OF HEADER -->\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"200\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"200\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"200\" x=\"0\" y=\"0\"> </rect>\n",
       "<path class=\"bond-0 atom-5 atom-0\" d=\"M 137.788,115.913 L 107.503,104.889\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-0 atom-6\" d=\"M 107.503,104.889 L 94.8602,111.611\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-0 atom-6\" d=\"M 94.8602,111.611 L 82.2177,118.333\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-0 atom-1\" d=\"M 107.503,104.889 L 101.907,73.1503\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-1 atom-2\" d=\"M 101.907,73.1503 L 112.118,64.5826\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-1 atom-2\" d=\"M 112.118,64.5826 L 122.329,56.0149\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-8 atom-1\" d=\"M 73.1632,69.1102 L 87.535,71.1303\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-8 atom-1\" d=\"M 87.535,71.1303 L 101.907,73.1503\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-2 atom-3\" d=\"M 130.863,53.9877 L 143.872,58.7228\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-2 atom-3\" d=\"M 143.872,58.7228 L 156.88,63.4578\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-3 atom-4\" d=\"M 156.88,63.4578 L 159.205,76.6427\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-3 atom-4\" d=\"M 159.205,76.6427 L 161.53,89.8276\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-3 atom-9\" d=\"M 156.88,63.4578 L 167.252,54.7549\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-3 atom-9\" d=\"M 167.252,54.7549 L 177.624,46.052\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-4 atom-5\" d=\"M 158.209,98.7773 L 147.998,107.345\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-4 atom-5\" d=\"M 147.998,107.345 L 137.788,115.913\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-5 atom-10\" d=\"M 137.788,115.913 L 140.112,129.098\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-5 atom-10\" d=\"M 140.112,129.098 L 142.437,142.282\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-6 atom-7\" d=\"M 75.8751,116.957 L 65.8692,107.294\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-6 atom-7\" d=\"M 65.8692,107.294 L 55.8634,97.6311\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-7 atom-12\" d=\"M 55.8634,97.6311 L 41.9308,100.088\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-7 atom-12\" d=\"M 41.9308,100.088 L 27.9983,102.544\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-7 atom-8\" d=\"M 55.8634,97.6311 L 61.5962,85.8776\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-7 atom-8\" d=\"M 61.5962,85.8776 L 67.329,74.124\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-10 atom-11\" d=\"M 147.651,149.205 L 156.167,152.305\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-10 atom-11\" d=\"M 156.167,152.305 L 164.683,155.404\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-2\" d=\"M 124.578 47.871 L 127.569 52.7053 Q 127.865 53.1823, 128.342 54.046 Q 128.819 54.9097, 128.845 54.9613 L 128.845 47.871 L 130.057 47.871 L 130.057 56.9981 L 128.807 56.9981 L 125.597 51.7126 Q 125.223 51.0938, 124.823 50.3848 Q 124.436 49.6758, 124.32 49.4566 L 124.32 56.9981 L 123.134 56.9981 L 123.134 47.871 L 124.578 47.871 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-2\" d=\"M 123.025 37.8311 L 124.262 37.8311 L 124.262 41.7115 L 128.929 41.7115 L 128.929 37.8311 L 130.167 37.8311 L 130.167 46.9583 L 128.929 46.9583 L 128.929 42.7428 L 124.262 42.7428 L 124.262 46.9583 L 123.025 46.9583 L 123.025 37.8311 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-4\" d=\"M 160.459 90.6333 L 163.45 95.4676 Q 163.746 95.9446, 164.223 96.8083 Q 164.7 97.672, 164.726 97.7236 L 164.726 90.6333 L 165.938 90.6333 L 165.938 99.7604 L 164.687 99.7604 L 161.477 94.475 Q 161.103 93.8562, 160.704 93.1471 Q 160.317 92.4381, 160.201 92.219 L 160.201 99.7604 L 159.015 99.7604 L 159.015 90.6333 L 160.459 90.6333 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-4\" d=\"M 167.033 90.6333 L 168.271 90.6333 L 168.271 94.5136 L 172.938 94.5136 L 172.938 90.6333 L 174.175 90.6333 L 174.175 99.7604 L 172.938 99.7604 L 172.938 95.5449 L 168.271 95.5449 L 168.271 99.7604 L 167.033 99.7604 L 167.033 90.6333 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-6\" d=\"M 77.6348 122.688 Q 77.6348 121.631, 77.8539 120.973 Q 78.086 120.316, 78.3954 119.968 Q 78.7176 119.62, 79.2075 119.272 Q 79.5427 119.027, 79.7232 118.859 Q 79.9165 118.679, 80.0326 118.408 Q 80.1615 118.137, 80.1615 117.738 Q 80.1615 117.222, 79.7747 116.861 Q 79.4009 116.487, 78.7305 116.487 Q 77.8797 116.487, 76.8484 116.822 L 76.6808 115.714 Q 77.6605 115.366, 78.679 115.366 Q 79.5685 115.366, 80.1873 115.701 Q 80.8061 116.036, 81.1026 116.577 Q 81.4119 117.119, 81.4119 117.738 Q 81.4119 118.343, 81.2444 118.756 Q 81.0897 119.156, 80.8447 119.401 Q 80.6127 119.633, 80.213 119.929 Q 79.7618 120.264, 79.4782 120.561 Q 79.2075 120.844, 79.0141 121.373 Q 78.8208 121.889, 78.8208 122.688 L 77.6348 122.688 M 77.6348 123.526 L 78.8208 123.526 L 78.8208 124.673 L 77.6348 124.673 L 77.6348 123.526 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-8\" d=\"M 68.5803 71.333 Q 68.5803 70.2759, 68.7995 69.6184 Q 69.0315 68.961, 69.3409 68.6129 Q 69.6632 68.2648, 70.1531 67.9168 Q 70.4883 67.6718, 70.6687 67.5042 Q 70.8621 67.3238, 70.9781 67.053 Q 71.107 66.7823, 71.107 66.3827 Q 71.107 65.867, 70.7203 65.5061 Q 70.3464 65.1322, 69.6761 65.1322 Q 68.8253 65.1322, 67.7939 65.4674 L 67.6264 64.3587 Q 68.6061 64.0107, 69.6245 64.0107 Q 70.514 64.0107, 71.1328 64.3458 Q 71.7516 64.681, 72.0481 65.2225 Q 72.3575 65.7639, 72.3575 66.3827 Q 72.3575 66.9886, 72.1899 67.4011 Q 72.0352 67.8007, 71.7903 68.0457 Q 71.5582 68.2777, 71.1586 68.5742 Q 70.7074 68.9094, 70.4238 69.2059 Q 70.1531 69.4895, 69.9597 70.0181 Q 69.7663 70.5337, 69.7663 71.333 L 68.5803 71.333 M 68.5803 72.1709 L 69.7663 72.1709 L 69.7663 73.3183 L 68.5803 73.3183 L 68.5803 72.1709 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-9\" d=\"M 174.033 42.0872 L 175.352 42.0872 L 175.352 37.5863 L 173.897 38.0372 L 173.701 37.5352 L 175.548 36.7099 L 176.152 36.812 L 176.152 42.0872 L 177.334 42.0872 L 177.334 42.7679 L 174.033 42.7679 L 174.033 42.0872 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-9\" d=\"M 183.355 47.3314 L 181.15 43.58 L 181.124 43.58 L 179.668 43.58 L 179.668 47.3314 L 178.43 47.3314 L 178.43 38.2043 L 181.124 38.2043 Q 182.684 38.2043, 183.471 38.9133 Q 184.257 39.6095, 184.257 40.8857 Q 184.257 41.8526, 183.78 42.51 Q 183.316 43.1546, 182.401 43.4124 L 184.708 47.3314 L 183.355 47.3314 M 179.668 42.5487 L 181.124 42.5487 Q 182.014 42.5487, 182.491 42.1233 Q 182.968 41.6979, 182.968 40.8857 Q 182.968 40.0736, 182.491 39.661 Q 182.027 39.2356, 181.124 39.2356 L 179.668 39.2356 L 179.668 42.5487 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-9\" d=\"M 185.907 46.3001 L 187.905 46.3001 L 187.905 39.4806 L 185.701 40.1638 L 185.404 39.4032 L 188.202 38.1527 L 189.117 38.3074 L 189.117 46.3001 L 190.909 46.3001 L 190.909 47.3314 L 185.907 47.3314 L 185.907 46.3001 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-10\" d=\"M 131.71 143.088 L 132.948 143.088 L 132.948 146.968 L 137.615 146.968 L 137.615 143.088 L 138.852 143.088 L 138.852 152.215 L 137.615 152.215 L 137.615 148 L 132.948 148 L 132.948 152.215 L 131.71 152.215 L 131.71 143.088 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-10\" d=\"M 141.366 143.088 L 144.357 147.922 Q 144.653 148.399, 145.13 149.263 Q 145.607 150.127, 145.633 150.178 L 145.633 143.088 L 146.845 143.088 L 146.845 152.215 L 145.594 152.215 L 142.384 146.93 Q 142.011 146.311, 141.611 145.602 Q 141.224 144.893, 141.108 144.674 L 141.108 152.215 L 139.922 152.215 L 139.922 143.088 L 141.366 143.088 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-11\" d=\"M 165.392 153.843 Q 165.613 153.273, 166.141 152.958 Q 166.668 152.635, 167.4 152.635 Q 168.31 152.635, 168.821 153.128 Q 169.331 153.622, 169.331 154.498 Q 169.331 155.391, 168.668 156.225 Q 168.013 157.059, 166.651 158.046 L 169.433 158.046 L 169.433 158.727 L 165.375 158.727 L 165.375 158.156 Q 166.498 157.357, 167.162 156.761 Q 167.834 156.165, 168.157 155.629 Q 168.481 155.093, 168.481 154.54 Q 168.481 153.962, 168.191 153.639 Q 167.902 153.315, 167.4 153.315 Q 166.915 153.315, 166.592 153.511 Q 166.268 153.707, 166.039 154.141 L 165.392 153.843 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-11\" d=\"M 175.454 163.29 L 173.249 159.539 L 173.224 159.539 L 171.767 159.539 L 171.767 163.29 L 170.529 163.29 L 170.529 154.163 L 173.224 154.163 Q 174.783 154.163, 175.57 154.872 Q 176.356 155.568, 176.356 156.844 Q 176.356 157.811, 175.879 158.469 Q 175.415 159.113, 174.5 159.371 L 176.807 163.29 L 175.454 163.29 M 171.767 158.507 L 173.224 158.507 Q 174.113 158.507, 174.59 158.082 Q 175.067 157.657, 175.067 156.844 Q 175.067 156.032, 174.59 155.62 Q 174.126 155.194, 173.224 155.194 L 171.767 155.194 L 171.767 158.507 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-11\" d=\"M 177.478 155.89 Q 177.813 155.027, 178.612 154.55 Q 179.411 154.06, 180.52 154.06 Q 181.899 154.06, 182.673 154.808 Q 183.446 155.555, 183.446 156.883 Q 183.446 158.237, 182.441 159.5 Q 181.448 160.763, 179.386 162.259 L 183.601 162.259 L 183.601 163.29 L 177.452 163.29 L 177.452 162.426 Q 179.154 161.215, 180.159 160.312 Q 181.178 159.41, 181.667 158.598 Q 182.157 157.785, 182.157 156.947 Q 182.157 156.071, 181.719 155.581 Q 181.281 155.091, 180.52 155.091 Q 179.785 155.091, 179.295 155.388 Q 178.806 155.684, 178.457 156.342 L 177.478 155.89 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-12\" d=\"M 11.9837 100.105 Q 12.5708 100.275, 12.8516 100.658 Q 13.1409 101.032, 13.1409 101.628 Q 13.1409 102.139, 12.8856 102.538 Q 12.6304 102.93, 12.1624 103.151 Q 11.6945 103.364, 11.0819 103.364 Q 10.4352 103.364, 9.95025 103.142 Q 9.47378 102.913, 9.09091 102.453 L 9.57588 101.96 Q 9.95025 102.368, 10.2651 102.53 Q 10.5799 102.683, 11.0819 102.683 Q 11.6264 102.683, 11.9582 102.394 Q 12.29 102.096, 12.29 101.62 Q 12.29 101.007, 11.9412 100.735 Q 11.6009 100.454, 10.8606 100.454 L 10.4267 100.454 L 10.4267 99.8413 L 10.8096 99.8413 Q 11.4647 99.8328, 11.8136 99.552 Q 12.1624 99.2627, 12.1624 98.7267 Q 12.1624 98.3353, 11.8731 98.1056 Q 11.5839 97.8673, 11.0904 97.8673 Q 10.5884 97.8673, 10.2736 98.046 Q 9.96727 98.2247, 9.72903 98.6756 L 9.14196 98.3608 Q 9.35467 97.8588, 9.86517 97.527 Q 10.3757 97.1867, 11.0904 97.1867 Q 11.9752 97.1867, 12.4942 97.6036 Q 13.0133 98.0205, 13.0133 98.7267 Q 13.0133 99.2116, 12.7495 99.5605 Q 12.4857 99.9093, 11.9837 100.105 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-12\" d=\"M 19.1612 107.842 L 16.9567 104.091 L 16.931 104.091 L 15.4742 104.091 L 15.4742 107.842 L 14.2367 107.842 L 14.2367 98.7151 L 16.931 98.7151 Q 18.4908 98.7151, 19.2772 99.4241 Q 20.0636 100.12, 20.0636 101.396 Q 20.0636 102.363, 19.5866 103.021 Q 19.1225 103.665, 18.2072 103.923 L 20.5148 107.842 L 19.1612 107.842 M 15.4742 103.059 L 16.931 103.059 Q 17.8205 103.059, 18.2975 102.634 Q 18.7744 102.209, 18.7744 101.396 Q 18.7744 100.584, 18.2975 100.172 Q 17.8334 99.7464, 16.931 99.7464 L 15.4742 99.7464 L 15.4742 103.059 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-12\" d=\"M 25.4393 103.034 Q 26.3288 103.292, 26.7542 103.872 Q 27.1925 104.439, 27.1925 105.341 Q 27.1925 106.115, 26.8058 106.721 Q 26.4191 107.314, 25.71 107.649 Q 25.001 107.971, 24.0728 107.971 Q 23.0931 107.971, 22.3583 107.636 Q 21.6363 107.288, 21.0562 106.592 L 21.791 105.844 Q 22.3583 106.463, 22.8352 106.708 Q 23.3122 106.94, 24.0728 106.94 Q 24.8979 106.94, 25.4006 106.501 Q 25.9034 106.05, 25.9034 105.328 Q 25.9034 104.4, 25.3748 103.988 Q 24.8592 103.562, 23.7376 103.562 L 23.0802 103.562 L 23.0802 102.634 L 23.6603 102.634 Q 24.6529 102.621, 25.1815 102.196 Q 25.71 101.757, 25.71 100.945 Q 25.71 100.352, 25.2717 100.004 Q 24.8334 99.6432, 24.0857 99.6432 Q 23.3251 99.6432, 22.8481 99.914 Q 22.384 100.185, 22.0231 100.868 L 21.1336 100.391 Q 21.4559 99.6304, 22.2293 99.1276 Q 23.0028 98.6119, 24.0857 98.6119 Q 25.4264 98.6119, 26.2128 99.2436 Q 26.9992 99.8753, 26.9992 100.945 Q 26.9992 101.68, 26.5995 102.209 Q 26.1999 102.737, 25.4393 103.034 \" fill=\"#191919\"/>\n",
       "<path class=\"bond-0 atom-5 atom-0\" d=\"M 337.788,115.913 L 307.503,104.889\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-0 atom-6\" d=\"M 307.503,104.889 L 294.86,111.611\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-0 atom-6\" d=\"M 294.86,111.611 L 282.218,118.333\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-0 atom-1\" d=\"M 307.503,104.889 L 301.907,73.1503\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-1 atom-2\" d=\"M 301.907,73.1503 L 326.596,52.4346\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-8 atom-1\" d=\"M 273.163,69.1102 L 287.535,71.1303\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-8 atom-1\" d=\"M 287.535,71.1303 L 301.907,73.1503\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-2 atom-3\" d=\"M 326.596,52.4346 L 356.88,63.4578\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-3 atom-4\" d=\"M 356.88,63.4578 L 359.205,76.6427\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-3 atom-4\" d=\"M 359.205,76.6427 L 361.53,89.8276\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-3 atom-9\" d=\"M 356.88,63.4578 L 367.252,54.7549\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-3 atom-9\" d=\"M 367.252,54.7549 L 377.624,46.052\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-4 atom-5\" d=\"M 358.209,98.7773 L 347.998,107.345\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-4 atom-5\" d=\"M 347.998,107.345 L 337.788,115.913\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-5 atom-10\" d=\"M 337.788,115.913 L 340.112,129.098\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-5 atom-10\" d=\"M 340.112,129.098 L 342.437,142.282\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-6 atom-7\" d=\"M 275.875,116.957 L 265.869,107.294\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-6 atom-7\" d=\"M 265.869,107.294 L 255.863,97.6311\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-7 atom-12\" d=\"M 255.863,97.6311 L 241.931,100.088\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-7 atom-12\" d=\"M 241.931,100.088 L 227.998,102.544\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-7 atom-8\" d=\"M 255.863,97.6311 L 261.596,85.8776\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-7 atom-8\" d=\"M 261.596,85.8776 L 267.329,74.124\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-10 atom-11\" d=\"M 347.651,149.205 L 356.167,152.305\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-10 atom-11\" d=\"M 356.167,152.305 L 364.683,155.404\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-4\" d=\"M 360.459 90.6333 L 363.45 95.4676 Q 363.746 95.9446, 364.223 96.8083 Q 364.7 97.672, 364.726 97.7236 L 364.726 90.6333 L 365.938 90.6333 L 365.938 99.7604 L 364.687 99.7604 L 361.477 94.475 Q 361.103 93.8562, 360.704 93.1471 Q 360.317 92.4381, 360.201 92.219 L 360.201 99.7604 L 359.015 99.7604 L 359.015 90.6333 L 360.459 90.6333 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-4\" d=\"M 367.033 90.6333 L 368.271 90.6333 L 368.271 94.5136 L 372.938 94.5136 L 372.938 90.6333 L 374.175 90.6333 L 374.175 99.7604 L 372.938 99.7604 L 372.938 95.5449 L 368.271 95.5449 L 368.271 99.7604 L 367.033 99.7604 L 367.033 90.6333 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-6\" d=\"M 277.635 122.688 Q 277.635 121.631, 277.854 120.973 Q 278.086 120.316, 278.395 119.968 Q 278.718 119.62, 279.208 119.272 Q 279.543 119.027, 279.723 118.859 Q 279.917 118.679, 280.033 118.408 Q 280.161 118.137, 280.161 117.738 Q 280.161 117.222, 279.775 116.861 Q 279.401 116.487, 278.731 116.487 Q 277.88 116.487, 276.848 116.822 L 276.681 115.714 Q 277.661 115.366, 278.679 115.366 Q 279.568 115.366, 280.187 115.701 Q 280.806 116.036, 281.103 116.577 Q 281.412 117.119, 281.412 117.738 Q 281.412 118.343, 281.244 118.756 Q 281.09 119.156, 280.845 119.401 Q 280.613 119.633, 280.213 119.929 Q 279.762 120.264, 279.478 120.561 Q 279.208 120.844, 279.014 121.373 Q 278.821 121.889, 278.821 122.688 L 277.635 122.688 M 277.635 123.526 L 278.821 123.526 L 278.821 124.673 L 277.635 124.673 L 277.635 123.526 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-8\" d=\"M 268.58 71.333 Q 268.58 70.2759, 268.799 69.6184 Q 269.032 68.961, 269.341 68.6129 Q 269.663 68.2648, 270.153 67.9168 Q 270.488 67.6718, 270.669 67.5042 Q 270.862 67.3238, 270.978 67.053 Q 271.107 66.7823, 271.107 66.3827 Q 271.107 65.867, 270.72 65.5061 Q 270.346 65.1322, 269.676 65.1322 Q 268.825 65.1322, 267.794 65.4674 L 267.626 64.3587 Q 268.606 64.0107, 269.625 64.0107 Q 270.514 64.0107, 271.133 64.3458 Q 271.752 64.681, 272.048 65.2225 Q 272.358 65.7639, 272.358 66.3827 Q 272.358 66.9886, 272.19 67.4011 Q 272.035 67.8007, 271.79 68.0457 Q 271.558 68.2777, 271.159 68.5742 Q 270.707 68.9094, 270.424 69.2059 Q 270.153 69.4895, 269.96 70.0181 Q 269.766 70.5337, 269.766 71.333 L 268.58 71.333 M 268.58 72.1709 L 269.766 72.1709 L 269.766 73.3183 L 268.58 73.3183 L 268.58 72.1709 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-9\" d=\"M 374.033 42.0872 L 375.352 42.0872 L 375.352 37.5863 L 373.897 38.0372 L 373.701 37.5352 L 375.548 36.7099 L 376.152 36.812 L 376.152 42.0872 L 377.334 42.0872 L 377.334 42.7679 L 374.033 42.7679 L 374.033 42.0872 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-9\" d=\"M 383.355 47.3314 L 381.15 43.58 L 381.124 43.58 L 379.668 43.58 L 379.668 47.3314 L 378.43 47.3314 L 378.43 38.2043 L 381.124 38.2043 Q 382.684 38.2043, 383.471 38.9133 Q 384.257 39.6095, 384.257 40.8857 Q 384.257 41.8526, 383.78 42.51 Q 383.316 43.1546, 382.401 43.4124 L 384.708 47.3314 L 383.355 47.3314 M 379.668 42.5487 L 381.124 42.5487 Q 382.014 42.5487, 382.491 42.1233 Q 382.968 41.6979, 382.968 40.8857 Q 382.968 40.0736, 382.491 39.661 Q 382.027 39.2356, 381.124 39.2356 L 379.668 39.2356 L 379.668 42.5487 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-9\" d=\"M 385.907 46.3001 L 387.905 46.3001 L 387.905 39.4806 L 385.701 40.1638 L 385.404 39.4032 L 388.202 38.1527 L 389.117 38.3074 L 389.117 46.3001 L 390.909 46.3001 L 390.909 47.3314 L 385.907 47.3314 L 385.907 46.3001 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-10\" d=\"M 331.71 143.088 L 332.948 143.088 L 332.948 146.968 L 337.615 146.968 L 337.615 143.088 L 338.852 143.088 L 338.852 152.215 L 337.615 152.215 L 337.615 148 L 332.948 148 L 332.948 152.215 L 331.71 152.215 L 331.71 143.088 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-10\" d=\"M 341.366 143.088 L 344.357 147.922 Q 344.653 148.399, 345.13 149.263 Q 345.607 150.127, 345.633 150.178 L 345.633 143.088 L 346.845 143.088 L 346.845 152.215 L 345.594 152.215 L 342.384 146.93 Q 342.011 146.311, 341.611 145.602 Q 341.224 144.893, 341.108 144.674 L 341.108 152.215 L 339.922 152.215 L 339.922 143.088 L 341.366 143.088 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-11\" d=\"M 365.392 153.843 Q 365.613 153.273, 366.141 152.958 Q 366.668 152.635, 367.4 152.635 Q 368.31 152.635, 368.821 153.128 Q 369.331 153.622, 369.331 154.498 Q 369.331 155.391, 368.668 156.225 Q 368.013 157.059, 366.651 158.046 L 369.433 158.046 L 369.433 158.727 L 365.375 158.727 L 365.375 158.156 Q 366.498 157.357, 367.162 156.761 Q 367.834 156.165, 368.157 155.629 Q 368.481 155.093, 368.481 154.54 Q 368.481 153.962, 368.191 153.639 Q 367.902 153.315, 367.4 153.315 Q 366.915 153.315, 366.592 153.511 Q 366.268 153.707, 366.039 154.141 L 365.392 153.843 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-11\" d=\"M 375.454 163.29 L 373.249 159.539 L 373.224 159.539 L 371.767 159.539 L 371.767 163.29 L 370.529 163.29 L 370.529 154.163 L 373.224 154.163 Q 374.783 154.163, 375.57 154.872 Q 376.356 155.568, 376.356 156.844 Q 376.356 157.811, 375.879 158.469 Q 375.415 159.113, 374.5 159.371 L 376.807 163.29 L 375.454 163.29 M 371.767 158.507 L 373.224 158.507 Q 374.113 158.507, 374.59 158.082 Q 375.067 157.657, 375.067 156.844 Q 375.067 156.032, 374.59 155.62 Q 374.126 155.194, 373.224 155.194 L 371.767 155.194 L 371.767 158.507 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-11\" d=\"M 377.478 155.89 Q 377.813 155.027, 378.612 154.55 Q 379.411 154.06, 380.52 154.06 Q 381.899 154.06, 382.673 154.808 Q 383.446 155.555, 383.446 156.883 Q 383.446 158.237, 382.441 159.5 Q 381.448 160.763, 379.386 162.259 L 383.601 162.259 L 383.601 163.29 L 377.452 163.29 L 377.452 162.426 Q 379.154 161.215, 380.159 160.312 Q 381.178 159.41, 381.667 158.598 Q 382.157 157.785, 382.157 156.947 Q 382.157 156.071, 381.719 155.581 Q 381.281 155.091, 380.52 155.091 Q 379.785 155.091, 379.295 155.388 Q 378.806 155.684, 378.457 156.342 L 377.478 155.89 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-12\" d=\"M 211.984 100.105 Q 212.571 100.275, 212.852 100.658 Q 213.141 101.032, 213.141 101.628 Q 213.141 102.139, 212.886 102.538 Q 212.63 102.93, 212.162 103.151 Q 211.694 103.364, 211.082 103.364 Q 210.435 103.364, 209.95 103.142 Q 209.474 102.913, 209.091 102.453 L 209.576 101.96 Q 209.95 102.368, 210.265 102.53 Q 210.58 102.683, 211.082 102.683 Q 211.626 102.683, 211.958 102.394 Q 212.29 102.096, 212.29 101.62 Q 212.29 101.007, 211.941 100.735 Q 211.601 100.454, 210.861 100.454 L 210.427 100.454 L 210.427 99.8413 L 210.81 99.8413 Q 211.465 99.8328, 211.814 99.552 Q 212.162 99.2627, 212.162 98.7267 Q 212.162 98.3353, 211.873 98.1056 Q 211.584 97.8673, 211.09 97.8673 Q 210.588 97.8673, 210.274 98.046 Q 209.967 98.2247, 209.729 98.6756 L 209.142 98.3608 Q 209.355 97.8588, 209.865 97.527 Q 210.376 97.1867, 211.09 97.1867 Q 211.975 97.1867, 212.494 97.6036 Q 213.013 98.0205, 213.013 98.7267 Q 213.013 99.2116, 212.749 99.5605 Q 212.486 99.9093, 211.984 100.105 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-12\" d=\"M 219.161 107.842 L 216.957 104.091 L 216.931 104.091 L 215.474 104.091 L 215.474 107.842 L 214.237 107.842 L 214.237 98.7151 L 216.931 98.7151 Q 218.491 98.7151, 219.277 99.4241 Q 220.064 100.12, 220.064 101.396 Q 220.064 102.363, 219.587 103.021 Q 219.123 103.665, 218.207 103.923 L 220.515 107.842 L 219.161 107.842 M 215.474 103.059 L 216.931 103.059 Q 217.82 103.059, 218.297 102.634 Q 218.774 102.209, 218.774 101.396 Q 218.774 100.584, 218.297 100.172 Q 217.833 99.7464, 216.931 99.7464 L 215.474 99.7464 L 215.474 103.059 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-12\" d=\"M 225.439 103.034 Q 226.329 103.292, 226.754 103.872 Q 227.193 104.439, 227.193 105.341 Q 227.193 106.115, 226.806 106.721 Q 226.419 107.314, 225.71 107.649 Q 225.001 107.971, 224.073 107.971 Q 223.093 107.971, 222.358 107.636 Q 221.636 107.288, 221.056 106.592 L 221.791 105.844 Q 222.358 106.463, 222.835 106.708 Q 223.312 106.94, 224.073 106.94 Q 224.898 106.94, 225.401 106.501 Q 225.903 106.05, 225.903 105.328 Q 225.903 104.4, 225.375 103.988 Q 224.859 103.562, 223.738 103.562 L 223.08 103.562 L 223.08 102.634 L 223.66 102.634 Q 224.653 102.621, 225.181 102.196 Q 225.71 101.757, 225.71 100.945 Q 225.71 100.352, 225.272 100.004 Q 224.833 99.6432, 224.086 99.6432 Q 223.325 99.6432, 222.848 99.914 Q 222.384 100.185, 222.023 100.868 L 221.134 100.391 Q 221.456 99.6304, 222.229 99.1276 Q 223.003 98.6119, 224.086 98.6119 Q 225.426 98.6119, 226.213 99.2436 Q 226.999 99.8753, 226.999 100.945 Q 226.999 101.68, 226.6 102.209 Q 226.2 102.737, 225.439 103.034 \" fill=\"#191919\"/>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sdcores = \"\"\"\n",
    "Mrv1813 05061918272D          \n",
    "\n",
    " 13 14  0  0  0  0            999 V2000\n",
    "   -1.1505    0.0026    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.1505   -0.8225    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.4360   -1.2350    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.2784   -0.8225    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.2784    0.0026    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.4360    0.4151    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.9354    0.2575    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -2.4202   -0.4099    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.9354   -1.0775    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.9907   -1.2333    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.4360    1.2373    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.2784    1.6497    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -3.2452   -0.4098    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  6  1  1  0  0  0  0\n",
    "  1  7  1  0  0  0  0\n",
    "  1  2  1  0  0  0  0\n",
    "  2  3  1  0  0  0  0\n",
    "  9  2  1  0  0  0  0\n",
    "  3  4  1  0  0  0  0\n",
    "  4  5  1  0  0  0  0\n",
    "  4 10  1  0  0  0  0\n",
    "  5  6  1  0  0  0  0\n",
    "  6 11  1  0  0  0  0\n",
    "  7  8  1  0  0  0  0\n",
    "  8 13  1  0  0  0  0\n",
    "  8  9  1  0  0  0  0\n",
    " 11 12  1  0  0  0  0\n",
    "M  RGP  3  10   1  12   2  13   3\n",
    "M  END\n",
    "$$$$\n",
    "\n",
    "  Mrv1813 05061918272D          \n",
    "\n",
    " 13 14  0  0  0  0            999 V2000\n",
    "    6.9524    0.1684    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    6.9524   -0.6567    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    7.6668   -1.0692    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    8.3813   -0.6567    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    8.3813    0.1684    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    7.6668    0.5809    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    6.1674    0.4233    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.6827   -0.2441    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    6.1674   -0.9117    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    9.0935   -1.0675    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    7.6668    1.4031    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    8.3813    1.8155    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    4.8576   -0.2440    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  6  1  1  0  0  0  0\n",
    "  1  7  1  0  0  0  0\n",
    "  1  2  1  0  0  0  0\n",
    "  2  3  1  0  0  0  0\n",
    "  9  2  1  0  0  0  0\n",
    "  3  4  1  0  0  0  0\n",
    "  4  5  1  0  0  0  0\n",
    "  4 10  1  0  0  0  0\n",
    "  5  6  1  0  0  0  0\n",
    "  6 11  1  0  0  0  0\n",
    "  7  8  1  0  0  0  0\n",
    "  8 13  1  0  0  0  0\n",
    "  8  9  1  0  0  0  0\n",
    " 11 12  1  0  0  0  0\n",
    "M  RGP  3  10   1  12   2  13   3\n",
    "M  END\n",
    "$$$$)CTAB\"\"\"\n",
    "\n",
    "supplier = Chem.SDMolSupplier()\n",
    "supplier.SetData(sdcores)\n",
    "cores = [x for x in supplier]\n",
    "for core in cores:\n",
    "    AllChem.Compute2DCoords(core)\n",
    "Draw.MolsToGridImage(cores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:rdkit=\"http://www.rdkit.org/xml\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" baseProfile=\"full\" xml:space=\"preserve\" width=\"600px\" height=\"400px\" viewBox=\"0 0 600 400\">\n",
       "<!-- END OF HEADER -->\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"400\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"400\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"400\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"400\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"400\" x=\"0\" y=\"0\"> </rect>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 9.09091,106.652 L 17.2823,74.5267\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-0 atom-14\" d=\"M 9.09091,106.652 L 32.8161,129.808\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-1 atom-2\" d=\"M 17.2823,74.5267 L 49.1988,65.5583\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-2 atom-3\" d=\"M 49.1988,65.5583 L 58.8667,74.9943\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-2 atom-3\" d=\"M 58.8667,74.9943 L 68.5346,84.4304\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-3 atom-4\" d=\"M 77.3135,87.4812 L 91.077,83.6136\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-3 atom-4\" d=\"M 91.077,83.6136 L 104.841,79.7461\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-3 atom-13\" d=\"M 71.5157,94.2378 L 68.1242,107.539\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-3 atom-13\" d=\"M 68.1242,107.539 L 64.7327,120.839\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-4 atom-5\" d=\"M 104.841,79.7461 L 108.232,66.4453\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-4 atom-5\" d=\"M 108.232,66.4453 L 111.624,53.1446\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-4 atom-12\" d=\"M 104.841,79.7461 L 128.566,102.902\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-5 atom-6\" d=\"M 117.421,46.3879 L 131.185,42.5204\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-5 atom-6\" d=\"M 131.185,42.5204 L 144.949,38.6529\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-6 atom-7\" d=\"M 144.949,38.6529 L 154.616,48.0889\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-6 atom-7\" d=\"M 154.616,48.0889 L 164.284,57.525\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-7 atom-8\" d=\"M 167.265,67.3324 L 163.874,80.6332\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-7 atom-8\" d=\"M 163.874,80.6332 L 160.482,93.934\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-8 atom-9\" d=\"M 160.482,93.934 L 167.837,104.964\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-8 atom-9\" d=\"M 167.837,104.964 L 175.192,115.994\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-8 atom-12\" d=\"M 160.482,93.934 L 128.566,102.902\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-9 atom-10\" d=\"M 174.512,127.04 L 166.419,137.287\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-9 atom-10\" d=\"M 166.419,137.287 L 158.325,147.533\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-14 atom-10 atom-11\" d=\"M 158.325,147.533 L 127.233,136.028\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-15 atom-11 atom-12\" d=\"M 127.233,136.028 L 128.566,102.902\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-16 atom-13 atom-14\" d=\"M 64.7327,120.839 L 32.8161,129.808\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-3\" d=\"M 70.8487 84.0202 L 73.9253 88.9931 Q 74.2303 89.4837, 74.7209 90.3722 Q 75.2116 91.2607, 75.2381 91.3138 L 75.2381 84.0202 L 76.4846 84.0202 L 76.4846 93.409 L 75.1983 93.409 L 71.8963 87.972 Q 71.5117 87.3354, 71.1006 86.6061 Q 70.7028 85.8767, 70.5835 85.6513 L 70.5835 93.409 L 69.3634 93.409 L 69.3634 84.0202 L 70.8487 84.0202 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-5\" d=\"M 101.024 42.9269 L 102.297 42.9269 L 102.297 46.9185 L 107.098 46.9185 L 107.098 42.9269 L 108.371 42.9269 L 108.371 52.3158 L 107.098 52.3158 L 107.098 47.9794 L 102.297 47.9794 L 102.297 52.3158 L 101.024 52.3158 L 101.024 42.9269 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-5\" d=\"M 110.957 42.9269 L 114.033 47.8998 Q 114.338 48.3905, 114.829 49.279 Q 115.32 50.1675, 115.346 50.2205 L 115.346 42.9269 L 116.593 42.9269 L 116.593 52.3158 L 115.306 52.3158 L 112.004 46.8787 Q 111.62 46.2422, 111.209 45.5128 Q 110.811 44.7835, 110.691 44.558 L 110.691 52.3158 L 109.471 52.3158 L 109.471 42.9269 L 110.957 42.9269 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-7\" d=\"M 166.598 57.1148 L 169.675 62.0877 Q 169.98 62.5783, 170.471 63.4668 Q 170.961 64.3553, 170.988 64.4084 L 170.988 57.1148 L 172.234 57.1148 L 172.234 66.5036 L 170.948 66.5036 L 167.646 61.0666 Q 167.261 60.43, 166.85 59.7007 Q 166.453 58.9713, 166.333 58.7459 L 166.333 66.5036 L 165.113 66.5036 L 165.113 57.1148 L 166.598 57.1148 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-7\" d=\"M 173.362 57.1148 L 174.635 57.1148 L 174.635 61.1064 L 179.435 61.1064 L 179.435 57.1148 L 180.708 57.1148 L 180.708 66.5036 L 179.435 66.5036 L 179.435 62.1672 L 174.635 62.1672 L 174.635 66.5036 L 173.362 66.5036 L 173.362 57.1148 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-9\" d=\"M 176.799 116.823 L 179.876 121.796 Q 180.181 122.286, 180.672 123.175 Q 181.162 124.063, 181.189 124.116 L 181.189 116.823 L 182.435 116.823 L 182.435 126.211 L 181.149 126.211 L 177.847 120.774 Q 177.462 120.138, 177.051 119.409 Q 176.653 118.679, 176.534 118.454 L 176.534 126.211 L 175.314 126.211 L 175.314 116.823 L 176.799 116.823 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-9\" d=\"M 183.562 116.823 L 184.836 116.823 L 184.836 120.814 L 189.636 120.814 L 189.636 116.823 L 190.909 116.823 L 190.909 126.211 L 189.636 126.211 L 189.636 121.875 L 184.836 121.875 L 184.836 126.211 L 183.562 126.211 L 183.562 116.823 \" fill=\"#0000FF\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 280.276,172.195 L 287.151,160.746\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 287.151,160.746 L 294.026,149.296\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 294.279,138.25 L 287.771,126.516\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 287.771,126.516 L 281.262,114.782\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 281.262,114.782 L 266.883,114.535\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 266.883,114.535 L 252.504,114.288\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-2 atom-13\" d=\"M 281.262,114.782 L 298.329,86.3594\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-3 atom-4\" d=\"M 245.051,108.689 L 238.542,96.955\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-3 atom-4\" d=\"M 238.542,96.955 L 232.033,85.2209\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-4 atom-5\" d=\"M 232.033,85.2209 L 238.908,73.7714\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-4 atom-5\" d=\"M 238.908,73.7714 L 245.784,62.3219\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-5 atom-6\" d=\"M 253.49,56.8741 L 267.869,57.121\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-5 atom-6\" d=\"M 267.869,57.121 L 282.248,57.368\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-6 atom-7\" d=\"M 282.248,57.368 L 291.63,47.3012\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-6 atom-7\" d=\"M 291.63,47.3012 L 301.012,37.2345\" style=\"fill:none;fill-rule:evenodd;stroke:#CCCC00;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-6 atom-13\" d=\"M 282.248,57.368 L 298.329,86.3594\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-7 atom-8\" d=\"M 308.69,34.9041 L 321.796,41.0109\" style=\"fill:none;fill-rule:evenodd;stroke:#CCCC00;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-7 atom-8\" d=\"M 321.796,41.0109 L 334.902,47.1177\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-8 atom-9\" d=\"M 334.902,47.1177 L 330.871,80.0244\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-9 atom-10\" d=\"M 330.871,80.0244 L 355.123,102.628\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-9 atom-13\" d=\"M 330.871,80.0244 L 298.329,86.3594\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-10 atom-12\" d=\"M 355.123,102.628 L 347.675,134.933\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-14 atom-10 atom-11\" d=\"M 355.123,102.628 L 386.825,92.9258\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-1\" d=\"M 295.268 139.079 L 298.344 144.052 Q 298.649 144.542, 299.14 145.431 Q 299.63 146.319, 299.657 146.372 L 299.657 139.079 L 300.904 139.079 L 300.904 148.468 L 299.617 148.468 L 296.315 143.03 Q 295.931 142.394, 295.52 141.665 Q 295.122 140.935, 295.002 140.71 L 295.002 148.468 L 293.782 148.468 L 293.782 139.079 L 295.268 139.079 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-1\" d=\"M 302.031 139.079 L 303.304 139.079 L 303.304 143.07 L 308.104 143.07 L 308.104 139.079 L 309.377 139.079 L 309.377 148.468 L 308.104 148.468 L 308.104 144.131 L 303.304 144.131 L 303.304 148.468 L 302.031 148.468 L 302.031 139.079 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-3\" d=\"M 236.106 109.518 L 237.379 109.518 L 237.379 113.51 L 242.18 113.51 L 242.18 109.518 L 243.453 109.518 L 243.453 118.907 L 242.18 118.907 L 242.18 114.57 L 237.379 114.57 L 237.379 118.907 L 236.106 118.907 L 236.106 109.518 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-3\" d=\"M 246.039 109.518 L 249.115 114.491 Q 249.42 114.982, 249.911 115.87 Q 250.402 116.759, 250.428 116.812 L 250.428 109.518 L 251.675 109.518 L 251.675 118.907 L 250.389 118.907 L 247.086 113.47 Q 246.702 112.833, 246.291 112.104 Q 245.893 111.375, 245.774 111.149 L 245.774 118.907 L 244.554 118.907 L 244.554 109.518 L 246.039 109.518 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-5\" d=\"M 237.092 52.1043 L 238.365 52.1043 L 238.365 56.0959 L 243.166 56.0959 L 243.166 52.1043 L 244.439 52.1043 L 244.439 61.4931 L 243.166 61.4931 L 243.166 57.1568 L 238.365 57.1568 L 238.365 61.4931 L 237.092 61.4931 L 237.092 52.1043 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-5\" d=\"M 247.025 52.1043 L 250.101 57.0772 Q 250.406 57.5678, 250.897 58.4563 Q 251.388 59.3448, 251.414 59.3979 L 251.414 52.1043 L 252.661 52.1043 L 252.661 61.4931 L 251.374 61.4931 L 248.072 56.0561 Q 247.688 55.4196, 247.277 54.6902 Q 246.879 53.9608, 246.76 53.7354 L 246.76 61.4931 L 245.54 61.4931 L 245.54 52.1043 L 247.025 52.1043 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-7\" d=\"M 302.199 36.3377 Q 302.305 36.3775, 302.743 36.5631 Q 303.18 36.7488, 303.658 36.8681 Q 304.148 36.9742, 304.626 36.9742 Q 305.514 36.9742, 306.031 36.5499 Q 306.549 36.1122, 306.549 35.3564 Q 306.549 34.8392, 306.283 34.5209 Q 306.031 34.2026, 305.634 34.0302 Q 305.236 33.8579, 304.573 33.6589 Q 303.737 33.407, 303.233 33.1683 Q 302.743 32.9296, 302.385 32.4257 Q 302.04 31.9217, 302.04 31.073 Q 302.04 29.8928, 302.836 29.1634 Q 303.644 28.4341, 305.236 28.4341 Q 306.323 28.4341, 307.556 28.9513 L 307.251 29.9724 Q 306.124 29.5082, 305.276 29.5082 Q 304.361 29.5082, 303.857 29.8928 Q 303.353 30.2641, 303.366 30.9139 Q 303.366 31.4178, 303.618 31.7228 Q 303.883 32.0278, 304.254 32.2002 Q 304.639 32.3726, 305.276 32.5715 Q 306.124 32.8368, 306.628 33.102 Q 307.132 33.3672, 307.49 33.9109 Q 307.861 34.4413, 307.861 35.3564 Q 307.861 36.6559, 306.986 37.3588 Q 306.124 38.0484, 304.679 38.0484 Q 303.843 38.0484, 303.207 37.8627 Q 302.584 37.6903, 301.841 37.3853 L 302.199 36.3377 \" fill=\"#CCCC00\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 480.276,172.195 L 487.151,160.746\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 487.151,160.746 L 494.026,149.296\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 494.279,138.25 L 487.771,126.516\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 487.771,126.516 L 481.262,114.782\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 481.262,114.782 L 466.883,114.535\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 466.883,114.535 L 452.504,114.288\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-2 atom-13\" d=\"M 481.262,114.782 L 498.329,86.3594\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-3 atom-4\" d=\"M 445.051,108.689 L 438.542,96.955\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-3 atom-4\" d=\"M 438.542,96.955 L 432.033,85.2209\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-4 atom-5\" d=\"M 432.033,85.2209 L 449.1,56.7987\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-5 atom-6\" d=\"M 449.1,56.7987 L 482.248,57.368\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-6 atom-7\" d=\"M 482.248,57.368 L 491.63,47.3012\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-6 atom-7\" d=\"M 491.63,47.3012 L 501.012,37.2345\" style=\"fill:none;fill-rule:evenodd;stroke:#CCCC00;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-6 atom-13\" d=\"M 482.248,57.368 L 498.329,86.3594\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-7 atom-8\" d=\"M 508.69,34.9041 L 521.796,41.0109\" style=\"fill:none;fill-rule:evenodd;stroke:#CCCC00;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-7 atom-8\" d=\"M 521.796,41.0109 L 534.902,47.1177\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-8 atom-9\" d=\"M 534.902,47.1177 L 530.871,80.0244\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-9 atom-10\" d=\"M 530.871,80.0244 L 555.123,102.628\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-9 atom-13\" d=\"M 530.871,80.0244 L 498.329,86.3594\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-10 atom-12\" d=\"M 555.123,102.628 L 547.675,134.933\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-14 atom-10 atom-11\" d=\"M 555.123,102.628 L 586.825,92.9258\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-1\" d=\"M 495.268 139.079 L 498.344 144.052 Q 498.649 144.542, 499.14 145.431 Q 499.63 146.319, 499.657 146.372 L 499.657 139.079 L 500.904 139.079 L 500.904 148.468 L 499.617 148.468 L 496.315 143.03 Q 495.931 142.394, 495.52 141.665 Q 495.122 140.935, 495.002 140.71 L 495.002 148.468 L 493.782 148.468 L 493.782 139.079 L 495.268 139.079 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-1\" d=\"M 502.031 139.079 L 503.304 139.079 L 503.304 143.07 L 508.104 143.07 L 508.104 139.079 L 509.377 139.079 L 509.377 148.468 L 508.104 148.468 L 508.104 144.131 L 503.304 144.131 L 503.304 148.468 L 502.031 148.468 L 502.031 139.079 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-3\" d=\"M 436.106 109.518 L 437.379 109.518 L 437.379 113.51 L 442.18 113.51 L 442.18 109.518 L 443.453 109.518 L 443.453 118.907 L 442.18 118.907 L 442.18 114.57 L 437.379 114.57 L 437.379 118.907 L 436.106 118.907 L 436.106 109.518 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-3\" d=\"M 446.039 109.518 L 449.115 114.491 Q 449.42 114.982, 449.911 115.87 Q 450.402 116.759, 450.428 116.812 L 450.428 109.518 L 451.675 109.518 L 451.675 118.907 L 450.389 118.907 L 447.086 113.47 Q 446.702 112.833, 446.291 112.104 Q 445.893 111.375, 445.774 111.149 L 445.774 118.907 L 444.554 118.907 L 444.554 109.518 L 446.039 109.518 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-7\" d=\"M 502.199 36.3377 Q 502.305 36.3775, 502.743 36.5631 Q 503.18 36.7488, 503.658 36.8681 Q 504.148 36.9742, 504.626 36.9742 Q 505.514 36.9742, 506.031 36.5499 Q 506.549 36.1122, 506.549 35.3564 Q 506.549 34.8392, 506.283 34.5209 Q 506.031 34.2026, 505.634 34.0302 Q 505.236 33.8579, 504.573 33.6589 Q 503.737 33.407, 503.233 33.1683 Q 502.743 32.9296, 502.385 32.4257 Q 502.04 31.9217, 502.04 31.073 Q 502.04 29.8928, 502.836 29.1634 Q 503.644 28.4341, 505.236 28.4341 Q 506.323 28.4341, 507.556 28.9513 L 507.251 29.9724 Q 506.124 29.5082, 505.276 29.5082 Q 504.361 29.5082, 503.857 29.8928 Q 503.353 30.2641, 503.366 30.9139 Q 503.366 31.4178, 503.618 31.7228 Q 503.883 32.0278, 504.254 32.2002 Q 504.639 32.3726, 505.276 32.5715 Q 506.124 32.8368, 506.628 33.102 Q 507.132 33.3672, 507.49 33.9109 Q 507.861 34.4413, 507.861 35.3564 Q 507.861 36.6559, 506.986 37.3588 Q 506.124 38.0484, 504.679 38.0484 Q 503.843 38.0484, 503.207 37.8627 Q 502.584 37.6903, 501.841 37.3853 L 502.199 36.3377 \" fill=\"#CCCC00\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 165.438,338.288 L 158.717,326.716\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 158.717,326.716 L 151.996,315.143\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 151.23,304.097 L 156.712,291.698\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 156.712,291.698 L 162.194,279.299\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-1 atom-11\" d=\"M 144.398,309.17 L 130.103,307.705\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-1 atom-11\" d=\"M 130.103,307.705 L 115.808,306.24\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-2 atom-3\" d=\"M 162.194,279.299 L 152.041,270.205\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-2 atom-3\" d=\"M 152.041,270.205 L 141.889,261.111\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-3 atom-4\" d=\"M 133.11,259.728 L 120.97,266.779\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-3 atom-4\" d=\"M 120.97,266.779 L 108.831,273.83\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-4 atom-11\" d=\"M 108.831,273.83 L 115.808,306.24\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-4 atom-5\" d=\"M 108.831,273.83 L 77.2746,263.666\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-5 atom-6\" d=\"M 77.2746,263.666 L 74.3808,250.223\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-5 atom-6\" d=\"M 74.3808,250.223 L 71.4869,236.779\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-5 atom-7\" d=\"M 77.2746,263.666 L 67.1794,272.804\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-5 atom-7\" d=\"M 67.1794,272.804 L 57.0842,281.941\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-7 atom-8\" d=\"M 53.8838,291.437 L 56.7776,304.88\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-7 atom-8\" d=\"M 56.7776,304.88 L 59.6715,318.324\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-8 atom-9\" d=\"M 59.6715,318.324 L 49.9509,327.122\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-8 atom-9\" d=\"M 49.9509,327.122 L 40.2304,335.92\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-8 atom-10\" d=\"M 59.6715,318.324 L 91.228,328.487\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-10 atom-11\" d=\"M 91.228,328.487 L 115.808,306.24\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-1\" d=\"M 146.712 304.926 L 149.789 309.899 Q 150.094 310.389, 150.585 311.278 Q 151.075 312.166, 151.102 312.219 L 151.102 304.926 L 152.348 304.926 L 152.348 314.314 L 151.062 314.314 L 147.76 308.877 Q 147.375 308.241, 146.964 307.512 Q 146.566 306.782, 146.447 306.557 L 146.447 314.314 L 145.227 314.314 L 145.227 304.926 L 146.712 304.926 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-3\" d=\"M 135.424 252.485 L 138.5 257.458 Q 138.805 257.948, 139.296 258.837 Q 139.787 259.725, 139.813 259.778 L 139.813 252.485 L 141.06 252.485 L 141.06 261.874 L 139.773 261.874 L 136.471 256.436 Q 136.087 255.8, 135.676 255.071 Q 135.278 254.341, 135.159 254.116 L 135.159 261.874 L 133.939 261.874 L 133.939 252.485 L 135.424 252.485 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-3\" d=\"M 133.826 242.157 L 135.099 242.157 L 135.099 246.149 L 139.899 246.149 L 139.899 242.157 L 141.173 242.157 L 141.173 251.546 L 139.899 251.546 L 139.899 247.209 L 135.099 247.209 L 135.099 251.546 L 133.826 251.546 L 133.826 242.157 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-6\" d=\"M 68.2226 226.562 L 71.2992 231.535 Q 71.6042 232.025, 72.0948 232.914 Q 72.5855 233.802, 72.612 233.855 L 72.612 226.562 L 73.8586 226.562 L 73.8586 235.951 L 72.5722 235.951 L 69.2702 230.514 Q 68.8857 229.877, 68.4746 229.148 Q 68.0767 228.418, 67.9574 228.193 L 67.9574 235.951 L 66.7374 235.951 L 66.7374 226.562 L 68.2226 226.562 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-6\" d=\"M 74.9857 226.562 L 76.2588 226.562 L 76.2588 230.553 L 81.0593 230.553 L 81.0593 226.562 L 82.3324 226.562 L 82.3324 235.951 L 81.0593 235.951 L 81.0593 231.614 L 76.2588 231.614 L 76.2588 235.951 L 74.9857 235.951 L 74.9857 226.562 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-6\" d=\"M 82.7875 235.621 Q 83.0151 235.035, 83.5577 234.711 Q 84.1003 234.378, 84.853 234.378 Q 85.7895 234.378, 86.3147 234.886 Q 86.8398 235.394, 86.8398 236.295 Q 86.8398 237.214, 86.1571 238.072 Q 85.4832 238.93, 84.0828 239.945 L 86.9448 239.945 L 86.9448 240.645 L 82.77 240.645 L 82.77 240.059 Q 83.9253 239.236, 84.608 238.623 Q 85.2994 238.011, 85.632 237.459 Q 85.9646 236.908, 85.9646 236.339 Q 85.9646 235.744, 85.667 235.411 Q 85.3694 235.079, 84.853 235.079 Q 84.3542 235.079, 84.0216 235.28 Q 83.689 235.481, 83.4527 235.928 L 82.7875 235.621 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-7\" d=\"M 40.6869 281.219 L 41.96 281.219 L 41.96 285.211 L 46.7605 285.211 L 46.7605 281.219 L 48.0336 281.219 L 48.0336 290.608 L 46.7605 290.608 L 46.7605 286.272 L 41.96 286.272 L 41.96 290.608 L 40.6869 290.608 L 40.6869 281.219 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-7\" d=\"M 50.6195 281.219 L 53.696 286.192 Q 54.001 286.683, 54.4917 287.571 Q 54.9824 288.46, 55.0089 288.513 L 55.0089 281.219 L 56.2554 281.219 L 56.2554 290.608 L 54.9691 290.608 L 51.6671 285.171 Q 51.2825 284.534, 50.8714 283.805 Q 50.4736 283.076, 50.3542 282.85 L 50.3542 290.608 L 49.1342 290.608 L 49.1342 281.219 L 50.6195 281.219 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-9\" d=\"M 22.7722 335.93 L 24.0452 335.93 L 24.0452 339.921 L 28.8457 339.921 L 28.8457 335.93 L 30.1188 335.93 L 30.1188 345.318 L 28.8457 345.318 L 28.8457 340.982 L 24.0452 340.982 L 24.0452 345.318 L 22.7722 345.318 L 22.7722 335.93 \" fill=\"#FF0000\"/>\n",
       "<path class=\"atom-9\" d=\"M 30.7819 340.598 Q 30.7819 338.343, 31.8958 337.083 Q 33.0097 335.824, 35.0917 335.824 Q 37.1737 335.824, 38.2876 337.083 Q 39.4016 338.343, 39.4016 340.598 Q 39.4016 342.878, 38.2744 344.178 Q 37.1472 345.464, 35.0917 345.464 Q 33.023 345.464, 31.8958 344.178 Q 30.7819 342.892, 30.7819 340.598 M 35.0917 344.403 Q 36.5239 344.403, 37.293 343.449 Q 38.0754 342.481, 38.0754 340.598 Q 38.0754 338.754, 37.293 337.826 Q 36.5239 336.884, 35.0917 336.884 Q 33.6595 336.884, 32.8771 337.813 Q 32.108 338.741, 32.108 340.598 Q 32.108 342.494, 32.8771 343.449 Q 33.6595 344.403, 35.0917 344.403 \" fill=\"#FF0000\"/>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sdmols=\"\"\"CTAB(\n",
    "  Mrv1813 05061918322D          \n",
    "\n",
    " 15 17  0  0  0  0            999 V2000\n",
    "    0.1742    0.6899    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.8886    0.2774    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.8886   -0.5476    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.1742   -0.9601    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.1742   -1.7851    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.8886   -2.1976    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.8886   -3.0226    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.1742   -3.4351    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.5403   -3.0226    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.3249   -3.2775    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.8099   -2.6101    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.3249   -1.9426    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.5403   -2.1976    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.5403   -0.5476    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.5403    0.2774    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  1  2  1  0  0  0  0\n",
    "  1 15  1  0  0  0  0\n",
    "  2  3  1  0  0  0  0\n",
    "  3  4  1  0  0  0  0\n",
    "  4  5  1  0  0  0  0\n",
    "  4 14  1  0  0  0  0\n",
    "  5  6  1  0  0  0  0\n",
    "  5 13  1  0  0  0  0\n",
    "  6  7  1  0  0  0  0\n",
    "  7  8  1  0  0  0  0\n",
    "  8  9  1  0  0  0  0\n",
    "  9 10  1  0  0  0  0\n",
    "  9 13  1  0  0  0  0\n",
    " 10 11  1  0  0  0  0\n",
    " 11 12  1  0  0  0  0\n",
    " 12 13  1  0  0  0  0\n",
    " 14 15  1  0  0  0  0\n",
    "M  END\n",
    "$$$$\n",
    "\n",
    "  Mrv1813 05061918322D          \n",
    "\n",
    " 14 15  0  0  0  0            999 V2000\n",
    "    6.4368    0.3002    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.7223   -0.1123    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.7223   -0.9373    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    6.4368   -1.3498    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    6.4368   -2.1748    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.7223   -2.5873    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.0078   -2.1748    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    4.2232   -2.4297    0.0000 S   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    3.7383   -1.7623    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    4.2232   -1.0949    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    3.9683   -0.3102    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    3.1613   -0.1387    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    4.5203    0.3029    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.0078   -1.3498    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  1  2  1  0  0  0  0\n",
    "  2  3  1  0  0  0  0\n",
    "  3  4  1  0  0  0  0\n",
    "  3 14  1  0  0  0  0\n",
    "  4  5  1  0  0  0  0\n",
    "  5  6  1  0  0  0  0\n",
    "  6  7  1  0  0  0  0\n",
    "  7  8  1  0  0  0  0\n",
    "  7 14  1  0  0  0  0\n",
    "  8  9  1  0  0  0  0\n",
    "  9 10  1  0  0  0  0\n",
    " 10 11  1  0  0  0  0\n",
    " 10 14  1  0  0  0  0\n",
    " 11 13  1  0  0  0  0\n",
    " 11 12  1  0  0  0  0\n",
    "M  END\n",
    "$$$$\n",
    "\n",
    "  Mrv1813 05061918322D          \n",
    "\n",
    " 14 15  0  0  0  0            999 V2000\n",
    "    0.8289   -7.9643    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.1144   -8.3768    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.1144   -9.2018    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.8289   -9.6143    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.8289  -10.4393    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.1144  -10.8518    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.6000  -10.4393    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.3847  -10.6942    0.0000 S   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.8696  -10.0268    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.3847   -9.3593    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.6396   -8.5747    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -2.4466   -8.4032    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.0876   -7.9616    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.6000   -9.6143    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  1  2  1  0  0  0  0\n",
    "  2  3  1  0  0  0  0\n",
    "  3  4  1  0  0  0  0\n",
    "  3 14  1  0  0  0  0\n",
    "  4  5  1  0  0  0  0\n",
    "  5  6  1  0  0  0  0\n",
    "  6  7  1  0  0  0  0\n",
    "  7  8  1  0  0  0  0\n",
    "  7 14  1  0  0  0  0\n",
    "  8  9  1  0  0  0  0\n",
    "  9 10  1  0  0  0  0\n",
    " 10 11  1  0  0  0  0\n",
    " 10 14  1  0  0  0  0\n",
    " 11 13  1  0  0  0  0\n",
    " 11 12  1  0  0  0  0\n",
    "M  END\n",
    "$$$$\n",
    "\n",
    "  Mrv1813 05061918322D          \n",
    "\n",
    " 12 13  0  0  0  0            999 V2000\n",
    "    5.3295   -8.1871    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.5844   -7.4025    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.0995   -6.7351    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.5844   -6.0676    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    6.3690   -6.3226    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    7.0835   -5.9101    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    7.0835   -5.0851    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    7.7980   -6.3226    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    7.7980   -7.1476    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    8.5124   -7.5601    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    7.0835   -7.5601    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    6.3690   -7.1476    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  1  2  1  0  0  0  0\n",
    "  2  3  1  0  0  0  0\n",
    "  2 12  1  0  0  0  0\n",
    "  3  4  1  0  0  0  0\n",
    "  4  5  1  0  0  0  0\n",
    "  5 12  1  0  0  0  0\n",
    "  5  6  1  0  0  0  0\n",
    "  6  7  1  0  0  0  0\n",
    "  6  8  1  0  0  0  0\n",
    "  8  9  1  0  0  0  0\n",
    "  9 10  1  0  0  0  0\n",
    "  9 11  1  0  0  0  0\n",
    " 11 12  1  0  0  0  0\n",
    "M  END\n",
    "$$$$)CTAB\"\"\"\n",
    "supplier = Chem.SDMolSupplier()\n",
    "supplier.SetData(sdmols)\n",
    "mols = [x for x in supplier]\n",
    "for mol in mols:\n",
    "    AllChem.Compute2DCoords(mol)\n",
    "Draw.MolsToGridImage(mols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>R4</th>\n",
       "      <th>R5</th>\n",
       "      <th>R6</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 13752 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4516 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8604 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8604 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4276 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5744 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10148 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9660 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 13812 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6188 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5552 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABmJLR0QA/wD/AP+gvaeTAAACFElEQVR4nO3SwQ3AIBDAsNL9dz6WIEJC9gR5ZM3MB6f9twN4k7FIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLxAYhCgSN2aqNlwAAADx6VFh0cmRraXRQS0wgcmRraXQgMjAyMS4wMy4xZGV2MQAAeJx7v2/tPQYg4AFiRgZU0MDILcIgjhAVAwCZsgQUCV+6MgAAAEV6VFh0TU9MIHJka2l0IDIwMjEuMDMuMWRldjEAAHic41IAgSAX78wSBTgwcuHiUlAwwIMsLS0VwowMDAy4fBUUXP1cuACrtwvutKwHFQAAACR6VFh0U01JTEVTIHJka2l0IDIwMjEuMDMuMWRldjEAAHicAwAAAAABZyADbwAAAABJRU5ErkJggg==\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5580 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10148 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10056 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 13312 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6188 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5552 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABmJLR0QA/wD/AP+gvaeTAAACFElEQVR4nO3SwQ3AIBDAsNL9dz6WIEJC9gR5ZM3MB6f9twN4k7FIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLxAYhCgSN2aqNlwAAADx6VFh0cmRraXRQS0wgcmRraXQgMjAyMS4wMy4xZGV2MQAAeJx7v2/tPQYg4AFiRgZU0MDILcIgjhAVAwCZsgQUCV+6MgAAAEV6VFh0TU9MIHJka2l0IDIwMjEuMDMuMWRldjEAAHic41IAgSAX78wSBTgwcuHiUlAwwIMsLS0VwowMDAy4fBUUXP1cuACrtwvutKwHFQAAACR6VFh0U01JTEVTIHJka2l0IDIwMjEuMDMuMWRldjEAAHicAwAAAAABZyADbwAAAABJRU5ErkJggg==\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5580 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9800 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9784 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 13504 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5968 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6920 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6804 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6572 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5712 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9800 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10184 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "options = RGroupDecompositionParameters()\n",
    "options.onlyMatchAtRGroups = False\n",
    "options.removeHydrogensPostMatch = True\n",
    "cols = decomp(options)\n",
    "show_decomp(cols, [cores[0], cores[0], cores[1], cores[1]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:C1C([*:6])C2C(N([*:2])[*:4])NC([*:1])NC2N1[*:5] R1:[H][*:1] R2:C(CC[*:2])CC[*:4] R4:C(CC[*:2])CC[*:4] R5:[H][*:5] R6:[H][*:6]\",\n",
      "\"Core:C1SC2NC([*:1])NC(N([*:2])[*:4])C2C1[*:6] R1:[H][*:1] R2:C[*:2] R4:[H][*:4] R6:CC(C)[*:6]\",\n",
      "\"Core:C1SC2CC([*:1])NC(N([*:2])[*:4])C2C1[*:6] R1:[H][*:1] R2:C[*:2] R4:[H][*:4] R6:CC(C)[*:6]\",\n",
      "\"Core:C1C2C(C(N([*:2])[*:4])NC1[*:1])N([*:6])CN2[*:5] R1:O[*:1] R2:[H][*:2] R4:[H][*:4] R5:C[*:5] R6:[H][*:6]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testMultiCorePreLabelled"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:rdkit=\"http://www.rdkit.org/xml\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" baseProfile=\"full\" xml:space=\"preserve\" width=\"600px\" height=\"200px\" viewBox=\"0 0 600 200\">\n",
       "<!-- END OF HEADER -->\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"200\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"200\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"200\" x=\"0\" y=\"0\"> </rect>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 62.7867,135.618 L 75.6126,138.704\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 75.6126,138.704 L 88.4386,141.789\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-0 atom-4\" d=\"M 58.3446,129.557 L 57.3524,116.876\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-0 atom-4\" d=\"M 57.3524,116.876 L 56.3602,104.196\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-0 atom-4\" d=\"M 64.1369,125.276 L 63.4424,116.4\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-0 atom-4\" d=\"M 63.4424,116.4 L 62.7478,107.523\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 88.4386,141.789 L 104.409,115.754\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 85.6271,134.69 L 96.8064,116.465\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 104.409,115.754 L 96.5181,106.507\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 96.5181,106.507 L 88.6273,97.2594\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-2 atom-5\" d=\"M 104.409,115.754 L 134.859,113.372\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-3 atom-4\" d=\"M 80.5396,94.1932 L 68.4499,99.1945\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-3 atom-4\" d=\"M 68.4499,99.1945 L 56.3602,104.196\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-3 atom-8\" d=\"M 85.8075,87.4318 L 88.1651,77.6314\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-3 atom-8\" d=\"M 88.1651,77.6314 L 90.5226,67.831\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-5 atom-6\" d=\"M 137.615,114.688 L 142.937,103.543\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-5 atom-6\" d=\"M 142.937,103.543 L 148.259,92.3979\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-5 atom-6\" d=\"M 132.103,112.055 L 137.425,100.911\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-5 atom-6\" d=\"M 137.425,100.911 L 142.747,89.7656\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-5 atom-7\" d=\"M 134.859,113.372 L 141.278,122.721\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-5 atom-7\" d=\"M 141.278,122.721 L 147.698,132.07\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-0\" d=\"M 56.8308 130.321 L 59.6652 134.902 Q 59.9462 135.354, 60.3982 136.173 Q 60.8503 136.991, 60.8747 137.04 L 60.8747 130.321 L 62.0231 130.321 L 62.0231 138.97 L 60.838 138.97 L 57.796 133.961 Q 57.4417 133.375, 57.0629 132.703 Q 56.6964 132.031, 56.5865 131.823 L 56.5865 138.97 L 55.4625 138.97 L 55.4625 130.321 L 56.8308 130.321 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-3\" d=\"M 82.6715 88.1954 L 85.5058 92.7768 Q 85.7868 93.2289, 86.2389 94.0474 Q 86.6909 94.866, 86.7153 94.9148 L 86.7153 88.1954 L 87.8638 88.1954 L 87.8638 96.8451 L 86.6787 96.8451 L 83.6366 91.8361 Q 83.2823 91.2497, 82.9036 90.5777 Q 82.5371 89.9058, 82.4271 89.6981 L 82.4271 96.8451 L 81.3031 96.8451 L 81.3031 88.1954 L 82.6715 88.1954 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-6\" d=\"M 144.05 85.8345 Q 144.05 83.7575, 145.076 82.5969 Q 146.102 81.4363, 148.02 81.4363 Q 149.938 81.4363, 150.965 82.5969 Q 151.991 83.7575, 151.991 85.8345 Q 151.991 87.9358, 150.952 89.1331 Q 149.914 90.3182, 148.02 90.3182 Q 146.114 90.3182, 145.076 89.1331 Q 144.05 87.948, 144.05 85.8345 M 148.02 89.3408 Q 149.34 89.3408, 150.048 88.4611 Q 150.769 87.5693, 150.769 85.8345 Q 150.769 84.1363, 150.048 83.2811 Q 149.34 82.4137, 148.02 82.4137 Q 146.701 82.4137, 145.98 83.2689 Q 145.271 84.1241, 145.271 85.8345 Q 145.271 87.5815, 145.98 88.4611 Q 146.701 89.3408, 148.02 89.3408 \" fill=\"#FF0000\"/>\n",
       "<path class=\"atom-7\" d=\"M 145.005 137.93 L 146.255 137.93 L 146.255 133.665 L 144.876 134.092 L 144.691 133.616 L 146.44 132.834 L 147.013 132.931 L 147.013 137.93 L 148.134 137.93 L 148.134 138.575 L 145.005 138.575 L 145.005 137.93 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-7\" d=\"M 153.839 142.9 L 151.75 139.345 L 151.726 139.345 L 150.345 139.345 L 150.345 142.9 L 149.172 142.9 L 149.172 134.25 L 151.726 134.25 Q 153.204 134.25, 153.949 134.922 Q 154.694 135.582, 154.694 136.791 Q 154.694 137.708, 154.242 138.331 Q 153.803 138.942, 152.935 139.186 L 155.122 142.9 L 153.839 142.9 M 150.345 138.367 L 151.726 138.367 Q 152.569 138.367, 153.021 137.964 Q 153.473 137.561, 153.473 136.791 Q 153.473 136.022, 153.021 135.631 Q 152.581 135.228, 151.726 135.228 L 150.345 135.228 L 150.345 138.367 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-7\" d=\"M 156.258 141.923 L 158.152 141.923 L 158.152 135.46 L 156.063 136.107 L 155.782 135.386 L 158.433 134.201 L 159.3 134.348 L 159.3 141.923 L 160.998 141.923 L 160.998 142.9 L 156.258 142.9 L 156.258 141.923 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-8\" d=\"M 83.8836 58.245 Q 84.0932 57.7048, 84.5931 57.4064 Q 85.0931 57.1, 85.7865 57.1 Q 86.6493 57.1, 87.1331 57.5677 Q 87.6169 58.0354, 87.6169 58.8659 Q 87.6169 59.7126, 86.9879 60.5028 Q 86.3671 61.293, 85.0769 62.2283 L 87.7136 62.2283 L 87.7136 62.8734 L 83.8674 62.8734 L 83.8674 62.3331 Q 84.9318 61.5752, 85.5607 61.0107 Q 86.1977 60.4463, 86.5041 59.9383 Q 86.8105 59.4303, 86.8105 58.9062 Q 86.8105 58.3579, 86.5364 58.0515 Q 86.2622 57.7451, 85.7865 57.7451 Q 85.3269 57.7451, 85.0205 57.9306 Q 84.7141 58.116, 84.4964 58.5272 L 83.8836 58.245 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-8\" d=\"M 93.419 67.1982 L 91.3299 63.6431 L 91.3055 63.6431 L 89.9249 63.6431 L 89.9249 67.1982 L 88.7521 67.1982 L 88.7521 58.5485 L 91.3055 58.5485 Q 92.7838 58.5485, 93.529 59.2204 Q 94.2742 59.8802, 94.2742 61.0897 Q 94.2742 62.006, 93.8222 62.629 Q 93.3824 63.2399, 92.515 63.4842 L 94.7018 67.1982 L 93.419 67.1982 M 89.9249 62.6657 L 91.3055 62.6657 Q 92.1485 62.6657, 92.6005 62.2625 Q 93.0525 61.8594, 93.0525 61.0897 Q 93.0525 60.32, 92.6005 59.929 Q 92.1607 59.5259, 91.3055 59.5259 L 89.9249 59.5259 L 89.9249 62.6657 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-8\" d=\"M 95.3371 60.1856 Q 95.6548 59.3671, 96.4123 58.915 Q 97.1697 58.4508, 98.2204 58.4508 Q 99.5276 58.4508, 100.261 59.1594 Q 100.994 59.868, 100.994 61.1263 Q 100.994 62.4091, 100.041 63.6064 Q 99.1 64.8037, 97.1453 66.2209 L 101.14 66.2209 L 101.14 67.1982 L 95.3127 67.1982 L 95.3127 66.3797 Q 96.9254 65.2313, 97.8783 64.3761 Q 98.8435 63.5209, 99.3077 62.7512 Q 99.772 61.9815, 99.772 61.1874 Q 99.772 60.3566, 99.3566 59.8924 Q 98.9412 59.4281, 98.2204 59.4281 Q 97.524 59.4281, 97.0598 59.7091 Q 96.5955 59.9901, 96.2656 60.6132 L 95.3371 60.1856 \" fill=\"#191919\"/>\n",
       "<path class=\"bond-12 atom-0 atom-1\" d=\"M 372.873,130.414 L 363.959,125.268\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-0 atom-1\" d=\"M 363.959,125.268 L 355.045,120.121\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-1 atom-2\" d=\"M 355.045,120.121 L 343.322,126.889\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-1 atom-2\" d=\"M 343.322,126.889 L 331.599,133.657\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-1 atom-2\" d=\"M 348.474,116.861 L 340.268,121.599\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-1 atom-2\" d=\"M 340.268,121.599 L 332.062,126.337\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-1 atom-6\" d=\"M 355.045,120.121 L 355.045,89.5783\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-2 atom-3\" d=\"M 325.589,133.657 L 313.866,126.889\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-2 atom-3\" d=\"M 313.866,126.889 L 302.143,120.121\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-3 atom-4\" d=\"M 302.143,120.121 L 302.143,89.5783\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-3 atom-4\" d=\"M 308.252,115.54 L 308.252,94.1597\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-3 atom-8\" d=\"M 302.143,120.121 L 290.939,126.59\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-3 atom-8\" d=\"M 290.939,126.59 L 279.736,133.058\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-4 atom-5\" d=\"M 302.143,89.5783 L 313.866,82.8101\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-4 atom-5\" d=\"M 313.866,82.8101 L 325.589,76.042\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-7 atom-4\" d=\"M 278.698,76.042 L 290.42,82.8101\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-7 atom-4\" d=\"M 290.42,82.8101 L 302.143,89.5783\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-5 atom-6\" d=\"M 331.599,76.042 L 343.322,82.8101\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-5 atom-6\" d=\"M 343.322,82.8101 L 355.045,89.5783\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-5 atom-6\" d=\"M 332.062,83.3626 L 340.268,88.1003\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-5 atom-6\" d=\"M 340.268,88.1003 L 348.474,92.838\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-7 atom-10\" d=\"M 272.687,76.042 L 252.16,87.8932\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-7 atom-10\" d=\"M 272.662,83.1099 L 258.293,91.4057\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-8 atom-9\" d=\"M 271.648,133.058 L 260.445,126.59\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-8 atom-9\" d=\"M 260.445,126.59 L 249.241,120.121\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-8 atom-9\" d=\"M 271.341,125.827 L 263.499,121.299\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-8 atom-9\" d=\"M 263.499,121.299 L 255.657,116.771\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-9 atom-10\" d=\"M 249.241,120.121 L 249.241,107.437\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-9 atom-10\" d=\"M 249.241,107.437 L 249.241,94.7522\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-9 atom-11\" d=\"M 249.241,120.121 L 237.702,126.783\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-9 atom-11\" d=\"M 237.702,126.783 L 226.162,133.446\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-0\" d=\"M 373.652 130.813 Q 373.862 130.273, 374.362 129.975 Q 374.862 129.668, 375.555 129.668 Q 376.418 129.668, 376.902 130.136 Q 377.386 130.603, 377.386 131.434 Q 377.386 132.281, 376.757 133.071 Q 376.136 133.861, 374.846 134.796 L 377.482 134.796 L 377.482 135.441 L 373.636 135.441 L 373.636 134.901 Q 374.701 134.143, 375.33 133.579 Q 375.967 133.014, 376.273 132.506 Q 376.579 131.998, 376.579 131.474 Q 376.579 130.926, 376.305 130.62 Q 376.031 130.313, 375.555 130.313 Q 375.096 130.313, 374.789 130.499 Q 374.483 130.684, 374.265 131.095 L 373.652 130.813 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-0\" d=\"M 383.188 139.766 L 381.099 136.211 L 381.074 136.211 L 379.694 136.211 L 379.694 139.766 L 378.521 139.766 L 378.521 131.117 L 381.074 131.117 Q 382.553 131.117, 383.298 131.789 Q 384.043 132.448, 384.043 133.658 Q 384.043 134.574, 383.591 135.197 Q 383.151 135.808, 382.284 136.052 L 384.471 139.766 L 383.188 139.766 M 379.694 135.234 L 381.074 135.234 Q 381.917 135.234, 382.369 134.831 Q 382.821 134.427, 382.821 133.658 Q 382.821 132.888, 382.369 132.497 Q 381.929 132.094, 381.074 132.094 L 379.694 132.094 L 379.694 135.234 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-0\" d=\"M 385.106 132.754 Q 385.424 131.935, 386.181 131.483 Q 386.939 131.019, 387.989 131.019 Q 389.296 131.019, 390.029 131.727 Q 390.762 132.436, 390.762 133.694 Q 390.762 134.977, 389.81 136.175 Q 388.869 137.372, 386.914 138.789 L 390.909 138.789 L 390.909 139.766 L 385.082 139.766 L 385.082 138.948 Q 386.694 137.799, 387.647 136.944 Q 388.612 136.089, 389.077 135.319 Q 389.541 134.55, 389.541 133.756 Q 389.541 132.925, 389.125 132.46 Q 388.71 131.996, 387.989 131.996 Q 387.293 131.996, 386.829 132.277 Q 386.364 132.558, 386.034 133.181 L 385.106 132.754 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-2\" d=\"M 327.256 137.922 Q 327.256 136.92, 327.464 136.297 Q 327.684 135.674, 327.977 135.344 Q 328.282 135.014, 328.747 134.684 Q 329.064 134.452, 329.235 134.293 Q 329.419 134.122, 329.529 133.865 Q 329.651 133.609, 329.651 133.23 Q 329.651 132.741, 329.284 132.399 Q 328.93 132.045, 328.295 132.045 Q 327.488 132.045, 326.511 132.363 L 326.352 131.312 Q 327.281 130.982, 328.246 130.982 Q 329.089 130.982, 329.675 131.3 Q 330.262 131.618, 330.543 132.131 Q 330.836 132.644, 330.836 133.23 Q 330.836 133.804, 330.677 134.195 Q 330.53 134.574, 330.298 134.806 Q 330.078 135.026, 329.7 135.307 Q 329.272 135.625, 329.003 135.906 Q 328.747 136.175, 328.563 136.675 Q 328.38 137.164, 328.38 137.922 L 327.256 137.922 M 327.256 138.716 L 328.38 138.716 L 328.38 139.803 L 327.256 139.803 L 327.256 138.716 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-5\" d=\"M 327.256 76.8358 Q 327.256 75.834, 327.464 75.2109 Q 327.684 74.5878, 327.977 74.258 Q 328.282 73.9281, 328.747 73.5982 Q 329.064 73.3661, 329.235 73.2073 Q 329.419 73.0362, 329.529 72.7797 Q 329.651 72.5231, 329.651 72.1444 Q 329.651 71.6557, 329.284 71.3136 Q 328.93 70.9593, 328.295 70.9593 Q 327.488 70.9593, 326.511 71.277 L 326.352 70.2263 Q 327.281 69.8964, 328.246 69.8964 Q 329.089 69.8964, 329.675 70.2141 Q 330.262 70.5317, 330.543 71.0448 Q 330.836 71.558, 330.836 72.1444 Q 330.836 72.7186, 330.677 73.1095 Q 330.53 73.4883, 330.298 73.7204 Q 330.078 73.9403, 329.7 74.2213 Q 329.272 74.539, 329.003 74.8199 Q 328.747 75.0887, 328.563 75.5896 Q 328.38 76.0783, 328.38 76.8358 L 327.256 76.8358 M 327.256 77.6299 L 328.38 77.6299 L 328.38 78.7172 L 327.256 78.7172 L 327.256 77.6299 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-7\" d=\"M 274.354 76.8358 Q 274.354 75.834, 274.562 75.2109 Q 274.782 74.5878, 275.075 74.258 Q 275.381 73.9281, 275.845 73.5982 Q 276.162 73.3661, 276.333 73.2073 Q 276.517 73.0362, 276.627 72.7797 Q 276.749 72.5231, 276.749 72.1444 Q 276.749 71.6557, 276.382 71.3136 Q 276.028 70.9593, 275.393 70.9593 Q 274.586 70.9593, 273.609 71.277 L 273.45 70.2263 Q 274.379 69.8964, 275.344 69.8964 Q 276.187 69.8964, 276.773 70.2141 Q 277.36 70.5317, 277.641 71.0448 Q 277.934 71.558, 277.934 72.1444 Q 277.934 72.7186, 277.775 73.1095 Q 277.629 73.4883, 277.396 73.7204 Q 277.176 73.9403, 276.798 74.2213 Q 276.37 74.539, 276.101 74.8199 Q 275.845 75.0887, 275.662 75.5896 Q 275.478 76.0783, 275.478 76.8358 L 274.354 76.8358 M 274.354 77.6299 L 275.478 77.6299 L 275.478 78.7172 L 274.354 78.7172 L 274.354 77.6299 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-8\" d=\"M 273.78 131.068 L 276.614 135.649 Q 276.895 136.101, 277.348 136.92 Q 277.8 137.738, 277.824 137.787 L 277.824 131.068 L 278.972 131.068 L 278.972 139.717 L 277.787 139.717 L 274.745 134.708 Q 274.391 134.122, 274.012 133.45 Q 273.646 132.778, 273.536 132.57 L 273.536 139.717 L 272.412 139.717 L 272.412 131.068 L 273.78 131.068 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-10\" d=\"M 247.903 92.1072 Q 247.903 91.1054, 248.111 90.4823 Q 248.331 89.8593, 248.624 89.5294 Q 248.93 89.1995, 249.394 88.8697 Q 249.712 88.6375, 249.883 88.4787 Q 250.066 88.3077, 250.176 88.0511 Q 250.298 87.7946, 250.298 87.4158 Q 250.298 86.9271, 249.931 86.5851 Q 249.577 86.2308, 248.942 86.2308 Q 248.136 86.2308, 247.158 86.5484 L 246.999 85.4977 Q 247.928 85.1679, 248.893 85.1679 Q 249.736 85.1679, 250.322 85.4855 Q 250.909 85.8032, 251.19 86.3163 Q 251.483 86.8294, 251.483 87.4158 Q 251.483 87.99, 251.324 88.381 Q 251.178 88.7597, 250.945 88.9918 Q 250.726 89.2118, 250.347 89.4927 Q 249.919 89.8104, 249.65 90.0914 Q 249.394 90.3602, 249.211 90.8611 Q 249.027 91.3498, 249.027 92.1072 L 247.903 92.1072 M 247.903 92.9013 L 249.027 92.9013 L 249.027 93.9887 L 247.903 93.9887 L 247.903 92.9013 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-11\" d=\"M 209.405 134.772 L 210.655 134.772 L 210.655 130.506 L 209.276 130.934 L 209.091 130.458 L 210.841 129.676 L 211.413 129.773 L 211.413 134.772 L 212.534 134.772 L 212.534 135.417 L 209.405 135.417 L 209.405 134.772 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-11\" d=\"M 218.239 139.742 L 216.15 136.187 L 216.126 136.187 L 214.745 136.187 L 214.745 139.742 L 213.572 139.742 L 213.572 131.092 L 216.126 131.092 Q 217.604 131.092, 218.349 131.764 Q 219.095 132.424, 219.095 133.633 Q 219.095 134.55, 218.643 135.173 Q 218.203 135.784, 217.335 136.028 L 219.522 139.742 L 218.239 139.742 M 214.745 135.209 L 216.126 135.209 Q 216.969 135.209, 217.421 134.806 Q 217.873 134.403, 217.873 133.633 Q 217.873 132.864, 217.421 132.473 Q 216.981 132.07, 216.126 132.07 L 214.745 132.07 L 214.745 135.209 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-11\" d=\"M 220.658 138.765 L 222.552 138.765 L 222.552 132.302 L 220.463 132.949 L 220.182 132.228 L 222.833 131.043 L 223.7 131.19 L 223.7 138.765 L 225.399 138.765 L 225.399 139.742 L 220.658 139.742 L 220.658 138.765 \" fill=\"#191919\"/>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sdcores = \"\"\"CTAB(\n",
    "     RDKit          2D\n",
    "\n",
    "  9  9  0  0  0  0  0  0  0  0999 V2000\n",
    "    1.1100   -1.3431    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    1.5225   -0.6286    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.9705   -0.0156    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.2168   -0.3511    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.3029   -1.1716    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    1.1419    0.7914    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.5289    1.3431    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    1.9266    1.0463    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.4976    0.0613    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  1  2  1  0\n",
    "  2  3  2  0\n",
    "  3  4  1  0\n",
    "  4  5  1  0\n",
    "  1  5  2  0\n",
    "  3  6  1  0\n",
    "  6  7  2  0\n",
    "  6  8  1  0\n",
    "  4  9  1  0\n",
    "M  RGP  2   8   1   9   2\n",
    "V    8 *\n",
    "V    9 *\n",
    "M  END\n",
    "$$$$\n",
    "\n",
    "     RDKit          2D\n",
    "\n",
    " 12 13  0  0  0  0  0  0  0  0999 V2000\n",
    "   -6.5623    0.3977    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -5.8478   -0.0147    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -5.1333    0.3977    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -4.4188   -0.0147    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -4.4188   -0.8397    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -5.1333   -1.2522    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -5.8478   -0.8397    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -3.7044   -1.2522    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -3.7044    0.3977    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -2.9899   -0.0147    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -2.9899   -0.8397    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -2.2754    0.3978    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  3  4  1  0\n",
    "  4  5  2  0\n",
    "  5  6  1  0\n",
    "  6  7  2  0\n",
    "  2  3  2  0\n",
    "  2  7  1  0\n",
    "  9 10  2  0\n",
    " 10 11  1  0\n",
    "  8 11  2  0\n",
    "  8  5  1  0\n",
    "  4  9  1  0\n",
    " 10 12  1  0\n",
    "  1  2  1  0\n",
    "M  RGP  2   1   2  12   1\n",
    "V    1 *\n",
    "V   12 *\n",
    "M  END\n",
    "$$$$\n",
    ")CTAB\"\"\"\n",
    "\n",
    "supplier = Chem.SDMolSupplier()\n",
    "supplier.SetData(sdcores)\n",
    "cores = [x for x in supplier]\n",
    "for core in cores:\n",
    "    AllChem.Compute2DCoords(core)\n",
    "Draw.MolsToGridImage(cores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:rdkit=\"http://www.rdkit.org/xml\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" baseProfile=\"full\" xml:space=\"preserve\" width=\"600px\" height=\"200px\" viewBox=\"0 0 600 200\">\n",
       "<!-- END OF HEADER -->\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"200\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"200\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"600\" height=\"200\" x=\"0\" y=\"0\"> </rect>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 173.334,117.867 L 159.281,115.581\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 159.281,115.581 L 145.228,113.296\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 138.796,107.109 L 134.006,94.4723\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 134.006,94.4723 L 129.215,81.8361\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 131.763,83.9163 L 139.846,74.0185\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 139.846,74.0185 L 147.929,64.1207\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 126.668,79.7558 L 134.752,69.858\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 134.752,69.858 L 142.835,59.9602\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-2 atom-4\" d=\"M 129.215,81.8361 L 96.7549,76.5565\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-4 atom-5\" d=\"M 96.7549,76.5565 L 81.9463,47.1921\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-4 atom-5\" d=\"M 88.6607,75.1136 L 78.2947,54.5585\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-8 atom-4\" d=\"M 77.7581,95.3962 L 87.2565,85.9763\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-8 atom-4\" d=\"M 87.2565,85.9763 L 96.7549,76.5565\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-5 atom-6\" d=\"M 81.9463,47.1921 L 67.8718,49.3614\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-5 atom-6\" d=\"M 67.8718,49.3614 L 53.7973,51.5307\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-6 atom-7\" d=\"M 48.5519,57.6808 L 46.3577,71.1716\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-6 atom-7\" d=\"M 46.3577,71.1716 L 44.1634,84.6624\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-6 atom-7\" d=\"M 54.3857,62.7839 L 52.8498,72.2275\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-6 atom-7\" d=\"M 52.8498,72.2275 L 51.3138,81.671\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-7 atom-8\" d=\"M 44.1634,84.6624 L 56.6065,91.0677\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-7 atom-8\" d=\"M 56.6065,91.0677 L 69.0495,97.473\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-8 atom-9\" d=\"M 74.2483,105.193 L 76.3309,118.706\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-8 atom-9\" d=\"M 76.3309,118.706 L 78.4135,132.218\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-9 atom-10\" d=\"M 78.4135,132.218 L 52.7697,152.808\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-1\" d=\"M 128.962 107.931 L 130.225 107.931 L 130.225 111.89 L 134.987 111.89 L 134.987 107.931 L 136.25 107.931 L 136.25 117.244 L 134.987 117.244 L 134.987 112.943 L 130.225 112.943 L 130.225 117.244 L 128.962 117.244 L 128.962 107.931 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-1\" d=\"M 138.815 107.931 L 141.867 112.864 Q 142.169 113.351, 142.656 114.232 Q 143.143 115.113, 143.169 115.166 L 143.169 107.931 L 144.406 107.931 L 144.406 117.244 L 143.13 117.244 L 139.854 111.851 Q 139.473 111.219, 139.065 110.496 Q 138.67 109.772, 138.552 109.549 L 138.552 117.244 L 137.341 117.244 L 137.341 107.931 L 138.815 107.931 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-3\" d=\"M 145.743 56.3905 Q 145.743 54.1542, 146.848 52.9044 Q 147.953 51.6547, 150.018 51.6547 Q 152.083 51.6547, 153.188 52.9044 Q 154.293 54.1542, 154.293 56.3905 Q 154.293 58.6531, 153.175 59.9423 Q 152.057 61.2183, 150.018 61.2183 Q 147.966 61.2183, 146.848 59.9423 Q 145.743 58.6663, 145.743 56.3905 M 150.018 60.1659 Q 151.439 60.1659, 152.202 59.2188 Q 152.978 58.2585, 152.978 56.3905 Q 152.978 54.562, 152.202 53.6411 Q 151.439 52.7071, 150.018 52.7071 Q 148.597 52.7071, 147.821 53.628 Q 147.058 54.5488, 147.058 56.3905 Q 147.058 58.2716, 147.821 59.2188 Q 148.597 60.1659, 150.018 60.1659 \" fill=\"#FF0000\"/>\n",
       "<path class=\"atom-6\" d=\"M 47.3843 47.545 L 50.4362 52.478 Q 50.7388 52.9648, 51.2255 53.8461 Q 51.7122 54.7275, 51.7385 54.7801 L 51.7385 47.545 L 52.9751 47.545 L 52.9751 56.8586 L 51.6991 56.8586 L 48.4235 51.4651 Q 48.042 50.8337, 47.6342 50.1102 Q 47.2396 49.3867, 47.1212 49.163 L 47.1212 56.8586 L 45.9109 56.8586 L 45.9109 47.545 L 47.3843 47.545 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-8\" d=\"M 71.3451 95.0576 L 74.397 99.9907 Q 74.6996 100.477, 75.1863 101.359 Q 75.673 102.24, 75.6993 102.293 L 75.6993 95.0576 L 76.9359 95.0576 L 76.9359 104.371 L 75.6599 104.371 L 72.3843 98.9777 Q 72.0028 98.3463, 71.595 97.6228 Q 71.2004 96.8993, 71.082 96.6756 L 71.082 104.371 L 69.8717 104.371 L 69.8717 95.0576 L 71.3451 95.0576 \" fill=\"#0000FF\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 215.451,117.515 L 227.896,110.33\" style=\"fill:none;fill-rule:evenodd;stroke:#33CCCC;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 227.896,110.33 L 240.341,103.145\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 240.341,103.145 L 240.341,70.2578\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 246.919,98.2118 L 246.919,75.1908\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-11 atom-1\" d=\"M 264.468,117.075 L 252.405,110.11\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-11 atom-1\" d=\"M 252.405,110.11 L 240.341,103.145\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 240.341,70.2578 L 268.822,53.8142\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-3 atom-4\" d=\"M 268.822,53.8142 L 297.303,70.2578\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-3 atom-4\" d=\"M 269.806,61.977 L 289.742,73.4874\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-4 atom-5\" d=\"M 297.303,70.2578 L 325.784,53.8142\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-10 atom-4\" d=\"M 297.303,103.145 L 297.303,70.2578\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-5 atom-6\" d=\"M 325.784,53.8142 L 354.265,70.2578\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-5 atom-6\" d=\"M 326.768,61.977 L 346.705,73.4874\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-6 atom-7\" d=\"M 354.265,70.2578 L 354.265,103.145\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-7 atom-8\" d=\"M 354.265,103.145 L 366.513,110.216\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-7 atom-8\" d=\"M 366.513,110.216 L 378.761,117.287\" style=\"fill:none;fill-rule:evenodd;stroke:#7F4C19;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-7 atom-9\" d=\"M 354.265,103.145 L 342.202,110.11\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-7 atom-9\" d=\"M 342.202,110.11 L 330.139,117.075\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-7 atom-9\" d=\"M 347.358,99.5381 L 338.913,104.413\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-7 atom-9\" d=\"M 338.913,104.413 L 330.469,109.289\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-9 atom-10\" d=\"M 321.43,117.075 L 309.367,110.11\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-9 atom-10\" d=\"M 309.367,110.11 L 297.303,103.145\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-10 atom-11\" d=\"M 297.303,103.145 L 285.24,110.11\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-10 atom-11\" d=\"M 285.24,110.11 L 273.176,117.075\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-10 atom-11\" d=\"M 290.396,99.5381 L 281.951,104.413\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-10 atom-11\" d=\"M 281.951,104.413 L 273.507,109.289\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-0\" d=\"M 209.091 114.932 L 214.629 114.932 L 214.629 115.997 L 210.341 115.997 L 210.341 118.825 L 214.156 118.825 L 214.156 119.904 L 210.341 119.904 L 210.341 124.245 L 209.091 124.245 L 209.091 114.932 \" fill=\"#33CCCC\"/>\n",
       "<path class=\"atom-8\" d=\"M 384.108 119.352 Q 385.003 119.602, 385.45 120.154 Q 385.91 120.693, 385.91 121.496 Q 385.91 122.785, 385.081 123.522 Q 384.266 124.245, 382.714 124.245 L 379.583 124.245 L 379.583 114.932 L 382.332 114.932 Q 383.924 114.932, 384.726 115.576 Q 385.529 116.221, 385.529 117.405 Q 385.529 118.812, 384.108 119.352 M 380.832 115.984 L 380.832 118.904 L 382.332 118.904 Q 383.253 118.904, 383.727 118.536 Q 384.213 118.155, 384.213 117.405 Q 384.213 115.984, 382.332 115.984 L 380.832 115.984 M 382.714 123.193 Q 383.621 123.193, 384.108 122.759 Q 384.595 122.325, 384.595 121.496 Q 384.595 120.733, 384.055 120.351 Q 383.529 119.957, 382.516 119.957 L 380.832 119.957 L 380.832 123.193 L 382.714 123.193 \" fill=\"#7F4C19\"/>\n",
       "<path class=\"atom-8\" d=\"M 388.028 117.484 L 388.173 118.418 Q 388.883 117.365, 390.041 117.365 Q 390.409 117.365, 390.909 117.497 L 390.712 118.602 Q 390.146 118.47, 389.83 118.47 Q 389.278 118.47, 388.91 118.694 Q 388.554 118.904, 388.265 119.417 L 388.265 124.245 L 387.028 124.245 L 387.028 117.484 L 388.028 117.484 \" fill=\"#7F4C19\"/>\n",
       "<path class=\"atom-9\" d=\"M 323.726 114.932 L 326.778 119.865 Q 327.08 120.351, 327.567 121.233 Q 328.054 122.114, 328.08 122.167 L 328.08 114.932 L 329.316 114.932 L 329.316 124.245 L 328.04 124.245 L 324.765 118.852 Q 324.383 118.22, 323.976 117.497 Q 323.581 116.773, 323.463 116.55 L 323.463 124.245 L 322.252 124.245 L 322.252 114.932 L 323.726 114.932 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-11\" d=\"M 266.763 114.932 L 269.815 119.865 Q 270.118 120.351, 270.605 121.233 Q 271.091 122.114, 271.118 122.167 L 271.118 114.932 L 272.354 114.932 L 272.354 124.245 L 271.078 124.245 L 267.803 118.852 Q 267.421 118.22, 267.013 117.497 Q 266.619 116.773, 266.5 116.55 L 266.5 124.245 L 265.29 124.245 L 265.29 114.932 L 266.763 114.932 \" fill=\"#0000FF\"/>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "smiles = [\"CNC(=O)C1=CN=CN1CC\", \"Fc1ccc2ccc(Br)nc2n1\"]\n",
    "mols = [Chem.MolFromSmiles(s) for s in smiles]\n",
    "Draw.MolsToGridImage(mols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11600 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5276 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5396 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11696 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10540 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7224 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5232 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7408 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6752 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "options = RGroupDecompositionParameters()\n",
    "options.labels =  RGroupLabels.AutoDetect\n",
    "options.alignment = RGroupCoreAlignment.MCS\n",
    "options.onlyMatchAtRGroups = True\n",
    "cols = decomp(options)\n",
    "show_decomp(cols, cores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:O=C(c1cncn1[*:2])[*:1] R1:CN[*:1] R2:CC[*:2]\",\n",
      "\"Core:c1cc2ccc([*:2])nc2nc1[*:1] R1:F[*:1] R2:Br[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11600 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5276 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5396 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11696 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10540 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7224 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABmJLR0QA/wD/AP+gvaeTAAAH2UlEQVR4nO3cT0hUawPH8Zkpr8Y76VhoFKXGJZSkvBW4qDby+ieJoVxYiwZahWCCgaHlpqiE9G0jYVhvb4sUylokiRRERpFQUZfRGsJyIXIrNJJJJbMx5y4Oneaa2vz7Zfl+P6tnzjnzzCN8GWfOnBmr3++3ANFmm+sFYH4iLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEgvNkd/vHx4enum4+Ph4q9Ua3mP4fL7e3t7Vq1fHxcWFN8MUL1++TE5OTkhIiMpsMPj8/r/Gx0O6y78WLEiOiZl219ewvF5vZmbmLLM4HI7MzMzs7Ozi4uK0tLRgHnh4eLi5ufnChQuvX7+22WwpKSk3b96Mj48PZfFf+Xy+9vb2xsbG7u5ui8WybNmy06dPb926NbzZMMVf4+PFHk9Id8lxOP7z++/T7lo47dZpeb3ezs7Ozs7O+vr64uLiY8eOLV68eKaD+/v7m5qampqazGfBycnJvr4+n88X0tINo6Ojly9fPnv27KtXr8yNAwMD79+/D2M2/AAhhGWanJxsaWlxu93Xrl1zOBxT9nZ3d58/f761tXViYiLy9X0bKH4J04eVlZXV2NgYuOXdu3cej+fKlStPnjwxtvT09JSVlTU3N5vHPH/+vLKy0jzAFBMTE8YT1cjISEVFxY0bNz5//hz5bAjJvxMTD6ekfPew32Z+2T19WLGxsampqYFbUlNTN27c6HK5zpw5U1NTY2zs6Oi4f/+++SrH4XC43W5jbLPZNm3alJ+fX1BQUFtb297eHszfE8hut3s8HrOq1NTU3Nxcp9PpdruPHj0a6mwIyW9Wq2NhOP/NTKHd2Wq17t+/3+PxtLa2GltaW1vNsJYvX15YWDgxMVFQUJCXl7dkyZJIVma1Wvfs2XPr1q2CgoJt27aZbxe6uroimRY/RjhV7t271wzr4cOHgbvOnTsXhUV9UVpaWlpaGsUJ8cOEc4J07dq15vjt27fRWwzmj3DCCjzP+eHDh+gtBvNHOP8K37x5Y46/Pd0QHq/X29/fb4wTExNXrVoVlWkxV8IJq6OjwxxnZGREZR0dHR1lZWXGuKioqKGhISrTYq6EHNbg4GB9fb15My8vL6rrwU9h4NOnDq939mM22e0JM5+SCCEsv99/7969w4cPDwwMGFuWLl26e/fu4GfAr+LP0dE/R0dnP+a/6ekb7PaZ9k4fVl9fX2VlpXlzYmJiaGjo6dOnga+ubDbbyZMnw/5EeYrExMR169YZ45QgzvnOrq2traSkJOJFRdkfW7cOVlXN9SqmyrLb/5eeHvVppw9rcHAw8LOab8XFxZ06dWr79u3RWkdOTk5OTk60ZkOEbFZrzPeuklow696QX2PZ7Xan03ngwIGf+Y2b0+l0Op1zvYpfWEFi4vHVqyOZYfqwkpOT8/PzzZtut/vZs2fGuKSkpKKiIpKHxP+D6cNKS0urq6szb/b19eXk5IyPj1ssloaGhl27dv3MT1f4GQR15j0tLc18Lfzx48cTJ04ol4T5INiPdMrLy1euXGmM29ra7t69K1sS5oNgw1q0aFF1dbV588iRI1xth1mE8CH0zp07N2/ebIxfvHhx8eJFzZIwH4R2dUNNTc3CL2fx6+rqBgcHBUvCfBBaWOnp6S6XyxiPjIzU1tZGax29vb3nvrhz5060psVcCfkEaVVV1fXr14eGhiwWS0tLi8vl2rBhQ+Tr6O7uNq9kLyoq4iz8ry7ksBISEiorKw8dOmSxWCYnJ6urq9vb2222r898ubm5gd/+s/zzYsAtW7YEfqPa6XQGnjD7ltFx4JZPnz6Z4/Ly8oMHD5o3V6xYcfv27VD/IiiEcz2Wy+W6dOmS8aWGrq6uq1evBl7jMDIyMsv3SKd8PfC7F6COjY3NMtuUu9tn/rAdP1g4YdlstuPHj+/YscPv91sslpqamsLCwggvc1izZs2+ffuM8fr16yOZCj8DqxGHxWLx+XwPHjwwxvHx8VlZWbPf8/Hjx2NjY8Y4IyMjKSnJGD969Gg86N+WSEpKmv0a1J6enuDfe8bGxmZnZwd5MKYI/FEQ+4IFSTP82keQvoYFRBG/jwUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIPE3YLoIBanYbO0AAABgelRYdHJka2l0UEtMIHJka2l0IDIwMjEuMDMuMWRldjEAAHice79v7T0GIOABYkYGCGCCshsYORUUwGweDZA4owSjDkguyJAbKCbCIA7TANLhYA/UsATCddgPZKuAWGIA0kYIqXoVVyYAAACBelRYdE1PTCByZGtpdCAyMDIxLjAzLjFkZXYxAAB4nONSAIEgF+/MEgU4MHLh4gKSCgqGCgoGWJGlpaVCmJGBgQEXSL2BnrmpAVBYQddADyhmABEDs9wUcBmBjLggeqGmKGCYEqSMV78h3BRDuLO5fIHecg8Ac0BiCoYgEVc/Fy4AYfUmaYCQIsoAAACHelRYdFNNSUxFUyByZGtpdCAyMDIxLjAzLjFkZXYxAAB4nHOL1rIyjFWo0TDQMzfV0TXVMzU1NDRK1TU017HWBYshC2nqJJbk5wYU5RdYGeoVZ6akOmckZuYF5SQmpeYU60Ub6sQCxXPzcxyBqnwTC/xKc5NSi/QMgYIppbm5lT4gdXpBhjUASUwi4dnQ/XsAAAAASUVORK5CYII=\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5232 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7408 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6752 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "options = RGroupDecompositionParameters()\n",
    "options.labels =  RGroupLabels.MDLRGroupLabels | RGroupLabels.RelabelDuplicateLabels\n",
    "options.alignment = RGroupCoreAlignment.MCS\n",
    "options.onlyMatchAtRGroups = True\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:O=C(c1cncn1[*:2])[*:1] R1:CN[*:1] R2:CC[*:2]\",\n",
      "\"Core:c1cc2ccc([*:2])nc2nc1[*:1] R1:F[*:1] R2:Br[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11600 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5276 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5396 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11696 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10540 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7224 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5232 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7408 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6752 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "options = RGroupDecompositionParameters()\n",
    "options.labels =  RGroupLabels.AutoDetect\n",
    "options.alignment = RGroupCoreAlignment.NoAlignment\n",
    "options.onlyMatchAtRGroups = True\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:O=C(c1cncn1[*:2])[*:1] R1:CN[*:1] R2:CC[*:2]\",\n",
      "\"Core:c1cc2ccc([*:2])nc2nc1[*:1] R1:F[*:1] R2:Br[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11600 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5276 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5396 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11696 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10540 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7224 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5232 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7408 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6752 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "options = RGroupDecompositionParameters()\n",
    "options.labels =  RGroupLabels.MDLRGroupLabels | RGroupLabels.RelabelDuplicateLabels\n",
    "options.alignment = RGroupCoreAlignment.NoAlignment\n",
    "options.onlyMatchAtRGroups = True\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:O=C(c1cncn1[*:2])[*:1] R1:CN[*:1] R2:CC[*:2]\",\n",
      "\"Core:c1cc2ccc([*:2])nc2nc1[*:1] R1:F[*:1] R2:Br[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "for core in cores:\n",
    "    for atom in core.GetAtoms():\n",
    "         if atom.HasProp(\"_MolFileRLabel\"):\n",
    "            atom.ClearProp(\"_MolFileRLabel\")\n",
    "         if atom.GetIsotope():\n",
    "            atom.SetIsotope(0)\n",
    "         if atom.GetAtomMapNum():\n",
    "            print(\"atom map num\")\n",
    "            atom.SetAtomMapNum(0)\n",
    "         "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11600 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5276 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5396 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11064 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10540 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6992 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4264 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4364 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7556 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6752 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "options = RGroupDecompositionParameters()\n",
    "options.labels =  RGroupLabels.AutoDetect\n",
    "options.alignment = RGroupCoreAlignment.MCS\n",
    "options.onlyMatchAtRGroups = True\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:O=C(c1cncn1[*:2])[*:1] R1:CN[*:1] R2:CC[*:2]\",\n",
      "\"Core:c1cc2ccc([*:2])nc2nc1[*:1] R1:Br[*:1] R2:F[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11600 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5276 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5396 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11064 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10540 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6992 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4264 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4364 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7556 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6752 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "options = RGroupDecompositionParameters()\n",
    "options.labels =  RGroupLabels.DummyAtomLabels | RGroupLabels.RelabelDuplicateLabels\n",
    "options.alignment = RGroupCoreAlignment.MCS\n",
    "options.onlyMatchAtRGroups = True\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:O=C(c1cncn1[*:2])[*:1] R1:CN[*:1] R2:CC[*:2]\",\n",
      "\"Core:c1cc2ccc([*:2])nc2nc1[*:1] R1:Br[*:1] R2:F[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testMatchOnAnyAtom"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:rdkit=\"http://www.rdkit.org/xml\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" baseProfile=\"full\" xml:space=\"preserve\" width=\"900px\" height=\"300px\" viewBox=\"0 0 900 300\">\n",
       "<!-- END OF HEADER -->\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"900\" height=\"300\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"900\" height=\"300\" x=\"0\" y=\"0\"> </rect>\n",
       "<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"900\" height=\"300\" x=\"0\" y=\"0\"> </rect>\n",
       "<path class=\"bond-4 atom-0 atom-1\" d=\"M 158.294,174.975 L 135.377,181.909\" style=\"fill:none;fill-rule:evenodd;stroke:#7F7F7F;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:1,1.33333\"/>\n",
       "<path class=\"bond-5 atom-0 atom-5\" d=\"M 158.294,174.975 L 164.372,148.989\" style=\"fill:none;fill-rule:evenodd;stroke:#7F7F7F;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:1,1.33333\"/>\n",
       "<path class=\"bond-7 atom-0 atom-7\" d=\"M 158.294,174.975 L 165.004,181.268\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-0 atom-7\" d=\"M 165.004,181.268 L 171.715,187.562\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-1 atom-2\" d=\"M 130.125,180.241 L 115.822,166.826\" style=\"fill:none;fill-rule:evenodd;stroke:#7F7F7F;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:1,1.33333\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 114.343,159.927 L 119.364,138.462\" style=\"fill:none;fill-rule:evenodd;stroke:#7F7F7F;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:1,1.33333\"/>\n",
       "<path class=\"bond-8 atom-2 atom-8\" d=\"M 110.66,165.242 L 90.8822,171.227\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-3 atom-4\" d=\"M 119.364,138.462 L 144.907,130.733\" style=\"fill:none;fill-rule:evenodd;stroke:#7F7F7F;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:1,1.33333\"/>\n",
       "<path class=\"bond-0 atom-4 atom-5\" d=\"M 144.907,130.733 L 164.372,148.989\" style=\"fill:none;fill-rule:evenodd;stroke:#7F7F7F;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:1,1.33333\"/>\n",
       "<path class=\"bond-6 atom-5 atom-6\" d=\"M 164.372,148.989 L 175.83,145.522\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-5 atom-6\" d=\"M 175.83,145.522 L 187.289,142.055\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-6 atom-9\" d=\"M 192.541,143.723 L 200.96,151.62\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-6 atom-9\" d=\"M 200.96,151.62 L 209.38,159.517\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-9 atom-10\" d=\"M 206.781,158.909 L 204.267,169.657\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-9 atom-10\" d=\"M 204.267,169.657 L 201.753,180.406\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-9 atom-10\" d=\"M 211.978,160.125 L 209.464,170.873\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-9 atom-10\" d=\"M 209.464,170.873 L 206.95,181.621\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-9 atom-11\" d=\"M 209.38,159.517 L 220.518,156.146\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-9 atom-11\" d=\"M 220.518,156.146 L 231.656,152.776\" style=\"fill:none;fill-rule:evenodd;stroke:#191919;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-1\" d=\"M 131.582 184.913 Q 131.582 184.038, 131.764 183.494 Q 131.956 182.949, 132.212 182.661 Q 132.479 182.373, 132.884 182.085 Q 133.162 181.882, 133.311 181.743 Q 133.471 181.594, 133.568 181.369 Q 133.674 181.145, 133.674 180.814 Q 133.674 180.387, 133.354 180.088 Q 133.045 179.779, 132.489 179.779 Q 131.785 179.779, 130.931 180.056 L 130.792 179.138 Q 131.603 178.85, 132.447 178.85 Q 133.183 178.85, 133.696 179.128 Q 134.208 179.405, 134.454 179.854 Q 134.71 180.302, 134.71 180.814 Q 134.71 181.316, 134.571 181.658 Q 134.443 181.989, 134.24 182.191 Q 134.048 182.384, 133.717 182.629 Q 133.343 182.907, 133.109 183.152 Q 132.884 183.387, 132.724 183.825 Q 132.564 184.252, 132.564 184.913 L 131.582 184.913 M 131.582 185.607 L 132.564 185.607 L 132.564 186.557 L 131.582 186.557 L 131.582 185.607 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-2\" d=\"M 112.117 166.657 Q 112.117 165.782, 112.299 165.237 Q 112.491 164.693, 112.747 164.405 Q 113.014 164.117, 113.419 163.828 Q 113.697 163.626, 113.846 163.487 Q 114.007 163.337, 114.103 163.113 Q 114.209 162.889, 114.209 162.558 Q 114.209 162.131, 113.889 161.832 Q 113.58 161.523, 113.024 161.523 Q 112.32 161.523, 111.466 161.8 L 111.327 160.882 Q 112.138 160.594, 112.982 160.594 Q 113.718 160.594, 114.231 160.871 Q 114.743 161.149, 114.989 161.597 Q 115.245 162.046, 115.245 162.558 Q 115.245 163.06, 115.106 163.401 Q 114.978 163.732, 114.775 163.935 Q 114.583 164.127, 114.252 164.373 Q 113.878 164.65, 113.644 164.896 Q 113.419 165.131, 113.259 165.568 Q 113.099 165.995, 113.099 166.657 L 112.117 166.657 M 112.117 167.351 L 113.099 167.351 L 113.099 168.301 L 112.117 168.301 L 112.117 167.351 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-6\" d=\"M 188.746 143.47 Q 188.746 142.595, 188.927 142.05 Q 189.119 141.506, 189.376 141.218 Q 189.643 140.93, 190.048 140.641 Q 190.326 140.438, 190.475 140.3 Q 190.635 140.15, 190.731 139.926 Q 190.838 139.702, 190.838 139.371 Q 190.838 138.944, 190.518 138.645 Q 190.208 138.336, 189.653 138.336 Q 188.949 138.336, 188.095 138.613 L 187.956 137.695 Q 188.767 137.407, 189.61 137.407 Q 190.347 137.407, 190.859 137.684 Q 191.372 137.962, 191.617 138.41 Q 191.874 138.859, 191.874 139.371 Q 191.874 139.873, 191.735 140.214 Q 191.607 140.545, 191.404 140.748 Q 191.212 140.94, 190.881 141.186 Q 190.507 141.463, 190.272 141.709 Q 190.048 141.944, 189.888 142.381 Q 189.728 142.808, 189.728 143.47 L 188.746 143.47 M 188.746 144.164 L 189.728 144.164 L 189.728 145.114 L 188.746 145.114 L 188.746 144.164 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-7\" d=\"M 170.906 189.23 Q 171.089 188.758, 171.526 188.497 Q 171.963 188.229, 172.568 188.229 Q 173.322 188.229, 173.745 188.638 Q 174.168 189.047, 174.168 189.772 Q 174.168 190.512, 173.618 191.202 Q 173.076 191.893, 171.948 192.71 L 174.252 192.71 L 174.252 193.274 L 170.892 193.274 L 170.892 192.802 Q 171.822 192.139, 172.371 191.646 Q 172.928 191.153, 173.195 190.709 Q 173.463 190.265, 173.463 189.807 Q 173.463 189.328, 173.224 189.061 Q 172.984 188.793, 172.568 188.793 Q 172.167 188.793, 171.899 188.955 Q 171.631 189.117, 171.441 189.476 L 170.906 189.23 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-7\" d=\"M 179.237 197.053 L 177.412 193.946 L 177.391 193.946 L 176.184 193.946 L 176.184 197.053 L 175.16 197.053 L 175.16 189.495 L 177.391 189.495 Q 178.682 189.495, 179.333 190.082 Q 179.985 190.658, 179.985 191.715 Q 179.985 192.516, 179.59 193.06 Q 179.205 193.594, 178.447 193.807 L 180.358 197.053 L 179.237 197.053 M 176.184 193.092 L 177.391 193.092 Q 178.127 193.092, 178.522 192.74 Q 178.917 192.388, 178.917 191.715 Q 178.917 191.043, 178.522 190.701 Q 178.138 190.349, 177.391 190.349 L 176.184 190.349 L 176.184 193.092 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-7\" d=\"M 180.913 190.925 Q 181.191 190.21, 181.853 189.815 Q 182.514 189.41, 183.432 189.41 Q 184.575 189.41, 185.215 190.029 Q 185.856 190.648, 185.856 191.747 Q 185.856 192.868, 185.023 193.914 Q 184.201 194.96, 182.493 196.199 L 185.984 196.199 L 185.984 197.053 L 180.892 197.053 L 180.892 196.337 Q 182.301 195.334, 183.134 194.587 Q 183.977 193.84, 184.382 193.167 Q 184.788 192.495, 184.788 191.801 Q 184.788 191.075, 184.425 190.669 Q 184.062 190.264, 183.432 190.264 Q 182.824 190.264, 182.418 190.509 Q 182.013 190.755, 181.724 191.299 L 180.913 190.925 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-8\" d=\"M 77.6901 169.591 Q 78.1762 169.732, 78.4087 170.049 Q 78.6483 170.359, 78.6483 170.852 Q 78.6483 171.275, 78.4369 171.606 Q 78.2255 171.93, 77.838 172.113 Q 77.4506 172.29, 76.9433 172.29 Q 76.4079 172.29, 76.0063 172.106 Q 75.6117 171.916, 75.2947 171.536 L 75.6963 171.127 Q 76.0063 171.465, 76.2669 171.599 Q 76.5276 171.726, 76.9433 171.726 Q 77.3942 171.726, 77.669 171.486 Q 77.9437 171.24, 77.9437 170.845 Q 77.9437 170.338, 77.6549 170.113 Q 77.3731 169.88, 76.7601 169.88 L 76.4008 169.88 L 76.4008 169.373 L 76.7178 169.373 Q 77.2603 169.366, 77.5492 169.133 Q 77.838 168.894, 77.838 168.45 Q 77.838 168.126, 77.5985 167.936 Q 77.359 167.738, 76.9503 167.738 Q 76.5347 167.738, 76.274 167.886 Q 76.0204 168.034, 75.8231 168.408 L 75.337 168.147 Q 75.5131 167.731, 75.9358 167.457 Q 76.3585 167.175, 76.9503 167.175 Q 77.683 167.175, 78.1128 167.52 Q 78.5426 167.865, 78.5426 168.45 Q 78.5426 168.852, 78.3242 169.14 Q 78.1058 169.429, 77.6901 169.591 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-8\" d=\"M 83.6333 175.998 L 81.808 172.892 L 81.7866 172.892 L 80.5804 172.892 L 80.5804 175.998 L 79.5556 175.998 L 79.5556 168.44 L 81.7866 168.44 Q 83.0782 168.44, 83.7294 169.027 Q 84.3805 169.604, 84.3805 170.661 Q 84.3805 171.461, 83.9856 172.006 Q 83.6013 172.539, 82.8434 172.753 L 84.7542 175.998 L 83.6333 175.998 M 80.5804 172.038 L 81.7866 172.038 Q 82.5232 172.038, 82.9181 171.685 Q 83.3131 171.333, 83.3131 170.661 Q 83.3131 169.988, 82.9181 169.647 Q 82.5338 169.294, 81.7866 169.294 L 80.5804 169.294 L 80.5804 172.038 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-8\" d=\"M 88.8319 172.016 Q 89.5684 172.23, 89.9207 172.71 Q 90.2836 173.18, 90.2836 173.927 Q 90.2836 174.568, 89.9634 175.069 Q 89.6432 175.56, 89.0561 175.838 Q 88.4689 176.105, 87.7004 176.105 Q 86.8891 176.105, 86.2806 175.827 Q 85.6829 175.539, 85.2025 174.963 L 85.811 174.343 Q 86.2806 174.856, 86.6756 175.059 Q 87.0706 175.251, 87.7004 175.251 Q 88.3835 175.251, 88.7999 174.888 Q 89.2162 174.514, 89.2162 173.916 Q 89.2162 173.148, 88.7785 172.806 Q 88.3515 172.454, 87.4228 172.454 L 86.8784 172.454 L 86.8784 171.685 L 87.3588 171.685 Q 88.1807 171.675, 88.6184 171.322 Q 89.0561 170.96, 89.0561 170.287 Q 89.0561 169.796, 88.6931 169.508 Q 88.3302 169.209, 87.711 169.209 Q 87.0812 169.209, 86.6863 169.433 Q 86.302 169.657, 86.0031 170.223 L 85.2665 169.828 Q 85.5334 169.198, 86.1739 168.782 Q 86.8144 168.355, 87.711 168.355 Q 88.8212 168.355, 89.4724 168.878 Q 90.1235 169.401, 90.1235 170.287 Q 90.1235 170.896, 89.7926 171.333 Q 89.4617 171.771, 88.8319 172.016 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-10\" d=\"M 199.832 185.523 Q 199.832 183.709, 200.729 182.695 Q 201.626 181.681, 203.302 181.681 Q 204.978 181.681, 205.874 182.695 Q 206.771 183.709, 206.771 185.523 Q 206.771 187.359, 205.864 188.406 Q 204.956 189.441, 203.302 189.441 Q 201.637 189.441, 200.729 188.406 Q 199.832 187.37, 199.832 185.523 M 203.302 188.587 Q 204.455 188.587, 205.074 187.818 Q 205.704 187.039, 205.704 185.523 Q 205.704 184.04, 205.074 183.292 Q 204.455 182.534, 203.302 182.534 Q 202.149 182.534, 201.519 183.282 Q 200.9 184.029, 200.9 185.523 Q 200.9 187.05, 201.519 187.818 Q 202.149 188.587, 203.302 188.587 \" fill=\"#FF0000\"/>\n",
       "<path class=\"atom-11\" d=\"M 228.682 151.245 L 229.774 151.245 L 229.774 147.518 L 228.57 147.892 L 228.408 147.476 L 229.936 146.793 L 230.437 146.877 L 230.437 151.245 L 231.416 151.245 L 231.416 151.809 L 228.682 151.809 L 228.682 151.245 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-11\" d=\"M 236.401 155.588 L 234.576 152.482 L 234.554 152.482 L 233.348 152.482 L 233.348 155.588 L 232.323 155.588 L 232.323 148.03 L 234.554 148.03 Q 235.846 148.03, 236.497 148.617 Q 237.148 149.194, 237.148 150.251 Q 237.148 151.051, 236.753 151.596 Q 236.369 152.129, 235.611 152.343 L 237.522 155.588 L 236.401 155.588 M 233.348 151.628 L 234.554 151.628 Q 235.291 151.628, 235.686 151.275 Q 236.081 150.923, 236.081 150.251 Q 236.081 149.578, 235.686 149.236 Q 235.302 148.884, 234.554 148.884 L 233.348 148.884 L 233.348 151.628 \" fill=\"#191919\"/>\n",
       "<path class=\"atom-11\" d=\"M 238.515 154.734 L 240.169 154.734 L 240.169 149.087 L 238.344 149.653 L 238.098 149.023 L 240.415 147.988 L 241.173 148.116 L 241.173 154.734 L 242.656 154.734 L 242.656 155.588 L 238.515 155.588 L 238.515 154.734 \" fill=\"#191919\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 419.044,137.123 L 414.236,146.76\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 414.236,146.76 L 409.428,156.397\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 423.82,139.506 L 419.012,149.143\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-0 atom-0 atom-1\" d=\"M 419.012,149.143 L 414.204,158.78\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 411.816,157.588 L 417.707,166.494\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-1 atom-1 atom-2\" d=\"M 417.707,166.494 L 423.599,175.4\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-17 atom-1 atom-18\" d=\"M 411.816,157.588 L 385.179,159.21\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 430.073,179.63 L 441.625,178.927\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-2 atom-2 atom-3\" d=\"M 441.625,178.927 L 453.177,178.224\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-3 atom-3 atom-4\" d=\"M 453.177,178.224 L 467.9,200.481\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-24 atom-17 atom-3\" d=\"M 465.091,154.344 L 453.177,178.224\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-4 atom-4 atom-5\" d=\"M 467.9,200.481 L 494.538,198.859\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-5 atom-6\" d=\"M 494.538,198.859 L 499.386,189.142\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-5 atom-5 atom-6\" d=\"M 499.386,189.142 L 504.234,179.425\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-6 atom-7\" d=\"M 509.985,174.764 L 521.537,174.061\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-6 atom-6 atom-7\" d=\"M 521.537,174.061 L 533.089,173.357\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-15 atom-6 atom-16\" d=\"M 503.511,170.533 L 497.619,161.628\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-15 atom-6 atom-16\" d=\"M 497.619,161.628 L 491.728,152.722\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-7 atom-8\" d=\"M 533.089,173.357 L 538.98,182.263\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-7 atom-8\" d=\"M 538.98,182.263 L 544.871,191.169\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-7 atom-8\" d=\"M 539.308,173.084 L 543.432,179.318\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-7 atom-7 atom-8\" d=\"M 543.432,179.318 L 547.556,185.552\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-26 atom-12 atom-7\" d=\"M 545.003,149.478 L 533.089,173.357\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-8 atom-9\" d=\"M 551.346,195.4 L 562.898,194.696\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-8 atom-8 atom-9\" d=\"M 562.898,194.696 L 574.45,193.993\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-9 atom-10\" d=\"M 574.45,193.993 L 586.364,170.113\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-9 atom-9 atom-10\" d=\"M 571.461,188.028 L 579.801,171.312\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-10 atom-10 atom-11\" d=\"M 586.364,170.113 L 571.64,147.856\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-11 atom-12\" d=\"M 571.64,147.856 L 545.003,149.478\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-11 atom-11 atom-12\" d=\"M 567.969,153.426 L 549.323,154.562\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-12 atom-13\" d=\"M 545.003,149.478 L 539.112,140.572\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-12 atom-12 atom-13\" d=\"M 539.112,140.572 L 533.22,131.666\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-13 atom-14\" d=\"M 526.584,124.772 L 517.056,125.352\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-13 atom-14\" d=\"M 517.056,125.352 L 507.528,125.932\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-13 atom-14\" d=\"M 526.908,130.099 L 517.38,130.679\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-13 atom-13 atom-14\" d=\"M 517.38,130.679 L 507.852,131.259\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-14 atom-13 atom-15\" d=\"M 532.498,122.774 L 536.227,115.298\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-14 atom-13 atom-15\" d=\"M 536.227,115.298 L 539.957,107.822\" style=\"fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-16 atom-16 atom-17\" d=\"M 491.728,152.722 L 465.091,154.344\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-18 atom-18 atom-19\" d=\"M 385.179,159.21 L 370.834,181.714\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-18 atom-18 atom-19\" d=\"M 378.527,159.717 L 368.485,175.469\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-25 atom-24 atom-18\" d=\"M 371.743,142.902 L 378.461,151.056\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-25 atom-24 atom-18\" d=\"M 378.461,151.056 L 385.179,159.21\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-19 atom-19 atom-20\" d=\"M 370.834,181.714 L 344.999,175.025\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-20 atom-20 atom-21\" d=\"M 344.999,175.025 L 335.28,183.033\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-20 atom-20 atom-21\" d=\"M 335.28,183.033 L 325.561,191.04\" style=\"fill:none;fill-rule:evenodd;stroke:#00CC00;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-21 atom-20 atom-22\" d=\"M 344.999,175.025 L 343.377,148.388\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-21 atom-20 atom-22\" d=\"M 350.084,170.705 L 348.948,152.059\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-22 atom-22 atom-23\" d=\"M 343.377,148.388 L 332.705,141.584\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-22 atom-22 atom-23\" d=\"M 332.705,141.584 L 322.032,134.781\" style=\"fill:none;fill-rule:evenodd;stroke:#00CC00;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-23 atom-22 atom-24\" d=\"M 343.377,148.388 L 354.027,144.196\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"bond-23 atom-22 atom-24\" d=\"M 354.027,144.196 L 364.676,140.004\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
       "<path class=\"atom-0\" d=\"M 420.261 133.73 Q 420.261 131.915, 421.158 130.901 Q 422.054 129.887, 423.73 129.887 Q 425.406 129.887, 426.303 130.901 Q 427.199 131.915, 427.199 133.73 Q 427.199 135.566, 426.292 136.612 Q 425.385 137.647, 423.73 137.647 Q 422.065 137.647, 421.158 136.612 Q 420.261 135.577, 420.261 133.73 M 423.73 136.793 Q 424.883 136.793, 425.502 136.025 Q 426.132 135.246, 426.132 133.73 Q 426.132 132.246, 425.502 131.499 Q 424.883 130.741, 423.73 130.741 Q 422.577 130.741, 421.947 131.488 Q 421.328 132.235, 421.328 133.73 Q 421.328 135.256, 421.947 136.025 Q 422.577 136.793, 423.73 136.793 \" fill=\"#FF0000\"/>\n",
       "<path class=\"atom-2\" d=\"M 416.874 176.067 L 417.899 176.067 L 417.899 179.28 L 421.763 179.28 L 421.763 176.067 L 422.788 176.067 L 422.788 183.624 L 421.763 183.624 L 421.763 180.134 L 417.899 180.134 L 417.899 183.624 L 416.874 183.624 L 416.874 176.067 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-2\" d=\"M 424.869 176.067 L 427.346 180.07 Q 427.591 180.465, 427.986 181.18 Q 428.381 181.895, 428.402 181.938 L 428.402 176.067 L 429.406 176.067 L 429.406 183.624 L 428.37 183.624 L 425.712 179.248 Q 425.403 178.735, 425.072 178.148 Q 424.752 177.561, 424.656 177.38 L 424.656 183.624 L 423.674 183.624 L 423.674 176.067 L 424.869 176.067 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-6\" d=\"M 504.781 171.201 L 507.258 175.204 Q 507.503 175.598, 507.898 176.314 Q 508.293 177.029, 508.314 177.072 L 508.314 171.201 L 509.318 171.201 L 509.318 178.758 L 508.282 178.758 L 505.624 174.382 Q 505.315 173.869, 504.984 173.282 Q 504.664 172.695, 504.568 172.514 L 504.568 178.758 L 503.586 178.758 L 503.586 171.201 L 504.781 171.201 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-8\" d=\"M 546.142 191.836 L 548.618 195.839 Q 548.864 196.234, 549.259 196.949 Q 549.654 197.664, 549.675 197.707 L 549.675 191.836 L 550.679 191.836 L 550.679 199.394 L 549.643 199.394 L 546.985 195.017 Q 546.676 194.505, 546.345 193.918 Q 546.024 193.33, 545.928 193.149 L 545.928 199.394 L 544.946 199.394 L 544.946 191.836 L 546.142 191.836 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-13\" d=\"M 528.609 123.441 L 531.085 127.444 Q 531.331 127.839, 531.726 128.554 Q 532.121 129.27, 532.142 129.312 L 532.142 123.441 L 533.146 123.441 L 533.146 130.999 L 532.11 130.999 L 529.452 126.622 Q 529.143 126.11, 528.812 125.523 Q 528.491 124.936, 528.395 124.754 L 528.395 130.999 L 527.413 130.999 L 527.413 123.441 L 528.609 123.441 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-13\" d=\"M 533.78 124.804 L 535.111 124.804 L 535.111 123.402 L 535.703 123.402 L 535.703 124.804 L 537.07 124.804 L 537.07 125.311 L 535.703 125.311 L 535.703 126.72 L 535.111 126.72 L 535.111 125.311 L 533.78 125.311 L 533.78 124.804 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-14\" d=\"M 500.173 128.864 Q 500.173 127.049, 501.07 126.035 Q 501.966 125.021, 503.642 125.021 Q 505.318 125.021, 506.215 126.035 Q 507.111 127.049, 507.111 128.864 Q 507.111 130.7, 506.204 131.746 Q 505.297 132.781, 503.642 132.781 Q 501.977 132.781, 501.07 131.746 Q 500.173 130.71, 500.173 128.864 M 503.642 131.927 Q 504.795 131.927, 505.414 131.159 Q 506.044 130.379, 506.044 128.864 Q 506.044 127.38, 505.414 126.633 Q 504.795 125.875, 503.642 125.875 Q 502.489 125.875, 501.859 126.622 Q 501.24 127.369, 501.24 128.864 Q 501.24 130.39, 501.859 131.159 Q 502.489 131.927, 503.642 131.927 \" fill=\"#FF0000\"/>\n",
       "<path class=\"atom-15\" d=\"M 538.724 103.362 Q 538.724 101.547, 539.621 100.533 Q 540.517 99.5189, 542.193 99.5189 Q 543.869 99.5189, 544.766 100.533 Q 545.663 101.547, 545.663 103.362 Q 545.663 105.198, 544.755 106.244 Q 543.848 107.279, 542.193 107.279 Q 540.528 107.279, 539.621 106.244 Q 538.724 105.208, 538.724 103.362 M 542.193 106.425 Q 543.346 106.425, 543.965 105.657 Q 544.595 104.878, 544.595 103.362 Q 544.595 101.878, 543.965 101.131 Q 543.346 100.373, 542.193 100.373 Q 541.04 100.373, 540.411 101.12 Q 539.792 101.867, 539.792 103.362 Q 539.792 104.888, 540.411 105.657 Q 541.04 106.425, 542.193 106.425 \" fill=\"#FF0000\"/>\n",
       "<path class=\"atom-15\" d=\"M 546.015 100.752 L 548.6 100.752 L 548.6 101.316 L 546.015 101.316 L 546.015 100.752 \" fill=\"#FF0000\"/>\n",
       "<path class=\"atom-21\" d=\"M 317.165 192.256 Q 317.165 190.377, 318.041 189.395 Q 318.927 188.402, 320.603 188.402 Q 322.161 188.402, 322.994 189.502 L 322.289 190.078 Q 321.681 189.278, 320.603 189.278 Q 319.46 189.278, 318.852 190.046 Q 318.254 190.804, 318.254 192.256 Q 318.254 193.75, 318.873 194.519 Q 319.503 195.287, 320.72 195.287 Q 321.553 195.287, 322.524 194.786 L 322.823 195.586 Q 322.428 195.843, 321.83 195.992 Q 321.232 196.141, 320.571 196.141 Q 318.927 196.141, 318.041 195.138 Q 317.165 194.135, 317.165 192.256 \" fill=\"#00CC00\"/>\n",
       "<path class=\"atom-21\" d=\"M 323.912 187.943 L 324.894 187.943 L 324.894 196.045 L 323.912 196.045 L 323.912 187.943 \" fill=\"#00CC00\"/>\n",
       "<path class=\"atom-23\" d=\"M 313.636 134.305 Q 313.636 132.426, 314.512 131.444 Q 315.398 130.451, 317.074 130.451 Q 318.632 130.451, 319.465 131.55 L 318.76 132.127 Q 318.152 131.326, 317.074 131.326 Q 315.931 131.326, 315.323 132.095 Q 314.725 132.853, 314.725 134.305 Q 314.725 135.799, 315.344 136.568 Q 315.974 137.336, 317.191 137.336 Q 318.024 137.336, 318.995 136.834 L 319.294 137.635 Q 318.899 137.891, 318.301 138.041 Q 317.703 138.19, 317.042 138.19 Q 315.398 138.19, 314.512 137.187 Q 313.636 136.183, 313.636 134.305 \" fill=\"#00CC00\"/>\n",
       "<path class=\"atom-23\" d=\"M 320.383 129.992 L 321.365 129.992 L 321.365 138.094 L 320.383 138.094 L 320.383 129.992 \" fill=\"#00CC00\"/>\n",
       "<path class=\"atom-24\" d=\"M 366.539 134.835 L 369.016 138.838 Q 369.261 139.233, 369.656 139.948 Q 370.051 140.663, 370.072 140.706 L 370.072 134.835 L 371.076 134.835 L 371.076 142.392 L 370.04 142.392 L 367.382 138.016 Q 367.073 137.503, 366.742 136.916 Q 366.422 136.329, 366.326 136.148 L 366.326 142.392 L 365.343 142.392 L 365.343 134.835 L 366.539 134.835 \" fill=\"#0000FF\"/>\n",
       "<path class=\"atom-24\" d=\"M 365.253 126.521 L 366.278 126.521 L 366.278 129.734 L 370.142 129.734 L 370.142 126.521 L 371.167 126.521 L 371.167 134.079 L 370.142 134.079 L 370.142 130.588 L 366.278 130.588 L 366.278 134.079 L 365.253 134.079 L 365.253 126.521 \" fill=\"#0000FF\"/>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "block=\"\"\"\n",
    "  Mrv2008 01192109352D          \n",
    "\n",
    " 12 12  0  0  0  0            999 V2000\n",
    "    3.7389   -3.2028    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    4.5640   -3.2028    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    4.9764   -2.4884    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    4.5640   -1.7739    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    3.7389   -1.7739    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    3.3265   -2.4884    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    2.5015   -2.4884    0.0000 A   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    3.3265   -3.9172    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    5.8014   -2.4884    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    2.0890   -1.7739    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    2.5015   -1.0595    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    1.2640   -1.7739    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  5  6  8  0  0  0  0\n",
    "  4  5  8  0  0  0  0\n",
    "  3  4  8  0  0  0  0\n",
    "  2  3  8  0  0  0  0\n",
    "  1  2  8  0  0  0  0\n",
    "  1  6  8  0  0  0  0\n",
    "  6  7  1  0  0  0  0\n",
    "  1  8  1  0  0  0  0\n",
    "  3  9  1  0  0  0  0\n",
    "  7 10  1  0  0  0  0\n",
    " 10 11  2  0  0  0  0\n",
    " 10 12  1  0  0  0  0\n",
    "M  RGP  3   8   2   9   3  12   1\n",
    "M  END\n",
    "\"\"\"\n",
    "core=Chem.MolFromMolBlock(block)\n",
    "AllChem.Compute2DCoords(core)\n",
    "smiles = 'O=C(NC1CCN(c2ncccc2[N+](=O)[O-])CC1)c1cc(Cl)c(Cl)[nH]1'\n",
    "cores = [core]\n",
    "mols = [Chem.MolFromSmiles(smiles)]\n",
    "Draw.MolsToGridImage([cores[0], mols[0]], subImgSize=(300, 300))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R3</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7648 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8092 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11200 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9096 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10108 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "options = RGroupDecompositionParameters()\n",
    "options.onlyMatchAtRGroups = False\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, core)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:O=C(NC1CCN([*:3])CC1)[*:1] R1:Clc1cc([*:1])[nH]c1Cl R3:O=[N+]([O-])c1cccnc1[*:3]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R3</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7572 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8092 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11200 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9096 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10108 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "options = RGroupDecompositionParameters()\n",
    "options.onlyMatchAtRGroups = True\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, core)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:O=C(NC1CCN([*:3])CC1)[*:1] R1:Clc1cc([*:1])[nH]c1Cl R3:O=[N+]([O-])c1cccnc1[*:3]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testRingMatching3\n",
    "\n",
    "The default scoring function does not arrange the R groups correctly. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>R3</th>\n",
       "      <th>R4</th>\n",
       "      <th>R5</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10136 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5964 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4796 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABmJLR0QA/wD/AP+gvaeTAAACFElEQVR4nO3SwQ3AIBDAsNL9dz6WIEJC9gR5ZM3MB6f9twN4k7FIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLxAYhCgSN2aqNlwAAADx6VFh0cmRraXRQS0wgcmRraXQgMjAyMS4wMy4xZGV2MQAAeJx7v2/tPQYg4AFiRgZU0MDILcIgjhAVAwCZsgQUCV+6MgAAAEV6VFh0TU9MIHJka2l0IDIwMjEuMDMuMWRldjEAAHic41IAgSAX78wSBTgwcuHiUlAwwIMsLS0VwowMDAy4fBUUXP1cuACrtwvutKwHFQAAACR6VFh0U01JTEVTIHJka2l0IDIwMjEuMDMuMWRldjEAAHicAwAAAAABZyADbwAAAABJRU5ErkJggg==\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8676 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7820 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 11232 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5812 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4796 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8676 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7372 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10356 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABmJLR0QA/wD/AP+gvaeTAAAH3klEQVR4nO3cXUiTbwPH8S2NDPMtRKM0i6gQ7R3JDgKLfDkJerMDQU8q6MDCKKOSIIyKhKLACJ9eIFZhQWTqQWWFUFYSJSZqZYEJZkslnabVdD4H43/nv8xnm/ul+Xw/R9d9e+3aJXyZc7s388DAgAnwtgmjvQGMT4QFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUHC1xg5HI6urq7fzQsMDDSbzZ7dh91uf/v27ezZs/38/Dxb4Sdv3rwJDw8PCgryymr/t3p7exsbG53jkJCQadOmuXjDhoaGvr4+k8nk6+s7d+7cIeeYBwYGnKPW1tZFixYNs1xwcHBMTMzy5ctTU1OjoqJc2YHNZrNYLBcvXmxpafHx8YmMjLxz505AQICLv8BP7HZ7SUlJQUFBTU2NyWQKDw8/e/ZsfHy8Z6vh0aNHK1eudI63bt167tw5F28YFhbW2tpqMpmmTp3a3t4+5BzfIc8OqaOjo6KioqKi4tSpU5s3b87NzZ0yZcrvJjc1NVksFovFYrPZnGf6+/sbGxv7+/tdv0dDV1fXtWvXCgoKmpubjZNWq7Wzs9OD1fAHuBGWweFwFBYWVldX37x5MzAw8Kefvnz58vz580VFRc5HyxH6NVD8FYYOa+nSpWfOnBl8pq2trba29vr16y9evHCeqa+v37Fjx6VLl4w59fX12dnZxgTDxIkT7Xa7uzuz2Wy7d+++ffv2Tw9ynq2GP2zo/wr9/Pyi/m3ZsmUZGRklJSX79u0zppWVlT158sQ4DAoKqq6udo59fHzi4uJycnIePny4evVqD3YWEBBQW1trVBUVFbVly5aioqLBG8CY5d6fQrPZvHPnzrq6uuLiYueZoqKiFStWOMfTp09PSkoym83Jyclr1qwJCQkZyc7MZnNaWtqDBw+Sk5NTUlKMfxd+fUTEGOTJc6z09HQjrMrKysE/unDhghc29Y/MzMzMzEwvLog/xpMXSGNjY43xp0+fvLcZjB+ehDX4dc6enh7vbQbjhyd/CltaWozxCJ9IGTo6Opqamow1IyMjvbIsRosnYd2/f98YR0dHe2Ufd+/ezcrKco5TU1NPnz7tlWUxWtwOy2q15ufnG4eJiYle3Q9GR3d39/v3712c7HA4/uccN8IaGBgoLy8/cOCA1Wp1ngkNDd24caPrK2DMKiwsLCws9OKCQ4f17t27vXv3God9fX3t7e01NTUfP340Tk6YMCEvL+/Xt3Q8ExISsmDBAud45syZI1ytubk5Li5uxJvympiYmHv37o32Ln7o7u729/eX3sXQYVmt1suXLw9zs8mTJ584cSIlJcVb+0hMTOSv6nji9nOsgICAtWvXZmVlRUREKDbkFTNmzPjw4cNo7+Jvkp6efvLkSRcnR0dHt7W1DT9n6LDCw8MHP35UVVXV1tY6x9u3b9+1a5eLO8DfYtKkSaGhoS5OduWSz6HDmjNnTl5ennHY2NiYkJDw/ft3k8mUn5+fmpo6lh+uMBa49Mr7rFmztm3b5hz39vYeOXJEuSWMB66+pZOVlWVcE33r1q3Hjx/LtoTxwNWw/P39c3JyjMOcnByvXCCK8cqNN6E3bNhgfHLh9evXFotFsyWMB26EZTabc3NzfXx8nId5eXm/+4QG4N5lM7GxsWlpac5xZ2fn8ePHvbWPhoaG//yjvLzcW8titLj9Aun+/ftLS0s/f/5sMpmuXr2alpa2ePHike+jqqrq0KFDznFqampCQsLI18Qocjus4ODgPXv2OJ/IOxyOgwcPFhcXD37FbNWqVYPfUjT9+2LA+Pj4wZPXrVt37NixYe4uOzu7tLR08Jlv374Z48zMTF/fH79CREREWVmZu78RFDy5HisjI+PKlSt1dXUmk+n58+c3btzYtGmT8VObzTbM50h/+nhgb2/v8PfV09MzzGpfvnwZfMiH7scOT8Ly8fE5evTo+vXrnR/PP3z4cFJS0ggvc5g3b57xGuySJUtGshTGgh/f3WC3258+feocBwUFLVy4cPhbPnv27OvXr85xdHS08U5TZWWl880fV4SFhc2fP3+YCa9evXJ+TYAr/Pz8xtTVMmPcH/pSEMCL+H4sSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAUJwoIEYUGCsCBBWJAgLEgQFiQICxKEBQnCggRhQYKwIEFYkCAsSBAWJAgLEoQFCcKCBGFBgrAgQViQICxIEBYkCAsShAWJ/wK95h5zmakrigAAAF96VFh0cmRraXRQS0wgcmRraXQgMjAyMS4wMy4xZGV2MQAAeJx7v2/tPQYg4AFiRgYIYIKyGxgZGTQYwBweCC3BqAOSDDLkBsqLMIjDdIC0ONgDdSyBcB32A9kqIJYYAM4KCInVcS7bAAAAgnpUWHRNT0wgcmRraXQgMjAyMS4wMy4xZGV2MQAAeJzjUgCBIBfvzBIFODBy4eICkgoKhgoKBliRpaWlQpiRgYEBF0i9gZ65qQFQWEHXQA8oZgARA7M8FHAZgYy4IHqhpihgmBKkjFe/IdwUiJtBfC5foLfcA8AckLCCIUjE1c+FCwBjHiZru3yzqAAAAJZ6VFh0U01JTEVTIHJka2l0IDIwMjEuMDMuMWRldjEAAHici/aIjdayMoxVqNEw0DM31dE11TM1NTQ0StU1NNex1gWLIQtp6iSW5OcGFOUXWBnoZRZ75hbkZCZnlugZWhnqFWempDpnJGbmBeUkJqXmFOtFG+rEAsVz83McgZp8Ewv8SnOTUovAilNKc3MrfUDq9IIMawDXECipWWm9rQAAAABJRU5ErkJggg==\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABmJLR0QA/wD/AP+gvaeTAAACFElEQVR4nO3SwQ3AIBDAsNL9dz6WIEJC9gR5ZM3MB6f9twN4k7FIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLhLFIGIuEsUgYi4SxSBiLxAYhCgSN2aqNlwAAADx6VFh0cmRraXRQS0wgcmRraXQgMjAyMS4wMy4xZGV2MQAAeJx7v2/tPQYg4AFiRgZU0MDILcIgjhAVAwCZsgQUCV+6MgAAAEV6VFh0TU9MIHJka2l0IDIwMjEuMDMuMWRldjEAAHic41IAgSAX78wSBTgwcuHiUlAwwIMsLS0VwowMDAy4fBUUXP1cuACrtwvutKwHFQAAACR6VFh0U01JTEVTIHJka2l0IDIwMjEuMDMuMWRldjEAAHicAwAAAAABZyADbwAAAABJRU5ErkJggg==\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4796 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5320 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8676 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7748 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cores = [Chem.MolFromSmarts(\"*1***[*:1]1\")]\n",
    "cores = [Chem.MolFromSmarts(\"*1****1([*:1])\")]\n",
    "smi = [\"c1cocc1CCl\", \"c1c[nH]cc1CI\", \"c1cscc1CF\"]\n",
    "mols = [Chem.MolFromSmiles(s) for s in smi]\n",
    "options = RGroupDecompositionParameters()\n",
    "#options.scoreMethod = RGroupScore.FingerprintVariance\n",
    "options.removeHydrogensPostMatch = True\n",
    "options.removeAllHydrogenRGroups = False\n",
    "options.onlyMatchAtRGroups = False\n",
    "options.allowNonTerminalRGroups = True;\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:c1cc([*:1])co1 R1:ClC[*:1]\",\n",
      "\"Core:c1cc([*:1])c[nH]1 R1:IC[*:1]\",\n",
      "\"Core:c1cc([*:1])cs1 R1:FC[*:1]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testGithub3402"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6940 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6228 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6340 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7524 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cores = [Chem.MolFromSmarts(\"[$(C-!@[a])](=O)(Cl)\")]\n",
    "mols = [Chem.MolFromSmiles(\"c1ccccc1C(=O)Cl\")]\n",
    "options = RGroupDecompositionParameters()\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:O=C(Cl)[*:1] R1:c1ccc([*:1])cc1\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### singleAtomBridge\n",
    "\n",
    "This test is currently broken.  It is clear from the core and molecule what the decomposition should be."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5476 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABmJLR0QA/wD/AP+gvaeTAAAI1klEQVR4nO3dX0hTfRzH8d/0yWCBpmJyWC5GpaUWmpoR6gznRahXpUQMNKIVmf8hIiyooCKJSJqgRZQRmWk3Q6iwbhTKBKEVWEnNFHQN/6CV/+eei8MjYY9rzvPd+ePndTXPOfvti753nDJ2VC6XiwEIzU/sAUCZEBaQQFhAAmEBCYQFJBAWkEBYQAJhAQmEBSQQFpBAWEACYQEJhAUkEBaQQFhAAmEBCYQFJBAWkEBYQAJhAQmEBSQQFpBAWEACYQEJhAUkEBaQQFhAAmEBCYQFJBAWkEBYQAJhAQmEBSQQFpBAWEACYQEJhAUkEBaQQFhAAmEBCYQFJBAWkEBYQOIfsQcQXlhY2MzMjNhTLIPZbDYajWJPITClhRUWFjY0NCT2FMtjMpkYYwprS2lhjY2NMcYcDkdAQIDYs3iksLDw4cOH8jrFekJpYfGCgoLkEpZc5lwuvHgHEggLSCAsIIGwgATCAhIIC0ggLCCBsIAEwgISCAtIICwggbCABMICEggLSCAsIIGwgATCAhIIC0ggLCCBsIAEwgISCAtIICwggbCABMICEggLSCAsIIGwgATCAhIIC0ggLCCBsIAEwgISCAtIICwggbCABMICEggLSCAsIIGwgATCAhIIC0ggLCCBsIAEwgISCAtIICwggbCABMICEggLSCAsIIGwgATCAhIIC0ggLCDxj9gDkCgpKfHzk8dz5vXr14yxiYkJsQcRmktBqqqq1Gq1XJJaEBERsW3btqGhIbG/f0JSuVwusb+xwrhy5crZs2f9/f3z8/N37dol9jie+vHjR11dnc1mi4+Pb21tDQkJEXsigYhdtjCqqqoYY/7+/vfv3xd7lmWz2+3R0dGMsbi4OMWct5QQlqyr4imvLdmHpYCqeAprS95hKaYqnpLaknFYCquKp5i25BqWIqviKaMtWYal4Kp4CmhLfmEpviqe3NuSWVirpCqerNuSU1irqiqefNuSTVirsCqeTNuSR1irtiqeHNuSQVirvCqe7NqSelioaoG82pJ0WKhqERm1Jd2wbt26lZaW5u/vX19fL/YsEiKXtiQaVnV1NcdxOp3uyZMnYs8iOXxbCQkJOTk5IyMjYo/z/6QYVk1NDcdxGzdubGxsFHsWiRoYGDAYDBzHZWZmjo6Oij3O/5BcWKjKQw6HQ6/XcxxnMBgkeN6SVlioalmk3JaEwkJVXpBsW1IJC1V5TZptSSIsVLVCEmxL/LBQlSCk1pbIYaEqAUmqLTHDQlWCk05booWFqohIpC1xwkJVpKTQlghhoSofEL0tX4eFqnxG3LZ8Ghaq8jER2/IorIGBgb6+Pg9XnJubm56e/nM7qhKF+7ZGR0d7e3unpqYEf1yPwjp48ODevXvdH2Oz2SorK5OSkiIiIjiO27lzZ1lZ2bdv3/i9bW1tfFV4f5XvuWmLf7Z//frV/Qpzc3MWiyUnJ2fPnj21tbWePKi7sPr7+2dmZlwuV3l5udFo5Dfa7fY/j3z+/PmWLVv4dOLi4qKjozmO4zguKirKarXyx1y6dAlViWVRW2NjY/y7T1taWrRa7ezsrGuJn+zPnz8fPHiQkpLC/aeiosKTR3QXlslkSkxMvH379rVr186dO/fixYusrKzs7OxFh/X19el0Oo7jioqKBgcH+Y0dHR1xcXEcx6WnpzudTk9GAVJ2uz0lJSUiIqK1tbWhoWHz5s2VlZUvX75MTU398OFDUVHRpk2bFr3XeXh4OCoqij9fHDhwYN++fZ6H5e5TkzMyMtRq9aNHj3p7exljb968iYmJiY2NdblcKpVq4TCHwxEZGanVaqurqxc27t69+8KFCydOnPj06dO7d+/i4+O9/zRLEEJ4eHhTU5PVas3IyOjs7Dx8+LDVam1ubv7169exY8diYmJKSkrm5uZ+v0tISIjRaIyMjMzMzAwODi4rK/v48aOnj/fX9N6/f5+ampqcnNzW1ubmsD9fsI+Pj/Mnz4aGBk8aBx8bHx/Pzs42GAxXr1715PjS0lLPz1h/+eTq7u7uQ4cOHTly5Pjx4/n5+Z2dnYuKXPgyICBg0X3VavWaNWsYY06n09PMwVcmJycLCgrWr19fV1dnNptramp+3/v7T9Y77sKan58vLy9ft26d0Wg0Go1hYWHnz5+fn59njHV3d2s0Go1GY7Val7p7f3//7OwsY0yr1a5wShBcdXV1R0fHmTNndDpdXl7e9evX+/r6+F0JCQkajebGjRsrWd/dayw/P7/Hjx/39PTwJx6z2RwZGen5x/M/ffqUMRYYGJiUlLSSEYHC6dOnk5OTY2JiGGMVFRUmk0nY5/9fLnkSGBiYkJDA3164wRjTaDQ3b95kS5+NHA7H3bt3GWMFBQVr164VZlgQjkqlSk9P52/zL4UXdl28eHFiYiI2NnYl63t5LZ3AwMDc3Nyl9jqdzlOnTo2MjOh0uuLiYm9nA3FkZWWtfBHhLzvjdDpLS0vb29tDQ0Pv3bunVqsFfwiQPoGv/jU9PV1cXGyxWIKDgxsbG7du3Srs+iAXQob1/fv3o0ePdnV1hYeH19fXb9++XcDFQV4E+1X49u3b/fv3d3V1JSYmPnv2bMeOHUKtDHLkZVg2m02v1+v1+s+fP7tcrjt37uTm5trtdqPR2NzcHB4eLuyU4Et5eXl6vb6+vn4li3j5q3Bqaqqnp4e/cfnyZbPZzBhTqVQWi8VisSw6OC0trba2diVTgi99+fJlcHBweHiYMfbq1avCwkJ+O38Z2KamppaWFsZYaGhoe3v7Uot4GVZoaOjJkycZYxs2bJicnAwKCvJuHZCggoKCsbGxP/+tvaw/8JVzhVWQFJldPhnkAmEBCYQFJBAWkEBYQAJhAQmEBSQQFpBAWEACYQEJhAUkEBaQQFhAAmEBCYQFJBAWkEBYQAJhAQmEBSQQFpBAWEACYQEJhAUkEBaQQFhAAmEBCYQFJBAWkEBYQAJhAQmEBSQQFpBAWEACYQEJhAUkEBaQQFhAAmEBCYQFJBAWkEBYQAJhAQmEBSQQFpD4F9UdN+4dALJBAAAAk3pUWHRyZGtpdFBLTCByZGtpdCAyMDIxLjAzLjFkZXYxAAB4nHu/b+09BiDgAWJGBghgg+IGRjaGBCDNzMigowGSYJRg1AEp0sIQZ0IWZ2KC0dwgM5kYmJgZmFgYWFgZWBkYRBhZGFhZmMRhloFscrCX+ia6D8TZdvi5fVXTrP0QKYf9SOL7kcVtHdfaQ9n2MLYYACAwG4N7Azl8AAAAqnpUWHRNT0wgcmRraXQgMjAyMS4wMy4xZGV2MQAAeJytkTsOAyEMRHufYi6wyOYb6pAqSootcof0ub8CJkJIu2lWa03hMehpDIRWa7m/PxhlCxEQVbyrnDNelpmp3WeTAtcxFjbio++zesq44h9illLEXIRTo4ixnGSirFuKbHvqCU7IshzPYvey1N1ccPHYu5xBEQ0mw7hhaudnE4YJ+v8/0zs1D+D2LPQFsmFX9vwQG44AAACaelRYdFNNSUxFUyByZGtpdCAyMDIxLjAzLjFkZXYxAAB4nG2KPQ+CMBCG/4ojkHrptb3WlMl0VeNuGEpk41JCZDDhx3Mr4vJ+PglTql5NNF2dUBy701ppCKQQLFki1Z7/VVF03rkgA8IFtfdKgtEBUbW/yIGoVf4Ufs5lihbeC/P3lvthhEYql/Eq5z1Pj4X7YQYTac/QkcF1A2hZNQcgL+WxAAAAAElFTkSuQmCC\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4740 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mols = [Chem.MolFromSmiles('C1CC2NC12')]\n",
    "cores = [Chem.MolFromSmiles('C1([*:1])C([*:2])CC1')]\n",
    "options = RGroupDecompositionParameters()\n",
    "options.onlyMatchAtRGroups = True\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:C1CC([*:1])C1 R1:N([*:1])[*:1]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5476 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4740 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mols = [Chem.MolFromSmiles('C1CC2NC12')]\n",
    "cores = [Chem.MolFromSmiles('C1([*:1])CCC1')]\n",
    "options = RGroupDecompositionParameters()\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:C1CC([*:1])C1 R1:N([*:1])[*:1]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testRingMatching"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8384 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8904 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9096 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7724 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8904 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8396 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8604 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8904 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 10024 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cores = [Chem.MolFromSmiles(\"c1ccc[1*]1\")]\n",
    "smi = [\"c1cocc1\", \"c1c[nH]cc1\", \"c1cscc1\"]\n",
    "mols = [Chem.MolFromSmiles(s) for s in smi]\n",
    "options = RGroupDecompositionParameters()\n",
    "options.allowNonTerminalRGroups = True;\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:c1ccoc1\",\n",
      "\"Core:c1cc[nH]c1\",\n",
      "\"Core:c1ccsc1\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testRingMatching2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7832 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5244 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9644 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7820 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7336 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4252 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9644 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7372 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7856 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4368 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 9644 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7748 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cores = [Chem.MolFromSmarts(\"*1***[*:1]1C[*:2]\")]\n",
    "smi = [\"c1cocc1CCl\", \"c1c[nH]cc1CI\", \"c1cscc1CF\"]\n",
    "mols = [Chem.MolFromSmiles(s) for s in smi]\n",
    "options = RGroupDecompositionParameters()\n",
    "options.allowNonTerminalRGroups = True;\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:c1cc(C[*:2])co1 R2:Cl[*:2]\",\n",
      "\"Core:c1cc(C[*:2])c[nH]1 R2:I[*:2]\",\n",
      "\"Core:c1cc(C[*:2])cs1 R2:F[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testCoreWithRGroupAdjQuery"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8364 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8656 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8672 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "block = \"\"\"\n",
    "     RDKit          2D\n",
    "\n",
    " 10 10  0  0  0  0  0  0  0  0999 V2000\n",
    "   -3.6689   -0.8582    0.0000 R#  0  0  0  0  0  1  0  0  0  0  0  0\n",
    "   -2.2421   -1.3211    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.1279   -0.3169    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.4403    1.1502    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.3261    2.1543    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    1.1007    1.6914    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    1.4132    0.2243    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.2989   -0.7798    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    2.8400   -0.2386    0.0000 Q   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    3.1525   -1.7057    0.0000 R#  0  0  0  0  0  1  0  0  0  0  0  0\n",
    "  1  2  1  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",
    "  7  9  1  0\n",
    "  9 10  1  0\n",
    "  8  3  1  0\n",
    "M  RGP  2   1   1  10   2\n",
    "M  END\n",
    "$$$$\n",
    "\"\"\"\n",
    "\n",
    "core=Chem.MolFromMolBlock(block)\n",
    "AllChem.Compute2DCoords(core)\n",
    "smiles = 'CNc1cccc(c1)OC1CCC1'\n",
    "cores = [core]\n",
    "mols = [Chem.MolFromSmiles(smiles)]\n",
    "options = RGroupDecompositionParameters()\n",
    "options.onlyMatchAtRGroups = True\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:c1cc(N[*:1])cc(O[*:2])c1 R1:C[*:1] R2:C1CC([*:2])C1\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### test_userLabels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R5</th>\n",
       "      <th>R6</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7452 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4164 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5020 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5704 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6436 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6128 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "smi = \"C(Cl)N(N)O(O)\"\n",
    "mols = [Chem.MolFromSmiles(smi)]\n",
    "smarts = 'C([*:1])N([*:5])O([*:6])'\n",
    "cores = [Chem.MolFromSmarts(smarts)]\n",
    "options = RGroupDecompositionParameters()\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:C(N(O[*:6])[*:5])[*:1] R1:Cl[*:1] R5:N[*:5] R6:O[*:6]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R4</th>\n",
       "      <th>R5</th>\n",
       "      <th>R6</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7448 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4348 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5020 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5704 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6540 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6128 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "smarts = 'C([*:4])N([*:5])O([*:6])'\n",
    "cores = [Chem.MolFromSmarts(smarts)]\n",
    "options = RGroupDecompositionParameters()\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:C(N(O[*:6])[*:5])[*:4] R4:Cl[*:4] R5:N[*:5] R6:O[*:6]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testGeminalRGroups"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R5</th>\n",
       "      <th>R6</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8484 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5760 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5760 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8836 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6208 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8484 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,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\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4708 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8836 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6380 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8484 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4608 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5856 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 8836 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7848 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "block=\"\"\"\n",
    "     RDKit          2D\n",
    "\n",
    "  8  8  0  0  0  0  0  0  0  0999 V2000\n",
    "   -0.6026    1.2267    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.3171    0.8142    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.3171   -0.0108    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.6026   -0.4232    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.1118   -0.0108    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "    0.1118    0.8142    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -1.0714    1.7839    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "   -0.0506    1.8398    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0\n",
    "  2  3  1  0  0  0  0\n",
    "  3  4  1  0  0  0  0\n",
    "  4  5  1  0  0  0  0\n",
    "  5  6  1  0  0  0  0\n",
    "  1  2  1  0  0  0  0\n",
    "  1  6  1  0  0  0  0\n",
    "  1  7  1  0  0  0  0\n",
    "  1  8  1  0  0  0  0\n",
    "M  RGP  2   7   5   8   6\n",
    "M  END\n",
    "\"\"\"\n",
    "\n",
    "core=Chem.MolFromMolBlock(block)\n",
    "AllChem.Compute2DCoords(core)\n",
    "smi = [\"C1CCCCC12CC2\", \"C1CCCCC1(C)C\", \"C1CCCCC1(Cl)Br\"]\n",
    "cores = [core]\n",
    "mols = [Chem.MolFromSmiles(s) for s in smi]\n",
    "options = RGroupDecompositionParameters()\n",
    "options.onlyMatchAtRGroups = True\n",
    "options.scoreMethod = RGroupScore.FingerprintVariance\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:C1CCC([*:5])([*:6])CC1 R5:C(C[*:6])[*:5] R6:C(C[*:6])[*:5]\",\n",
      "\"Core:C1CCC([*:5])([*:6])CC1 R5:C[*:5] R6:C[*:6]\",\n",
      "\"Core:C1CCC([*:5])([*:6])CC1 R5:Br[*:5] R6:Cl[*:6]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### testUserMatchTypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7884 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4220 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5056 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5232 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6896 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cores = [Chem.MolFromSmiles('C1CCCCC1[*:1]')]\n",
    "mols =  [Chem.MolFromSmiles('C1CCCCC1(N)(O)')]\n",
    "options = RGroupDecompositionParameters()\n",
    "options.scoreMethod = RGroupScore.FingerprintVariance\n",
    "options.onlyMatchAtRGroups = False\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:C1CCC([*:1])([*:2])CC1 R1:O[*:1] R2:N[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7896 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4220 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5056 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7336 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6896 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cores = [Chem.MolFromSmiles('C1CCCCC1([*:1])([*:2])')]\n",
    "options = RGroupDecompositionParameters()\n",
    "options.scoreMethod = RGroupScore.FingerprintVariance\n",
    "options.onlyMatchAtRGroups = False\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:C1CCC([*:1])([*:2])CC1 R1:O[*:1] R2:N[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Core</th>\n",
       "      <th>R1</th>\n",
       "      <th>R2</th>\n",
       "      <th>Input core</th>\n",
       "      <th>Mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 7896 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 4220 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 5056 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6168 characters]\" alt=\"Mol\"/></td>\n",
       "      <td><img data-content=\"rdkit/molecule\" src=\"data:image/png;base64,[encoded data, 6896 characters]\" alt=\"Mol\"/></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cores = [Chem.MolFromSmiles('C1CCCC[*:2]1[*:1]')]\n",
    "options = RGroupDecompositionParameters()\n",
    "options.allowNonTerminalRGroups = True;\n",
    "options.scoreMethod = RGroupScore.FingerprintVariance\n",
    "options.onlyMatchAtRGroups = False\n",
    "cols=decomp(options)\n",
    "show_decomp(cols, cores[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"Core:C1CCC([*:1])([*:2])CC1 R1:O[*:1] R2:N[*:2]\",\n"
     ]
    }
   ],
   "source": [
    "print_rows(options)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python (conda rdkit_build)",
   "language": "python",
   "name": "rdkit_build"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
