{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "302355e8",
   "metadata": {},
   "source": [
    "<img align=\"right\" src=\"https://raw.githubusercontent.com/GT4SD/gt4sd-core/main/docs/_static/gt4sd_logo.png\" alt=\"logo\" width=\"100\" height=\"100\"/>\n",
    "\n",
    "# Demo: The Generative Toolkit for Scientific Discovery\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d6a65c61",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "# logging\n",
    "import os\n",
    "os.environ[\"TF_CPP_MIN_LOG_LEVEL\"] = \"2\"\n",
    "import logging, sys\n",
    "logging.disable(sys.maxsize)\n",
    "logger = logging.getLogger()\n",
    "logger.setLevel(logging.CRITICAL)\n",
    "from paccmann_chemistry.utils import disable_rdkit_logging\n",
    "# utils\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from tqdm import tqdm\n",
    "from paccmann_generator.drug_evaluators.esol import ESOL\n",
    "from paccmann_generator.drug_evaluators.scsore import SCScore\n",
    "from terminator.selfies import encoder, split_selfies\n",
    "from rdkit import Chem\n",
    "from rdkit.Chem.Draw import IPythonConsole\n",
    "from rdkit.Chem.Descriptors import MolWt\n",
    "from rdkit.Chem.Scaffolds.MurckoScaffold import GetScaffoldForMol\n",
    "from rdkit.DataStructs import FingerprintSimilarity\n",
    "from rdkit.Chem.AllChem import GetMorganFingerprintAsBitVect\n",
    "# plotting\n",
    "import mols2grid\n",
    "import seaborn as sns\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.cm as cm\n",
    "%matplotlib inline\n",
    "# gt4sd\n",
    "from gt4sd.algorithms.generation.moler import MoLeR, MoLeRDefaultGenerator\n",
    "from gt4sd.algorithms.conditional_generation.regression_transformer import (\n",
    "    RegressionTransformer, RegressionTransformerMolecules\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "67314a02",
   "metadata": {},
   "source": [
    "### Let us have a look at a case study"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d2907c5c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    function fit_height(obj) {\n",
       "        obj.style.height = 0;\n",
       "        var height = obj.contentDocument.body.scrollHeight + 18 + 'px';\n",
       "        obj.style.height = height;\n",
       "    }\n",
       "</script>\n",
       "<iframe class=\"mols2grid-iframe\" frameborder=\"0\" width=\"100%\"\n",
       "\n",
       "height=\"200\"\n",
       "\n",
       "\n",
       "allow=\"clipboard-write\"\n",
       "\n",
       "srcdoc=\"&lt;html&gt;\n",
       "  &lt;meta charset=&quot;utf-8&quot;&gt;\n",
       "  &lt;head&gt;\n",
       "    &lt;style&gt;\n",
       "    #mols2grid.gridcontainer {\n",
       "    display: block;\n",
       "    padding-left: 1em;\n",
       "    max-width: 4020px;\n",
       "    width: 4020px;\n",
       "}\n",
       "#mols2grid .cell {\n",
       "    border: 1px solid #cccccc;\n",
       "    text-align: center;\n",
       "    vertical-align: top;\n",
       "    max-width: 800px;\n",
       "    width: 800px;\n",
       "    font-family: &#x27;DejaVu&#x27;, sans-serif;\n",
       "    font-size: 12pt;\n",
       "    padding: 0;\n",
       "    margin: 0px;\n",
       "    float: left;\n",
       "}\n",
       "#mols2grid .cell:hover {\n",
       "    background-color: #e7e7e7 !important;\n",
       "}\n",
       "#mols2grid .cell .data-img {\n",
       "    padding: 0;\n",
       "    margin: 0;\n",
       "}\n",
       "#mols2grid .cell img, #mols2grid .cell svg {\n",
       "    max-width: 100%;\n",
       "    height: auto;\n",
       "    padding: 0;\n",
       "}\n",
       "#mols2grid .data {\n",
       "    overflow: hidden;\n",
       "    white-space: nowrap;\n",
       "    text-overflow: ellipsis;\n",
       "    display: block;\n",
       "}\n",
       "#mols2grid .arrow-asc:after {\n",
       "    content: &#x27;↑&#x27;;\n",
       "    text-align: right;\n",
       "    float:right;\n",
       "}\n",
       "#mols2grid .arrow-desc:after {\n",
       "    content: &#x27;↓&#x27;;\n",
       "    text-align: right;\n",
       "    float:right;\n",
       "}\n",
       "    /* custom CSS */\n",
       "    \n",
       "    &lt;/style&gt;\n",
       "    &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/list.js/2.3.1/list.min.js&quot;&gt;&lt;/script&gt;\n",
       "&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css&quot; integrity=&quot;sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l&quot; crossorigin=&quot;anonymous&quot;&gt;\n",
       "&lt;script src=&quot;https://code.jquery.com/jquery-3.5.1.slim.min.js&quot; integrity=&quot;sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;\n",
       "&lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js&quot; integrity=&quot;sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;\n",
       "&lt;script src=&quot;https://unpkg.com/@rdkit/rdkit@2021.9.4/Code/MinimalLib/dist/RDKit_minimal.js&quot;&gt;&lt;/script&gt;\n",
       "    &lt;!-- custom header --&gt;\n",
       "    \n",
       "  &lt;/head&gt;\n",
       "  &lt;body&gt;\n",
       "    &lt;div id=&quot;mols2grid&quot; class=&quot;gridcontainer grid-default&quot;&gt;\n",
       "      &lt;div class=&quot;row mb-3&quot;&gt;\n",
       "        &lt;div class=&quot;list&quot;&gt;&lt;div class=&quot;cell&quot; data-mols2grid-id=&quot;0&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;position-relative float-left cached_checkbox&quot;&gt;&lt;div class=&quot;data data-Name&quot;&gt;&lt;/div&gt;&lt;a tabindex=&quot;0&quot; class=&quot;data data-img mols2grid-tooltip&quot; data-toggle=&quot;popover&quot; data-content=&quot;.&quot;&gt;&lt;/a&gt;&lt;div class=&quot;data data-Solubility-Val&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-SMILES&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-Solubility&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;\n",
       "      &lt;/div&gt;\n",
       "      &lt;div class=&quot;d-inline&quot;&gt;\n",
       "        &lt;ul class=&quot;pagination float-left&quot;&gt;&lt;/ul&gt;\n",
       "        &lt;div id=&quot;controls&quot; class=&quot;d-flex flex-row float-right&quot;&gt;\n",
       "          \n",
       "          &lt;div id=&quot;chkbox-dropdown&quot; class=&quot;dropdown&quot;&gt;\n",
       "    &lt;button class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; id=&quot;chkboxDropdown&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;☑&lt;/button&gt;\n",
       "    &lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;checkboxDropdownMenu&quot;&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-all&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Check all&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-none&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Uncheck all&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-invert&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Invert&lt;/button&gt;\n",
       "        &lt;div class=&quot;dropdown-divider&quot;&gt;&lt;/div&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-copy&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Copy to clipboard&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-dlsmi&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Save SMILES&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-dlcsv&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Save CSV&lt;/button&gt;\n",
       "    &lt;/div&gt;\n",
       "&lt;/div&gt;\n",
       "          \n",
       "          &lt;div id=&quot;sort-dropdown&quot; class=&quot;dropdown pl-2&quot;&gt;\n",
       "            &lt;button class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; id=&quot;sortDropdown&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;\n",
       "              Sort by\n",
       "            &lt;/button&gt;\n",
       "            &lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;sortDropdownMenu&quot;&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn arrow-asc active&quot; type=&quot;button&quot; data-name=&quot;mols2grid-id&quot;&gt;Index&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-Name&quot;&gt;Name&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-Solubility-Val&quot;&gt;Solubility-Val&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-SMILES&quot;&gt;SMILES&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-Solubility&quot;&gt;Solubility&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn&quot; type=&quot;button&quot; data-name=&quot;checkbox&quot;&gt;Selected&lt;/button&gt;\n",
       "              \n",
       "            &lt;/div&gt;\n",
       "          &lt;/div&gt;\n",
       "          &lt;div class=&quot;input-group row pl-4&quot;&gt;\n",
       "            &lt;input type=&quot;text&quot; id=&quot;searchbar&quot; class=&quot;form-control&quot; placeholder=&quot;Search&quot; aria-label=&quot;Search&quot; aria-describedby=&quot;basic-addon1&quot;&gt;\n",
       "            &lt;div class=&quot;input-group-append&quot;&gt;\n",
       "              &lt;button id=&quot;searchBtn&quot; class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;🔎&lt;/button&gt;\n",
       "              &lt;div class=&quot;dropdown-menu dropdown-menu-right&quot;&gt;\n",
       "                &lt;button id=&quot;txtSearch&quot; class=&quot;search-btn dropdown-item active&quot;&gt;Text&lt;/button&gt;\n",
       "                &lt;button id=&quot;smartsSearch&quot; class=&quot;search-btn dropdown-item&quot;&gt;SMARTS&lt;/button&gt;\n",
       "              &lt;/div&gt;\n",
       "            &lt;/div&gt;\n",
       "          &lt;/div&gt;\n",
       "        &lt;/div&gt;\n",
       "      &lt;/div&gt;\n",
       "    &lt;/div&gt;\n",
       "    &lt;script&gt;\n",
       "    // list.js\n",
       "var listObj = new List(&#x27;mols2grid&#x27;, {\n",
       "    valueNames: [{data: [&#x27;mols2grid-id&#x27;]}, &#x27;data-Solubility&#x27;, &#x27;data-Solubility-Val&#x27;, &#x27;data-img&#x27;, &#x27;data-Name&#x27;, &#x27;data-SMILES&#x27;, {attr: &#x27;data-content&#x27;, name: &#x27;mols2grid-tooltip&#x27;}],\n",
       "    item: &#x27;&lt;div class=&quot;cell&quot; data-mols2grid-id=&quot;0&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;position-relative float-left cached_checkbox&quot;&gt;&lt;div class=&quot;data data-Name&quot;&gt;&lt;/div&gt;&lt;a tabindex=&quot;0&quot; class=&quot;data data-img mols2grid-tooltip&quot; data-toggle=&quot;popover&quot; data-content=&quot;.&quot;&gt;&lt;/a&gt;&lt;div class=&quot;data data-Solubility-Val&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-SMILES&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-Solubility&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&#x27;,\n",
       "    page: 15,\n",
       "    pagination: {\n",
       "        name: &quot;pagination&quot;,\n",
       "        item: &#x27;&lt;li class=&quot;page-item&quot;&gt;&lt;a class=&quot;page page-link&quot; href=&quot;#&quot; onclick=&quot;event.preventDefault()&quot;&gt;&lt;/a&gt;&lt;/li&gt;&#x27;,\n",
       "        innerWindow: 1,\n",
       "        outerWindow: 1,\n",
       "    },\n",
       "});\n",
       "listObj.remove(&quot;mols2grid-id&quot;, &quot;0&quot;);\n",
       "listObj.add([{&quot;data-Solubility&quot;: -3.5527747378327823, &quot;data-Solubility-Val&quot;: &quot;Solubility = -3.553&quot;, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 0, &quot;data-Name&quot;: &quot;Buturon&quot;, &quot;data-SMILES&quot;: &quot;CC(C#C)N(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;SMILES&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;Name&lt;/strong&gt;: Buturon&lt;br&gt;&lt;strong&gt;Solubility&lt;/strong&gt;: -3.5527747378327823&quot;}]);\n",
       "// filter\n",
       "if (window.parent.mols2grid_lists === undefined) {\n",
       "    window.parent.mols2grid_lists = {};\n",
       "}\n",
       "window.parent.mols2grid_lists[&quot;default&quot;] = listObj;\n",
       "\n",
       "\n",
       "// selection\n",
       "class MolStorage extends Map {\n",
       "    multi_set(_id, _smiles) {\n",
       "        for (let i=0; i &lt; _id.length; i++) {\n",
       "            this.set(_id[i], _smiles[i]);\n",
       "        }\n",
       "    }\n",
       "    multi_del(_id) {\n",
       "        for (let i=0; i &lt; _id.length; i++) {\n",
       "            this.delete(_id[i]);\n",
       "        };\n",
       "    }\n",
       "    to_dict() {\n",
       "        var content = &quot;{&quot;;\n",
       "        for (let [key, value] of this) {\n",
       "            content += key + &quot;:&quot; + JSON.stringify(value) + &quot;,&quot;;\n",
       "        }\n",
       "        content = content.length &gt; 1 ? content.slice(0, -1) : content;\n",
       "        content += &quot;}&quot;;\n",
       "        return content\n",
       "    }\n",
       "    download_smi(fileName) {\n",
       "        var content = &quot;SMILES index\\n&quot;;\n",
       "        for (let [key, value] of this) {\n",
       "            content += value + &quot; &quot; + key + &quot;\\n&quot;;\n",
       "        }\n",
       "        var a = document.createElement(&quot;a&quot;);\n",
       "        var file = new Blob([content], {type: &quot;text/plain&quot;});\n",
       "        a.href = URL.createObjectURL(file);\n",
       "        a.download = fileName;\n",
       "        a.click();\n",
       "        a.remove();\n",
       "    }\n",
       "}\n",
       "var SELECTION = new MolStorage();\n",
       "\n",
       "\n",
       "\n",
       "// kernel\n",
       "var kernel_env = null;\n",
       "if (window.parent.IPython !== undefined) {\n",
       "    // Jupyter notebook\n",
       "    kernel_env = &quot;jupyter&quot;;\n",
       "    var kernel = window.parent.IPython.notebook.kernel;\n",
       "    kernel.execute(&#x27;from mols2grid.select import register as _m2g_reg&#x27;)\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "        kernel.execute(&quot;_m2g_reg.add_selection(&#x27;&quot;+grid_id+&quot;&#x27;, &quot;+JSON.stringify(_id)+&quot;,&quot;+JSON.stringify(smiles)+&quot;)&quot;);\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "        kernel.execute(&quot;_m2g_reg.del_selection(&#x27;&quot;+grid_id+&quot;&#x27;, &quot;+JSON.stringify(_id)+&quot;)&quot;);\n",
       "    }\n",
       "} else if (window.parent.google !== undefined) {\n",
       "    // Google colab\n",
       "    kernel_env = &quot;colab&quot;;\n",
       "    var kernel = window.parent.google.colab.kernel;\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "        (async function() {\n",
       "        const result = await kernel.invokeFunction(&#x27;_m2g_reg.add_selection&#x27;,\n",
       "                                                   [grid_id, _id, smiles], {});\n",
       "        })();\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "        (async function() {\n",
       "        const result = await kernel.invokeFunction(&#x27;_m2g_reg.del_selection&#x27;,\n",
       "                                                   [grid_id, _id], {});\n",
       "        })();\n",
       "    }\n",
       "} else {\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// sort\n",
       "var sort_field = &quot;mols2grid-id&quot;;\n",
       "var sort_order = &quot;asc&quot;;\n",
       "function mols2gridSortFunction(itemA, itemB, options) {\n",
       "    var x = itemA.values()[options.valueName];\n",
       "    var y = itemB.values()[options.valueName];\n",
       "    if (typeof x === &quot;number&quot;) {\n",
       "        if (isFinite(x - y)) {\n",
       "            return x - y; \n",
       "        } else {\n",
       "            return isFinite(x) ? -1 : 1;\n",
       "        }\n",
       "    } else {\n",
       "        x = x.toLowerCase();\n",
       "        y = y.toLowerCase();\n",
       "        return (x &lt; y) ? -1: (x &gt; y) ? 1: 0;\n",
       "    }\n",
       "}\n",
       "function checkboxSort(itemA, itemB, options) {\n",
       "    if (itemA.elm !== undefined) {\n",
       "        var checkedA = itemA.elm.firstChild.checked;\n",
       "        if (itemB.elm !== undefined) {\n",
       "            var checkedB = itemB.elm.firstChild.checked;\n",
       "            if (checkedA &amp;&amp; !checkedB) {\n",
       "                return -1;\n",
       "            } else if (!checkedA &amp;&amp; checkedB) {\n",
       "                return 1;\n",
       "            } else {\n",
       "                return 0;\n",
       "            }\n",
       "        } else {\n",
       "            return -1;\n",
       "        }\n",
       "    } else if (itemB.elm !== undefined) {\n",
       "        return 1;\n",
       "    } else {\n",
       "        return 0;\n",
       "    }\n",
       "}\n",
       "$(&#x27;#mols2grid button.sort-btn&#x27;).click(function(e) {\n",
       "    var _field = $(this).attr(&quot;data-name&quot;);\n",
       "    if (_field == sort_field) {\n",
       "        $(this).removeClass(&quot;arrow-&quot; + sort_order)\n",
       "        sort_order = (sort_order === &quot;desc&quot;) ? &quot;asc&quot; : &quot;desc&quot;;\n",
       "    } else {\n",
       "        $(&#x27;#mols2grid button.sort-btn.active&#x27;).removeClass(&quot;active arrow-&quot; + sort_order);\n",
       "        sort_order = &quot;asc&quot;;\n",
       "        sort_field = _field;\n",
       "        $(this).addClass(&quot;active&quot;);\n",
       "    }\n",
       "    $(this).addClass(&quot;arrow-&quot; + sort_order)\n",
       "    if (sort_field == &quot;checkbox&quot;) {\n",
       "        listObj.sort(&quot;mols2grid-id&quot;, {order: sort_order, sortFunction: checkboxSort});\n",
       "    } else {\n",
       "        listObj.sort(_field, {order: sort_order, sortFunction: mols2gridSortFunction});\n",
       "    }\n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// tooltips\n",
       "$.fn.tooltip.Constructor.Default.whiteList.span = [&#x27;style&#x27;]\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    $(function () {\n",
       "        // hide previous popovers\n",
       "        $(&#x27;#mols2grid a.page-link&#x27;).click(function(e) {\n",
       "            $(&#x27;.mols2grid-tooltip[data-toggle=&quot;popover&quot;]&#x27;).popover(&#x27;hide&#x27;)\n",
       "        });\n",
       "        // create new popover\n",
       "        $(&#x27;.mols2grid-tooltip[data-toggle=&quot;popover&quot;]&#x27;).popover({\n",
       "            placement: &#x27;bottom&#x27;,\n",
       "            trigger: &#x27;click hover&#x27;,\n",
       "            html: true,\n",
       "            sanitize: false,\n",
       "        });\n",
       "    })\n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "// selection modifyers and export options\n",
       "// check all\n",
       "$(&#x27;#btn-chkbox-all&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 15;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id = [];\n",
       "    var _smiles = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox&quot;).each(function() {\n",
       "            this.checked = true;\n",
       "            _id.push(parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;)));\n",
       "            _smiles.push($($(this).siblings(&quot;.data-SMILES&quot;)[0]).text());\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    add_selection(&quot;default&quot;, _id, _smiles);\n",
       "});\n",
       "// uncheck all\n",
       "$(&#x27;#btn-chkbox-none&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 15;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox:checked&quot;).each(function() {\n",
       "            this.checked = false;\n",
       "            _id.push(parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;)));\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    del_selection(&quot;default&quot;, _id);\n",
       "});\n",
       "// invert\n",
       "$(&#x27;#btn-chkbox-invert&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 15;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id_add = [];\n",
       "    var _id_del = [];\n",
       "    var _smiles = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox&quot;).each(function() {\n",
       "            this.checked = !this.checked;\n",
       "            var _id = parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;));\n",
       "            if (this.checked) {\n",
       "                _id_add.push(_id);\n",
       "                _smiles.push($(this).siblings(&quot;.data-SMILES&quot;).first().text());\n",
       "            } else {\n",
       "                _id_del.push(_id);\n",
       "            }\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    del_selection(&quot;default&quot;, _id_del);\n",
       "    add_selection(&quot;default&quot;, _id_add, _smiles);\n",
       "});\n",
       "// copy to clipboard\n",
       "$(&quot;#btn-chkbox-copy&quot;).click(function(e) {\n",
       "    navigator.clipboard.writeText(SELECTION.to_dict());\n",
       "});\n",
       "// export smiles\n",
       "$(&quot;#btn-chkbox-dlsmi&quot;).click(function(e) {\n",
       "    SELECTION.download_smi(&quot;selection.smi&quot;);\n",
       "});\n",
       "// export CSV\n",
       "$(&quot;#btn-chkbox-dlcsv&quot;).click(function(e) {\n",
       "    var sep = &quot;\\t&quot;\n",
       "    // same order as subset + tooltip\n",
       "    var columns = Array.from(listObj.items[0].elm.querySelectorAll(&quot;div.data&quot;))\n",
       "                       .map(elm =&gt; elm.classList[1]);\n",
       "    // remove &#x27;data-&#x27;\n",
       "    var header = columns.map(name =&gt; name.slice(5));\n",
       "    // csv content\n",
       "    header = [&quot;index&quot;].concat(header).join(sep);\n",
       "    var content = header + &quot;\\n&quot;;\n",
       "    for (let [index, smiles] of SELECTION.entries()) {\n",
       "        var data = listObj.items[index].values();\n",
       "        content += index;\n",
       "        columns.forEach((key) =&gt; {\n",
       "            content += sep + data[key];\n",
       "        })\n",
       "        content += &quot;\\n&quot;;\n",
       "    }\n",
       "    var a = document.createElement(&quot;a&quot;);\n",
       "    var file = new Blob([content], {type: &quot;text/csv&quot;});\n",
       "    a.href = URL.createObjectURL(file);\n",
       "    a.download = &quot;selection.csv&quot;;\n",
       "    a.click();\n",
       "    a.remove();\n",
       "});\n",
       "// update selection on checkbox click\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    $(&quot;input:checkbox&quot;).change(function() {\n",
       "        var _id = parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;));\n",
       "        if (this.checked) {\n",
       "            var _smiles = $($(this).siblings(&quot;.data-SMILES&quot;)[0]).text();\n",
       "            add_selection(&quot;default&quot;, [_id], [_smiles]);\n",
       "        } else {\n",
       "            del_selection(&quot;default&quot;, [_id]);\n",
       "        }\n",
       "    }); \n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// generate images for the currently displayed molecules\n",
       "var draw_opts = {&quot;width&quot;: 800, &quot;height&quot;: 250};\n",
       "var json_draw_opts = JSON.stringify(draw_opts);\n",
       "\n",
       "var smarts_matches = {};\n",
       "\n",
       "// Load RDKit\n",
       "window\n",
       ".initRDKitModule()\n",
       ".then(function(RDKit) {\n",
       "    console.log(&#x27;RDKit version: &#x27;, RDKit.version());\n",
       "    window.RDKit = RDKit;\n",
       "    window.RDKitModule = RDKit;\n",
       "\n",
       "    // search bar\n",
       "    function SmartsSearch(query, columns) {\n",
       "    var smiles_col = columns[0];\n",
       "    smarts_matches = {};\n",
       "    var query = $(&#x27;#mols2grid #searchbar&#x27;).val();\n",
       "    var qmol = RDKit.get_qmol(query);\n",
       "    if (qmol.is_valid()) {\n",
       "        for (var k = 0, kl = listObj.items.length; k &lt; kl; k++) {\n",
       "            var item = listObj.items[k];\n",
       "            var smiles = item.values()[smiles_col]\n",
       "            var mol = RDKit.get_mol(smiles);\n",
       "            if (mol.is_valid()) {\n",
       "                var results = JSON.parse(mol.get_substruct_match(qmol));\n",
       "                if (results.atoms) {\n",
       "                    item.found = true;\n",
       "                    \n",
       "                    smarts_matches[smiles] = results;\n",
       "                    \n",
       "                } else {\n",
       "                    item.found = false;\n",
       "                }\n",
       "            } else {\n",
       "                item.found = false;\n",
       "            }\n",
       "            mol.delete();\n",
       "        }\n",
       "    }\n",
       "    qmol.delete();\n",
       "}\n",
       "var search_type = &quot;Text&quot;;\n",
       "$(&#x27;#mols2grid .search-btn&#x27;).click(function() {\n",
       "    search_type = $(this).text();\n",
       "    $(&#x27;#mols2grid button.search-btn.active&#x27;).removeClass(&quot;active&quot;);\n",
       "    $(this).addClass(&quot;active&quot;);\n",
       "});\n",
       "$(&#x27;#mols2grid #searchbar&#x27;).on(&quot;keyup&quot;, function(e) {\n",
       "    var query = e.target.value;\n",
       "    if (search_type === &quot;Text&quot;) {\n",
       "        smarts_matches = {};\n",
       "        listObj.search(query, [&#x27;data-Name&#x27;, &#x27;data-Solubility-Val&#x27;, &#x27;data-SMILES&#x27;, &#x27;data-Name&#x27;, &#x27;data-Solubility&#x27;]);\n",
       "    } else {\n",
       "        listObj.search(query, [&quot;data-SMILES&quot;], SmartsSearch);\n",
       "    }\n",
       "});\n",
       "\n",
       "    \n",
       "    // generate images for the currently displayed molecules\n",
       "RDKit.prefer_coordgen(true);\n",
       "function draw_mol(smiles) {\n",
       "    var mol = RDKit.get_mol(smiles, &#x27;{&quot;removeHs&quot;: false }&#x27;);\n",
       "    var svg = &quot;&quot;;\n",
       "    if (mol.is_valid()) {\n",
       "        var highlights = smarts_matches[smiles];\n",
       "        if (highlights) {\n",
       "            var details = Object.assign({}, draw_opts, highlights);\n",
       "            details = JSON.stringify(details);\n",
       "        } else {\n",
       "            var details = json_draw_opts;\n",
       "        }\n",
       "        svg = mol.get_svg_with_highlights(details);\n",
       "    }\n",
       "    mol.delete();\n",
       "    if (svg == &quot;&quot;) {\n",
       "        return &#x27;&lt;svg width=&quot;800&quot; height=&quot;250&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 800 250&quot;&gt;&lt;/svg&gt;&#x27;;\n",
       "    }\n",
       "    return svg;\n",
       "}\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    var query = $(&#x27;#mols2grid #searchbar&#x27;).val();\n",
       "    if (query === &quot;&quot;) {\n",
       "        smarts_matches = {};\n",
       "    }\n",
       "    $(&#x27;#mols2grid .cell&#x27;).each(function() {\n",
       "        var $t = $(this);\n",
       "        var smiles = $t.children(&quot;.data-SMILES&quot;).first().text()\n",
       "        var svg = draw_mol(smiles);\n",
       "        $t.children(&quot;.data-img&quot;).html(svg);\n",
       "    });\n",
       "});\n",
       "    \n",
       "\n",
       "    // trigger update to activate tooltips, draw images, setup callbacks...\n",
       "    listObj.update();\n",
       "    // resize iframe to fit content\n",
       "    if (window.frameElement) {\n",
       "        window.parent.fit_height(window.frameElement);\n",
       "    }\n",
       "});\n",
       "    &lt;/script&gt;\n",
       "  &lt;/body&gt;\n",
       "&lt;/html&gt;\">\n",
       "</iframe>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "molecule_name, smiles = (\n",
    "    \"Buturon\",\n",
    "    \"CC(C#C)N(C)C(=O)NC1=CC=C(Cl)C=C1\"\n",
    ")  # https://pubchem.ncbi.nlm.nih.gov/compound/19587\n",
    "# molecule_name, smiles = (\n",
    "#     \"SPD304\",\n",
    "#     \"CC1=CC2=C(C=C1C)OC=C(C2=O)CN(C)CCN(C)CC3=CN(C4=CC=CC=C43)C5=CC=CC(=C5)C(F)(F)F\"\n",
    "# ) # https://pubchem.ncbi.nlm.nih.gov/compound/5327044\n",
    "# molecule_name, smiles = (\n",
    "#     \"OrganicSemiConductor\",\n",
    "#     \"Cc1nc(-c2nc(C)c(-c3ccc(-c4cc5c(s4)-c4sccc4[Si]5(C)C)s3)s2)sc1-c1cccs1\"\n",
    "# ) # organic semi-conductor from DeepSearch query\n",
    "molecule = Chem.MolFromSmiles(smiles)\n",
    "fingerprint = GetMorganFingerprintAsBitVect(molecule, radius=2)\n",
    "solubility_fn = lambda smi: ESOL().calc_esol(Chem.MolFromSmiles(smi))\n",
    "complexity_fn = lambda smi: SCScore()(Chem.MolFromSmiles(smi))\n",
    "molecular_weight_fn = lambda smi: MolWt(Chem.MolFromSmiles(smi))\n",
    "\n",
    "similarity_fn = lambda smi: FingerprintSimilarity(\n",
    "    fingerprint,\n",
    "    GetMorganFingerprintAsBitVect(Chem.MolFromSmiles(smi), radius=2)\n",
    ")\n",
    "solubility = solubility_fn(smiles)\n",
    "\n",
    "mols2grid.display(\n",
    "    pd.DataFrame({\n",
    "        \"SMILES\": [smiles], \"Name\": [molecule_name], \"Solubility\": [solubility],\n",
    "        \"Solubility Val\": [f\"Solubility = {x:.3f}\" for x in [solubility]]\n",
    "    }),\n",
    "    size=(800,250), tooltip=[\"SMILES\", \"Name\", \"Solubility\"], subset=[\"Name\", \"img\", \"Solubility Val\"]\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61e6d15c",
   "metadata": {},
   "source": [
    "# GT4SD Discovery usecase\n",
    "\n",
    "## Find similar molecules controlling the solubility\n",
    "\n",
    "### **Goal:** \n",
    "\n",
    "Here we are trying to modify the molecule considered to generate different alternatives controlling the solubility using ESOL from Dealney.\n",
    "\n",
    "References:\n",
    "\n",
    "```txt\n",
    "Dealney J. S. (2004). ESOL:  Estimating Aqueous Solubility Directly from Molecular Structure. J. Chem. Inf. Comput. Sci. 2004, 44, 3, 1000–1005.\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "11214a27",
   "metadata": {},
   "source": [
    "## Finding alternatives using the RegressionTransformer\n",
    "\n",
    "We start considering a methodology based on language modeling relying on the RegressionTransformer\n",
    "\n",
    "References:\n",
    "\n",
    "```txt\n",
    "Born, J., & Manica, M. (2022). Regression Transformer: Concurrent Conditional Generation and Regression by Blending Numerical and Textual Tokens. ICLR Workshop on Machine Learning for Drug Discovery.\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "a2dc16eb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# some utilities\n",
    "def mask_selfies(s: str, p: float) -> str:\n",
    "    property_part, molecule_part = s.split(\"|\")\n",
    "    tokens = [t if np.random.sample() > p else \"[MASK]\" for t in split_selfies(molecule_part)]\n",
    "    return property_part + \"|\" + \"\".join(tokens)\n",
    "\n",
    "\n",
    "def plot_molecules_df(molecules_df: pd.DataFrame, similarity_threshold: float) -> None:\n",
    "    molecules_df_to_plot = molecules_df.sort_values(by=\"similarity\", ascending=False)\n",
    "    molecules_df_to_plot[\"text\"] = molecules_df_to_plot.apply(lambda x: f\"Solubility (log(mol/L))={x['solubility']:.2f}\", axis=1)\n",
    "    return mols2grid.display(\n",
    "        molecules_df_to_plot[molecules_df_to_plot[\"similarity\"] > similarity_threshold], smiles_col=\"smiles\", n_cols=3,\n",
    "        size=(300,200), tooltip=[\"smiles\", \"solubility\", \"similarity\", \"molecular_weight\", \"scs_score\"],\n",
    "        subset=[\"smiles\", \"img\", \"text\"]\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "617fd3e0",
   "metadata": {},
   "outputs": [],
   "source": [
    "attempts = 20\n",
    "samples = 5\n",
    "change_probabilities = [0.15, 0.5]\n",
    "desired_solubility = solubility + 3.\n",
    "similarity_threshold = .1\n",
    "\n",
    "selfies = encoder(smiles)\n",
    "property_with_selfies = f\"<esol>{desired_solubility:.2f}|\" + selfies\n",
    "\n",
    "first_set_configuration = RegressionTransformerMolecules(\n",
    "    algorithm_version=\"solubility\", search=\"sample\", temperature=1.5, tolerance=60\n",
    ")\n",
    "\n",
    "first_set_molecules_df = pd.DataFrame()\n",
    "generated_smiles = set()\n",
    "\n",
    "for i in tqdm(range(attempts), total=attempts, desc=\"Processing RT number:\"):\n",
    "    seed_property_with_selfies = mask_selfies(property_with_selfies, np.random.uniform(*change_probabilities))\n",
    "    algorithm = RegressionTransformer(configuration=first_set_configuration, target=seed_property_with_selfies)\n",
    "    generated_smiles = set()\n",
    "    \n",
    "    while len(generated_smiles) < samples:\n",
    "        generated_samples = list(algorithm.sample(samples))\n",
    "        for s in generated_samples:\n",
    "            if s[0] not in generated_smiles and s[0] != smiles and s[0]:\n",
    "                generated_smiles = generated_smiles.union([s[0]])\n",
    "    first_set_molecules_df = pd.concat([\n",
    "        first_set_molecules_df,\n",
    "        pd.DataFrame({\n",
    "            \"smiles\": list(generated_smiles),\n",
    "            \"solubility\": list(map(lambda smi: solubility_fn(smi), generated_smiles)),\n",
    "            \"similarity\": list(map(similarity_fn, generated_smiles)),\n",
    "            \"molecular_weight\": list(map(molecular_weight_fn, generated_smiles)),\n",
    "            \"scs_score\": list(map(complexity_fn, generated_smiles)),\n",
    "        })\n",
    "    ], axis=0)\n",
    "first_set_molecules_df\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "5e0dccfc",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    function fit_height(obj) {\n",
       "        obj.style.height = 0;\n",
       "        var height = obj.contentDocument.body.scrollHeight + 18 + 'px';\n",
       "        obj.style.height = height;\n",
       "    }\n",
       "</script>\n",
       "<iframe class=\"mols2grid-iframe\" frameborder=\"0\" width=\"100%\"\n",
       "\n",
       "height=\"200\"\n",
       "\n",
       "\n",
       "allow=\"clipboard-write\"\n",
       "\n",
       "srcdoc=\"&lt;html&gt;\n",
       "  &lt;meta charset=&quot;utf-8&quot;&gt;\n",
       "  &lt;head&gt;\n",
       "    &lt;style&gt;\n",
       "    #mols2grid.gridcontainer {\n",
       "    display: block;\n",
       "    padding-left: 1em;\n",
       "    max-width: 912px;\n",
       "    width: 912px;\n",
       "}\n",
       "#mols2grid .cell {\n",
       "    border: 1px solid #cccccc;\n",
       "    text-align: center;\n",
       "    vertical-align: top;\n",
       "    max-width: 300px;\n",
       "    width: 300px;\n",
       "    font-family: &#x27;DejaVu&#x27;, sans-serif;\n",
       "    font-size: 12pt;\n",
       "    padding: 0;\n",
       "    margin: 0px;\n",
       "    float: left;\n",
       "}\n",
       "#mols2grid .cell:hover {\n",
       "    background-color: #e7e7e7 !important;\n",
       "}\n",
       "#mols2grid .cell .data-img {\n",
       "    padding: 0;\n",
       "    margin: 0;\n",
       "}\n",
       "#mols2grid .cell img, #mols2grid .cell svg {\n",
       "    max-width: 100%;\n",
       "    height: auto;\n",
       "    padding: 0;\n",
       "}\n",
       "#mols2grid .data {\n",
       "    overflow: hidden;\n",
       "    white-space: nowrap;\n",
       "    text-overflow: ellipsis;\n",
       "    display: block;\n",
       "}\n",
       "#mols2grid .arrow-asc:after {\n",
       "    content: &#x27;↑&#x27;;\n",
       "    text-align: right;\n",
       "    float:right;\n",
       "}\n",
       "#mols2grid .arrow-desc:after {\n",
       "    content: &#x27;↓&#x27;;\n",
       "    text-align: right;\n",
       "    float:right;\n",
       "}\n",
       "    /* custom CSS */\n",
       "    \n",
       "    &lt;/style&gt;\n",
       "    &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/list.js/2.3.1/list.min.js&quot;&gt;&lt;/script&gt;\n",
       "&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css&quot; integrity=&quot;sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l&quot; crossorigin=&quot;anonymous&quot;&gt;\n",
       "&lt;script src=&quot;https://code.jquery.com/jquery-3.5.1.slim.min.js&quot; integrity=&quot;sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;\n",
       "&lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js&quot; integrity=&quot;sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;\n",
       "&lt;script src=&quot;https://unpkg.com/@rdkit/rdkit@2021.9.4/Code/MinimalLib/dist/RDKit_minimal.js&quot;&gt;&lt;/script&gt;\n",
       "    &lt;!-- custom header --&gt;\n",
       "    \n",
       "  &lt;/head&gt;\n",
       "  &lt;body&gt;\n",
       "    &lt;div id=&quot;mols2grid&quot; class=&quot;gridcontainer grid-default&quot;&gt;\n",
       "      &lt;div class=&quot;row mb-3&quot;&gt;\n",
       "        &lt;div class=&quot;list&quot;&gt;&lt;div class=&quot;cell&quot; data-mols2grid-id=&quot;0&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;position-relative float-left cached_checkbox&quot;&gt;&lt;div class=&quot;data data-smiles&quot;&gt;&lt;/div&gt;&lt;a tabindex=&quot;0&quot; class=&quot;data data-img mols2grid-tooltip&quot; data-toggle=&quot;popover&quot; data-content=&quot;.&quot;&gt;&lt;/a&gt;&lt;div class=&quot;data data-text&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-solubility&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-similarity&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-molecular_weight&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-scs_score&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;\n",
       "      &lt;/div&gt;\n",
       "      &lt;div class=&quot;d-inline&quot;&gt;\n",
       "        &lt;ul class=&quot;pagination float-left&quot;&gt;&lt;/ul&gt;\n",
       "        &lt;div id=&quot;controls&quot; class=&quot;d-flex flex-row float-right&quot;&gt;\n",
       "          \n",
       "          &lt;div id=&quot;chkbox-dropdown&quot; class=&quot;dropdown&quot;&gt;\n",
       "    &lt;button class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; id=&quot;chkboxDropdown&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;☑&lt;/button&gt;\n",
       "    &lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;checkboxDropdownMenu&quot;&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-all&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Check all&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-none&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Uncheck all&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-invert&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Invert&lt;/button&gt;\n",
       "        &lt;div class=&quot;dropdown-divider&quot;&gt;&lt;/div&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-copy&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Copy to clipboard&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-dlsmi&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Save SMILES&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-dlcsv&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Save CSV&lt;/button&gt;\n",
       "    &lt;/div&gt;\n",
       "&lt;/div&gt;\n",
       "          \n",
       "          &lt;div id=&quot;sort-dropdown&quot; class=&quot;dropdown pl-2&quot;&gt;\n",
       "            &lt;button class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; id=&quot;sortDropdown&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;\n",
       "              Sort by\n",
       "            &lt;/button&gt;\n",
       "            &lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;sortDropdownMenu&quot;&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn arrow-asc active&quot; type=&quot;button&quot; data-name=&quot;mols2grid-id&quot;&gt;Index&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-smiles&quot;&gt;smiles&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-text&quot;&gt;text&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-solubility&quot;&gt;solubility&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-similarity&quot;&gt;similarity&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-molecular_weight&quot;&gt;molecular_weight&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-scs_score&quot;&gt;scs_score&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn&quot; type=&quot;button&quot; data-name=&quot;checkbox&quot;&gt;Selected&lt;/button&gt;\n",
       "              \n",
       "            &lt;/div&gt;\n",
       "          &lt;/div&gt;\n",
       "          &lt;div class=&quot;input-group row pl-4&quot;&gt;\n",
       "            &lt;input type=&quot;text&quot; id=&quot;searchbar&quot; class=&quot;form-control&quot; placeholder=&quot;Search&quot; aria-label=&quot;Search&quot; aria-describedby=&quot;basic-addon1&quot;&gt;\n",
       "            &lt;div class=&quot;input-group-append&quot;&gt;\n",
       "              &lt;button id=&quot;searchBtn&quot; class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;🔎&lt;/button&gt;\n",
       "              &lt;div class=&quot;dropdown-menu dropdown-menu-right&quot;&gt;\n",
       "                &lt;button id=&quot;txtSearch&quot; class=&quot;search-btn dropdown-item active&quot;&gt;Text&lt;/button&gt;\n",
       "                &lt;button id=&quot;smartsSearch&quot; class=&quot;search-btn dropdown-item&quot;&gt;SMARTS&lt;/button&gt;\n",
       "              &lt;/div&gt;\n",
       "            &lt;/div&gt;\n",
       "          &lt;/div&gt;\n",
       "        &lt;/div&gt;\n",
       "      &lt;/div&gt;\n",
       "    &lt;/div&gt;\n",
       "    &lt;script&gt;\n",
       "    // list.js\n",
       "var listObj = new List(&#x27;mols2grid&#x27;, {\n",
       "    valueNames: [{data: [&#x27;mols2grid-id&#x27;]}, &#x27;data-molecular_weight&#x27;, &#x27;data-scs_score&#x27;, &#x27;data-img&#x27;, &#x27;data-smiles&#x27;, &#x27;data-text&#x27;, &#x27;data-solubility&#x27;, &#x27;data-similarity&#x27;, {attr: &#x27;data-content&#x27;, name: &#x27;mols2grid-tooltip&#x27;}],\n",
       "    item: &#x27;&lt;div class=&quot;cell&quot; data-mols2grid-id=&quot;0&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;position-relative float-left cached_checkbox&quot;&gt;&lt;div class=&quot;data data-smiles&quot;&gt;&lt;/div&gt;&lt;a tabindex=&quot;0&quot; class=&quot;data data-img mols2grid-tooltip&quot; data-toggle=&quot;popover&quot; data-content=&quot;.&quot;&gt;&lt;/a&gt;&lt;div class=&quot;data data-text&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-solubility&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-similarity&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-molecular_weight&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-scs_score&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&#x27;,\n",
       "    page: 9,\n",
       "    pagination: {\n",
       "        name: &quot;pagination&quot;,\n",
       "        item: &#x27;&lt;li class=&quot;page-item&quot;&gt;&lt;a class=&quot;page page-link&quot; href=&quot;#&quot; onclick=&quot;event.preventDefault()&quot;&gt;&lt;/a&gt;&lt;/li&gt;&#x27;,\n",
       "        innerWindow: 1,\n",
       "        outerWindow: 1,\n",
       "    },\n",
       "});\n",
       "listObj.remove(&quot;mols2grid-id&quot;, &quot;0&quot;);\n",
       "listObj.add([{&quot;data-molecular_weight&quot;: 236.702, &quot;data-scs_score&quot;: 3.3581300782822665, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 0, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)[NH]C1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.55&quot;, &quot;data-solubility&quot;: -3.5527747378327823, &quot;data-similarity&quot;: 1.0, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)[NH]C1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.5527747378327823&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 1.0&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 236.702&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.3581300782822665&quot;}, {&quot;data-molecular_weight&quot;: 218.256, &quot;data-scs_score&quot;: 3.1826882116840673, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 1, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC1=CC=C(O)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.73&quot;, &quot;data-solubility&quot;: -2.7278164472653317, &quot;data-similarity&quot;: 0.7567567567567568, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC1=CC=C(O)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.7278164472653317&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.7567567567567568&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 218.256&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.1826882116840673&quot;}, {&quot;data-molecular_weight&quot;: 216.284, &quot;data-scs_score&quot;: 3.4384107094905865, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 2, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC1=CC=C(C)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.16&quot;, &quot;data-solubility&quot;: -3.161869758441408, &quot;data-similarity&quot;: 0.7567567567567568, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC1=CC=C(C)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.161869758441408&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.7567567567567568&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 216.284&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4384107094905865&quot;}, {&quot;data-molecular_weight&quot;: 238.674, &quot;data-scs_score&quot;: 3.5527853096829882, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 3, &quot;data-smiles&quot;: &quot;OC(C#C)N(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.77&quot;, &quot;data-solubility&quot;: -2.7721520222068503, &quot;data-similarity&quot;: 0.7368421052631579, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: OC(C#C)N(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.7721520222068503&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.7368421052631579&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 238.674&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.5527853096829882&quot;}, {&quot;data-molecular_weight&quot;: 238.674, &quot;data-scs_score&quot;: 3.337793547917679, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 4, &quot;data-smiles&quot;: &quot;CC(C#C)N(O)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.39&quot;, &quot;data-solubility&quot;: -3.387370565673627, &quot;data-similarity&quot;: 0.7368421052631579, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(O)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.387370565673627&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.7368421052631579&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 238.674&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.337793547917679&quot;}, {&quot;data-molecular_weight&quot;: 217.272, &quot;data-scs_score&quot;: 3.3437741525069447, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 5, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC1=CC=C(N)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.63&quot;, &quot;data-solubility&quot;: -2.6297858189289802, &quot;data-similarity&quot;: 0.7368421052631579, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC1=CC=C(N)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.6297858189289802&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.7368421052631579&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 217.272&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.3437741525069447&quot;}, {&quot;data-molecular_weight&quot;: 237.69000000000003, &quot;data-scs_score&quot;: 3.1144544970830674, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 6, &quot;data-smiles&quot;: &quot;CC(C#C)N(N)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.00&quot;, &quot;data-solubility&quot;: -2.998529580624408, &quot;data-similarity&quot;: 0.717948717948718, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(N)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.998529580624408&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.717948717948718&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 237.69000000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.1144544970830674&quot;}, {&quot;data-molecular_weight&quot;: 242.70600000000002, &quot;data-scs_score&quot;: 3.3311008253086003, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 7, &quot;data-smiles&quot;: &quot;CC(CO)N(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.11&quot;, &quot;data-solubility&quot;: -3.113694120393838, &quot;data-similarity&quot;: 0.625, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CO)N(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.113694120393838&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.625&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 242.70600000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.3311008253086003&quot;}, {&quot;data-molecular_weight&quot;: 222.675, &quot;data-scs_score&quot;: 3.7385544532955843, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 8, &quot;data-smiles&quot;: &quot;C(C#C)N(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.18&quot;, &quot;data-solubility&quot;: -3.1825176557356434, &quot;data-similarity&quot;: 0.5853658536585366, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(C#C)N(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.1825176557356434&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5853658536585366&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 222.675&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.7385544532955843&quot;}, {&quot;data-molecular_weight&quot;: 253.754, &quot;data-scs_score&quot;: 3.585060409688103, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 9, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)SC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.17&quot;, &quot;data-solubility&quot;: -4.1700413233790385, &quot;data-similarity&quot;: 0.5714285714285714, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)SC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.1700413233790385&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5714285714285714&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 253.754&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.585060409688103&quot;}, {&quot;data-molecular_weight&quot;: 237.686, &quot;data-scs_score&quot;: 3.4996593027653997, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 10, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)OC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.53&quot;, &quot;data-solubility&quot;: -3.5347333926277833, &quot;data-similarity&quot;: 0.5714285714285714, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)OC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.5347333926277833&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5714285714285714&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 237.686&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4996593027653997&quot;}, {&quot;data-molecular_weight&quot;: 235.714, &quot;data-scs_score&quot;: 3.284738454651941, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 11, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)CC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.20&quot;, &quot;data-solubility&quot;: -3.1995419689668756, &quot;data-similarity&quot;: 0.5714285714285714, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)CC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.1995419689668756&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5714285714285714&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 235.714&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.284738454651941&quot;}, {&quot;data-molecular_weight&quot;: 222.675, &quot;data-scs_score&quot;: 3.51598352891485, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 12, &quot;data-smiles&quot;: &quot;CC(C#C)(NC(=O)NC1=CC=C(Cl)C=C1)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.22&quot;, &quot;data-solubility&quot;: -3.2168571597290274, &quot;data-similarity&quot;: 0.5609756097560976, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)(NC(=O)NC1=CC=C(Cl)C=C1)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.2168571597290274&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5609756097560976&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 222.675&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.51598352891485&quot;}, {&quot;data-molecular_weight&quot;: 237.686, &quot;data-scs_score&quot;: 3.565510133191105, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 13, &quot;data-smiles&quot;: &quot;CC(C#C)C(O)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.88&quot;, &quot;data-solubility&quot;: -2.8759387427734064, &quot;data-similarity&quot;: 0.5476190476190477, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)C(O)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.8759387427734064&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5476190476190477&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 237.686&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.565510133191105&quot;}, {&quot;data-molecular_weight&quot;: 222.675, &quot;data-scs_score&quot;: 3.6269865975682034, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 14, &quot;data-smiles&quot;: &quot;C(C#CN(C)C(=O)NC1=CC=C(Cl)C=C1)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.44&quot;, &quot;data-solubility&quot;: -3.4437750671352982, &quot;data-similarity&quot;: 0.5365853658536586, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(C#CN(C)C(=O)NC1=CC=C(Cl)C=C1)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.4437750671352982&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5365853658536586&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 222.675&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.6269865975682034&quot;}, {&quot;data-molecular_weight&quot;: 212.68, &quot;data-scs_score&quot;: 3.874592308046911, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 15, &quot;data-smiles&quot;: &quot;C(C)N(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.42&quot;, &quot;data-solubility&quot;: -3.4153957206314476, &quot;data-similarity&quot;: 0.525, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(C)N(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.4153957206314476&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.525&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 212.68&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.874592308046911&quot;}, {&quot;data-molecular_weight&quot;: 287.544, &quot;data-scs_score&quot;: 3.70313466644634, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 16, &quot;data-smiles&quot;: &quot;C(C#C)N(Br)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.12&quot;, &quot;data-solubility&quot;: -4.115966202118649, &quot;data-similarity&quot;: 0.5238095238095238, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(C#C)N(Br)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.115966202118649&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5238095238095238&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 287.544&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.70313466644634&quot;}, {&quot;data-molecular_weight&quot;: 221.687, &quot;data-scs_score&quot;: 3.450772540705722, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 17, &quot;data-smiles&quot;: &quot;C(C#C)C(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.54&quot;, &quot;data-solubility&quot;: -3.5441102421358965, &quot;data-similarity&quot;: 0.5116279069767442, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(C#C)C(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.5441102421358965&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5116279069767442&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 221.687&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.450772540705722&quot;}, {&quot;data-molecular_weight&quot;: 244.68200000000002, &quot;data-scs_score&quot;: 3.584532909897855, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 18, &quot;data-smiles&quot;: &quot;CNN(O)N(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.65&quot;, &quot;data-solubility&quot;: -2.651943492418354, &quot;data-similarity&quot;: 0.5, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CNN(O)N(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.651943492418354&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 244.68200000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.584532909897855&quot;}, {&quot;data-molecular_weight&quot;: 238.71800000000002, &quot;data-scs_score&quot;: 3.824971886290012, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 19, &quot;data-smiles&quot;: &quot;CC(C)=CN(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.24&quot;, &quot;data-solubility&quot;: -4.23509823454839, &quot;data-similarity&quot;: 0.5, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)=CN(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.23509823454839&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 238.71800000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.824971886290012&quot;}, {&quot;data-molecular_weight&quot;: 236.315, &quot;data-scs_score&quot;: 3.1742295227790356, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 20, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=S)NC1=CC=C(F)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.29&quot;, &quot;data-solubility&quot;: -3.291074285477386, &quot;data-similarity&quot;: 0.5, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=S)NC1=CC=C(F)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.291074285477386&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 236.315&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.1742295227790356&quot;}, {&quot;data-molecular_weight&quot;: 224.691, &quot;data-scs_score&quot;: 3.637906482270807, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 21, &quot;data-smiles&quot;: &quot;CC=C(N(C)C(=O)NC1=CC=C(Cl)C=C1)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.86&quot;, &quot;data-solubility&quot;: -3.8636544741275056, &quot;data-similarity&quot;: 0.5, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC=C(N(C)C(=O)NC1=CC=C(Cl)C=C1)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.8636544741275056&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.5&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 224.691&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.637906482270807&quot;}, {&quot;data-molecular_weight&quot;: 228.679, &quot;data-scs_score&quot;: 3.55916990002366, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 22, &quot;data-smiles&quot;: &quot;COCN(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.20&quot;, &quot;data-solubility&quot;: -3.197044827548393, &quot;data-similarity&quot;: 0.4883720930232558, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COCN(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.197044827548393&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4883720930232558&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 228.679&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.55916990002366&quot;}, {&quot;data-molecular_weight&quot;: 222.24399999999997, &quot;data-scs_score&quot;: 2.7611352721164373, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 23, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC1=CC=C(O)OC1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.92&quot;, &quot;data-solubility&quot;: -1.9160144712775868, &quot;data-similarity&quot;: 0.4791666666666667, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC1=CC=C(O)OC1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.9160144712775868&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4791666666666667&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 222.24399999999997&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.7611352721164373&quot;}, {&quot;data-molecular_weight&quot;: 236.702, &quot;data-scs_score&quot;: 2.8831427724836267, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 24, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC=C1C=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.95&quot;, &quot;data-solubility&quot;: -2.948298051749474, &quot;data-similarity&quot;: 0.4791666666666667, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC=C1C=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.948298051749474&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4791666666666667&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 236.702&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.8831427724836267&quot;}, {&quot;data-molecular_weight&quot;: 236.702, &quot;data-scs_score&quot;: 3.2155593071361173, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 25, &quot;data-smiles&quot;: &quot;CC(C#C)N(CC(=O))NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.07&quot;, &quot;data-solubility&quot;: -3.0707896348413297, &quot;data-similarity&quot;: 0.4782608695652174, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(CC(=O))NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.0707896348413297&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4782608695652174&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 236.702&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2155593071361173&quot;}, {&quot;data-molecular_weight&quot;: 225.679, &quot;data-scs_score&quot;: 3.459563638161716, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 26, &quot;data-smiles&quot;: &quot;C=NCN(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.22&quot;, &quot;data-solubility&quot;: -3.21740190144367, &quot;data-similarity&quot;: 0.4772727272727273, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C=NCN(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.21740190144367&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4772727272727273&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 225.679&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.459563638161716&quot;}, {&quot;data-molecular_weight&quot;: 233.698, &quot;data-scs_score&quot;: 3.837452111496119, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 27, &quot;data-smiles&quot;: &quot;CC(C#C)=C(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.85&quot;, &quot;data-solubility&quot;: -3.8464122076265856, &quot;data-similarity&quot;: 0.46511627906976744, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)=C(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.8464122076265856&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.46511627906976744&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 233.698&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.837452111496119&quot;}, {&quot;data-molecular_weight&quot;: 236.70200000000003, &quot;data-scs_score&quot;: 2.9628322275917167, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 28, &quot;data-smiles&quot;: &quot;CC(C#C)N(CC(=O)N)C1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.68&quot;, &quot;data-solubility&quot;: -2.676629774557332, &quot;data-similarity&quot;: 0.45652173913043476, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(CC(=O)N)C1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.676629774557332&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.45652173913043476&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 236.70200000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.9628322275917167&quot;}, {&quot;data-molecular_weight&quot;: 226.251, &quot;data-scs_score&quot;: 3.407229764946923, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 29, &quot;data-smiles&quot;: &quot;CC(CO)N(C)C(=O)NC1=CC=C(F)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.62&quot;, &quot;data-solubility&quot;: -2.623419732750936, &quot;data-similarity&quot;: 0.4444444444444444, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CO)N(C)C(=O)NC1=CC=C(F)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.623419732750936&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4444444444444444&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 226.251&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.407229764946923&quot;}, {&quot;data-molecular_weight&quot;: 222.71900000000002, &quot;data-scs_score&quot;: 3.012114904228686, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 30, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(N)C1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.04&quot;, &quot;data-solubility&quot;: -3.041331598569094, &quot;data-similarity&quot;: 0.4418604651162791, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(N)C1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.041331598569094&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4418604651162791&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 222.71900000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.012114904228686&quot;}, {&quot;data-molecular_weight&quot;: 253.68500000000003, &quot;data-scs_score&quot;: 3.4924372107098516, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 31, &quot;data-smiles&quot;: &quot;OC(C#C)OCCC(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.76&quot;, &quot;data-solubility&quot;: -2.7637875081644494, &quot;data-similarity&quot;: 0.4375, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: OC(C#C)OCCC(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.7637875081644494&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4375&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 253.68500000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4924372107098516&quot;}, {&quot;data-molecular_weight&quot;: 236.70200000000003, &quot;data-scs_score&quot;: 3.431948025868726, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 32, &quot;data-smiles&quot;: &quot;C(CC#CN)(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.10&quot;, &quot;data-solubility&quot;: -3.103502979514709, &quot;data-similarity&quot;: 0.43478260869565216, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(CC#CN)(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.103502979514709&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.43478260869565216&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 236.70200000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.431948025868726&quot;}, {&quot;data-molecular_weight&quot;: 236.702, &quot;data-scs_score&quot;: 2.990706929744026, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 33, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC=CC=C(Cl)C#C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.72&quot;, &quot;data-solubility&quot;: -2.717300937605328, &quot;data-similarity&quot;: 0.4166666666666667, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC=CC=C(Cl)C#C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.717300937605328&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4166666666666667&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 236.702&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.990706929744026&quot;}, {&quot;data-molecular_weight&quot;: 223.68300000000002, &quot;data-scs_score&quot;: 3.583612482196137, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 34, &quot;data-smiles&quot;: &quot;C=[N+]=CC(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.68&quot;, &quot;data-solubility&quot;: -2.67865042480627, &quot;data-similarity&quot;: 0.41304347826086957, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C=[N+]=CC(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.67865042480627&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.41304347826086957&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 223.68300000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.583612482196137&quot;}, {&quot;data-molecular_weight&quot;: 250.729, &quot;data-scs_score&quot;: 3.2821094193793825, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 35, &quot;data-smiles&quot;: &quot;CC(C#CN)CCC(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.47&quot;, &quot;data-solubility&quot;: -3.472748866147322, &quot;data-similarity&quot;: 0.40816326530612246, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#CN)CCC(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.472748866147322&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.40816326530612246&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 250.729&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2821094193793825&quot;}, {&quot;data-molecular_weight&quot;: 213.668, &quot;data-scs_score&quot;: 3.728789812232938, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 36, &quot;data-smiles&quot;: &quot;C(N)(N)(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.00&quot;, &quot;data-solubility&quot;: -2.0042204788883984, &quot;data-similarity&quot;: 0.40476190476190477, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(N)(N)(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.0042204788883984&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.40476190476190477&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 213.668&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.728789812232938&quot;}, {&quot;data-molecular_weight&quot;: 238.718, &quot;data-scs_score&quot;: 2.92761821377575, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 37, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.14&quot;, &quot;data-solubility&quot;: -3.137180344597535, &quot;data-similarity&quot;: 0.4, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.137180344597535&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.4&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 238.718&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.92761821377575&quot;}, {&quot;data-molecular_weight&quot;: 252.745, &quot;data-scs_score&quot;: 2.913567705534568, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 38, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=CC&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.52&quot;, &quot;data-solubility&quot;: -3.5192803151287486, &quot;data-similarity&quot;: 0.39215686274509803, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=CC&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.5192803151287486&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.39215686274509803&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 252.745&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.913567705534568&quot;}, {&quot;data-molecular_weight&quot;: 254.717, &quot;data-scs_score&quot;: 2.8590271574261736, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 39, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=CO&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.16&quot;, &quot;data-solubility&quot;: -3.1582225543420637, &quot;data-similarity&quot;: 0.39215686274509803, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=CO&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.1582225543420637&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.39215686274509803&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 254.717&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.8590271574261736&quot;}, {&quot;data-molecular_weight&quot;: 252.701, &quot;data-scs_score&quot;: 2.9141744746508964, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 40, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=C=O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.64&quot;, &quot;data-solubility&quot;: -2.6376581466320066, &quot;data-similarity&quot;: 0.39215686274509803, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=C=O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.6376581466320066&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.39215686274509803&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 252.701&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.9141744746508964&quot;}, {&quot;data-molecular_weight&quot;: 227.69100000000003, &quot;data-scs_score&quot;: 4.083622506343044, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 41, &quot;data-smiles&quot;: &quot;CC(CO)(C)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.11&quot;, &quot;data-solubility&quot;: -3.1084811702629085, &quot;data-similarity&quot;: 0.38636363636363635, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CO)(C)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.1084811702629085&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.38636363636363635&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 227.69100000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 4.083622506343044&quot;}, {&quot;data-molecular_weight&quot;: 251.717, &quot;data-scs_score&quot;: 2.9157821483121644, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 42, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=C=N&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.94&quot;, &quot;data-solubility&quot;: -2.940331704526873, &quot;data-similarity&quot;: 0.38461538461538464, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=C=N&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.940331704526873&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.38461538461538464&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 251.717&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.9157821483121644&quot;}, {&quot;data-molecular_weight&quot;: 250.72899999999998, &quot;data-scs_score&quot;: 2.7537204131061634, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 43, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=C=C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.33&quot;, &quot;data-solubility&quot;: -3.3316533446245216, &quot;data-similarity&quot;: 0.38461538461538464, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C(=O)NC=CC=C(Cl)C=C=C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.3316533446245216&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.38461538461538464&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 250.72899999999998&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.7537204131061634&quot;}, {&quot;data-molecular_weight&quot;: 213.664, &quot;data-scs_score&quot;: 4.023263865243762, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 44, &quot;data-smiles&quot;: &quot;O(CC(C))C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.77&quot;, &quot;data-solubility&quot;: -3.7706731976496686, &quot;data-similarity&quot;: 0.37777777777777777, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O(CC(C))C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.7706731976496686&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.37777777777777777&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 213.664&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 4.023263865243762&quot;}, {&quot;data-molecular_weight&quot;: 204.229, &quot;data-scs_score&quot;: 3.2752031726826707, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 45, &quot;data-smiles&quot;: &quot;CC#CN(C)C(=O)NC1=CC=C(O)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.62&quot;, &quot;data-solubility&quot;: -2.618816776567848, &quot;data-similarity&quot;: 0.37777777777777777, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC#CN(C)C(=O)NC1=CC=C(O)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.618816776567848&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.37777777777777777&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 204.229&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2752031726826707&quot;}, {&quot;data-molecular_weight&quot;: 241.674, &quot;data-scs_score&quot;: 3.8661666655762676, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 46, &quot;data-smiles&quot;: &quot;OC(C=C)C(O)C(=O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.36&quot;, &quot;data-solubility&quot;: -2.3630781065145627, &quot;data-similarity&quot;: 0.3695652173913043, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: OC(C=C)C(O)C(=O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.3630781065145627&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.3695652173913043&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 241.674&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.8661666655762676&quot;}, {&quot;data-molecular_weight&quot;: 222.67100000000002, &quot;data-scs_score&quot;: 3.822464619162278, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 47, &quot;data-smiles&quot;: &quot;C(C#C)C(C)C(=O)OC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.53&quot;, &quot;data-solubility&quot;: -3.526068896930898, &quot;data-similarity&quot;: 0.3541666666666667, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(C#C)C(C)C(=O)OC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.526068896930898&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.3541666666666667&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 222.67100000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.822464619162278&quot;}, {&quot;data-molecular_weight&quot;: 218.3, &quot;data-scs_score&quot;: 3.6689761130436147, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 48, &quot;data-smiles&quot;: &quot;CC(C)=CN(C)C(=O)NC1=CC=C(C)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.84&quot;, &quot;data-solubility&quot;: -3.8441932551570157, &quot;data-similarity&quot;: 0.34782608695652173, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)=CN(C)C(=O)NC1=CC=C(C)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.8441932551570157&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.34782608695652173&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 218.3&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.6689761130436147&quot;}, {&quot;data-molecular_weight&quot;: 238.71800000000002, &quot;data-scs_score&quot;: 3.4480630649678834, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 49, &quot;data-smiles&quot;: &quot;CC(C#CN(C)C)(O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.94&quot;, &quot;data-solubility&quot;: -2.941248024689689, &quot;data-similarity&quot;: 0.3404255319148936, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#CN(C)C)(O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.941248024689689&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.3404255319148936&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 238.71800000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4480630649678834&quot;}, {&quot;data-molecular_weight&quot;: 239.70600000000002, &quot;data-scs_score&quot;: 3.4011695357030907, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 50, &quot;data-smiles&quot;: &quot;CC(C#N)C(NC)(O)NC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.79&quot;, &quot;data-solubility&quot;: -2.78822811884355, &quot;data-similarity&quot;: 0.3333333333333333, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#N)C(NC)(O)NC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.78822811884355&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.3333333333333333&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 239.70600000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4011695357030907&quot;}, {&quot;data-molecular_weight&quot;: 264.70799999999997, &quot;data-scs_score&quot;: 3.8914916213073445, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 51, &quot;data-smiles&quot;: &quot;CC(C#C)C=CCOC(=O)OC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.35&quot;, &quot;data-solubility&quot;: -4.347841819721537, &quot;data-similarity&quot;: 0.3333333333333333, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)C=CCOC(=O)OC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.347841819721537&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.3333333333333333&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 264.70799999999997&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.8914916213073445&quot;}, {&quot;data-molecular_weight&quot;: 111.14399999999998, &quot;data-scs_score&quot;: 3.6933312030987993, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 52, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C=O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-0.54&quot;, &quot;data-solubility&quot;: -0.5384030584071374, &quot;data-similarity&quot;: 0.3, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C=O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -0.5384030584071374&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.3&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 111.14399999999998&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.6933312030987993&quot;}, {&quot;data-molecular_weight&quot;: 240.69, &quot;data-scs_score&quot;: 2.718739811444381, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 53, &quot;data-smiles&quot;: &quot;CC(C#C)N(O)C(=O)NC=CC=C(Cl)C=C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.97&quot;, &quot;data-solubility&quot;: -2.9717761724383793, &quot;data-similarity&quot;: 0.2962962962962963, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(O)C(=O)NC=CC=C(Cl)C=C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.9717761724383793&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2962962962962963&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 240.69&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.718739811444381&quot;}, {&quot;data-molecular_weight&quot;: 208.26100000000002, &quot;data-scs_score&quot;: 3.3911797109898796, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 54, &quot;data-smiles&quot;: &quot;CC(CO)(CC(=O)NC1=CC=C(N)C=C1)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.18&quot;, &quot;data-solubility&quot;: -2.1820407057931495, &quot;data-similarity&quot;: 0.2857142857142857, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CO)(CC(=O)NC1=CC=C(N)C=C1)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.1820407057931495&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2857142857142857&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 208.26100000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.3911797109898796&quot;}, {&quot;data-molecular_weight&quot;: 209.245, &quot;data-scs_score&quot;: 3.9707753755014257, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 55, &quot;data-smiles&quot;: &quot;CC(CO)OC(=O)NC1=CC=C(C)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.71&quot;, &quot;data-solubility&quot;: -2.710074403165757, &quot;data-similarity&quot;: 0.2857142857142857, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CO)OC(=O)NC1=CC=C(C)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.710074403165757&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2857142857142857&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 209.245&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.9707753755014257&quot;}, {&quot;data-molecular_weight&quot;: 137.18199999999996, &quot;data-scs_score&quot;: 3.6226606246533684, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 56, &quot;data-smiles&quot;: &quot;CC(C#C)N(C)C=CC=O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.12&quot;, &quot;data-solubility&quot;: -1.1196828968751291, &quot;data-similarity&quot;: 0.27906976744186046, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(C)C=CC=O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.1196828968751291&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.27906976744186046&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 137.18199999999996&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.6226606246533684&quot;}, {&quot;data-molecular_weight&quot;: 225.267, &quot;data-scs_score&quot;: 3.0787101607128315, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 57, &quot;data-smiles&quot;: &quot;CC(CN)C(N)C(=O)NC1=CC=C(F)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.88&quot;, &quot;data-solubility&quot;: -1.8837271228592813, &quot;data-similarity&quot;: 0.27450980392156865, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CN)C(N)C(=O)NC1=CC=C(F)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.8837271228592813&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.27450980392156865&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 225.267&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.0787101607128315&quot;}, {&quot;data-molecular_weight&quot;: 226.707, &quot;data-scs_score&quot;: 3.2169315786915287, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 58, &quot;data-smiles&quot;: &quot;CC(C#C)N(CC(=O)NC=CC=C)CCl&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.20&quot;, &quot;data-solubility&quot;: -2.198209507835607, &quot;data-similarity&quot;: 0.2727272727272727, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(CC(=O)NC=CC=C)CCl&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.198209507835607&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2727272727272727&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 226.707&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2169315786915287&quot;}, {&quot;data-molecular_weight&quot;: 217.27200000000002, &quot;data-scs_score&quot;: 3.5030173669799445, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 59, &quot;data-smiles&quot;: &quot;CC(C#CN)(C)C(=O)NC1=CC=C(N)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.18&quot;, &quot;data-solubility&quot;: -2.1839656061768653, &quot;data-similarity&quot;: 0.26, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#CN)(C)C(=O)NC1=CC=C(N)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.1839656061768653&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.26&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 217.27200000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.5030173669799445&quot;}, {&quot;data-molecular_weight&quot;: 220.247, &quot;data-scs_score&quot;: 3.4648329946756617, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 60, &quot;data-smiles&quot;: &quot;CC(C#CN)(C)C(=O)NC1=CC=C(F)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.62&quot;, &quot;data-solubility&quot;: -2.6166801374377653, &quot;data-similarity&quot;: 0.2549019607843137, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#CN)(C)C(=O)NC1=CC=C(F)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.6166801374377653&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2549019607843137&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 220.247&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4648329946756617&quot;}, {&quot;data-molecular_weight&quot;: 213.216, &quot;data-scs_score&quot;: 2.892183371271873, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 61, &quot;data-smiles&quot;: &quot;CN(CN(N)C(=O)NC1=CC=C(F)N=C1)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.39&quot;, &quot;data-solubility&quot;: -1.3871442194204044, &quot;data-similarity&quot;: 0.2545454545454545, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CN(CN(N)C(=O)NC1=CC=C(F)N=C1)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.3871442194204044&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2545454545454545&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 213.216&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.892183371271873&quot;}, {&quot;data-molecular_weight&quot;: 125.17099999999998, &quot;data-scs_score&quot;: 3.7500698286527108, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 62, &quot;data-smiles&quot;: &quot;CC(C#C)N(CC)C=O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-0.92&quot;, &quot;data-solubility&quot;: -0.9170514833723926, &quot;data-similarity&quot;: 0.25, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(CC)C=O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -0.9170514833723926&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.25&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 125.17099999999998&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.7500698286527108&quot;}, {&quot;data-molecular_weight&quot;: 246.65, &quot;data-scs_score&quot;: 3.3468153180492335, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 63, &quot;data-smiles&quot;: &quot;O/C(OO)N(CC(=O)N)C1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.81&quot;, &quot;data-solubility&quot;: -1.8072823357911618, &quot;data-similarity&quot;: 0.25, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O/C(OO)N(CC(=O)N)C1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.8072823357911618&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.25&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 246.65&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.3468153180492335&quot;}, {&quot;data-molecular_weight&quot;: 226.251, &quot;data-scs_score&quot;: 3.0452813625281347, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 64, &quot;data-smiles&quot;: &quot;OC(CC)C(N)C(=O)NC1=CC=C(F)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.02&quot;, &quot;data-solubility&quot;: -2.020843968483999, &quot;data-similarity&quot;: 0.25, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: OC(CC)C(N)C(=O)NC1=CC=C(F)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.020843968483999&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.25&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 226.251&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.0452813625281347&quot;}, {&quot;data-molecular_weight&quot;: 336.173, &quot;data-scs_score&quot;: 3.1986467620747323, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 65, &quot;data-smiles&quot;: &quot;CC(CC)N(C)C(=O)NC1OC=C(I)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.89&quot;, &quot;data-solubility&quot;: -3.8914699081711244, &quot;data-similarity&quot;: 0.22413793103448276, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CC)N(C)C(=O)NC1OC=C(I)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.8914699081711244&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.22413793103448276&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 336.173&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.1986467620747323&quot;}, {&quot;data-molecular_weight&quot;: 260.087, &quot;data-scs_score&quot;: 4.201039512319623, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 66, &quot;data-smiles&quot;: &quot;C(CO)OC(=O)NC1=CC=C(Br)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.11&quot;, &quot;data-solubility&quot;: -3.1071550364735807, &quot;data-similarity&quot;: 0.22, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(CO)OC(=O)NC1=CC=C(Br)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.1071550364735807&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.22&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 260.087&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 4.201039512319623&quot;}, {&quot;data-molecular_weight&quot;: 212.268, &quot;data-scs_score&quot;: 2.4041745774237593, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 67, &quot;data-smiles&quot;: &quot;CC(C)N(F)C(=O)NC1=CCC(C)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.19&quot;, &quot;data-solubility&quot;: -3.1908325278153713, &quot;data-similarity&quot;: 0.21428571428571427, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)N(F)C(=O)NC1=CCC(C)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.1908325278153713&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.21428571428571427&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 212.268&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.4041745774237593&quot;}, {&quot;data-molecular_weight&quot;: 236.702, &quot;data-scs_score&quot;: 3.2184893836920914, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 68, &quot;data-smiles&quot;: &quot;CC(C#C)N(CC(=O)NC1=C)C=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.48&quot;, &quot;data-solubility&quot;: -2.480119131021854, &quot;data-similarity&quot;: 0.2033898305084746, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(CC(=O)NC1=C)C=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.480119131021854&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2033898305084746&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 236.702&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2184893836920914&quot;}, {&quot;data-molecular_weight&quot;: 238.674, &quot;data-scs_score&quot;: 2.93037787883818, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 69, &quot;data-smiles&quot;: &quot;CC(C#C)N(O1)C(=O)NC=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.88&quot;, &quot;data-solubility&quot;: -2.8825405367748917, &quot;data-similarity&quot;: 0.2033898305084746, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)N(O1)C(=O)NC=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.8825405367748917&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2033898305084746&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 238.674&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.93037787883818&quot;}, {&quot;data-molecular_weight&quot;: 128.12699999999998, &quot;data-scs_score&quot;: 4.031869369834023, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 70, &quot;data-smiles&quot;: &quot;OC(C#C)C(C)OC=O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-0.24&quot;, &quot;data-solubility&quot;: -0.23616524617319698, &quot;data-similarity&quot;: 0.1956521739130435, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: OC(C#C)C(C)OC=O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -0.23616524617319698&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1956521739130435&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 128.12699999999998&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 4.031869369834023&quot;}, {&quot;data-molecular_weight&quot;: 232.71099999999998, &quot;data-scs_score&quot;: 3.8838003687291116, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 71, &quot;data-smiles&quot;: &quot;CCOC(N(C)C(=O)NC=CC=C)CCl&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.69&quot;, &quot;data-solubility&quot;: -2.6878186915078928, &quot;data-similarity&quot;: 0.1896551724137931, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCOC(N(C)C(=O)NC=CC=C)CCl&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.6878186915078928&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1896551724137931&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 232.71099999999998&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.8838003687291116&quot;}, {&quot;data-molecular_weight&quot;: 206.28499999999994, &quot;data-scs_score&quot;: 3.2867620056141704, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 72, &quot;data-smiles&quot;: &quot;CC(C#C)C(CC(=O)OCCC=C)(C1)C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.97&quot;, &quot;data-solubility&quot;: -2.9702079966966215, &quot;data-similarity&quot;: 0.1896551724137931, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)C(CC(=O)OCCC=C)(C1)C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.9702079966966215&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1896551724137931&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 206.28499999999994&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2867620056141704&quot;}, {&quot;data-molecular_weight&quot;: 223.27199999999996, &quot;data-scs_score&quot;: 2.812561160555862, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 73, &quot;data-smiles&quot;: &quot;CC(C#C)C(CC(=O)NCO)C(OC#CC)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.44&quot;, &quot;data-solubility&quot;: -1.4361160505487323, &quot;data-similarity&quot;: 0.1896551724137931, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)C(CC(=O)NCO)C(OC#CC)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.4361160505487323&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1896551724137931&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 223.27199999999996&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.812561160555862&quot;}, {&quot;data-molecular_weight&quot;: 224.26, &quot;data-scs_score&quot;: 2.993073552944776, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 74, &quot;data-smiles&quot;: &quot;CC(CO)N(CC(=O)N)C1=CC=C(O)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.41&quot;, &quot;data-solubility&quot;: -1.4125908665509368, &quot;data-similarity&quot;: 0.18518518518518517, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CO)N(CC(=O)N)C1=CC=C(O)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.4125908665509368&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.18518518518518517&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 224.26&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.993073552944776&quot;}, {&quot;data-molecular_weight&quot;: 224.21200000000002, &quot;data-scs_score&quot;: 3.4141537246069, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 75, &quot;data-smiles&quot;: &quot;CC(C=O)OCC(=O)OC1=CC=C(O)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.03&quot;, &quot;data-solubility&quot;: -2.03298033079589, &quot;data-similarity&quot;: 0.18181818181818182, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C=O)OCC(=O)OC1=CC=C(O)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.03298033079589&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.18181818181818182&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 224.21200000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4141537246069&quot;}, {&quot;data-molecular_weight&quot;: 166.21999999999997, &quot;data-scs_score&quot;: 3.371248198591314, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 76, &quot;data-smiles&quot;: &quot;CC(C#C)C(CC(=O))C=C(C)O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.25&quot;, &quot;data-solubility&quot;: -2.2503595916361236, &quot;data-similarity&quot;: 0.17647058823529413, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C#C)C(CC(=O))C=C(C)O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.2503595916361236&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.17647058823529413&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 166.21999999999997&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.371248198591314&quot;}, {&quot;data-molecular_weight&quot;: 190.67399999999998, &quot;data-scs_score&quot;: 3.4449077121322706, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 77, &quot;data-smiles&quot;: &quot;CCC(N(C)C(=O)NC=CC(Cl))&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.31&quot;, &quot;data-solubility&quot;: -2.3138978986063248, &quot;data-similarity&quot;: 0.17307692307692307, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCC(N(C)C(=O)NC=CC(Cl))&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.3138978986063248&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.17307692307692307&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 190.67399999999998&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4449077121322706&quot;}, {&quot;data-molecular_weight&quot;: 214.69599999999997, &quot;data-scs_score&quot;: 3.5791234256763365, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 78, &quot;data-smiles&quot;: &quot;CC=C(N(C)C(=O)NC=CC=C)CCl&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.98&quot;, &quot;data-solubility&quot;: -2.976966591445495, &quot;data-similarity&quot;: 0.16363636363636364, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC=C(N(C)C(=O)NC=CC=C)CCl&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.976966591445495&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.16363636363636364&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 214.69599999999997&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.5791234256763365&quot;}, {&quot;data-molecular_weight&quot;: 217.69999999999996, &quot;data-scs_score&quot;: 3.264270184085204, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 79, &quot;data-smiles&quot;: &quot;CCN(N(C)C(=O)NC=CC=C)CCl&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.47&quot;, &quot;data-solubility&quot;: -2.4672396539495978, &quot;data-similarity&quot;: 0.16071428571428573, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCN(N(C)C(=O)NC=CC=C)CCl&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.4672396539495978&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.16071428571428573&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 217.69999999999996&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.264270184085204&quot;}, {&quot;data-molecular_weight&quot;: 233.35499999999996, &quot;data-scs_score&quot;: 2.8322398223850707, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 80, &quot;data-smiles&quot;: &quot;CC(CC)(CC(=O)NC=CC1=CCCCC=C1)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.02&quot;, &quot;data-solubility&quot;: -4.023200120953666, &quot;data-similarity&quot;: 0.15873015873015872, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CC)(CC(=O)NC=CC1=CCCCC=C1)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.023200120953666&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.15873015873015872&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 233.35499999999996&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.8322398223850707&quot;}, {&quot;data-molecular_weight&quot;: 219.672, &quot;data-scs_score&quot;: 3.320400671994567, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 81, &quot;data-smiles&quot;: &quot;CON(N(C)C(=O)NC=CC=C)CCl&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.14&quot;, &quot;data-solubility&quot;: -2.1402247275753608, &quot;data-similarity&quot;: 0.15789473684210525, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CON(N(C)C(=O)NC=CC=C)CCl&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.1402247275753608&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.15789473684210525&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 219.672&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.320400671994567&quot;}, {&quot;data-molecular_weight&quot;: 210.664, &quot;data-scs_score&quot;: 3.2306516899302267, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 82, &quot;data-smiles&quot;: &quot;C1C#CC1N(C)C(=O)NC=C(Cl)C=C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.36&quot;, &quot;data-solubility&quot;: -2.360115122149566, &quot;data-similarity&quot;: 0.15517241379310345, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C1C#CC1N(C)C(=O)NC=C(Cl)C=C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.360115122149566&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.15517241379310345&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 210.664&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2306516899302267&quot;}, {&quot;data-molecular_weight&quot;: 219.67200000000003, &quot;data-scs_score&quot;: 3.2933376293362526, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 83, &quot;data-smiles&quot;: &quot;CC=NOCN(C)C(=O)NC=CC(Cl)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.18&quot;, &quot;data-solubility&quot;: -2.183167649415899, &quot;data-similarity&quot;: 0.15517241379310345, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC=NOCN(C)C(=O)NC=CC(Cl)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.183167649415899&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.15517241379310345&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 219.67200000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2933376293362526&quot;}, {&quot;data-molecular_weight&quot;: 237.69000000000003, &quot;data-scs_score&quot;: 2.609649878449641, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 84, &quot;data-smiles&quot;: &quot;CC1(C#C)N(C)C(=O)NC=NC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.57&quot;, &quot;data-solubility&quot;: -2.5702059815972094, &quot;data-similarity&quot;: 0.14754098360655737, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1(C#C)N(C)C(=O)NC=NC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.5702059815972094&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.14754098360655737&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 237.69000000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.609649878449641&quot;}, {&quot;data-molecular_weight&quot;: 218.68400000000003, &quot;data-scs_score&quot;: 2.86519143393302, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 85, &quot;data-smiles&quot;: &quot;CC(CO)C(N)C(=O)NC=CC=C(Cl)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.41&quot;, &quot;data-solubility&quot;: -1.4085555862150831, &quot;data-similarity&quot;: 0.14285714285714285, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CO)C(N)C(=O)NC=CC=C(Cl)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.4085555862150831&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.14285714285714285&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 218.68400000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.86519143393302&quot;}, {&quot;data-molecular_weight&quot;: 185.19799999999998, &quot;data-scs_score&quot;: 3.1701117458837573, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 86, &quot;data-smiles&quot;: &quot;CC(CO)(C(=O)NC=CC#C)CF&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.11&quot;, &quot;data-solubility&quot;: -1.1112496407380983, &quot;data-similarity&quot;: 0.14285714285714285, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CO)(C(=O)NC=CC#C)CF&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.1112496407380983&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.14285714285714285&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 185.19799999999998&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.1701117458837573&quot;}, {&quot;data-molecular_weight&quot;: 204.657, &quot;data-scs_score&quot;: 3.4300459570543373, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 87, &quot;data-smiles&quot;: &quot;CC(ON(CC(=O)N(C=C(Cl))))C=C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.75&quot;, &quot;data-solubility&quot;: -1.7453203323027142, &quot;data-similarity&quot;: 0.14035087719298245, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(ON(CC(=O)N(C=C(Cl))))C=C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.7453203323027142&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.14035087719298245&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 204.657&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4300459570543373&quot;}, {&quot;data-molecular_weight&quot;: 210.664, &quot;data-scs_score&quot;: 2.9253398453370525, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 88, &quot;data-smiles&quot;: &quot;C1C(C#C)N(C)C(=O)N1C=C(Cl)C=C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.33&quot;, &quot;data-solubility&quot;: -2.328040485398395, &quot;data-similarity&quot;: 0.13333333333333333, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C1C(C#C)N(C)C(=O)N1C=C(Cl)C=C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.328040485398395&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13333333333333333&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 210.664&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.9253398453370525&quot;}, {&quot;data-molecular_weight&quot;: 247.722, &quot;data-scs_score&quot;: 3.3718013301475143, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 89, &quot;data-smiles&quot;: &quot;CC(CO)(CC1C(=O)NOCC)C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.28&quot;, &quot;data-solubility&quot;: -2.280245260193781, &quot;data-similarity&quot;: 0.13114754098360656, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CO)(CC1C(=O)NOCC)C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.280245260193781&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13114754098360656&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 247.722&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.3718013301475143&quot;}, {&quot;data-molecular_weight&quot;: 216.712, &quot;data-scs_score&quot;: 3.5817508503021407, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 90, &quot;data-smiles&quot;: &quot;CC(CN(C)C)(O)NC=CC#CCCl&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.60&quot;, &quot;data-solubility&quot;: -1.6047790727815754, &quot;data-similarity&quot;: 0.12280701754385964, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CN(C)C)(O)NC=CC#CCCl&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.6047790727815754&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.12280701754385964&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 216.712&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.5817508503021407&quot;}, {&quot;data-molecular_weight&quot;: 230.691, &quot;data-scs_score&quot;: 3.0484028188746293, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 91, &quot;data-smiles&quot;: &quot;CC1(CO)C(C)C(=O)OCC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.64&quot;, &quot;data-solubility&quot;: -2.638241680130693, &quot;data-similarity&quot;: 0.11475409836065574, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1(CO)C(C)C(=O)OCC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.638241680130693&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.11475409836065574&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 230.691&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.0484028188746293&quot;}, {&quot;data-molecular_weight&quot;: 246.73800000000003, &quot;data-scs_score&quot;: 2.7827304739958527, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 92, &quot;data-smiles&quot;: &quot;C(COCN)CCC(=O)NC=CC=C(Cl)C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.72&quot;, &quot;data-solubility&quot;: -2.7240705746873988, &quot;data-similarity&quot;: 0.11290322580645161, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C(COCN)CCC(=O)NC=CC=C(Cl)C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.7240705746873988&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.11290322580645161&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 246.73800000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.7827304739958527&quot;}, {&quot;data-molecular_weight&quot;: 198.29100000000003, &quot;data-scs_score&quot;: 2.999003271119221, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 93, &quot;data-smiles&quot;: &quot;C1CCC1N(C)C(=S)NC=CC=O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.82&quot;, &quot;data-solubility&quot;: -1.824451234405117, &quot;data-similarity&quot;: 0.10714285714285714, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C1CCC1N(C)C(=S)NC=CC=O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.824451234405117&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10714285714285714&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 198.29100000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.999003271119221&quot;}, {&quot;data-molecular_weight&quot;: 204.701, &quot;data-scs_score&quot;: 3.093658516029299, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 94, &quot;data-smiles&quot;: &quot;C1C(CN(C)C)(O)NC=CC1(CCl)&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.53&quot;, &quot;data-solubility&quot;: -1.5262695568906612, &quot;data-similarity&quot;: 0.10344827586206896, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C1C(CN(C)C)(O)NC=CC1(CCl)&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.5262695568906612&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10344827586206896&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 204.701&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.093658516029299&quot;}]);\n",
       "// filter\n",
       "if (window.parent.mols2grid_lists === undefined) {\n",
       "    window.parent.mols2grid_lists = {};\n",
       "}\n",
       "window.parent.mols2grid_lists[&quot;default&quot;] = listObj;\n",
       "\n",
       "\n",
       "// selection\n",
       "class MolStorage extends Map {\n",
       "    multi_set(_id, _smiles) {\n",
       "        for (let i=0; i &lt; _id.length; i++) {\n",
       "            this.set(_id[i], _smiles[i]);\n",
       "        }\n",
       "    }\n",
       "    multi_del(_id) {\n",
       "        for (let i=0; i &lt; _id.length; i++) {\n",
       "            this.delete(_id[i]);\n",
       "        };\n",
       "    }\n",
       "    to_dict() {\n",
       "        var content = &quot;{&quot;;\n",
       "        for (let [key, value] of this) {\n",
       "            content += key + &quot;:&quot; + JSON.stringify(value) + &quot;,&quot;;\n",
       "        }\n",
       "        content = content.length &gt; 1 ? content.slice(0, -1) : content;\n",
       "        content += &quot;}&quot;;\n",
       "        return content\n",
       "    }\n",
       "    download_smi(fileName) {\n",
       "        var content = &quot;SMILES index\\n&quot;;\n",
       "        for (let [key, value] of this) {\n",
       "            content += value + &quot; &quot; + key + &quot;\\n&quot;;\n",
       "        }\n",
       "        var a = document.createElement(&quot;a&quot;);\n",
       "        var file = new Blob([content], {type: &quot;text/plain&quot;});\n",
       "        a.href = URL.createObjectURL(file);\n",
       "        a.download = fileName;\n",
       "        a.click();\n",
       "        a.remove();\n",
       "    }\n",
       "}\n",
       "var SELECTION = new MolStorage();\n",
       "\n",
       "\n",
       "\n",
       "// kernel\n",
       "var kernel_env = null;\n",
       "if (window.parent.IPython !== undefined) {\n",
       "    // Jupyter notebook\n",
       "    kernel_env = &quot;jupyter&quot;;\n",
       "    var kernel = window.parent.IPython.notebook.kernel;\n",
       "    kernel.execute(&#x27;from mols2grid.select import register as _m2g_reg&#x27;)\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "        kernel.execute(&quot;_m2g_reg.add_selection(&#x27;&quot;+grid_id+&quot;&#x27;, &quot;+JSON.stringify(_id)+&quot;,&quot;+JSON.stringify(smiles)+&quot;)&quot;);\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "        kernel.execute(&quot;_m2g_reg.del_selection(&#x27;&quot;+grid_id+&quot;&#x27;, &quot;+JSON.stringify(_id)+&quot;)&quot;);\n",
       "    }\n",
       "} else if (window.parent.google !== undefined) {\n",
       "    // Google colab\n",
       "    kernel_env = &quot;colab&quot;;\n",
       "    var kernel = window.parent.google.colab.kernel;\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "        (async function() {\n",
       "        const result = await kernel.invokeFunction(&#x27;_m2g_reg.add_selection&#x27;,\n",
       "                                                   [grid_id, _id, smiles], {});\n",
       "        })();\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "        (async function() {\n",
       "        const result = await kernel.invokeFunction(&#x27;_m2g_reg.del_selection&#x27;,\n",
       "                                                   [grid_id, _id], {});\n",
       "        })();\n",
       "    }\n",
       "} else {\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// sort\n",
       "var sort_field = &quot;mols2grid-id&quot;;\n",
       "var sort_order = &quot;asc&quot;;\n",
       "function mols2gridSortFunction(itemA, itemB, options) {\n",
       "    var x = itemA.values()[options.valueName];\n",
       "    var y = itemB.values()[options.valueName];\n",
       "    if (typeof x === &quot;number&quot;) {\n",
       "        if (isFinite(x - y)) {\n",
       "            return x - y; \n",
       "        } else {\n",
       "            return isFinite(x) ? -1 : 1;\n",
       "        }\n",
       "    } else {\n",
       "        x = x.toLowerCase();\n",
       "        y = y.toLowerCase();\n",
       "        return (x &lt; y) ? -1: (x &gt; y) ? 1: 0;\n",
       "    }\n",
       "}\n",
       "function checkboxSort(itemA, itemB, options) {\n",
       "    if (itemA.elm !== undefined) {\n",
       "        var checkedA = itemA.elm.firstChild.checked;\n",
       "        if (itemB.elm !== undefined) {\n",
       "            var checkedB = itemB.elm.firstChild.checked;\n",
       "            if (checkedA &amp;&amp; !checkedB) {\n",
       "                return -1;\n",
       "            } else if (!checkedA &amp;&amp; checkedB) {\n",
       "                return 1;\n",
       "            } else {\n",
       "                return 0;\n",
       "            }\n",
       "        } else {\n",
       "            return -1;\n",
       "        }\n",
       "    } else if (itemB.elm !== undefined) {\n",
       "        return 1;\n",
       "    } else {\n",
       "        return 0;\n",
       "    }\n",
       "}\n",
       "$(&#x27;#mols2grid button.sort-btn&#x27;).click(function(e) {\n",
       "    var _field = $(this).attr(&quot;data-name&quot;);\n",
       "    if (_field == sort_field) {\n",
       "        $(this).removeClass(&quot;arrow-&quot; + sort_order)\n",
       "        sort_order = (sort_order === &quot;desc&quot;) ? &quot;asc&quot; : &quot;desc&quot;;\n",
       "    } else {\n",
       "        $(&#x27;#mols2grid button.sort-btn.active&#x27;).removeClass(&quot;active arrow-&quot; + sort_order);\n",
       "        sort_order = &quot;asc&quot;;\n",
       "        sort_field = _field;\n",
       "        $(this).addClass(&quot;active&quot;);\n",
       "    }\n",
       "    $(this).addClass(&quot;arrow-&quot; + sort_order)\n",
       "    if (sort_field == &quot;checkbox&quot;) {\n",
       "        listObj.sort(&quot;mols2grid-id&quot;, {order: sort_order, sortFunction: checkboxSort});\n",
       "    } else {\n",
       "        listObj.sort(_field, {order: sort_order, sortFunction: mols2gridSortFunction});\n",
       "    }\n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// tooltips\n",
       "$.fn.tooltip.Constructor.Default.whiteList.span = [&#x27;style&#x27;]\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    $(function () {\n",
       "        // hide previous popovers\n",
       "        $(&#x27;#mols2grid a.page-link&#x27;).click(function(e) {\n",
       "            $(&#x27;.mols2grid-tooltip[data-toggle=&quot;popover&quot;]&#x27;).popover(&#x27;hide&#x27;)\n",
       "        });\n",
       "        // create new popover\n",
       "        $(&#x27;.mols2grid-tooltip[data-toggle=&quot;popover&quot;]&#x27;).popover({\n",
       "            placement: &#x27;bottom&#x27;,\n",
       "            trigger: &#x27;click hover&#x27;,\n",
       "            html: true,\n",
       "            sanitize: false,\n",
       "        });\n",
       "    })\n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "// selection modifyers and export options\n",
       "// check all\n",
       "$(&#x27;#btn-chkbox-all&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 9;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id = [];\n",
       "    var _smiles = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox&quot;).each(function() {\n",
       "            this.checked = true;\n",
       "            _id.push(parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;)));\n",
       "            _smiles.push($($(this).siblings(&quot;.data-smiles&quot;)[0]).text());\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    add_selection(&quot;default&quot;, _id, _smiles);\n",
       "});\n",
       "// uncheck all\n",
       "$(&#x27;#btn-chkbox-none&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 9;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox:checked&quot;).each(function() {\n",
       "            this.checked = false;\n",
       "            _id.push(parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;)));\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    del_selection(&quot;default&quot;, _id);\n",
       "});\n",
       "// invert\n",
       "$(&#x27;#btn-chkbox-invert&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 9;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id_add = [];\n",
       "    var _id_del = [];\n",
       "    var _smiles = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox&quot;).each(function() {\n",
       "            this.checked = !this.checked;\n",
       "            var _id = parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;));\n",
       "            if (this.checked) {\n",
       "                _id_add.push(_id);\n",
       "                _smiles.push($(this).siblings(&quot;.data-smiles&quot;).first().text());\n",
       "            } else {\n",
       "                _id_del.push(_id);\n",
       "            }\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    del_selection(&quot;default&quot;, _id_del);\n",
       "    add_selection(&quot;default&quot;, _id_add, _smiles);\n",
       "});\n",
       "// copy to clipboard\n",
       "$(&quot;#btn-chkbox-copy&quot;).click(function(e) {\n",
       "    navigator.clipboard.writeText(SELECTION.to_dict());\n",
       "});\n",
       "// export smiles\n",
       "$(&quot;#btn-chkbox-dlsmi&quot;).click(function(e) {\n",
       "    SELECTION.download_smi(&quot;selection.smi&quot;);\n",
       "});\n",
       "// export CSV\n",
       "$(&quot;#btn-chkbox-dlcsv&quot;).click(function(e) {\n",
       "    var sep = &quot;\\t&quot;\n",
       "    // same order as subset + tooltip\n",
       "    var columns = Array.from(listObj.items[0].elm.querySelectorAll(&quot;div.data&quot;))\n",
       "                       .map(elm =&gt; elm.classList[1]);\n",
       "    // remove &#x27;data-&#x27;\n",
       "    var header = columns.map(name =&gt; name.slice(5));\n",
       "    // csv content\n",
       "    header = [&quot;index&quot;].concat(header).join(sep);\n",
       "    var content = header + &quot;\\n&quot;;\n",
       "    for (let [index, smiles] of SELECTION.entries()) {\n",
       "        var data = listObj.items[index].values();\n",
       "        content += index;\n",
       "        columns.forEach((key) =&gt; {\n",
       "            content += sep + data[key];\n",
       "        })\n",
       "        content += &quot;\\n&quot;;\n",
       "    }\n",
       "    var a = document.createElement(&quot;a&quot;);\n",
       "    var file = new Blob([content], {type: &quot;text/csv&quot;});\n",
       "    a.href = URL.createObjectURL(file);\n",
       "    a.download = &quot;selection.csv&quot;;\n",
       "    a.click();\n",
       "    a.remove();\n",
       "});\n",
       "// update selection on checkbox click\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    $(&quot;input:checkbox&quot;).change(function() {\n",
       "        var _id = parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;));\n",
       "        if (this.checked) {\n",
       "            var _smiles = $($(this).siblings(&quot;.data-smiles&quot;)[0]).text();\n",
       "            add_selection(&quot;default&quot;, [_id], [_smiles]);\n",
       "        } else {\n",
       "            del_selection(&quot;default&quot;, [_id]);\n",
       "        }\n",
       "    }); \n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// generate images for the currently displayed molecules\n",
       "var draw_opts = {&quot;width&quot;: 300, &quot;height&quot;: 200};\n",
       "var json_draw_opts = JSON.stringify(draw_opts);\n",
       "\n",
       "var smarts_matches = {};\n",
       "\n",
       "// Load RDKit\n",
       "window\n",
       ".initRDKitModule()\n",
       ".then(function(RDKit) {\n",
       "    console.log(&#x27;RDKit version: &#x27;, RDKit.version());\n",
       "    window.RDKit = RDKit;\n",
       "    window.RDKitModule = RDKit;\n",
       "\n",
       "    // search bar\n",
       "    function SmartsSearch(query, columns) {\n",
       "    var smiles_col = columns[0];\n",
       "    smarts_matches = {};\n",
       "    var query = $(&#x27;#mols2grid #searchbar&#x27;).val();\n",
       "    var qmol = RDKit.get_qmol(query);\n",
       "    if (qmol.is_valid()) {\n",
       "        for (var k = 0, kl = listObj.items.length; k &lt; kl; k++) {\n",
       "            var item = listObj.items[k];\n",
       "            var smiles = item.values()[smiles_col]\n",
       "            var mol = RDKit.get_mol(smiles);\n",
       "            if (mol.is_valid()) {\n",
       "                var results = JSON.parse(mol.get_substruct_match(qmol));\n",
       "                if (results.atoms) {\n",
       "                    item.found = true;\n",
       "                    \n",
       "                    smarts_matches[smiles] = results;\n",
       "                    \n",
       "                } else {\n",
       "                    item.found = false;\n",
       "                }\n",
       "            } else {\n",
       "                item.found = false;\n",
       "            }\n",
       "            mol.delete();\n",
       "        }\n",
       "    }\n",
       "    qmol.delete();\n",
       "}\n",
       "var search_type = &quot;Text&quot;;\n",
       "$(&#x27;#mols2grid .search-btn&#x27;).click(function() {\n",
       "    search_type = $(this).text();\n",
       "    $(&#x27;#mols2grid button.search-btn.active&#x27;).removeClass(&quot;active&quot;);\n",
       "    $(this).addClass(&quot;active&quot;);\n",
       "});\n",
       "$(&#x27;#mols2grid #searchbar&#x27;).on(&quot;keyup&quot;, function(e) {\n",
       "    var query = e.target.value;\n",
       "    if (search_type === &quot;Text&quot;) {\n",
       "        smarts_matches = {};\n",
       "        listObj.search(query, [&#x27;data-smiles&#x27;, &#x27;data-text&#x27;, &#x27;data-smiles&#x27;, &#x27;data-solubility&#x27;, &#x27;data-similarity&#x27;, &#x27;data-molecular_weight&#x27;, &#x27;data-scs_score&#x27;]);\n",
       "    } else {\n",
       "        listObj.search(query, [&quot;data-smiles&quot;], SmartsSearch);\n",
       "    }\n",
       "});\n",
       "\n",
       "    \n",
       "    // generate images for the currently displayed molecules\n",
       "RDKit.prefer_coordgen(true);\n",
       "function draw_mol(smiles) {\n",
       "    var mol = RDKit.get_mol(smiles, &#x27;{&quot;removeHs&quot;: false }&#x27;);\n",
       "    var svg = &quot;&quot;;\n",
       "    if (mol.is_valid()) {\n",
       "        var highlights = smarts_matches[smiles];\n",
       "        if (highlights) {\n",
       "            var details = Object.assign({}, draw_opts, highlights);\n",
       "            details = JSON.stringify(details);\n",
       "        } else {\n",
       "            var details = json_draw_opts;\n",
       "        }\n",
       "        svg = mol.get_svg_with_highlights(details);\n",
       "    }\n",
       "    mol.delete();\n",
       "    if (svg == &quot;&quot;) {\n",
       "        return &#x27;&lt;svg width=&quot;300&quot; height=&quot;200&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 300 200&quot;&gt;&lt;/svg&gt;&#x27;;\n",
       "    }\n",
       "    return svg;\n",
       "}\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    var query = $(&#x27;#mols2grid #searchbar&#x27;).val();\n",
       "    if (query === &quot;&quot;) {\n",
       "        smarts_matches = {};\n",
       "    }\n",
       "    $(&#x27;#mols2grid .cell&#x27;).each(function() {\n",
       "        var $t = $(this);\n",
       "        var smiles = $t.children(&quot;.data-smiles&quot;).first().text()\n",
       "        var svg = draw_mol(smiles);\n",
       "        $t.children(&quot;.data-img&quot;).html(svg);\n",
       "    });\n",
       "});\n",
       "    \n",
       "\n",
       "    // trigger update to activate tooltips, draw images, setup callbacks...\n",
       "    listObj.update();\n",
       "    // resize iframe to fit content\n",
       "    if (window.frameElement) {\n",
       "        window.parent.fit_height(window.frameElement);\n",
       "    }\n",
       "});\n",
       "    &lt;/script&gt;\n",
       "  &lt;/body&gt;\n",
       "&lt;/html&gt;\">\n",
       "</iframe>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot_molecules_df(molecules_df=first_set_molecules_df, similarity_threshold=similarity_threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "fd851fc2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Solubility using Buturon as a reference')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEbCAYAAAAmmNiPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABMI0lEQVR4nO3dd3hUVfrA8e+bBoQeQu+9Kr0qiooFC3ZRFEX9rV3XVXcta1t1de2sq6hgwS4oNgQbKDaKFKnSIyWhBUIJJCHt/P64N2TuZJLMJJO5M5P38zzzJHPmlnduMvPec8+554gxBqWUUsofMW4HoJRSKnJo0lBKKeU3TRpKKaX8pklDKaWU3zRpKKWU8psmDaWUUn7TpBEGRGSEiBgRSQ5gnfEiciiQZcp7Hk5EZK6IvOh2HCr8iMi5IrJBRPJFZIrb8VQ3mjQqSUQai8hEEdksIkdEZJeIzBGRU92ODZgKdPD3dRF5WERWVXlU/rkAuLeqd2K/Z+Px2C8iP4jIkApsy4jIRVURp3J4HZgOtAX+6nIs1U6c2wFEgelAInAtsBFoApwINHIzKABjTDaQXdHX3WSMyQjh7tYBI+zfGwH3A1+JSHNjTE4I4wBAROKAAlON7rz19z2LSAOsv9E3xpi0SuwvwRiTW9H1qzVjjD4q+AAaAAYYWc5yDYG3gH1YX9KzgZ4er4+wt5NsPx8PHPLahs9lgHOA9UAO8APQwWMdx3bKem7/brwe44E3gC+9YokBtgJ3lPJ+HbHaZe3ssgH283jgBWA7cATYBvzHY/m5wIsezzdjfZm/ChwEUoG/e+23C/CjfSzWAWfax2h8GX+bh4FVXmW97Fi7e5QZ4CKv5TYDd3n87nnsNpexfe+/w8PAKrt8E1AA1AHaAJ8CmfbjE6CVj/UutdfLBD7zPO6lvOf/2Mcn2477KaCmx+utgc+BDCALWAtcWsb2BgLfAnvsv80vwNByYijtPdcHJgG77ffzo8f/zAhK/o+OsF8bZi+bBaQBLwP1vP6fXgaeAdKBRXZ5D2Cmva/dwAdAM4/1pgBfYtVo0rA+w28CiR7LCHAnsAHrfzkVeMLj9ZbAh/a6++z9dXb7+6uiD708VTmH7MdoEalZxnJTgMHAucAgrH/sr0WkViX3XwN4CLgaGArEAp+IiFRgW1OBZ7G+TJrbj6nAZOAMEWnuseypQDPgnYqHzm3A+VhfeJ2BMfa+y/I3YCXQD3gSeEpEhgKISAzWF2w+MATry+ghrGPkN/vvOA7rC2RzAKsOtH/+BevYDSxjWV/aA2OBi4HeQC7WF3dT4CT70QL4zOvv2w7r2J0PnAb0Bf5dzr4OA9cA3YGbsP4G//R4fSJW7fkkoCdwO7C/jO3VxfpfGI71/70MmCUi5dW2vd/zEawv1JbA2fZ7+Qn43v7/m2fHA3Ah1nGeJyLHYCWtL+ztXAD0wTrh8XQF1hf8cOBKe5s/YSWvQcBIrMT1uf3/VGQ41onESIqPtedlsceBB4An7PguxjoJQkQSsU7mcrCuQAwFdgCz7dcij9tZK9IfWP+8GVj/FPOxzmQGe7zeGeuM6ASPsvrAAeD/7OcjqFhNwwDHeSzTFuuMbaSv7fjx/GG8zort8lXAPR7PpwIfl3FMHLHaZe1w1jReAOYAUso25lKypvGB1zIbgPvt30/HShgtPV4fZu9zfBmxPmwfs6ITgEJgL3CS13Jl1jTKWKbEMS3luOcBTT3KTrXjaudR1sGOb6THejlAfY9l/glsDPB/+AbPdYAVwEOV+EwI1hfjFeUcd+/3fLL9N6jltewy4B/278l41DDssreB173W6WMv18Tj/2mF1zKPAHO8yhra6w2yn0/BSgCxHstMBmbbv9ex/wY3lPI+r7H/T8WjLNb+H7ukosfYzYfWNCrJGDMd6wzwHOArrC+qBSJyn71Id6wP+nyPdQ5gnTH3qOTuC4HfPLa7BetyT2W3620yVm0GEUnCqjG9XsltTsH6YK8XkZdE5CyvsztfVng9347VhgTQDdhunNe5F2Edo/JssmPpA/THer+fi0g/P9YNllRjzC6P592x3s/mogJjTAol/75b7P+nIp7HxCcRuUhEfhGRnXbvueexLoUV+S9wv4jMF5HHRKR/OdtrIiKvish6ETmAdamnidc2ffF+z/2xajjpInKo6IF1lt+xjO30B67wWudX+zXP9Zb4WO8Er/W2+VjvD2NMgcdzz2PcA6s2O6eM2NoDmR77OICVnMp6T2FLG8KDwFiNpd/Zj0dE5DXgYRF5prxVSykvxDpb8xQf4DaC6R3gSRE5HuuSQTrwTRnLF31Re74HR/zGmKUi0g6rhnAKVpvPchE51RhT2hd9ntdzQ3B6AOYaYzZ6PP9dRM7Duhw2zmNf/v5NPPn7tzzsx7aKeP7NAzomdq+wD4F/Yb2//cBorBqytQFjXheRb7DahEZiXQJ6whjzcCmbfQvrMtrfsGpfR7C+RBPKeR/e7zkG2IV1OcjbwTK2EwO8hpX8vHmeRPja30zgLh/reSazyvzfxWDVlC718VooO3sEjSaNqvEH1rGtCazB+scZinX9FBGpBxyD1aDmSzqQKCL1jDFFH5Y+PpaLwboWO8/ebhusWs+aCsadi1V1djDGZIjIJ1hV7b7AW2V8sRfFD9Y156Lf+/jYbibwMfCx3d9+AdAJq2E/UGuBFiLSwhiz3S4bQMWTSgHWWW+RdKz3A4CINPV8bsuj5PFLB5qKiBj72gS+/5be1mC9n3ZFtQ0R6YD19/3Dz/fgy3FAmjHm0aICEWnrvZAxJhWrQXqSiNyNdQ3/4VK2eTxwmzFmpr09X8fGH0uxkk+hXasKZL2eXonf3/UuwaqteScGf63BSpKnYF2G8rWPy4A9xpj9FdxHWNHLU5UgIo1E5HsRuUJEjhWR9iJyMfAPrGulB40xG7AaNF8VkeF2o927WGdO75ey6YVYZ0VPiEgnEbkQq8HSWz4wQUSGikgfrDO+1Vi9sypiM9BWRPqJSLKIeDYiTwYux2po9G5g9LYRq5r/sIh0EZHTsHo+HSUid4jIZSLSXUQ6YTWIFvWKqojvsBrS3xKR3vYZ9XNYx6i82liciDSzH51F5H6syw6feyzzPXCziAwQkb5Yl9e8u+NuBk6xt9PQLpsLJAH3iUhHEbkW8OdejtlYl+Pes/c5AHgP60voez/WL816oKWIXC4iHUTkRqwvtaNE5L8icob9eh/gDMpOVOuxLg/1EJGBWDWZinRnnY11WelzERllf56Gisi/RMRX7aPIk8AgEXlFRPran5mzReTVcvb3Elb74lQRGWy/35EiMklE6voTsH3i81+sz+rV9t94kH1cwfqb7bLf04n2ezpBRJ4Vkc7+7CPcaNKonENYZ8d/xerutxqrJ8X7WL0silyN1fbwhf0zETjDWPdJlGCsexQux2oMXQlch9U7w9sRrJ4yb2MlmhjgAo8z2kBNB2ZhXVpIx/llMhfrC31ueWeB9lnbpVgNt8uxLoXc57VYJvB3rOOxFOvse5QxJqsigds1n/Oxri//hpVA/42VMMq716IrVsPtDqxLCZcANxpj3vZY5k4gBes4fIx1OWS313buxOpxtA343Y5rDXAj1t9wBdbf9HE/3o/BajtKx+p98wOwEzivEn9fjDEzgKeBCR7xPOi1WAzwP6xE8R3Wl95VZWz2GqwG4SVYCeMNAut5VhSbwbok9j3WSco6YBrW32d7GeutAE7A6mzxI9b/3BM4LzH5Wm87Vs2rEPga6/P7Etbn6kgAod+LlbgewKp5TAda2fvIsmNLAT7CqhG/hdWmsS+AfYQNqcT/n6pGxOoenAbcaox5z+14/CEivbGSwABjjHcjqFKqArRNQ5VJrB5NyVi1qWysM7+wJCLnY13W24B11vkc1lnnUhfDUiqqaNJQ5WkD/Il1aerqSjQYhkJdrMsErbGq/nOBv1Xmco5SykkvTymllPKbNoQrpZTyW8RfnkpOTjbt2rVzOwzXrVtnDdvUtWtXlyMJL4dy8wGokxDx/+pKBdWSJUv2GGMaB7pexH+S2rVrx+LFi90Ow3UjRowAYO7cua7GEW5+2roXgBPauD5SvVJhRUS2VGQ9vTyllFLKbxFf01CW+++/v/yFqqFujeq4HYJSUUWTRpQYOXKk2yGEpSa1A5pOQylVDr08FSWWLVvGsmXL3A4j7OzPyWN/TjjfWqJUZNGaRpS4/fbbAW0I97ZitzVIsDaEKxUcWtNQSinlN61pqLBijCF1XzZ7D+eSdSQfBLo0rUtyHW2bUCocaNJQrjPGsCAlg5krt/PD2nTS9pccMb55/ZoM7dCIcUPb0rdNQx9bUUqFQkiThoicgTVhSSzwmjHmP16vj8ca679oisYXjTGvhTJGFVorUvfzxKy1zE/ZW+ZyOw7k8MnvaXzyexp92zTgjlO7MLxzwDezKqUqKWRJQ0RisSY4ORVrxNRFIvKFMcZ7RrCpxphbQhVXtHj88XLn9QkrR/ILePTLP3h3wdaA1/19637Gvf4blw5szX1ndadezdKn6u7Z2K8J2JRSfgplTWMQsLFo1jcR+RBrZrLKzHesbMOGDXM7BL9t35/Nje8tZfm2/T5frxEXQ+emdaidEMfh3HzW7zxEbkHJKck/XLSNn9an8/IV/enduoHPbTWqlRDEyJVSoUwaLbGmwSySCgz2sdyFInIC1rzDfzPGbPNeQESuw5o+kzZt2lRBqJFn3rx5QPgnj1VpB7jqjd/Ye7jkFNLHd0rmmuPbMbRDMrUSYo+W5+YXMj9lL2/++idz16U71tl+IIdLJy3gpcv7cnK3piW2uTfb2o8mD6WCI2TzaYjIRVjzYv+f/XwcMNjzUpSINAIOGWOOiMj1wBhjzMllbXfAgAFGByyMjAEL1+w4yGWTF7A/y3mzXdtGiTx6bi9O6FJ+G8XvW/dx10fL2ZR+2FEeGyM8fn4vxgx0nkTogIVK+SYiS4wxAwJdL5T3aaRhzahWpBXFDd4AGGP2GmOKJnR/DegfothUFduwK5MrXltYImGc0q0JX9xyvF8JA6Bvm4bMvG041xzX3lFeUGi4e/pKPvs9rZQ1lVLBEMqksQjoLCLtRSQBuBT4wnMBEWnu8XQ0sCaE8akqsjszh3Gvl7wk9Zfh7Zl85QDq1yq9IduXmvGxPHhODx45tyciztfu+mg5P6zdXdmQlVKlCFnSMMbkA7cA32Alg2nGmNUi8oiIjLYXu01EVovIcuA2YHyo4lNVIze/kJvfW8rOgzmO8muOa899Z3YnJkZKWbN8Vw5txytX9Cc+tngb+YWGG99bwtKt+yq8XaVU6UI6jIgxZpYxposxpqMx5t922YPGmC/s3+81xvQ0xvQ2xpxkjFkbyvhU8P175h8s2uz8Ar98cBseOLs74l1NqIDTezbjuUv6OGocOXmF3PjuEnZn5pS+olKqQvSO8CgxYcIEt0Mo4fNlabw13zk52PGdkvnX6J5BSRhFzundgv3ZeTzw2aqjZbsOHuGW935n4pX9iIvRIdaUChb9NEWJPn360KdPH7fDOGrXwRzHlzhAq4a1+N9lfYmLDf6/3bghbbn+xA6Ost82Z/DSnI00KOPmP6VUYDRpRInZs2cze/Zst8MArLGk7p6+goM5+UfLEuJieOWK/jSsXXX3S/z9tK4c18nZtfaXlL18s2Znle1TqepGk0aUeOyxx3jsscfcDgOAqYu2lbgJ7x+nd6VXy/pVut+42BheuLQvLRvUOlp2au9m/LHnEHsPHSljTaWUvzRpqKDafTCHx2Y6e0oPapfE1V73VVSVRnVq8OLYvsR69MrKKyjknk9WEqobWZWKZpo0VFA9PmsNh44UX5aqFR/L0xcf6/gSr2p92zTk1pM7Ocq++2MXHy1JDVkMSkUrTRoqaBam7OWzZdsdZX8/vSttG9UOeSw3n9SpxCCG/565hvRMvUylVGVo0lBBkVdQyIOfr3aUdWtWlyuHtnUlnvjYGCaM6eO4efBAdh6PfKmDKitVGXqfRpR49dVXXd3/ewu2sG5XpqPs0fN6VUn3Wn+1T65Nw9hYXvkl5WjZjOXbuaBvS07q1sS1uJSKZFrTiBJdu3ala9euruw7MyePF77f6Ci7oG9LBrZLciUeT1cNaUcTr/nF7/9sFVm5+aWsoZQqiyaNKDFjxgxmzJjhyr4n//wnGR6DESYmxHLPmd1cicVbenYu94/ugWc7fNr+bF6eu8m9oJSKYJo0osSzzz7Ls88+G/L97s7M4bWfUxxlfxnegSZ1a4Y8Fl82ZBwmL4YSQ6m/+lMKW/dmuRSVUpFLk4aqlP/N2UhWbsHR541qJ/CXEzqUsYY7/jqyM43rFl+mys0v1EZxpSpAk4aqsG0ZWXzw21ZH2a0nd6JOjfDrX1G3Zjz3nOG8ZDZ7zS7mrtO5N5QKhCYNVWET524iv7D4LuvWSbUYO9idLrb+OL9vS/q1aeAoe3zWGgoK9U5xpfylSUNVSNr+bD5ess1RdtvJnUmIC99/qZgY4V+jeznm3li/6xDT9U5xpfwWftcRVIW88847Id3fxB82kldQfIbeJimR8/q2DGkM/hjQvIHj+TGt6nN+n5Z84jGX+HPfreec3i2olRAb4uiUijzhe1qoAtK6dWtat24dkn1t35/NtMXOWsbNJ3Uk3sUb+UqTGB9LYrwzGdxxWhdHjWjnwRze+PXPUIemVEQKv0+5qpCpU6cyderUkOxr0k8pjlpGq4a1uKBfq5DsO1CpB7NJPZjtKGvVMJGrh7VzlL0yd5PjXhOllG+aNKLEyy+/zMsvv1zl+9l3OJepi7xrGZ3CspYBkLI/i5T9Je/HuGlEJ+rXKp7RL/NIPv/7fkMoQ1MqIoXnJ12FrbfnbyE7r/i+jKb1anBBv/BryyhP/cR4bjnJOXz6uwu2sGXvYZciUioyaNJQfsvOLeCt+ZsdZdce354acZHZgDxuaFvHLH95BYanv1nnYkRKhT9NGspvHy3Z5rjuX7dmHJcNauNiRJVTMz6Wv5/uHOTxyxU7WL5tvzsBKRUBNGkovxQUGiZ7jTF1xZC21K0ZX8oakWF07xb0bFHPUfbMt1rbUKo0mjSixMcff8zHH39cZdufvWYX2zKKeyElxMZw9XHtqmx/wTK4RUMGt2hY6usxMcK9o7o7yn7esIff/syo6tCUikiaNKJEcnIyycnJVbb9Kb9udjw/r2+LsBnJtiw14mKoUc5d6sd3TmZIB+fcH89+uw5jdHgRpbxp0ogSU6ZMYcqUKVWy7bU7DzI/Za+jbPyw9qUsHV62HMhiy4Hyh0C/8zRn28bCPzOYt2lvKUsrVX1p0ogSVZk03pq32fF8cPskeni1A4SrLQey2XIgu9zlBrZLYnhnZ01NaxtKlaRJQ5Vp3+FcPvUYpwmIiLaMivCubSzdup+569Ndikap8KRJQ5Vp6uJt5OQVHn3eskEtRnZv6mJEVadP6wac0q2Jo+z579ZrbUMpD5o0VKnyCwp5Z/4WR9m4oW2JC9MhQ4Lhb6d2cTxfkXqA2Wt0oialikTvp19V2uw1u0jbX9weUCMuhjEDQjOSrlt6tazP6T2dNannvltPoU7UpBQQ4qQhImeIyDoR2Sgi95Sx3IUiYkRkQCjji2SzZs1i1qxZQd3mm17dbM/v25KGtROCuo+qNqxVEsNaJZW/oIe/ndrFMVHTmh0H+Xr1ziBHplRkClnSEJFY4CVgFNADuExEevhYri7wV2BhqGKLBomJiSQmJgZte39sP8hCrxvcrvIaTjwSxMUIcTFS/oIeujWrx1nHNHeUPf/dep0WVilCW9MYBGw0xqQYY3KBD4FzfSz3KPAkkBPC2CLexIkTmThxYtC2593NdkiHJLo3j4xutp427TvMpn2Bj1x7+8gueOaaDbsP8eWK7UGMTKnIFMqk0RLwnIgh1S47SkT6Aa2NMTPL2pCIXCcii0VkcXq6dokEmDZtGtOmTQvKtg5k5fHZMmc320i5mc9bWmYOaZmBn390alKH8/o4h3yfMHsD+QWFpayhVPUQNg3hIhIDPAfcWd6yxphJxpgBxpgBjRs3rvrgqpnpS1M5ku/dzbZJGWtEp9tO6UysR3Xjzz2H+WyZ1jZU9RbKpJEGeHa9aWWXFakL9ALmishmYAjwhTaGh5Yxhvd/2+oou2xQ66juZluadsm1udBrgqn/zllPntY2VDUWym+CRUBnEWkvIgnApcAXRS8aYw4YY5KNMe2MMe2ABcBoY8ziEMZY7S3avI+Nuw8dfR4XI1wS5d1sy3LryZ2Jjy2ubWzLyObjJakuRqSUu0KWNIwx+cAtwDfAGmCaMWa1iDwiIqNDFYcq2/sLnTfzjezelCb1wn8026rSOimxRNJ88fuNHMkvKGUNpaJbXCh3ZoyZBczyKnuwlGVHhCKmaDF37txKb2Pf4VxmrXLejzB2cOTOzAdwQptGld7GLSd34qPFqeTal6XS9mczbdE2xg1tV+ltKxVpqt+FalWq6UtTyfVoAG+TlMjxnapujo5I0bx+rRLJ88UfNpKTp7UNVf1o0ogSzzzzDM8880yF1/fVAH7poNbEBHhjXLhZn3GI9RmHyl+wHDeN6OiYzGnXwSO8v3BrGWsoFZ00aUSJL7/8ki+//LLC6y9IySAlvfgmuLgY4eL+kd8AvvPQEXYeOlLp7TSpV5NxQ9o6yibO3UR2rtY2VPWiSUMB8IFXLeP0ns1oXLeGS9GEpxtGdKRWfOzR53sOHeGdBZvdC0gpF2jSUGQczuXrKGsArwrJdWqUGH/rlR9TOHQk352AlHKBJg3Fx0u2He0ZBNCuUSJDO1S+11E0uv6EDtSpUdzpMONwbolxupSKZpo0okStWrWoVatWwOsZY/jgt22OsssGtYn4BvAisTHiGAqkshrWTuAar+luJ/2UwsGcvKDtQ6lwpkkjSnz11Vd89dVXAa83f9Ne/txT3AAeHytc2L9VMENz1XGtkjguwPk0ynPt8R2oW7O4tnEgO483f9kc1H0oFa40aVRz7/loAE+uow3gZamfGM9fhndwlL32SwoHsrS2oaKfJo0o8eijj/Loo48GtM6eQ0f4dnV0N4Cv2ZPJmj2ZQd/u1ce1o0Fi/NHnmTn5TP45Jej7USrcaNKIEnPmzGHOnDkBrfPR4lTyCopno+uQXDvqGsDTs3JJz8oN+nbr1oznuhOctY03f/2TjMPB35dS4USTRjVVWGhK3Jtx2aA2iERHA3goXDW0HY085kw/nFvAKz9ucjEipaqeJo1qat6mvWzNyDr6PCE2JqoawEOhdo04bjixo6PsrXmb2XEg26WIlKp6mjSqqfd/cw6BPuqYZiR5nDUr/4wb2pam9Yo7DhzJL+SFORtcjEipqqVJI0o0atSIRo38a49IzzzCt6t3OcrGDoquBvAiCbExJFThrIM142O5fWQXR9m0xalsSq/8IIlKhSNNGlFi+vTpTJ8+3a9lP1qyjfzC4gbwjo1rM6h9cO9lCBdDWjZkSMuGVbqPi/u3okNy7aPPCwoNz327vkr3qZRbNGlUM4WFhg993AGuDeAVFxcbw52ndXWUzVy5gxWp+90JSKkqpEkjStx7773ce++95S7366Y9zgbwuBgu7Be9DeCr0g+yKv1gle9nVK9mHNOyvqPs6W/WVfl+lQo1TRpRYv78+cyfP7/c5by72Z7ZqxkNo7gBPCM7j4zsqr9TOyZG+McZztrGzxv28OvGPVW+b6VCSZNGNbI7M6dkA/jgtqUsrQJ1fKdkhnV0dkZ46uu1GGNKWUOpyKNJoxr5eElqiQbwge2qtpG4OhER/nFGN0fZ8tQDfOU1V4lSkUyTRjWhDeCh0ad1A87o2cxR9uTXa8nNLyxlDaUiiyaNKNGqVStatSq9Qbu6NYAXqRUXQ6240P6b33V6V8ccHlv2ZvH2/M0hjUGpqhJX/iIqErz77rtlvv7+wurVAF5kYIvQX37r1KQOYwe14Z0FxXfdvzBnAxf2a1UtjrmKblrTqAZ2Z+bw3R/aAB5Kt4/sTF2PaWEP5uTzwvc6vIiKfJo0osTtt9/O7bff7vO1jxY7G8A7NalTbRrAl+8+wPLdB0K+30Z1anDTSZ0cZe/M30KKDi+iIlxASUNE9HJWmFq2bBnLli0rUV5YaPhwUfUdAv1ATj4HcvJd2ffVx7WjZYPiedvzCw3/+WqtK7EoFSyB1jR2iMgzItK9SqJRQffLxj1syygeqjshLoYL+rZ0MaLqo2Z8LHePcnbB/faPXSxI2etSREpVXqBJ4z5gGLBKROaLyLUiUqcK4lJBUt3uAA835xzbnL5tGjjKHpv5B4WFesOfikwBJQ1jzGRjzDCgF/AL8BhW7eMNETmuKgJUFacN4O4TEe4/y1kxX5V2kOlLU12KSKnKqVBDuDFmjTHm70ArrNrHWOAnEVkrIjeIiDawh1iXLl3o0sU5r0N1bgAvUichljoJsa7G0L9tEmcd09xR9uTXazkQgjGxlAq2CjVsi0gCcAFwDXAyVq3jdaAF8AAwArg0OCEqf0yaNMnxvKCaN4AX6desgdshAHDPqG58t2bX0TvD9xzK5fnv1vPw6J4uR6ZUYALtPdVPRF4EdgATgGVAD2PMCGPMO8aYJ4HTgHNLWf8MEVknIhtF5B4fr98gIitFZJmI/CIiPQJ9Q8ry4/rd2gAeRlonJXKj13zib8/fzJodVT9su1LBFOhlpEVAR+A6oJUx5h/GGO8pyjYDH3qvKCKxwEvAKKAHcJmPpPC+MeYYY0wf4CnguQDjq7auu+46rrvuuqPP35rnnAP8nGNbVMsG8KU797N05363wwDgxhEdaZ1U3AW30MCDn6/SUXBVRAk0aXQwxowyxkw3xvjs/G6MOWyMudrHS4OAjcaYFGNMLlZiOddrXc/TrtqAfpr8tH79etavt/L3n3sO8+P6dMfrVw6tng3gh3ILOJRb4HYYgNUF98GznZejFm3ex+fLtrsUkVKBCzRp/CAijbwLRaSBiKSUs25LwHOY1VS7zHtbN4vIJqyaxm2+NiQi14nIYhFZnJ6e7muRau3dBc5aRu/WDejduoE7wSiHkd2bcFLXxo6yf89aQ2aONoqryBBo0mgH+OqKUgMfCaAijDEvGWM6AncD95eyzCRjzABjzIDGjRv7WqTaysrNZ9pi5xDoVw6pnrWMcCQiPHROTxJiiz966ZlH+O9sHZdKRQa/ek+JyAUeT88SEc/BfGKBU7DaMsqSBrT2eN7KLivNh8DL/sSnin2+bDuZHsNmJNVO4Kxjm5exhgq1dsm1uf7EDvzv+41Hy96ct5mLB7Sma7O6LkamVPn87XL7sf3TYHWt9ZSHlTDuLGcbi4DOItIeK1lcinV/x1Ei0tkYU3TKdRagp19+6tOnD8YY3pq32VF+6cDW1Ix39z4FN9WvGZ7Dpd00ohOfLE0jbb/Vw62g0HD39BVMv3GYYy4OpcKNX5enjDExxpgYYCvQpOi5/ahhjOlqjPmynG3kA7cA3wBrgGnGmNUi8oiIjLYXu0VEVovIMuAO4KqKvrHqZsKECVzxt4dYuzPzaFmMwOXV/NJU7yb16d2kvtthlFArIZYHznZ2Hly2bT/v6GRNKswFdBpmjGlfmZ0ZY2YBs7zKHvT4/a+V2X51513LGNm9qWOUVRVeTu/ZlFN7NHUM9fL0N+s4tWcz/bupsFVu0hCRO4CJxpgc+/dSGWP0vgqXXDTmMr5ZvZNGZ991tOzKoe3cCyhMLNq+D3BnBr/yiAiPntuLBZv2knnEaoc6nFvA/Z+u5I3xA6vd3fsqMvhT07gVeAvIsX8vjUFvxnPNsrUp5B0sngO8Q+PaHNepRO/oaifbHrYjXDWrX5O7R3Xj/s9WHS37YV06M1bsYHTvFi5GppRv5SYNz0tSlb08parGkfwCdh/McZRdNbSdnqlGiLGD2vD5sjQWbd53tOxfX6xmeKfkankXvwpvlR6NVkTigxGIqrgvlm0nt6D4jLp2QiwX9NNxpiJFTIzwxAXHOu7d2Hs4l8dmrnExKqV8C3TAwttE5EKP528A2fYghF2DHp0qlzGG13/501F2ycDW1K2puTySdGpSh1tPds4pPn1pKj+s2+1SREr5FmhN4zYgHUBETgAuxrrXYhnwbFAjU375ecMe1u7MpEbLbtRo2Y0YgWuO06uIRZJqxZNUKzIS6PUndqRrU+fNfXd/vIL9WbkuRaRUSYEmjZZA0WntOcBHxphpwMPAkCDGpfw0+WdryK+GJ46n4YnjGdWrOa2TEl2OKnz0alyPXo3ruR2GXxLiYnjyomPxvLdvd+YRHvh8tXtBKeUl0KRxEGhi/34qMMf+PQ+oGayglH/W7jzIzxv2OMr+b7jWMiJZn9YNuGmE8zLVjOXb+WK5joSrwkOgSeNbYLKIvAZ0Ar6yy3tSXANRIfLaz8WHPP3Tx8n75mn6tgm/+xHctCBtHwvS9pW/YBi57ZTO9GzhrB098Nkqdh7IKWUNpUIn0KRxM/Ar0Bi4yBiTYZf3Az4IZmCqbLsP5vD5suLxHguyD9IoTq99e8stKHT0LIsECXExPD+mDwlxxR/PA9l5/GP6Cp2wSbkuoKRhjDlojLnVGHOuMeZrj/KHjDGPBz88VZq35m8mr6D4C6RmfKz26Y8iXZrW5e+nOTsk/rQ+nXcXbi1lDaVCo0L3aYhICxHpY88ZfvQR7OCUb1m5+by7wPnl0bx+TfRWvuhy7fHtGdw+yVH2+Mw1bEo/5FJESgV+n0ZfEVmNNQPfUmCxx2NR8MNTvny0OJUD2cUzvTVIjKdx3RouRqSqQkyM8MzFvamdUDy0fXZeATe/t5ScvPCYwlZVP4HWNCZhJYzhQAegvcejQ3BDU77kFRTy2i/OmXWvGNyWU0eO5JRTTnEpqvDVODGBxomRe9mudVIiD412ziu+dmcmj375h0sRqeou0BlqegB9jTHrqyIYVb7Pl21nW0b20ecJsTFcOawtTU5/wMWowlf35MifCe/i/q34ecMeZnh0u31v4VaGdmzE2cfqoIYqtAKtaawEmlVFIKp8+QWFvPTDRkfZRQNa0aSu3iITzUSEx8/vRbtGzps275m+ks17DrsUlaquAk0a9wFPichIEWkqIkmej6oIUBX7csUO/vT4koiLEW48sSMAo0aNYtSoUW6FFrZ+Tc3g19SM8hcMc3VrxvPi2H6OQQ0PHcnnlg+WciRf2zdU6ASaNGYDg7Bu8tuONQ5VOrDH/qmqSEGh4X/fO6dMv7Bfq6NDhmRnZ5Odne1r1WqtoNBQUBgd9zb0almf+8/u7ihblXaQJ2atdSkiVR0F2qZxUpVEoco1a+UONqUX1zJiY4SbTuroYkTKDeOGtGVByl5mrdx5tGzKvM30a9tQJ21SIRHoHOE/VlUgqnSFhYYXv3e2ZZzXpyVtG9V2KSLlFhHhPxcey8q0A44OEf/4eDkdkmvTq2V9F6NT1UHAN/eJyDEi8qKIfCUize2y80Skb/DDUwDf/rGTdbsyjz6PEbhZaxnVVr2a8bzk1b6Rk1fI9e8sYe+hIy5GpqqDQG/uOw3rJr6WwMlALfuljsBDwQ1NgTXJ0n/nOGsZ5/RuQYfGdRxlZ599NmeffXYoQ4sIzerUoFmd6Lvx8dhWDXjs/F6OsrT92dz03lLyImysLRVZAq1pPArcYYw5H/AcHW8uVgO5CrLZa3azZsfBo89F4JaTOpVY7q677uKuu+4KZWgRoUtSHbok1Sl/wQh0yYDWjB/WzlG28M8MHtMb/1QVCjRp9AJm+SjPALTLbZAVFhomzHbeR3nmMc3p3DTyb1hTwfHPs7ozpIPzo/fW/C1MW7TNpYhUtAs0aWRgXZry1g9IrXw4ytOsVTtYvf2go8x7HukiI0aMYMSIESGIKrL8tHUvP23d63YYVSY+NoaXxvajZYNajvL7P1vFwpTofd/KPYEmjfeBp0WkFWCAOBE5EXgGeDvYwVVneQWFPPuts5Zx1jHN6dYsMqYuVaHTqE4NXh3Xn5rxxR/n3IJC/vL2YjbuzixjTaUCF2jSuB9rhr4tQB3gD+AH4Bfg38ENrXr7aHGq4+7v2BjhjtO6uBiRCme9WtbnqYt6O8oO5uRz1RuL2H1QZ/xTwRPoJEx5xpjLgc7AJcBYoKsxZpwxRscyCJKcvAL+O8dZy7hkQCs6No7OBl0VHKN7t+DOU50nFmn7s7nmrUUcPpLvUlQq2vidNESklog8JCIrgBXAm8A/gTEiUqvstVUgXv/lT3YdLO5vnxAXw22ndHYxIhUpbjm5E5cObO0oW5V2kFveX0q+dsVVQeDXHeEiEgd8j9Xg/TUwExCsodIfBEaJyInGGD2dqaT0zCNM9BrJ9qqhbWlev+y8fMkll1RlWBGrZTUbAVhEeOy8Xuw8mMPcdcXDwf2wLp0HPl/F4+cfg4jO8agqzt9hRK4DOgH9jDGrPV8QkV5Y7Rp/AV4ObnjVz3PfredwbvGVvgaJ8dxyUvm1jJtuuqkqw4pYHRtWv6FW4uweVWMmzWdVWnHvuw9+20a9mvHcM6qbJg5VYf5enroI+Ld3wgAwxqwCngAuDmZg1dG6nZlMXeSc+/u2kztTPzG+3HWzsrLIysqqqtAiVn6hIT9KRrkNRO0acbwxfmCJrriv/pTCf+dsKGUtpcrnb9LoiXV5qjSzsW78K5OInCEi60Rko4jc4+P1O0TkDxFZISJzRKStn/FFPGMMj838A8/vt/bJtbliiH+H4Mwzz+TMM8+sougi17zUDOZFwXwaFdGkbk3eumYgDb1OOibM3sCrP25yKSoV6fxNGg0pe76MdKBBWRsQkVjgJWAUVlvIZSLSw2ux34EBxphjgY+Bp/yML+J9+8cuft6wx1F2z6huJMQFPKakUkd1alKXd64dTN2azivRT3y1lrfnb3YnKBXR/P1GigXKauQutJcpyyBgozEmxRiTC3wInOu5gDHmB2NM0TWWBUArP+OLaDl5BTzqNV7QkA5JnNajqUsRqWjSq2V9plw9iMQE50f0wc9X63AjKmD+NoQL8K6IlDbusj/DiLYEPP9DU4HBZSx/LfCVz2BErsNqnKdNmzZ+7Dq8vfLjJlL3Fc+NEBsj/Gt0L22sVEHTv21DXr9qIOPf/I0j+cVdb+/+ZAX5hYaxgyP/c6RCw9+axltY07vuLeWxnSAOIyIiVwADgKd9vW6MmWSMGWCMGdC4ceNg7dYV2zKyeHmu8/rylUPb0rWZDkqogmtox0a8Oq4/8bHFJyPGwH2fruS1n1NcjExFEr9qGsaYq4OwrzTA866jVnaZg4iMxLpp8ERjTFTPKGOM4f7PVjnO/JLrJHD7yMCHCxk/fnwQI4sebcu5v6W6GdG1CS+O7cfN7y119Cp7bOYasnMLuOXkTlrDVWUKdI7wylgEdBaR9ljJ4lKsYUiOsmf/exU4wxizO4SxuWLmyh38uN7Zv+DuM7pRv1b5XWy9adLwrW39RLdDCDun92zGq+P6c+N7S8n1OGF51r5H6O4zumriUKUKWdcc+27xW4BvgDXANGPMahF5RERG24s9jTUQ4kciskxEvghVfKF2IDuPf81wNn4Pap/ERf0r1va/Z88e9uzZU/6C1cyR/EJHTU5ZTunelDfHD6RWvLNx/JUfN/HQF6spqIb3tij/iDGR/c8xYMAAs3jxYrfDCNi9n6zkg9+Kb+SLjxW++usJdGpSsUEJi+bSmDt3bhCiix5Fc2mc0KaRy5GEp8WbM7j6zUVkeg1oeEbPZky4tA8148vrFKkilYgsMcYMCHQ9vQnABT+uT3ckDIAbR3SqcMJQqqIGtEvi/b8MoYHXDYBfr97J2MkLyDicW8qaqrrSpBFiB7LzuPvjFY6yDsm1uWlER5ciUtXdMa3qM/W6oTSt5+w5v3Trfi6Y+CubPeZ1UUqTRoj9a8ZqdnpMihMj8MwlvfUygHJV12Z1+fSm4+jqNf/85r1ZXPDyPJZu3edSZCrcaNIIoW9W7+STpc5extef2JF+bRq6FJFSxVo0qMW0G4YyrKOz/SfjcC6XTlrAp7+nuhSZCieh7HJbre09dIR/frrSUda1aV1uHxmcyZVuvPHGoGwn2nRooF1uA1G/VjxTrh7EPdNX8MnvxSc4ufmF/G3qctbsyOTuM7oRG6NdcqsrTRohYIzhgc9XsedQcaNiXIzw7CW9qREXnMtSY8aMCcp2ok2renpzX6AS4mJ49pLetGxYi/9975wQbNJPKazdmcn/Lu3r15D9Kvro5akQ+GL5dmat3Okou/XkzvRqWT9o+9i2bRvbtungc96y8grIytPp6wMlItx5Wleeu6R3iZGWf1qfzrkv/cLG3ZkuRafcpEmjim3ec5h/frrKUXZMy/rcdFJwe0uNGzeOcePGBXWb0WDxjv0s3rHf7TAi1gX9WvHR9SV7Vm3em8W5L/7KjOXbXYpMuUWTRhXKySvg5veXcsjjxqmiqn98rB56FRl6t27AjFuOp2+bBo7yw7kF3PrB7zz0+SqO5GttrrrQb64q9PisNazeftBRdt+obnRpqiPYqsjSpF5NPrxuCBf7GObmrflbuOSV+aTu0+mGqwNNGlVk5oodvD1/i6NsVK9mXDWsnTsBKVVJNeJieeqiY3nsvF4keNWUl6ce4KwXfuH7tbtcik6FiiaNKrBl72Hunu6867tNUiJPXnSsjh6qIpqIcMWQtky/cRitGjp7ph3IzuOaKYt56uu15BfoIJHRSrvcBtmR/JLtGPGxwotj+1KvZtV1UbzzzjurbNuRrHNSbbdDiErHtKrPzFuHc+dHy5m9xlm7mDh3E0u27ON/l/WlSb2aLkWoqoqOchtk9326kvcXOgcjfPicHow/rr1LESlVdYwxTPophae+WVdiOPXkOgk8P6YPwztH9uya0UpHuQ0D7y7YUiJhnNEzNO0Y69atY926dVW+n0iTmZtPZm5++QuqChERrj+xIx/8ZQhN6jq75e45lMuVb/zGM9+s08tVUUSTRpAsSNnLw1+sdpS1TqoVsnaM66+/nuuvv77K9xNpft95gN93HnA7jKg3qH0Ss/46nOM6OcetMgZe/GEjYycvZOeBnFLWVpFEk0YQpO7L4iavOZcTE2KZfOWACk3dqlQkSq5Tg7evGcwdp3bBe2iq3zZncOYLPzN3XdTP4hz1NGlUUlZuPn95e0mJyWqeu6QP3ZrVcykqpdwRGyPcdkpn3vu/kperMg7nMv7NRfznq7Xk6eWqiKVJoxKMMfz9oxWs2eG8ge/2kZ05o1czl6JSyn1DOzZi1l+HM7xzconXXvlxE5dOWsD2/dkuRKYqS5NGJfx3zgZmrtzhKDu9Z1NuOzk4w50rFcmS69TgrasH8ffTu5a4XLVkyz7OfOFn5qzRmwEjjd6nUUHTl6QyYfYGR1m3ZnV57pI+xLgw18D9998f8n1Ggm6NdN51N8XECDef1ImB7ZK47YPfHbNW7s/K49q3FvOX4e35++ndSoymq8KT3qdRAfM27uGqN38jr6D42DVMjOeLW46ndZJO+qOULxmHc7lj2jLmrksv8Vqf1g3432V99fMTQnqfRois35XJ9e8ucSSMhLgYJl05wNV/+GXLlrFs2TLX9h+u9ufksT8nz+0wFJBUO4E3rhrIPaNKzvy3bNt+znrhZ75ZvbOUtVW40KQRgN2ZOVz95iIyc5w3iz17cW8GtktyKSrL7bffzu233+5qDOFoxe6DrNh9sPwFVUjExAg3nNiRadcPoUV95xAjB3Pyuf6dJfxrxmpy87V3VbjSpOGnw0fyuXbKYtK8enzcfUY3zundwqWolIpM/dsmMfO24Yzs3qTEa2/+upmLXpnH1r061Ho40qThh9z8Qm56bykr05x3Fo8d3IYbTuzgUlRKRbaGtROYfOUA7j+rO3Fel6tWpB7grBd+5utVO0pZW7lFk0Y5CgsNd320nB/XOxvvRnRtzCOje+pQ50pVgojwf8M78NENQ2nZwDnUeuaRfG54dylPfLVGx64KI5o0ymCM4V8zVvOF1zzIPVvU48Wx/YjTKVuVCoq+bRoy67bhnNajaYnXXv0xhSvf+I29h464EJnypl1uy/Df2Rt4fvZ6R1m7Rol8dMMwGnsNkeC2efPmATBs2DCXIwkve7Ot4V0a1UpwORLlD2MMU+Zt5vFZaxw9FAFa1K/Jy1f0p3frBu4EF2Uq2uVWk0Yp3lmwhQc+W+Uoa1K3BtNvHKZ9yZWqYku27OOm95aw66CzdpEQG8O/zu3JZYPauBRZ9ND7NIJoxvLtPPi5M2HUqxnH29cOCtuEMW/evKO1DVVsb3bu0dqGihz92zZkxq3HM6i9syt7bkEh936ykrs/XkFOXoFL0VVvmjS8/LQ+nTumLcOzAlYzPoY3rx4Y1qPW3nfffdx3331uhxF2Vqdnsjo90+0wVAU0qVuT9/5vMNceX3LWy6mLt3HJq/NLdIFXVS+kSUNEzhCRdSKyUUTu8fH6CSKyVETyReSiUMYG8PvWfVz/jvNu77gY4eXL+9O/rbs37ylVHcXHxvDA2T144bK+1IqPdby2IvUAZ7/wM79s2ONSdNVTyJKGiMQCLwGjgB7AZSLSw2uxrcB44P1QxVXkj+0HGf/mIrK9qrzPXNybk7qVvAFJKRU6o3u34LObj6N9cm1H+b6sPK58YyET524k0ttnI0UoaxqDgI3GmBRjTC7wIXCu5wLGmM3GmBVASDtlb9iVybjXF3Ig2zlG0UPn9OC8vi1DGYpSqhRdm9Xl81uO41SvbrmFBp76eh03vLuETB1nrMqFMmm0BLZ5PE+1ywImIteJyGIRWZyeXnLEzED8uecwY19byF6vmfduPbkTVx9X8lqqUso99WrG8+oV/fn76V3xvq/2m9W7OPelX9mwS9uwqlJENoQbYyYZYwYYYwY0bty4wtvZlpHF2MkLSM90duu79vj23HFql8qGGVITJkxgwoQJbocRdo5tUo9jm4RvBwYVuKI5OqZcPYgGifGO11LSD3PuS78yc4UOP1JVQpk00oDWHs9b2WWu2L4/m8smL2DHgRxH+RVD2nD/Wd0jbniQPn360KdPH7fDCDsNasbToGZ8+QuqiHNil8bMuOV4erZwnhRk5RZw8/tLeXyWDj9SFUKZNBYBnUWkvYgkAJcCX4Rw/0ftPpjD2MkLSN3n7K53yYBWPDK6V8QlDIDZs2cze/Zst8MIO7sPH2H3YR1+Ilq1Tkpk+o3DuKh/qxKvTfophXGv/8YeHX4kqEKWNIwx+cAtwDfAGmCaMWa1iDwiIqMBRGSgiKQCFwOvisjqYMex59ARxr62kM1ewy6f16cFT1xwrCtTtQbDY489xmOPPeZ2GGFn7d5DrN17yO0wVBWqGR/L0xcdy2Pn9SI+1vn5nZ+yl3P+9wu/b93nUnTRJ6RtGsaYWcaYLsaYjsaYf9tlDxpjvrB/X2SMaWWMqW2MaWSM6RnM/e87nMsVry1k427nl8iZxzTjmYt7l5hNTCkVGUSEK4a0Zer1Q2lWzzm5044DOYx5dQHvLdyi3XKDICIbwisi43AuY19byNqdzp4VI7s3YcKYvjpirVJRoF8ba/iRIR1KDj/yz09XcedHy8nKzS9lbeWPavFNuefQEcZOXsCaHc5pP0/o0piXLu9HQly1OAxKVQuN69bg3WsH85fhJbvMf7I0jXP+9wtrd+oUwBUV9d+W6ZlHuGzSghI1jKEdGvHqFf2pERdbyppKqUgVFxvDP8/qwYtj+5KY4PyMb0o/zLkv/soHv23Vy1UVENVDo+8+mMNlkxewKf2wo/z4TslMvnIAtRKiJ2GsW7cOgK5du7ocSXjJtC9F1E2IczkS5Zb1uzK56b2lJdoyAc7p3YLHz+9F3WrYLVvn0/Cy40A2l09eSMoeZ8I4oUtjJo3rT8346EkYSqmyZeXm89Dnq/loSWqJ11o1rMVzl/QpMQx7tNP5NDxs3nOYi16eXyJhnNQ1ehPGjBkzmDFjhtthhJ0dh3LYcSin/AVVVEtMiOPpi3vz3CW9S1yuSt2XzZhJ83li1hqO5OscHeWJuprGmh0Hfd7QM7J7E166vF/UtmGMGDECgLlz57oaR7j5aeteAE5o08jlSFS42Lj7ELe8v7REOydAt2Z1eX5MH7o3j/6hZ7SmgTVF5JhX55dIGKf3bMrEy7XRWykFnZrU4bObj+Pq49qVeG3tzkxGv/gLL8zZoLWOUkRN0vh5QzpXvLaQgznOPtgX9W/FS2O1W61SqljN+FgeOqcn7/3fYJrXd94MmFdgeO679Zz5359ZmLLXpQjDV1R8k36+LI1rpywuMYHSNce156kLj9Ub95RSPh3XKZmvbz+B833Mm7Mp/TBjJi3gHx8vZ99hnWe+SMR/m+7OPMJfP1xGrtdoln8b2YUHzu4esWNJKaVCo36teJ4f04eXxvajUe2EEq9PW5zKKc/9yPsLt+qouURBQ3iN5p1N86smOMoeOqdHtZtAads2a36r1q1bl7Nk9ZJl1z4To7DHnAq+/Vm5/OertXy4aJvP1zs2rs09o7ozsnuTiBwN21O1vU/DM2nExwpPX9Rbp2hVSlXKb39mcN+nK33eEAgwqF0S957Zjb5tGoY4suCp9kmjXs04Jl05gCEdqmfXyqlTpwIwZswYlyMJL6kHrTlTWtWr5XIkKtLk5hcy6adNvPjDRnLyfF+WOrFLY24c0ZHB7ZMiruZRrZPGwNtfZcrVA+nUpK7b4bhG79PwTe/TUJW140A2z3+3no+WpFLa12Wf1g244cSOnNajacS0o1bb+zRqxcfy6U3HVeuEoZSqOs3r1+Kpi3rz1V+Hc1LXxj6XWbZtPze8u4SRz//Iaz+nkBHFva0iPml0aFybxnVruB2GUirKdWtWjzevHsT7/zeY/m19t2WkpB/msZlrGPz4bG5+byk/rk+noDCyr+Z4i/ihP2Mi7DqiUiqyDeuUzLBOySzanMHLczfx/drdJZbJKzDMXLmDmSt30Lx+TU7v2YzTezZjYLuGEX/fWMQnDaWUcsPAdkkMHJ/E2p0HefXHFL5Yvt1nrWLHgRymzNvMlHmbSaqdwCndmnBqj6YM6diIehE4JHvEN4SXNZ9GdbJnzx4AkpOTXY4kvBzJt3q91NBhZFQV230wh+lL05i2eBt/eo2w7UuMwDEt6zOkYyOGdUxmQNuG1K4RuvP4att7SpOGUiqcGGP47c8Mpi7exqyVO0rtrustRqBzk7oc26o+x7ZuQO9W9enarG6VDbSqSaOamzJlCgDjx493NY5ws+VAFgBt6ye6HImqjrJy8/lp/R6+Xb2T2Wt2lRhQtTyxMULbRol0blKHTk3q0LlJXTo1qUPHxnUqPfOoJo1qTu/T8E3v01DhIq+gkIUpGcxes4t5m/awfpfvu839IQItG9SibaNEWjdMpHVSIq0a1qJ1kvU8uU5CuTcbVjRpaEO4UkqFQHxsDMd3Tub4zla7Y3rmERak7GXepr0sTNlbYqbRshhjzTiYui8bKDl8e634WI8kYv1s2aAWrRpayaVBYsUb4DVpKKWUCxrXrcE5vVtwTu8WABzIzmNl6gFWpO1nxbYDrEw7QNr+7AptOzuvgA27D7GhlLGzalfi0pYmDaWUCgP1a8U7aiIAmTl5bEo/zIZdmWxMP8TGXVYi2LYvq9QhTfxxOLfisxJq0lBKqTBVt2Y8fVo3oE/rBo7y7NwCtmQcZltGNtsysti2L4ttGdmk7stiW0ZWpZJCeTRpRIlZs2a5HUJYGtYqye0QlAq6WgmxdGtWj27N6pV4zRjDvqw8RzJJ259F6r5s0ux2EO9ZTgOhSSNKJCZql1Jf4iJkxFGlgkVESKqdQFLtBHp71VDASioZh3NJfrJi29fbZKPExIkTmThxotthhJ1N+w6zaZ//vVKUinYiQqM6FR/kVZNGlJg2bRrTpk1zO4ywk5aZQ1pmjtthKBU1NGkopZTyW0iThoicISLrRGSjiNzj4/UaIjLVfn2hiLQLZXxKKaXKFrKkISKxwEvAKKAHcJmI9PBa7FpgnzGmE/A8UMGmGqWUUlUhlDWNQcBGY0yKMSYX+BA412uZc4G37N8/Bk6RSJutXSmlolgou9y2BLZ5PE8FBpe2jDEmX0QOAI2APZ4Lich1wHX200Misq5KIg5MMl5xusErx4ZFTD5oXP4Lx5hA4wpEOMYE0LUiK0XkfRrGmEnAJLfj8CQiiysyYmRVCseYQOMKRDjGBBpXIMIxJrDiqsh6obw8lQa09njeyi7zuYyIxAH18TWEo1JKKVeEMmksAjqLSHsRSQAuBb7wWuYL4Cr794uA702kT/ihlFJRJGSXp+w2iluAb4BY4A1jzGoReQRYbIz5AngdeEdENgIZWIklUoTV5TJbOMYEGlcgwjEm0LgCEY4xQQXjiviZ+5RSSoWO3hGulFLKb5o0lFJK+U2TRiWJyJ0iYkQkuZTXrxKRDfbjKl/LBDGWR0VkhYgsE5FvRaRFKcsV2MssExHvzghuxhWyY2Xv72kRWWvH9qmINChluc0istKOv0LdFKsgpjKH5KmCuC4WkdUiUigipXYfDeWxCjCukB0vEUkSke/s/+PvRKRhKcuF5HMY9OGbjDH6qOADq3vwN8AWINnH60lAiv2zof17wyqMp57H77cBr5Sy3KEQH6dy4wr1sbL3eRoQZ//+JPBkKctt9vX3dSsmrI4km4AOQAKwHOhRxXF1x7oZbC4woIzlQnas/I0r1McLeAq4x/79njL+r6r8c+jPewduKvpMYnU+mlrWNrWmUTnPA/8ASutNcDrwnTEmwxizD/gOOKOqgjHGHPR4WruMuELKz7hCeqzsuL41xuTbTxdg3TvkKj9j8mdInmDHtcYYEw4jLzj4GVeoj5fncEhvAedV4b7KE/ThmzRpVJCInAukGWOWl7GYr6FTWlZxXP8WkW3A5cCDpSxWU0QWi8gCETmvKuMJIK6QHysv1wBflfKaAb4VkSX2EDZux+T2sSqLW8eqLKE+Xk2NMTvs33cCTUtZLhSfQ3/eu2P4JqBo+CafInIYkVARkdlAMx8v/RO4D+tSQkiVFZMx5nNjzD+Bf4rIvcAtwEM+lm1rjEkTkQ7A9yKy0hizKQziCrry4rKX+SeQD7xXymaOt49XE+A7EVlrjPnJ5ZiCzp+4/BDUYxXEuIKqnO+Go4wxRkRKq/EH/XMYCpo0ymCMGemrXESOAdoDy+1aXCtgqYgMMsbs9Fg0DRjh8bwV1rXXoMfkw3vALHx8ORtj0uyfKSIyF+iLdd3TzbiCfqz8iUtExgNnA6cY+6Kuj20UHa/dIvIpVpW/wl+EQYjJnyF5gh6Xn9sI6rEKUlxBP15lxSQiu0SkuTFmh4g0B3aXso2gfw59CGT4plTxY/gmvTxVAcaYlcaYJsaYdsaYdlhVvn5eCQOsRvLTRKSh3YPiNLusSohIZ4+n5wJrfSzTUERq2L8nA8cBf1RVTP7GRYiPlR3XGVhtUqONMVmlLFNbROoW/W7HtcrNmPBvSJ6QC/WxCkCoj5fncEhXASVqQyH8HAZ/+Kaqbr2vDg88eowAA4DXPF67BthoP66u4jimY31IVwAzgJbeMQHDgJVYvShWAteG4PiUG1eoj5W9v41Y13KX2Y+iHiQtgFn27x3sY7UcWI11ScTVmOznZwLrsc5MqzQme3/nY50cHQF2Ad+4faz8jSvUxwurPWAOsAGYDSTZ5a58Dn29d+ARrBMTgJrAR/b/3m9Ah7K2p8OIKKWU8ptenlJKKeU3TRpKKaX8pklDKaWU3zRpKKWU8psmDaWUUn7TpKFcISIjpIzRgUtZZ7yIHApkmfKeB5uIPCQib3g8nyIiX1bRvt4UkdKGignmfir1HkTkGBFJs+/d8Cz/TUQurHyEKpQ0aaiAiUhjEZko1jDYR+w7YOeIyKluxwZMxbpfwK/XReRhEQnKDWj20Bl3Ao8FY3vl7OsYrIHwJlT1vsqI4RURmWD/vllE7vK1nDFmJdbgi3d4vfQo8B8R0e+hCKJ/LFUR07GGh7gW6II15MVXlDHIWagYY7KNMT6HbfDn9Ur6P+A3Y0xKFW3f063AdOMcQThk7FFQRwOf+bnKm8CN9jAVRWYBdYFRwY1OVSVNGiogYk0KNBxrvoA5xpgtxphFxphnjDEfeizXUETeEpF9IpItIrNFpGcZ2y1x2ai0S1gico6IrBeRHBH5wR7wrdTtlLYfe4ynh4Ce9n6M/fob3pdjRCRGRLaKiPfZsqexWHe8l0qsCW8m2LWzHLFGOD3ea5mzxJo0J0dEfhKRS+3Y2tmvxwKXeO/LPtt/0L6clCki20RkjIg0EJEPReSQWBMDnea13gliTb6TY8f1vD3kRFkGAjWAX8pZrsi3WHOljCgqMMYUYCWOy/zchgoDmjRUoA7Zj9EiUrOM5aYAg7HGmhoEZAFfi0itSu6/BtYX/dXAUKxJZj6xz3wDNRV4FlgHNLcfU4HJwBliDTZX5FSsUU3f8bUhEUkCegDlzVb3FDAGa8iUvlhDSHxdtC8RaQN8AswEegMv2Ot4OhZrUDlf+7odayiIfsA0rHkS3sf6cu6DNXjgu0V/OxFpiVVL/N2O51qsL/Enynkf5wEzTfHcH2Uy1lwOy4ATvV76zUeZCmOaNFRA7C+J8cAVwH4RmS8iz4jI4KJlxBqgcDRwnTHmJ/ua9jigHtZ8GpURB/zVGPOrMeZ3e7vHAKdU4L1kYyXAfGPMTvuRbYyZjzWooueUs9cAXxhj0kvZXBtAgO2l7c9uCL4RuNsYM9MYswa4AWvMpJvtxW4EUowxdxhj1hljPgZe8dpUW6x5K3ZQ0jfGmInGmA1YybUG1iQ8bxtjNmK1IzQGetnL32THfJOxJjT6Emu2uVtEJLG094J1MvBZGa/7sh1o56OspddlKxXGNGmogBljpmMNCHcO1lnqMGCBiNxnL9IdKATme6xzAOusukcld1+IdXZatN0tWF88ld2ut8lYtZmiWsS5wOtlLF9Ug8opY5mOQDzwa1GBfYlmPsXxd8MamdTTQh/7yjPGFPrYxwqPbR/CquGt9Hh9l/2zif2zO7DAa1u/YE0N2snXmxCRTlidCQIdhTib4uPkWSZYg+apCKBJQ1WIMSbHGPOdMeYRY8wwrC/Uh/24Fl7aCJmFWF8enuID3EYwvQO0tdsbLgfSKftLco/9s2EF9xfIe9oDJJRSE8jzsd08r+fg32e/tJjOA+YYYw77sQ1PSVjH0bssx05wKgJo0lDB8gfWpaOawBqs/62hRS+KSD2sy0ilzRmQDiTayxXp42O5GKw2kqLttsGq9aypYNy5WO0iDsaYDKy2hWvsx1ulnNkX2QQcpOwazyZ7f8cVFdiN2kMpPi5rsYbQ9jTI6/ky+2cwaldrgCFe3V6Pt+MsbUKgilyaAuuS2FI/ylQY06ShAiIijUTkexG5QkSOFWtyl4uxJg6aY4w5aF9P/xx4VUSG2/cUvIv1pfp+KZteCBwGnhCRTvZNXzf5WC4fmCAiQ0WkD1ZD72qseQsqYjNWjaKfiCSLPTGObTJWLaM38IavlYvYCWU21hduacscBl4GnhSRM0Wku/28KTDRXuwVoKPdTtRVRC4Ari/ahL2ddKwv2lL3FYCJWEl3ooh0F5GzgP8ALxofk0CJSGNgCL57ibUQkT5ej2R7vXZYc1F/67XOcODrILwPFSKaNFSgDmHdqPVX4EesL+zHsZLBGI/lrsZqe/jC/pkInGE3Ppdgn9lfjtVLaSVwHfCAj0WPAP8G3sZKNDHABabiE8NMx+pZNAertuPZ/XMu1gQ/c/2892ISMMauPZTmbqweWm9i1RiOxTouO+BoG82FWB0JlgN/A/5lr+vZXjKJyncqwFhTjo7C6jm1DCs5fgDcV8oq5wCLjDG7fLz2N6xeWJ6PS+3XLgO+td8fcLTn1jCsY6EihE7CpFQp7O7BacCtxpj3/FxnPjDRGOOza24F4/gr1kxrDYqSo91ldi0wzhjzc7D25UcsnwO/GmO8uwGXtU4NrFnsLjPG/OpR/jRQ3xhzXfAjVVVFu7kp5cW+vp+MVZvKxrrfwV/XY521V2b/N2P1oErHuhT0ADDFszZljMkRkSuxGpJD6Vesmkgg2gL/9kwYtt3AM0GJSoWM1jSU8mJff/8T69LUtcYY7+vwVb3/57Hu+G5kx/Ah8Ih9g5xSrtKkoZRSym/aEK6UUspvmjSUUkr5TZOGUkopv2nSUEop5TdNGkoppfz2/4HGrA26XxWuAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "sns.distplot(first_set_molecules_df[\"solubility\"], hist=False, kde_kws={\"linewidth\": 4})\n",
    "plt.axvline(x=first_set_molecules_df[\"solubility\"].mean(), linestyle=\"--\", c=\"lightblue\")\n",
    "plt.axvline(x=solubility, linestyle=\"--\", c=\"k\")\n",
    "plt.xlabel(\"Solubility (log(mol/L))\", size=14)\n",
    "plt.ylabel(\"Density\", size=14)\n",
    "plt.xlim([min(first_set_molecules_df[\"solubility\"].min(), solubility) - .1, 0.0])\n",
    "plt.title(f\"Solubility using {molecule_name} as a reference\", size=14)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "391b34dd",
   "metadata": {},
   "source": [
    "## Exploring interesting scaffolds\n",
    "\n",
    "At this point we can explore some of the generated scaffolds to evaluate further alternatives, for this we use another generative algorithm hosted in the GT4SD, MoLeR.\n",
    "\n",
    "References:\n",
    "\n",
    "```txt\n",
    "Maziarz, K., Jackson-Flux, H., Cameron, P., Sirockin, F., Schneider, N., Stiefl, N., Segler, M., & Brockschmidt, M. (2022). Learning to Extend Molecular Scaffolds with Structural Motifs. ICLR.\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "20a944d2",
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "number_of_scaffolds = 6\n",
    "batch_size = 32\n",
    "scaffolds_set = set([Chem.MolToSmiles(GetScaffoldForMol(Chem.MolFromSmiles(smi))) for smi in first_set_molecules_df[first_set_molecules_df[\"similarity\"] > similarity_threshold].sort_values(by=\"similarity\", ascending=False)[:number_of_scaffolds][\"smiles\"]])\n",
    "second_set_configuration = MoLeRDefaultGenerator(scaffolds=\".\".join(scaffolds_set))\n",
    "algorithm = MoLeR(configuration=second_set_configuration)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "9f06a84c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    function fit_height(obj) {\n",
       "        obj.style.height = 0;\n",
       "        var height = obj.contentDocument.body.scrollHeight + 18 + 'px';\n",
       "        obj.style.height = height;\n",
       "    }\n",
       "</script>\n",
       "<iframe class=\"mols2grid-iframe\" frameborder=\"0\" width=\"100%\"\n",
       "\n",
       "height=\"200\"\n",
       "\n",
       "\n",
       "allow=\"clipboard-write\"\n",
       "\n",
       "srcdoc=\"&lt;html&gt;\n",
       "  &lt;meta charset=&quot;utf-8&quot;&gt;\n",
       "  &lt;head&gt;\n",
       "    &lt;style&gt;\n",
       "    #mols2grid.gridcontainer {\n",
       "    display: block;\n",
       "    padding-left: 1em;\n",
       "    max-width: 912px;\n",
       "    width: 912px;\n",
       "}\n",
       "#mols2grid .cell {\n",
       "    border: 1px solid #cccccc;\n",
       "    text-align: center;\n",
       "    vertical-align: top;\n",
       "    max-width: 300px;\n",
       "    width: 300px;\n",
       "    font-family: &#x27;DejaVu&#x27;, sans-serif;\n",
       "    font-size: 12pt;\n",
       "    padding: 0;\n",
       "    margin: 0px;\n",
       "    float: left;\n",
       "}\n",
       "#mols2grid .cell:hover {\n",
       "    background-color: #e7e7e7 !important;\n",
       "}\n",
       "#mols2grid .cell .data-img {\n",
       "    padding: 0;\n",
       "    margin: 0;\n",
       "}\n",
       "#mols2grid .cell img, #mols2grid .cell svg {\n",
       "    max-width: 100%;\n",
       "    height: auto;\n",
       "    padding: 0;\n",
       "}\n",
       "#mols2grid .data {\n",
       "    overflow: hidden;\n",
       "    white-space: nowrap;\n",
       "    text-overflow: ellipsis;\n",
       "    display: block;\n",
       "}\n",
       "#mols2grid .arrow-asc:after {\n",
       "    content: &#x27;↑&#x27;;\n",
       "    text-align: right;\n",
       "    float:right;\n",
       "}\n",
       "#mols2grid .arrow-desc:after {\n",
       "    content: &#x27;↓&#x27;;\n",
       "    text-align: right;\n",
       "    float:right;\n",
       "}\n",
       "    /* custom CSS */\n",
       "    \n",
       "    &lt;/style&gt;\n",
       "    &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/list.js/2.3.1/list.min.js&quot;&gt;&lt;/script&gt;\n",
       "&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css&quot; integrity=&quot;sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l&quot; crossorigin=&quot;anonymous&quot;&gt;\n",
       "&lt;script src=&quot;https://code.jquery.com/jquery-3.5.1.slim.min.js&quot; integrity=&quot;sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;\n",
       "&lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js&quot; integrity=&quot;sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;\n",
       "&lt;script src=&quot;https://unpkg.com/@rdkit/rdkit@2021.9.4/Code/MinimalLib/dist/RDKit_minimal.js&quot;&gt;&lt;/script&gt;\n",
       "    &lt;!-- custom header --&gt;\n",
       "    \n",
       "  &lt;/head&gt;\n",
       "  &lt;body&gt;\n",
       "    &lt;div id=&quot;mols2grid&quot; class=&quot;gridcontainer grid-default&quot;&gt;\n",
       "      &lt;div class=&quot;row mb-3&quot;&gt;\n",
       "        &lt;div class=&quot;list&quot;&gt;&lt;div class=&quot;cell&quot; data-mols2grid-id=&quot;0&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;position-relative float-left cached_checkbox&quot;&gt;&lt;div class=&quot;data data-img&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-mols2grid-id-copy&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-SMILES&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;\n",
       "      &lt;/div&gt;\n",
       "      &lt;div class=&quot;d-inline&quot;&gt;\n",
       "        &lt;ul class=&quot;pagination float-left&quot;&gt;&lt;/ul&gt;\n",
       "        &lt;div id=&quot;controls&quot; class=&quot;d-flex flex-row float-right&quot;&gt;\n",
       "          \n",
       "          &lt;div id=&quot;chkbox-dropdown&quot; class=&quot;dropdown&quot;&gt;\n",
       "    &lt;button class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; id=&quot;chkboxDropdown&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;☑&lt;/button&gt;\n",
       "    &lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;checkboxDropdownMenu&quot;&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-all&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Check all&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-none&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Uncheck all&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-invert&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Invert&lt;/button&gt;\n",
       "        &lt;div class=&quot;dropdown-divider&quot;&gt;&lt;/div&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-copy&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Copy to clipboard&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-dlsmi&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Save SMILES&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-dlcsv&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Save CSV&lt;/button&gt;\n",
       "    &lt;/div&gt;\n",
       "&lt;/div&gt;\n",
       "          \n",
       "          &lt;div id=&quot;sort-dropdown&quot; class=&quot;dropdown pl-2&quot;&gt;\n",
       "            &lt;button class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; id=&quot;sortDropdown&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;\n",
       "              Sort by\n",
       "            &lt;/button&gt;\n",
       "            &lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;sortDropdownMenu&quot;&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn arrow-asc active&quot; type=&quot;button&quot; data-name=&quot;mols2grid-id&quot;&gt;Index&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn arrow-asc active&quot; type=&quot;button&quot; data-name=&quot;data-mols2grid-id&quot;&gt;mols2grid-id&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-SMILES&quot;&gt;SMILES&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn&quot; type=&quot;button&quot; data-name=&quot;checkbox&quot;&gt;Selected&lt;/button&gt;\n",
       "              \n",
       "            &lt;/div&gt;\n",
       "          &lt;/div&gt;\n",
       "          &lt;div class=&quot;input-group row pl-4&quot;&gt;\n",
       "            &lt;input type=&quot;text&quot; id=&quot;searchbar&quot; class=&quot;form-control&quot; placeholder=&quot;Search&quot; aria-label=&quot;Search&quot; aria-describedby=&quot;basic-addon1&quot;&gt;\n",
       "            &lt;div class=&quot;input-group-append&quot;&gt;\n",
       "              &lt;button id=&quot;searchBtn&quot; class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;🔎&lt;/button&gt;\n",
       "              &lt;div class=&quot;dropdown-menu dropdown-menu-right&quot;&gt;\n",
       "                &lt;button id=&quot;txtSearch&quot; class=&quot;search-btn dropdown-item active&quot;&gt;Text&lt;/button&gt;\n",
       "                &lt;button id=&quot;smartsSearch&quot; class=&quot;search-btn dropdown-item&quot;&gt;SMARTS&lt;/button&gt;\n",
       "              &lt;/div&gt;\n",
       "            &lt;/div&gt;\n",
       "          &lt;/div&gt;\n",
       "        &lt;/div&gt;\n",
       "      &lt;/div&gt;\n",
       "    &lt;/div&gt;\n",
       "    &lt;script&gt;\n",
       "    // list.js\n",
       "var listObj = new List(&#x27;mols2grid&#x27;, {\n",
       "    valueNames: [{data: [&#x27;mols2grid-id&#x27;]}, &#x27;data-mols2grid-id&#x27;, &#x27;data-img&#x27;, &#x27;data-SMILES&#x27;, &#x27;data-mols2grid-id-copy&#x27;],\n",
       "    item: &#x27;&lt;div class=&quot;cell&quot; data-mols2grid-id=&quot;0&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;position-relative float-left cached_checkbox&quot;&gt;&lt;div class=&quot;data data-img&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-mols2grid-id-copy&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-SMILES&quot;&gt;&lt;/div&gt;&lt;/div&gt;&#x27;,\n",
       "    page: 9,\n",
       "    pagination: {\n",
       "        name: &quot;pagination&quot;,\n",
       "        item: &#x27;&lt;li class=&quot;page-item&quot;&gt;&lt;a class=&quot;page page-link&quot; href=&quot;#&quot; onclick=&quot;event.preventDefault()&quot;&gt;&lt;/a&gt;&lt;/li&gt;&#x27;,\n",
       "        innerWindow: 1,\n",
       "        outerWindow: 1,\n",
       "    },\n",
       "});\n",
       "listObj.remove(&quot;mols2grid-id&quot;, &quot;0&quot;);\n",
       "listObj.add([{&quot;mols2grid-id&quot;: 0, &quot;data-img&quot;: null, &quot;data-SMILES&quot;: &quot;c1ccccc1&quot;, &quot;data-mols2grid-id-copy&quot;: 0}]);\n",
       "// filter\n",
       "if (window.parent.mols2grid_lists === undefined) {\n",
       "    window.parent.mols2grid_lists = {};\n",
       "}\n",
       "window.parent.mols2grid_lists[&quot;default&quot;] = listObj;\n",
       "\n",
       "\n",
       "// selection\n",
       "class MolStorage extends Map {\n",
       "    multi_set(_id, _smiles) {\n",
       "        for (let i=0; i &lt; _id.length; i++) {\n",
       "            this.set(_id[i], _smiles[i]);\n",
       "        }\n",
       "    }\n",
       "    multi_del(_id) {\n",
       "        for (let i=0; i &lt; _id.length; i++) {\n",
       "            this.delete(_id[i]);\n",
       "        };\n",
       "    }\n",
       "    to_dict() {\n",
       "        var content = &quot;{&quot;;\n",
       "        for (let [key, value] of this) {\n",
       "            content += key + &quot;:&quot; + JSON.stringify(value) + &quot;,&quot;;\n",
       "        }\n",
       "        content = content.length &gt; 1 ? content.slice(0, -1) : content;\n",
       "        content += &quot;}&quot;;\n",
       "        return content\n",
       "    }\n",
       "    download_smi(fileName) {\n",
       "        var content = &quot;SMILES index\\n&quot;;\n",
       "        for (let [key, value] of this) {\n",
       "            content += value + &quot; &quot; + key + &quot;\\n&quot;;\n",
       "        }\n",
       "        var a = document.createElement(&quot;a&quot;);\n",
       "        var file = new Blob([content], {type: &quot;text/plain&quot;});\n",
       "        a.href = URL.createObjectURL(file);\n",
       "        a.download = fileName;\n",
       "        a.click();\n",
       "        a.remove();\n",
       "    }\n",
       "}\n",
       "var SELECTION = new MolStorage();\n",
       "\n",
       "\n",
       "\n",
       "// kernel\n",
       "var kernel_env = null;\n",
       "if (window.parent.IPython !== undefined) {\n",
       "    // Jupyter notebook\n",
       "    kernel_env = &quot;jupyter&quot;;\n",
       "    var kernel = window.parent.IPython.notebook.kernel;\n",
       "    kernel.execute(&#x27;from mols2grid.select import register as _m2g_reg&#x27;)\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "        kernel.execute(&quot;_m2g_reg.add_selection(&#x27;&quot;+grid_id+&quot;&#x27;, &quot;+JSON.stringify(_id)+&quot;,&quot;+JSON.stringify(smiles)+&quot;)&quot;);\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "        kernel.execute(&quot;_m2g_reg.del_selection(&#x27;&quot;+grid_id+&quot;&#x27;, &quot;+JSON.stringify(_id)+&quot;)&quot;);\n",
       "    }\n",
       "} else if (window.parent.google !== undefined) {\n",
       "    // Google colab\n",
       "    kernel_env = &quot;colab&quot;;\n",
       "    var kernel = window.parent.google.colab.kernel;\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "        (async function() {\n",
       "        const result = await kernel.invokeFunction(&#x27;_m2g_reg.add_selection&#x27;,\n",
       "                                                   [grid_id, _id, smiles], {});\n",
       "        })();\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "        (async function() {\n",
       "        const result = await kernel.invokeFunction(&#x27;_m2g_reg.del_selection&#x27;,\n",
       "                                                   [grid_id, _id], {});\n",
       "        })();\n",
       "    }\n",
       "} else {\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// sort\n",
       "var sort_field = &quot;mols2grid-id&quot;;\n",
       "var sort_order = &quot;asc&quot;;\n",
       "function mols2gridSortFunction(itemA, itemB, options) {\n",
       "    var x = itemA.values()[options.valueName];\n",
       "    var y = itemB.values()[options.valueName];\n",
       "    if (typeof x === &quot;number&quot;) {\n",
       "        if (isFinite(x - y)) {\n",
       "            return x - y; \n",
       "        } else {\n",
       "            return isFinite(x) ? -1 : 1;\n",
       "        }\n",
       "    } else {\n",
       "        x = x.toLowerCase();\n",
       "        y = y.toLowerCase();\n",
       "        return (x &lt; y) ? -1: (x &gt; y) ? 1: 0;\n",
       "    }\n",
       "}\n",
       "function checkboxSort(itemA, itemB, options) {\n",
       "    if (itemA.elm !== undefined) {\n",
       "        var checkedA = itemA.elm.firstChild.checked;\n",
       "        if (itemB.elm !== undefined) {\n",
       "            var checkedB = itemB.elm.firstChild.checked;\n",
       "            if (checkedA &amp;&amp; !checkedB) {\n",
       "                return -1;\n",
       "            } else if (!checkedA &amp;&amp; checkedB) {\n",
       "                return 1;\n",
       "            } else {\n",
       "                return 0;\n",
       "            }\n",
       "        } else {\n",
       "            return -1;\n",
       "        }\n",
       "    } else if (itemB.elm !== undefined) {\n",
       "        return 1;\n",
       "    } else {\n",
       "        return 0;\n",
       "    }\n",
       "}\n",
       "$(&#x27;#mols2grid button.sort-btn&#x27;).click(function(e) {\n",
       "    var _field = $(this).attr(&quot;data-name&quot;);\n",
       "    if (_field == sort_field) {\n",
       "        $(this).removeClass(&quot;arrow-&quot; + sort_order)\n",
       "        sort_order = (sort_order === &quot;desc&quot;) ? &quot;asc&quot; : &quot;desc&quot;;\n",
       "    } else {\n",
       "        $(&#x27;#mols2grid button.sort-btn.active&#x27;).removeClass(&quot;active arrow-&quot; + sort_order);\n",
       "        sort_order = &quot;asc&quot;;\n",
       "        sort_field = _field;\n",
       "        $(this).addClass(&quot;active&quot;);\n",
       "    }\n",
       "    $(this).addClass(&quot;arrow-&quot; + sort_order)\n",
       "    if (sort_field == &quot;checkbox&quot;) {\n",
       "        listObj.sort(&quot;mols2grid-id&quot;, {order: sort_order, sortFunction: checkboxSort});\n",
       "    } else {\n",
       "        listObj.sort(_field, {order: sort_order, sortFunction: mols2gridSortFunction});\n",
       "    }\n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// selection modifyers and export options\n",
       "// check all\n",
       "$(&#x27;#btn-chkbox-all&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 9;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id = [];\n",
       "    var _smiles = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox&quot;).each(function() {\n",
       "            this.checked = true;\n",
       "            _id.push(parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;)));\n",
       "            _smiles.push($($(this).siblings(&quot;.data-SMILES&quot;)[0]).text());\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    add_selection(&quot;default&quot;, _id, _smiles);\n",
       "});\n",
       "// uncheck all\n",
       "$(&#x27;#btn-chkbox-none&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 9;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox:checked&quot;).each(function() {\n",
       "            this.checked = false;\n",
       "            _id.push(parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;)));\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    del_selection(&quot;default&quot;, _id);\n",
       "});\n",
       "// invert\n",
       "$(&#x27;#btn-chkbox-invert&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 9;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id_add = [];\n",
       "    var _id_del = [];\n",
       "    var _smiles = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox&quot;).each(function() {\n",
       "            this.checked = !this.checked;\n",
       "            var _id = parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;));\n",
       "            if (this.checked) {\n",
       "                _id_add.push(_id);\n",
       "                _smiles.push($(this).siblings(&quot;.data-SMILES&quot;).first().text());\n",
       "            } else {\n",
       "                _id_del.push(_id);\n",
       "            }\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    del_selection(&quot;default&quot;, _id_del);\n",
       "    add_selection(&quot;default&quot;, _id_add, _smiles);\n",
       "});\n",
       "// copy to clipboard\n",
       "$(&quot;#btn-chkbox-copy&quot;).click(function(e) {\n",
       "    navigator.clipboard.writeText(SELECTION.to_dict());\n",
       "});\n",
       "// export smiles\n",
       "$(&quot;#btn-chkbox-dlsmi&quot;).click(function(e) {\n",
       "    SELECTION.download_smi(&quot;selection.smi&quot;);\n",
       "});\n",
       "// export CSV\n",
       "$(&quot;#btn-chkbox-dlcsv&quot;).click(function(e) {\n",
       "    var sep = &quot;\\t&quot;\n",
       "    // same order as subset + tooltip\n",
       "    var columns = Array.from(listObj.items[0].elm.querySelectorAll(&quot;div.data&quot;))\n",
       "                       .map(elm =&gt; elm.classList[1]);\n",
       "    // remove &#x27;data-&#x27;\n",
       "    var header = columns.map(name =&gt; name.slice(5));\n",
       "    // csv content\n",
       "    header = [&quot;index&quot;].concat(header).join(sep);\n",
       "    var content = header + &quot;\\n&quot;;\n",
       "    for (let [index, smiles] of SELECTION.entries()) {\n",
       "        var data = listObj.items[index].values();\n",
       "        content += index;\n",
       "        columns.forEach((key) =&gt; {\n",
       "            content += sep + data[key];\n",
       "        })\n",
       "        content += &quot;\\n&quot;;\n",
       "    }\n",
       "    var a = document.createElement(&quot;a&quot;);\n",
       "    var file = new Blob([content], {type: &quot;text/csv&quot;});\n",
       "    a.href = URL.createObjectURL(file);\n",
       "    a.download = &quot;selection.csv&quot;;\n",
       "    a.click();\n",
       "    a.remove();\n",
       "});\n",
       "// update selection on checkbox click\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    $(&quot;input:checkbox&quot;).change(function() {\n",
       "        var _id = parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;));\n",
       "        if (this.checked) {\n",
       "            var _smiles = $($(this).siblings(&quot;.data-SMILES&quot;)[0]).text();\n",
       "            add_selection(&quot;default&quot;, [_id], [_smiles]);\n",
       "        } else {\n",
       "            del_selection(&quot;default&quot;, [_id]);\n",
       "        }\n",
       "    }); \n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// generate images for the currently displayed molecules\n",
       "var draw_opts = {&quot;width&quot;: 300, &quot;height&quot;: 200};\n",
       "var json_draw_opts = JSON.stringify(draw_opts);\n",
       "\n",
       "var smarts_matches = {};\n",
       "\n",
       "// Load RDKit\n",
       "window\n",
       ".initRDKitModule()\n",
       ".then(function(RDKit) {\n",
       "    console.log(&#x27;RDKit version: &#x27;, RDKit.version());\n",
       "    window.RDKit = RDKit;\n",
       "    window.RDKitModule = RDKit;\n",
       "\n",
       "    // search bar\n",
       "    function SmartsSearch(query, columns) {\n",
       "    var smiles_col = columns[0];\n",
       "    smarts_matches = {};\n",
       "    var query = $(&#x27;#mols2grid #searchbar&#x27;).val();\n",
       "    var qmol = RDKit.get_qmol(query);\n",
       "    if (qmol.is_valid()) {\n",
       "        for (var k = 0, kl = listObj.items.length; k &lt; kl; k++) {\n",
       "            var item = listObj.items[k];\n",
       "            var smiles = item.values()[smiles_col]\n",
       "            var mol = RDKit.get_mol(smiles);\n",
       "            if (mol.is_valid()) {\n",
       "                var results = JSON.parse(mol.get_substruct_match(qmol));\n",
       "                if (results.atoms) {\n",
       "                    item.found = true;\n",
       "                    \n",
       "                    smarts_matches[smiles] = results;\n",
       "                    \n",
       "                } else {\n",
       "                    item.found = false;\n",
       "                }\n",
       "            } else {\n",
       "                item.found = false;\n",
       "            }\n",
       "            mol.delete();\n",
       "        }\n",
       "    }\n",
       "    qmol.delete();\n",
       "}\n",
       "var search_type = &quot;Text&quot;;\n",
       "$(&#x27;#mols2grid .search-btn&#x27;).click(function() {\n",
       "    search_type = $(this).text();\n",
       "    $(&#x27;#mols2grid button.search-btn.active&#x27;).removeClass(&quot;active&quot;);\n",
       "    $(this).addClass(&quot;active&quot;);\n",
       "});\n",
       "$(&#x27;#mols2grid #searchbar&#x27;).on(&quot;keyup&quot;, function(e) {\n",
       "    var query = e.target.value;\n",
       "    if (search_type === &quot;Text&quot;) {\n",
       "        smarts_matches = {};\n",
       "        listObj.search(query, [&#x27;data-mols2grid-id&#x27;, &#x27;data-SMILES&#x27;]);\n",
       "    } else {\n",
       "        listObj.search(query, [&quot;data-SMILES&quot;], SmartsSearch);\n",
       "    }\n",
       "});\n",
       "\n",
       "    \n",
       "    // generate images for the currently displayed molecules\n",
       "RDKit.prefer_coordgen(true);\n",
       "function draw_mol(smiles) {\n",
       "    var mol = RDKit.get_mol(smiles, &#x27;{&quot;removeHs&quot;: false }&#x27;);\n",
       "    var svg = &quot;&quot;;\n",
       "    if (mol.is_valid()) {\n",
       "        var highlights = smarts_matches[smiles];\n",
       "        if (highlights) {\n",
       "            var details = Object.assign({}, draw_opts, highlights);\n",
       "            details = JSON.stringify(details);\n",
       "        } else {\n",
       "            var details = json_draw_opts;\n",
       "        }\n",
       "        svg = mol.get_svg_with_highlights(details);\n",
       "    }\n",
       "    mol.delete();\n",
       "    if (svg == &quot;&quot;) {\n",
       "        return &#x27;&lt;svg width=&quot;300&quot; height=&quot;200&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 300 200&quot;&gt;&lt;/svg&gt;&#x27;;\n",
       "    }\n",
       "    return svg;\n",
       "}\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    var query = $(&#x27;#mols2grid #searchbar&#x27;).val();\n",
       "    if (query === &quot;&quot;) {\n",
       "        smarts_matches = {};\n",
       "    }\n",
       "    $(&#x27;#mols2grid .cell&#x27;).each(function() {\n",
       "        var $t = $(this);\n",
       "        var smiles = $t.children(&quot;.data-SMILES&quot;).first().text()\n",
       "        var svg = draw_mol(smiles);\n",
       "        $t.children(&quot;.data-img&quot;).html(svg);\n",
       "    });\n",
       "});\n",
       "    \n",
       "\n",
       "    // trigger update to activate tooltips, draw images, setup callbacks...\n",
       "    listObj.update();\n",
       "    // resize iframe to fit content\n",
       "    if (window.frameElement) {\n",
       "        window.parent.fit_height(window.frameElement);\n",
       "    }\n",
       "});\n",
       "    &lt;/script&gt;\n",
       "  &lt;/body&gt;\n",
       "&lt;/html&gt;\">\n",
       "</iframe>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mols2grid.display([Chem.MolFromSmiles(smi) for smi  in second_set_configuration.scaffolds.split(\".\")], n_cols=3, size=(300,200))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a35fc270",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loading a trained model from: /Users/tte/.gt4sd/algorithms/generation/MoLeR/MoLeRDefaultGenerator/v0/GNN_Edge_MLP_MoLeR__2022-02-24_07-16-23_best.pkl\n",
      "Loading a trained model from: /Users/tte/.gt4sd/algorithms/generation/MoLeR/MoLeRDefaultGenerator/v0/GNN_Edge_MLP_MoLeR__2022-02-24_07-16-23_best.pkl\n",
      "Loading a trained model from: /Users/tte/.gt4sd/algorithms/generation/MoLeR/MoLeRDefaultGenerator/v0/GNN_Edge_MLP_MoLeR__2022-02-24_07-16-23_best.pkl\n",
      "Loading a trained model from: /Users/tte/.gt4sd/algorithms/generation/MoLeR/MoLeRDefaultGenerator/v0/GNN_Edge_MLP_MoLeR__2022-02-24_07-16-23_best.pkl\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>smiles</th>\n",
       "      <th>solubility</th>\n",
       "      <th>similarity</th>\n",
       "      <th>molecular_weight</th>\n",
       "      <th>scs_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>COOC(C)(C)C(O)CC(C1=CC=C(OCC2=CC=CC=C2)C=C1)C(C)C</td>\n",
       "      <td>-6.149453</td>\n",
       "      <td>0.102941</td>\n",
       "      <td>372.505</td>\n",
       "      <td>3.607044</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>COC1=CC=C(C=CC(=O)NCC(C2=CC=C([N+](=O)[O-])O2)...</td>\n",
       "      <td>-4.569251</td>\n",
       "      <td>0.108434</td>\n",
       "      <td>382.376</td>\n",
       "      <td>2.367165</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CC1(C)CC(=O)C2=C(C1)NC1=C(C(=O)CCC1)C2C1=CC=C(...</td>\n",
       "      <td>-5.878387</td>\n",
       "      <td>0.144928</td>\n",
       "      <td>373.855</td>\n",
       "      <td>2.384723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>CC1=CC=CC(C2=CC=C(S(=O)(=O)C3=CC=CC=C3)C=C2C(=...</td>\n",
       "      <td>-6.602023</td>\n",
       "      <td>0.091954</td>\n",
       "      <td>704.827</td>\n",
       "      <td>1.222386</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>CCSC=CC(=O)C=CC1=CC=CC(C(F)(F)F)=C1</td>\n",
       "      <td>-5.127765</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>286.318</td>\n",
       "      <td>3.608933</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>123</th>\n",
       "      <td>CC1=CC=C(C)C(C2=CC=CC3=NC=CC=C23)=C1</td>\n",
       "      <td>-5.008695</td>\n",
       "      <td>0.066667</td>\n",
       "      <td>233.314</td>\n",
       "      <td>2.748667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>124</th>\n",
       "      <td>CC(C)CC1=CSC(C2=NN(CC3=CC=CC=C3)C=C2NC(=O)NC2=...</td>\n",
       "      <td>-10.647524</td>\n",
       "      <td>0.209302</td>\n",
       "      <td>632.617</td>\n",
       "      <td>1.001091</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>125</th>\n",
       "      <td>CC1=CC=C(C2=CN3C=C(C4=CC=C(OCC5=NN=CO5)C=C4)N=...</td>\n",
       "      <td>-5.853729</td>\n",
       "      <td>0.053333</td>\n",
       "      <td>383.411</td>\n",
       "      <td>2.132539</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>126</th>\n",
       "      <td>CCC=CC1=CC=C(OCC2=CC=C(F)C(C(=O)O)=C2)C=C1</td>\n",
       "      <td>-5.293811</td>\n",
       "      <td>0.119403</td>\n",
       "      <td>300.329</td>\n",
       "      <td>2.740461</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>127</th>\n",
       "      <td>C1=CC=C(CCC=CC2=NC=CN2)C=C1</td>\n",
       "      <td>-3.615227</td>\n",
       "      <td>0.049180</td>\n",
       "      <td>198.269</td>\n",
       "      <td>3.170924</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>128 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                smiles  solubility  \\\n",
       "0    COOC(C)(C)C(O)CC(C1=CC=C(OCC2=CC=CC=C2)C=C1)C(C)C   -6.149453   \n",
       "1    COC1=CC=C(C=CC(=O)NCC(C2=CC=C([N+](=O)[O-])O2)...   -4.569251   \n",
       "2    CC1(C)CC(=O)C2=C(C1)NC1=C(C(=O)CCC1)C2C1=CC=C(...   -5.878387   \n",
       "3    CC1=CC=CC(C2=CC=C(S(=O)(=O)C3=CC=CC=C3)C=C2C(=...   -6.602023   \n",
       "4                  CCSC=CC(=O)C=CC1=CC=CC(C(F)(F)F)=C1   -5.127765   \n",
       "..                                                 ...         ...   \n",
       "123               CC1=CC=C(C)C(C2=CC=CC3=NC=CC=C23)=C1   -5.008695   \n",
       "124  CC(C)CC1=CSC(C2=NN(CC3=CC=CC=C3)C=C2NC(=O)NC2=...  -10.647524   \n",
       "125  CC1=CC=C(C2=CN3C=C(C4=CC=C(OCC5=NN=CO5)C=C4)N=...   -5.853729   \n",
       "126         CCC=CC1=CC=C(OCC2=CC=C(F)C(C(=O)O)=C2)C=C1   -5.293811   \n",
       "127                        C1=CC=C(CCC=CC2=NC=CN2)C=C1   -3.615227   \n",
       "\n",
       "     similarity  molecular_weight  scs_score  \n",
       "0      0.102941           372.505   3.607044  \n",
       "1      0.108434           382.376   2.367165  \n",
       "2      0.144928           373.855   2.384723  \n",
       "3      0.091954           704.827   1.222386  \n",
       "4      0.142857           286.318   3.608933  \n",
       "..          ...               ...        ...  \n",
       "123    0.066667           233.314   2.748667  \n",
       "124    0.209302           632.617   1.001091  \n",
       "125    0.053333           383.411   2.132539  \n",
       "126    0.119403           300.329   2.740461  \n",
       "127    0.049180           198.269   3.170924  \n",
       "\n",
       "[128 rows x 5 columns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "generated_smiles = set()\n",
    "maximum_calls = 5\n",
    "counter = 0\n",
    "while len(generated_smiles) < (attempts * samples) and counter < maximum_calls:\n",
    "    generated_smiles = generated_smiles.union([smi for smi in list(algorithm.sample(batch_size)) if smi not in generated_smiles and smi != smiles])\n",
    "    counter += 1\n",
    "second_set_molecules_df = pd.DataFrame({\n",
    "    \"smiles\": list(generated_smiles),\n",
    "    \"solubility\": list(map(lambda smi: solubility_fn(smi), generated_smiles)),\n",
    "    \"similarity\": list(map(similarity_fn, generated_smiles)),\n",
    "    \"molecular_weight\": list(map(molecular_weight_fn, generated_smiles)),\n",
    "    \"scs_score\": list(map(complexity_fn, generated_smiles)),\n",
    "})\n",
    "second_set_molecules_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "a5623e30",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    function fit_height(obj) {\n",
       "        obj.style.height = 0;\n",
       "        var height = obj.contentDocument.body.scrollHeight + 18 + 'px';\n",
       "        obj.style.height = height;\n",
       "    }\n",
       "</script>\n",
       "<iframe class=\"mols2grid-iframe\" frameborder=\"0\" width=\"100%\"\n",
       "\n",
       "height=\"200\"\n",
       "\n",
       "\n",
       "allow=\"clipboard-write\"\n",
       "\n",
       "srcdoc=\"&lt;html&gt;\n",
       "  &lt;meta charset=&quot;utf-8&quot;&gt;\n",
       "  &lt;head&gt;\n",
       "    &lt;style&gt;\n",
       "    #mols2grid.gridcontainer {\n",
       "    display: block;\n",
       "    padding-left: 1em;\n",
       "    max-width: 912px;\n",
       "    width: 912px;\n",
       "}\n",
       "#mols2grid .cell {\n",
       "    border: 1px solid #cccccc;\n",
       "    text-align: center;\n",
       "    vertical-align: top;\n",
       "    max-width: 300px;\n",
       "    width: 300px;\n",
       "    font-family: &#x27;DejaVu&#x27;, sans-serif;\n",
       "    font-size: 12pt;\n",
       "    padding: 0;\n",
       "    margin: 0px;\n",
       "    float: left;\n",
       "}\n",
       "#mols2grid .cell:hover {\n",
       "    background-color: #e7e7e7 !important;\n",
       "}\n",
       "#mols2grid .cell .data-img {\n",
       "    padding: 0;\n",
       "    margin: 0;\n",
       "}\n",
       "#mols2grid .cell img, #mols2grid .cell svg {\n",
       "    max-width: 100%;\n",
       "    height: auto;\n",
       "    padding: 0;\n",
       "}\n",
       "#mols2grid .data {\n",
       "    overflow: hidden;\n",
       "    white-space: nowrap;\n",
       "    text-overflow: ellipsis;\n",
       "    display: block;\n",
       "}\n",
       "#mols2grid .arrow-asc:after {\n",
       "    content: &#x27;↑&#x27;;\n",
       "    text-align: right;\n",
       "    float:right;\n",
       "}\n",
       "#mols2grid .arrow-desc:after {\n",
       "    content: &#x27;↓&#x27;;\n",
       "    text-align: right;\n",
       "    float:right;\n",
       "}\n",
       "    /* custom CSS */\n",
       "    \n",
       "    &lt;/style&gt;\n",
       "    &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/list.js/2.3.1/list.min.js&quot;&gt;&lt;/script&gt;\n",
       "&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css&quot; integrity=&quot;sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l&quot; crossorigin=&quot;anonymous&quot;&gt;\n",
       "&lt;script src=&quot;https://code.jquery.com/jquery-3.5.1.slim.min.js&quot; integrity=&quot;sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;\n",
       "&lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js&quot; integrity=&quot;sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;\n",
       "&lt;script src=&quot;https://unpkg.com/@rdkit/rdkit@2021.9.4/Code/MinimalLib/dist/RDKit_minimal.js&quot;&gt;&lt;/script&gt;\n",
       "    &lt;!-- custom header --&gt;\n",
       "    \n",
       "  &lt;/head&gt;\n",
       "  &lt;body&gt;\n",
       "    &lt;div id=&quot;mols2grid&quot; class=&quot;gridcontainer grid-default&quot;&gt;\n",
       "      &lt;div class=&quot;row mb-3&quot;&gt;\n",
       "        &lt;div class=&quot;list&quot;&gt;&lt;div class=&quot;cell&quot; data-mols2grid-id=&quot;0&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;position-relative float-left cached_checkbox&quot;&gt;&lt;div class=&quot;data data-smiles&quot;&gt;&lt;/div&gt;&lt;a tabindex=&quot;0&quot; class=&quot;data data-img mols2grid-tooltip&quot; data-toggle=&quot;popover&quot; data-content=&quot;.&quot;&gt;&lt;/a&gt;&lt;div class=&quot;data data-text&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-solubility&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-similarity&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-molecular_weight&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-scs_score&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;\n",
       "      &lt;/div&gt;\n",
       "      &lt;div class=&quot;d-inline&quot;&gt;\n",
       "        &lt;ul class=&quot;pagination float-left&quot;&gt;&lt;/ul&gt;\n",
       "        &lt;div id=&quot;controls&quot; class=&quot;d-flex flex-row float-right&quot;&gt;\n",
       "          \n",
       "          &lt;div id=&quot;chkbox-dropdown&quot; class=&quot;dropdown&quot;&gt;\n",
       "    &lt;button class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; id=&quot;chkboxDropdown&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;☑&lt;/button&gt;\n",
       "    &lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;checkboxDropdownMenu&quot;&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-all&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Check all&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-none&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Uncheck all&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-invert&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Invert&lt;/button&gt;\n",
       "        &lt;div class=&quot;dropdown-divider&quot;&gt;&lt;/div&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-copy&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Copy to clipboard&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-dlsmi&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Save SMILES&lt;/button&gt;\n",
       "        &lt;button id=&quot;btn-chkbox-dlcsv&quot; class=&quot;dropdown-item&quot; type=&quot;button&quot;&gt;Save CSV&lt;/button&gt;\n",
       "    &lt;/div&gt;\n",
       "&lt;/div&gt;\n",
       "          \n",
       "          &lt;div id=&quot;sort-dropdown&quot; class=&quot;dropdown pl-2&quot;&gt;\n",
       "            &lt;button class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; id=&quot;sortDropdown&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;\n",
       "              Sort by\n",
       "            &lt;/button&gt;\n",
       "            &lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;sortDropdownMenu&quot;&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn arrow-asc active&quot; type=&quot;button&quot; data-name=&quot;mols2grid-id&quot;&gt;Index&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-smiles&quot;&gt;smiles&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-text&quot;&gt;text&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-solubility&quot;&gt;solubility&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-similarity&quot;&gt;similarity&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-molecular_weight&quot;&gt;molecular_weight&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn &quot; type=&quot;button&quot; data-name=&quot;data-scs_score&quot;&gt;scs_score&lt;/button&gt;\n",
       "              \n",
       "              \n",
       "              \n",
       "              &lt;button class=&quot;dropdown-item sort-btn&quot; type=&quot;button&quot; data-name=&quot;checkbox&quot;&gt;Selected&lt;/button&gt;\n",
       "              \n",
       "            &lt;/div&gt;\n",
       "          &lt;/div&gt;\n",
       "          &lt;div class=&quot;input-group row pl-4&quot;&gt;\n",
       "            &lt;input type=&quot;text&quot; id=&quot;searchbar&quot; class=&quot;form-control&quot; placeholder=&quot;Search&quot; aria-label=&quot;Search&quot; aria-describedby=&quot;basic-addon1&quot;&gt;\n",
       "            &lt;div class=&quot;input-group-append&quot;&gt;\n",
       "              &lt;button id=&quot;searchBtn&quot; class=&quot;btn btn-light dropdown-toggle&quot; type=&quot;button&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;🔎&lt;/button&gt;\n",
       "              &lt;div class=&quot;dropdown-menu dropdown-menu-right&quot;&gt;\n",
       "                &lt;button id=&quot;txtSearch&quot; class=&quot;search-btn dropdown-item active&quot;&gt;Text&lt;/button&gt;\n",
       "                &lt;button id=&quot;smartsSearch&quot; class=&quot;search-btn dropdown-item&quot;&gt;SMARTS&lt;/button&gt;\n",
       "              &lt;/div&gt;\n",
       "            &lt;/div&gt;\n",
       "          &lt;/div&gt;\n",
       "        &lt;/div&gt;\n",
       "      &lt;/div&gt;\n",
       "    &lt;/div&gt;\n",
       "    &lt;script&gt;\n",
       "    // list.js\n",
       "var listObj = new List(&#x27;mols2grid&#x27;, {\n",
       "    valueNames: [{data: [&#x27;mols2grid-id&#x27;]}, &#x27;data-molecular_weight&#x27;, &#x27;data-scs_score&#x27;, &#x27;data-img&#x27;, &#x27;data-smiles&#x27;, &#x27;data-text&#x27;, &#x27;data-solubility&#x27;, &#x27;data-similarity&#x27;, {attr: &#x27;data-content&#x27;, name: &#x27;mols2grid-tooltip&#x27;}],\n",
       "    item: &#x27;&lt;div class=&quot;cell&quot; data-mols2grid-id=&quot;0&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;position-relative float-left cached_checkbox&quot;&gt;&lt;div class=&quot;data data-smiles&quot;&gt;&lt;/div&gt;&lt;a tabindex=&quot;0&quot; class=&quot;data data-img mols2grid-tooltip&quot; data-toggle=&quot;popover&quot; data-content=&quot;.&quot;&gt;&lt;/a&gt;&lt;div class=&quot;data data-text&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-solubility&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-similarity&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-molecular_weight&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;data data-scs_score&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&#x27;,\n",
       "    page: 9,\n",
       "    pagination: {\n",
       "        name: &quot;pagination&quot;,\n",
       "        item: &#x27;&lt;li class=&quot;page-item&quot;&gt;&lt;a class=&quot;page page-link&quot; href=&quot;#&quot; onclick=&quot;event.preventDefault()&quot;&gt;&lt;/a&gt;&lt;/li&gt;&#x27;,\n",
       "        innerWindow: 1,\n",
       "        outerWindow: 1,\n",
       "    },\n",
       "});\n",
       "listObj.remove(&quot;mols2grid-id&quot;, &quot;0&quot;);\n",
       "listObj.add([{&quot;data-molecular_weight&quot;: 284.117, &quot;data-scs_score&quot;: 3.922106185927779, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 0, &quot;data-smiles&quot;: &quot;O=C(NC1=CC=C(Cl)C=C1Cl)C1=CC=C(F)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.15&quot;, &quot;data-solubility&quot;: -5.147260896953246, &quot;data-similarity&quot;: 0.23076923076923078, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(NC1=CC=C(Cl)C=C1Cl)C1=CC=C(F)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.147260896953246&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.23076923076923078&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 284.117&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.922106185927779&quot;}, {&quot;data-molecular_weight&quot;: 590.0320000000003, &quot;data-scs_score&quot;: 1.1447570502848863, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 1, &quot;data-smiles&quot;: &quot;CCC(=O)NC1=CC=C(C(=O)N(C)CC2C(=O)N(CCC(=O)C3=CC=C(C(=O)O)C=C3)C(=O)C3=CC=C(Cl)C=C32)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-7.13&quot;, &quot;data-solubility&quot;: -7.125330701696308, &quot;data-similarity&quot;: 0.22784810126582278, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCC(=O)NC1=CC=C(C(=O)N(C)CC2C(=O)N(CCC(=O)C3=CC=C(C(=O)O)C=C3)C(=O)C3=CC=C(Cl)C=C32)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -7.125330701696308&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.22784810126582278&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 590.0320000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.1447570502848863&quot;}, {&quot;data-molecular_weight&quot;: 426.9920000000002, &quot;data-scs_score&quot;: 1.8549443619882926, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 2, &quot;data-smiles&quot;: &quot;CC(C)C(NCC1=CC2=CC=CC=C2N1)C(=O)N(CCCN)CC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.94&quot;, &quot;data-solubility&quot;: -5.940387896373419, &quot;data-similarity&quot;: 0.2191780821917808, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)C(NCC1=CC2=CC=CC=C2N1)C(=O)N(CCCN)CC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.940387896373419&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2191780821917808&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 426.9920000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.8549443619882926&quot;}, {&quot;data-molecular_weight&quot;: 340.85100000000006, &quot;data-scs_score&quot;: 2.9875987206667443, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 3, &quot;data-smiles&quot;: &quot;O=C(CCCCCNC(=O)CCC1=CC=C(Cl)C=C1)NCCO&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.59&quot;, &quot;data-solubility&quot;: -3.592509304119427, &quot;data-similarity&quot;: 0.21428571428571427, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(CCCCCNC(=O)CCC1=CC=C(Cl)C=C1)NCCO&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.592509304119427&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.21428571428571427&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 340.85100000000006&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.9875987206667443&quot;}, {&quot;data-molecular_weight&quot;: 300.145, &quot;data-scs_score&quot;: 3.1070306660923084, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 4, &quot;data-smiles&quot;: &quot;CC1=CNN=C1NC(=O)COC1=CC=C(Cl)C=C1Cl&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.21&quot;, &quot;data-solubility&quot;: -4.2133666599200525, &quot;data-similarity&quot;: 0.21311475409836064, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1=CNN=C1NC(=O)COC1=CC=C(Cl)C=C1Cl&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.2133666599200525&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.21311475409836064&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 300.145&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.1070306660923084&quot;}, {&quot;data-molecular_weight&quot;: 369.53400000000005, &quot;data-scs_score&quot;: 2.535035359908588, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 5, &quot;data-smiles&quot;: &quot;CCN(CC)CC1=CC=C(C(=O)NC2=CC=C(CN=C(C)S)C=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.79&quot;, &quot;data-solubility&quot;: -5.785096860917252, &quot;data-similarity&quot;: 0.21311475409836064, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCN(CC)CC1=CC=C(C(=O)NC2=CC=C(CN=C(C)S)C=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.785096860917252&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.21311475409836064&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 369.53400000000005&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.535035359908588&quot;}, {&quot;data-molecular_weight&quot;: 255.70800000000003, &quot;data-scs_score&quot;: 3.2443527814685327, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 6, &quot;data-smiles&quot;: &quot;ClC1=CC=C(NC2=NC=NC3=CC=CC=C32)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.79&quot;, &quot;data-solubility&quot;: -4.788569637121796, &quot;data-similarity&quot;: 0.21153846153846154, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: ClC1=CC=C(NC2=NC=NC3=CC=CC=C32)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.788569637121796&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.21153846153846154&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 255.70800000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2443527814685327&quot;}, {&quot;data-molecular_weight&quot;: 632.6170000000002, &quot;data-scs_score&quot;: 1.0010907143576098, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 7, &quot;data-smiles&quot;: &quot;CC(C)CC1=CSC(C2=NN(CC3=CC=CC=C3)C=C2NC(=O)NC2=CC=C(CNC(=O)C3=CC=C(Cl)C=C3Cl)C=C2)=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-10.65&quot;, &quot;data-solubility&quot;: -10.647523931797341, &quot;data-similarity&quot;: 0.20930232558139536, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)CC1=CSC(C2=NN(CC3=CC=CC=C3)C=C2NC(=O)NC2=CC=C(CNC(=O)C3=CC=C(Cl)C=C3Cl)C=C2)=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -10.647523931797341&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.20930232558139536&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 632.6170000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.0010907143576098&quot;}, {&quot;data-molecular_weight&quot;: 310.397, &quot;data-scs_score&quot;: 2.9694940959647074, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 8, &quot;data-smiles&quot;: &quot;CCCCNC(=O)C1=CC=C(NC(=O)CC2=CC=CC=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.51&quot;, &quot;data-solubility&quot;: -4.509934571550599, &quot;data-similarity&quot;: 0.2033898305084746, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCCCNC(=O)C1=CC=C(NC(=O)CC2=CC=CC=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.509934571550599&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.2033898305084746&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 310.397&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.9694940959647074&quot;}, {&quot;data-molecular_weight&quot;: 309.306, &quot;data-scs_score&quot;: 2.1583693273541025, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 9, &quot;data-smiles&quot;: &quot;O=C(NC(=O)C1CCNCC1)NC1=CC=C(OCP)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.04&quot;, &quot;data-solubility&quot;: -3.0388880867608594, &quot;data-similarity&quot;: 0.19672131147540983, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(NC(=O)C1CCNCC1)NC1=CC=C(OCP)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.0388880867608594&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.19672131147540983&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 309.306&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.1583693273541025&quot;}, {&quot;data-molecular_weight&quot;: 407.305, &quot;data-scs_score&quot;: 1.5944877265682702, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 10, &quot;data-smiles&quot;: &quot;CCNC(CC1=CC=C(Cl)C=C1)C(=O)NCCN1C=NC2=C(Cl)N=CN=C21&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.47&quot;, &quot;data-solubility&quot;: -4.4738588107097845, &quot;data-similarity&quot;: 0.19444444444444445, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCNC(CC1=CC=C(Cl)C=C1)C(=O)NCCN1C=NC2=C(Cl)N=CN=C21&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.4738588107097845&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.19444444444444445&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 407.305&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.5944877265682702&quot;}, {&quot;data-molecular_weight&quot;: 315.167, &quot;data-scs_score&quot;: 3.458242934544342, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 11, &quot;data-smiles&quot;: &quot;COCCNC(=O)C1=CC=C(NC(C)=O)C=C1Br&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.27&quot;, &quot;data-solubility&quot;: -3.271016463578962, &quot;data-similarity&quot;: 0.1864406779661017, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COCCNC(=O)C1=CC=C(NC(C)=O)C=C1Br&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.271016463578962&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1864406779661017&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 315.167&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.458242934544342&quot;}, {&quot;data-molecular_weight&quot;: 491.01300000000015, &quot;data-scs_score&quot;: 1.5757787174924216, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 12, &quot;data-smiles&quot;: &quot;CCCN(CC1=CC=C2NC(SC)=NC(C(=O)O)=NC2=C1)CC(O)COC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.26&quot;, &quot;data-solubility&quot;: -6.259632678620793, &quot;data-similarity&quot;: 0.18518518518518517, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCCN(CC1=CC=C2NC(SC)=NC(C(=O)O)=NC2=C1)CC(O)COC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.259632678620793&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.18518518518518517&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 491.01300000000015&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.5757787174924216&quot;}, {&quot;data-molecular_weight&quot;: 408.88200000000006, &quot;data-scs_score&quot;: 1.900987247122454, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 13, &quot;data-smiles&quot;: &quot;CCCCNC(=O)C1=C(O)NC(C)=C(C(=O)OCCO)C1C1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.38&quot;, &quot;data-solubility&quot;: -4.377464394599528, &quot;data-similarity&quot;: 0.18055555555555555, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCCCNC(=O)C1=C(O)NC(C)=C(C(=O)OCCO)C1C1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.377464394599528&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.18055555555555555&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 408.88200000000006&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.900987247122454&quot;}, {&quot;data-molecular_weight&quot;: 313.832, &quot;data-scs_score&quot;: 2.1058692633551797, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 14, &quot;data-smiles&quot;: &quot;CN(C)CCN1C2=CC=CC=C2N=C1CC1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.94&quot;, &quot;data-solubility&quot;: -4.937389701533191, &quot;data-similarity&quot;: 0.18032786885245902, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CN(C)CCN1C2=CC=CC=C2N=C1CC1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.937389701533191&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.18032786885245902&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 313.832&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.1058692633551797&quot;}, {&quot;data-molecular_weight&quot;: 453.94800000000015, &quot;data-scs_score&quot;: 1.8688811709192956, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 15, &quot;data-smiles&quot;: &quot;CCCC(NC(=O)C1CCCCN1S(=O)(=O)C1=CC=C(Cl)C=C1)C(=O)C1=NC=CO1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.12&quot;, &quot;data-solubility&quot;: -5.123774962203725, &quot;data-similarity&quot;: 0.17721518987341772, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCCC(NC(=O)C1CCCCN1S(=O)(=O)C1=CC=C(Cl)C=C1)C(=O)C1=NC=CO1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.123774962203725&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.17721518987341772&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 453.94800000000015&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.8688811709192956&quot;}, {&quot;data-molecular_weight&quot;: 269.735, &quot;data-scs_score&quot;: 2.8656390403816907, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 16, &quot;data-smiles&quot;: &quot;ClC1=CC=C(C(C2=CC=CN=C2)N2C=CN=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.54&quot;, &quot;data-solubility&quot;: -4.540993733415233, &quot;data-similarity&quot;: 0.17543859649122806, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: ClC1=CC=C(C(C2=CC=CN=C2)N2C=CN=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.540993733415233&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.17543859649122806&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 269.735&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.8656390403816907&quot;}, {&quot;data-molecular_weight&quot;: 422.52900000000017, &quot;data-scs_score&quot;: 1.4954580772033341, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 17, &quot;data-smiles&quot;: &quot;CCNC(=O)C1=C(C)NC2=C(C(=O)CCC2)C1C1=CC=C(NC(=O)N2CCCC2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.14&quot;, &quot;data-solubility&quot;: -5.137305038438922, &quot;data-similarity&quot;: 0.17333333333333334, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCNC(=O)C1=C(C)NC2=C(C(=O)CCC2)C1C1=CC=C(NC(=O)N2CCCC2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.137305038438922&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.17333333333333334&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 422.52900000000017&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.4954580772033341&quot;}, {&quot;data-molecular_weight&quot;: 308.51200000000006, &quot;data-scs_score&quot;: 3.48695276210303, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 18, &quot;data-smiles&quot;: &quot;CSC(=O)C1C(C2=CC=CC=C2)C(C)(C)CSC1(C)C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.48&quot;, &quot;data-solubility&quot;: -5.480728760490115, &quot;data-similarity&quot;: 0.1694915254237288, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CSC(=O)C1C(C2=CC=CC=C2)C(C)(C)CSC1(C)C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.480728760490115&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1694915254237288&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 308.51200000000006&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.48695276210303&quot;}, {&quot;data-molecular_weight&quot;: 335.363, &quot;data-scs_score&quot;: 2.135075974928154, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 19, &quot;data-smiles&quot;: &quot;O=CCNC(=O)C1=CC=C(NC(=O)CC2=CNC3=CC=CC=C23)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.88&quot;, &quot;data-solubility&quot;: -3.8812662759344994, &quot;data-similarity&quot;: 0.16666666666666666, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=CCNC(=O)C1=CC=C(NC(=O)CC2=CNC3=CC=CC=C23)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.8812662759344994&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.16666666666666666&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 335.363&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.135075974928154&quot;}, {&quot;data-molecular_weight&quot;: 310.184, &quot;data-scs_score&quot;: 2.8828865768833136, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 20, &quot;data-smiles&quot;: &quot;NCC1=CC(C(=O)NCC2=C(Cl)C=CC=C2Cl)=CC=N1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.09&quot;, &quot;data-solubility&quot;: -4.091956166749038, &quot;data-similarity&quot;: 0.16393442622950818, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: NCC1=CC(C(=O)NCC2=C(Cl)C=CC=C2Cl)=CC=N1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.091956166749038&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.16393442622950818&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 310.184&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.8828865768833136&quot;}, {&quot;data-molecular_weight&quot;: 548.9190000000001, &quot;data-scs_score&quot;: 2.7035094618237663, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 21, &quot;data-smiles&quot;: &quot;COC(=O)C1=C(C)NC2=C(C(SCCCOC3=CC=C(Cl)C=C3Cl)=CC=C2)C1C1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-9.65&quot;, &quot;data-solubility&quot;: -9.65180062161164, &quot;data-similarity&quot;: 0.1625, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC(=O)C1=C(C)NC2=C(C(SCCCOC3=CC=C(Cl)C=C3Cl)=CC=C2)C1C1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -9.65180062161164&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1625&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 548.9190000000001&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.7035094618237663&quot;}, {&quot;data-molecular_weight&quot;: 451.50400000000025, &quot;data-scs_score&quot;: 2.8145715892239687, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 22, &quot;data-smiles&quot;: &quot;COC(=O)C1=CC=C(C(=O)NC(=S)NC2=CC=C(OCCC3=CC=CNC3=O)C=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.10&quot;, &quot;data-solubility&quot;: -5.098711544604153, &quot;data-similarity&quot;: 0.16216216216216217, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC(=O)C1=CC=C(C(=O)NC(=S)NC2=CC=C(OCCC3=CC=CNC3=O)C=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.098711544604153&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.16216216216216217&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 451.50400000000025&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.8145715892239687&quot;}, {&quot;data-molecular_weight&quot;: 381.54900000000026, &quot;data-scs_score&quot;: 1.392872424975769, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 23, &quot;data-smiles&quot;: &quot;CC1=CC=C(NC(=S)N(C2=CC=C(C(=N)N)C=C2)C2CCN(C)CC2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.09&quot;, &quot;data-solubility&quot;: -5.090685821835138, &quot;data-similarity&quot;: 0.16176470588235295, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1=CC=C(NC(=S)N(C2=CC=C(C(=N)N)C=C2)C2CCN(C)CC2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.090685821835138&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.16176470588235295&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 381.54900000000026&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.392872424975769&quot;}, {&quot;data-molecular_weight&quot;: 498.64900000000017, &quot;data-scs_score&quot;: 1.4233404069241005, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 24, &quot;data-smiles&quot;: &quot;O=C(CN1CCN(SCC(=O)NC(C2=CC=CC=C2)C2=CC=CS2)CC1)NC1=CC=C(F)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.18&quot;, &quot;data-solubility&quot;: -6.183549949031088, &quot;data-similarity&quot;: 0.15584415584415584, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(CN1CCN(SCC(=O)NC(C2=CC=CC=C2)C2=CC=CS2)CC1)NC1=CC=C(F)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.183549949031088&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.15584415584415584&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 498.64900000000017&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.4233404069241005&quot;}, {&quot;data-molecular_weight&quot;: 440.54700000000025, &quot;data-scs_score&quot;: 1.5835149970655826, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 25, &quot;data-smiles&quot;: &quot;COC1=CC=C(C2=CC=CC3=C2C=NN3CC(=O)NC2=CC=C(N3CCCCC3)C=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.86&quot;, &quot;data-solubility&quot;: -6.864262557382971, &quot;data-similarity&quot;: 0.15384615384615385, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC1=CC=C(C2=CC=CC3=C2C=NN3CC(=O)NC2=CC=C(N3CCCCC3)C=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.864262557382971&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.15384615384615385&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 440.54700000000025&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.5835149970655826&quot;}, {&quot;data-molecular_weight&quot;: 527.0200000000002, &quot;data-scs_score&quot;: 1.9809969406250802, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 26, &quot;data-smiles&quot;: &quot;CCN(CC)C(=O)C1=C(C)NC2=C(C(=O)C3=CC4=CC=C(OC)C=C4C=C=C3C2=O)C1C1=CC=C(Cl)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-7.21&quot;, &quot;data-solubility&quot;: -7.212878950451893, &quot;data-similarity&quot;: 0.1511627906976744, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCN(CC)C(=O)C1=C(C)NC2=C(C(=O)C3=CC4=CC=C(OC)C=C4C=C=C3C2=O)C1C1=CC=C(Cl)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -7.212878950451893&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1511627906976744&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 527.0200000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.9809969406250802&quot;}, {&quot;data-molecular_weight&quot;: 304.34600000000006, &quot;data-scs_score&quot;: 3.1381824923035064, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 27, &quot;data-smiles&quot;: &quot;C=CCC(NC(C)=O)C(=O)NC(CC1=CC=CC=C1)C(=O)O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.49&quot;, &quot;data-solubility&quot;: -2.492489820614866, &quot;data-similarity&quot;: 0.14516129032258066, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C=CCC(NC(C)=O)C(=O)NC(CC1=CC=CC=C1)C(=O)O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.492489820614866&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.14516129032258066&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 304.34600000000006&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.1381824923035064&quot;}, {&quot;data-molecular_weight&quot;: 373.855, &quot;data-scs_score&quot;: 2.3847229536235512, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 28, &quot;data-smiles&quot;: &quot;CC1(C)CC(=O)C2=C(C1)NC1=C(C(=O)CCC1)C2C1=CC=C(Cl)C=C1F&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.88&quot;, &quot;data-solubility&quot;: -5.878386790857247, &quot;data-similarity&quot;: 0.14492753623188406, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1(C)CC(=O)C2=C(C1)NC1=C(C(=O)CCC1)C2C1=CC=C(Cl)C=C1F&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.878386790857247&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.14492753623188406&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 373.855&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.3847229536235512&quot;}, {&quot;data-molecular_weight&quot;: 269.25299999999993, &quot;data-scs_score&quot;: 3.0173537734183653, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 29, &quot;data-smiles&quot;: &quot;COC(=O)C1=CC=C(OCC(O)CN)C(C(=O)O)=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-1.54&quot;, &quot;data-solubility&quot;: -1.5369271929377528, &quot;data-similarity&quot;: 0.14285714285714285, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC(=O)C1=CC=C(OCC(O)CN)C(C(=O)O)=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.5369271929377528&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.14285714285714285&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 269.25299999999993&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.0173537734183653&quot;}, {&quot;data-molecular_weight&quot;: 286.318, &quot;data-scs_score&quot;: 3.6089333900125053, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 30, &quot;data-smiles&quot;: &quot;CCSC=CC(=O)C=CC1=CC=CC(C(F)(F)F)=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.13&quot;, &quot;data-solubility&quot;: -5.12776464670116, &quot;data-similarity&quot;: 0.14285714285714285, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCSC=CC(=O)C=CC1=CC=CC(C(F)(F)F)=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.12776464670116&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.14285714285714285&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 286.318&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.6089333900125053&quot;}, {&quot;data-molecular_weight&quot;: 454.5480000000002, &quot;data-scs_score&quot;: 2.648617469876359, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 31, &quot;data-smiles&quot;: &quot;CCOC(=O)C1=CC=C(CN2C(=O)CC(NC(=O)C3=CC=C(OC)C=C3)CCC2=S)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.48&quot;, &quot;data-solubility&quot;: -5.484372009804279, &quot;data-similarity&quot;: 0.14102564102564102, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCOC(=O)C1=CC=C(CN2C(=O)CC(NC(=O)C3=CC=C(OC)C=C3)CCC2=S)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.484372009804279&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.14102564102564102&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 454.5480000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.648617469876359&quot;}, {&quot;data-molecular_weight&quot;: 353.8970000000002, &quot;data-scs_score&quot;: 2.550167233349127, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 32, &quot;data-smiles&quot;: &quot;CC(C)(C1=C(C2=CC=C(Cl)C=C2)NC2=CC=CC=C21)N1CCNCC1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.76&quot;, &quot;data-solubility&quot;: -5.757729780194211, &quot;data-similarity&quot;: 0.140625, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)(C1=C(C2=CC=C(Cl)C=C2)NC2=CC=CC=C21)N1CCNCC1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.757729780194211&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.140625&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 353.8970000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.550167233349127&quot;}, {&quot;data-molecular_weight&quot;: 367.40900000000016, &quot;data-scs_score&quot;: 2.1906927098781424, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 33, &quot;data-smiles&quot;: &quot;COC(=O)CN1C=CC(C2=NC(NC(C)=O)=CN2CC2=CC=C(C)C=C2)=N1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.06&quot;, &quot;data-solubility&quot;: -4.058106117942741, &quot;data-similarity&quot;: 0.1388888888888889, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC(=O)CN1C=CC(C2=NC(NC(C)=O)=CN2CC2=CC=C(C)C=C2)=N1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.058106117942741&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1388888888888889&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 367.40900000000016&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.1906927098781424&quot;}, {&quot;data-molecular_weight&quot;: 354.81900000000013, &quot;data-scs_score&quot;: 2.5030730020003045, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 34, &quot;data-smiles&quot;: &quot;NC1=C(S(=O)(=O)C2=CC=C(Cl)C=C2)C(N2CCOCC2)=NC=N1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.32&quot;, &quot;data-solubility&quot;: -3.322253887924651, &quot;data-similarity&quot;: 0.13846153846153847, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: NC1=C(S(=O)(=O)C2=CC=C(Cl)C=C2)C(N2CCOCC2)=NC=N1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.322253887924651&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13846153846153847&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 354.81900000000013&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.5030730020003045&quot;}, {&quot;data-molecular_weight&quot;: 387.39600000000024, &quot;data-scs_score&quot;: 1.9551522752631714, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 35, &quot;data-smiles&quot;: &quot;O=C(CN1C=NC=N1)NC1=CC=C(C(=O)NCC(=O)OCC2CCCO2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.71&quot;, &quot;data-solubility&quot;: -2.7143535638796874, &quot;data-similarity&quot;: 0.1375, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(CN1C=NC=N1)NC1=CC=C(C(=O)NCC(=O)OCC2CCCO2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.7143535638796874&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1375&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 387.39600000000024&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.9551522752631714&quot;}, {&quot;data-molecular_weight&quot;: 204.269, &quot;data-scs_score&quot;: 3.9609541432812865, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 36, &quot;data-smiles&quot;: &quot;CC(C)(C)C(=O)C=CC1=CC=C(O)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.49&quot;, &quot;data-solubility&quot;: -3.4936975785692366, &quot;data-similarity&quot;: 0.13725490196078433, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)(C)C(=O)C=CC1=CC=C(O)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.4936975785692366&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13725490196078433&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 204.269&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.9609541432812865&quot;}, {&quot;data-molecular_weight&quot;: 293.79699999999997, &quot;data-scs_score&quot;: 2.5088398659014013, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 37, &quot;data-smiles&quot;: &quot;ClC1=CC=C(C2=C3CCCCC3=NC3=CC=CC=C32)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.03&quot;, &quot;data-solubility&quot;: -6.033494244060895, &quot;data-similarity&quot;: 0.13559322033898305, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: ClC1=CC=C(C2=C3CCCCC3=NC3=CC=CC=C32)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.033494244060895&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13559322033898305&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 293.79699999999997&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.5088398659014013&quot;}, {&quot;data-molecular_weight&quot;: 437.53300000000024, &quot;data-scs_score&quot;: 2.205344732431304, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 38, &quot;data-smiles&quot;: &quot;COCC(C)C(O)CC(CC(O)C(CC1=CC=CC=C1)NC(=O)OCC1CC1)C(=O)O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.31&quot;, &quot;data-solubility&quot;: -4.312683073674463, &quot;data-similarity&quot;: 0.13333333333333333, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COCC(C)C(O)CC(CC(O)C(CC1=CC=CC=C1)NC(=O)OCC1CC1)C(=O)O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.312683073674463&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13333333333333333&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 437.53300000000024&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.205344732431304&quot;}, {&quot;data-molecular_weight&quot;: 510.45800000000014, &quot;data-scs_score&quot;: 2.108131430565167, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 39, &quot;data-smiles&quot;: &quot;CC(CC1=NC=CS1)NC(=O)C(CC1=CC=C(Br)C=C1)NC(=O)C(C)NC(=O)C(C)N&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.37&quot;, &quot;data-solubility&quot;: -4.368026540461613, &quot;data-similarity&quot;: 0.13333333333333333, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(CC1=NC=CS1)NC(=O)C(CC1=CC=C(Br)C=C1)NC(=O)C(C)NC(=O)C(C)N&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.368026540461613&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13333333333333333&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 510.45800000000014&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.108131430565167&quot;}, {&quot;data-molecular_weight&quot;: 482.60500000000013, &quot;data-scs_score&quot;: 2.6581559189818265, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 40, &quot;data-smiles&quot;: &quot;CCOC1=CC=C(C2=CC=C(C(=O)NC(CC3=CC=CC=C3)C(=O)SC3=CC=CC=N3)C=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-7.50&quot;, &quot;data-solubility&quot;: -7.499027053418646, &quot;data-similarity&quot;: 0.13333333333333333, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCOC1=CC=C(C2=CC=C(C(=O)NC(CC3=CC=CC=C3)C(=O)SC3=CC=CC=N3)C=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -7.499027053418646&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13333333333333333&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 482.60500000000013&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.6581559189818265&quot;}, {&quot;data-molecular_weight&quot;: 437.52400000000017, &quot;data-scs_score&quot;: 1.8540899807705076, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 41, &quot;data-smiles&quot;: &quot;CC(C)NC(=O)C(CC1=CC=CC=C1)NC(=O)C1=CC=C2NC(=[N+](C)C)NC(=O)NC2=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.05&quot;, &quot;data-solubility&quot;: -4.052824123956103, &quot;data-similarity&quot;: 0.13157894736842105, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)NC(=O)C(CC1=CC=CC=C1)NC(=O)C1=CC=C2NC(=[N+](C)C)NC(=O)NC2=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.052824123956103&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13157894736842105&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 437.52400000000017&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.8540899807705076&quot;}, {&quot;data-molecular_weight&quot;: 386.41200000000003, &quot;data-scs_score&quot;: 2.2069327299322685, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 42, &quot;data-smiles&quot;: &quot;CC1=CC(NC(=O)CNC(=O)CNC(=O)CCNC(=O)C2=CC=CC=C2)=NN1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.22&quot;, &quot;data-solubility&quot;: -2.2151264828159993, &quot;data-similarity&quot;: 0.13043478260869565, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1=CC(NC(=O)CNC(=O)CNC(=O)CCNC(=O)C2=CC=CC=C2)=NN1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.2151264828159993&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.13043478260869565&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 386.41200000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.2069327299322685&quot;}, {&quot;data-molecular_weight&quot;: 346.47500000000025, &quot;data-scs_score&quot;: 2.0642173342893564, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 43, &quot;data-smiles&quot;: &quot;CC(C)(CN)NC(=O)C(CC1=CC=CC=C1)NC(=O)CN1CCCC1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.60&quot;, &quot;data-solubility&quot;: -2.5969004833714355, &quot;data-similarity&quot;: 0.12857142857142856, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)(CN)NC(=O)C(CC1=CC=CC=C1)NC(=O)CN1CCCC1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.5969004833714355&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.12857142857142856&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 346.47500000000025&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.0642173342893564&quot;}, {&quot;data-molecular_weight&quot;: 567.1110000000002, &quot;data-scs_score&quot;: 1.4818103420510178, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 44, &quot;data-smiles&quot;: &quot;CN1C(=O)C(=CC2=CC=C(Cl)C=C2)C(=O)N2C=CC(S(=O)(=O)N3CCN(C4=CC=C(C(C)(C)C)C=C4)CC3)=C12&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.94&quot;, &quot;data-solubility&quot;: -5.936041082413293, &quot;data-similarity&quot;: 0.1282051282051282, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CN1C(=O)C(=CC2=CC=C(Cl)C=C2)C(=O)N2C=CC(S(=O)(=O)N3CCN(C4=CC=C(C(C)(C)C)C=C4)CC3)=C12&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.936041082413293&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1282051282051282&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 567.1110000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.4818103420510178&quot;}, {&quot;data-molecular_weight&quot;: 468.6420000000002, &quot;data-scs_score&quot;: 1.1021145066500468, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 45, &quot;data-smiles&quot;: &quot;CCCN(CC1=CC=C(F)C=C1)C(=O)C(C)NCC1CCN(C2=NC3=CC=CC=C3S2)CC1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.76&quot;, &quot;data-solubility&quot;: -6.7603416536863845, &quot;data-similarity&quot;: 0.12790697674418605, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCCN(CC1=CC=C(F)C=C1)C(=O)C(C)NCC1CCN(C2=NC3=CC=CC=C3S2)CC1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.7603416536863845&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.12790697674418605&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 468.6420000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.1021145066500468&quot;}, {&quot;data-molecular_weight&quot;: 305.33400000000006, &quot;data-scs_score&quot;: 3.403193689831059, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 46, &quot;data-smiles&quot;: &quot;CC=C(C=N)C(=O)NN=CC1=CC(OC)=C(OC)C(OC)=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.15&quot;, &quot;data-solubility&quot;: -3.154459205621719, &quot;data-similarity&quot;: 0.12698412698412698, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC=C(C=N)C(=O)NN=CC1=CC(OC)=C(OC)C(OC)=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.154459205621719&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.12698412698412698&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 305.33400000000006&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.403193689831059&quot;}, {&quot;data-molecular_weight&quot;: 412.32700000000006, &quot;data-scs_score&quot;: 2.506398840016298, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 47, &quot;data-smiles&quot;: &quot;CCOC(=O)C1=CC2=CC(CC(C)C)=CC=C2N=C1C1=CC=C(Br)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-7.19&quot;, &quot;data-solubility&quot;: -7.190261423517304, &quot;data-similarity&quot;: 0.1267605633802817, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCOC(=O)C1=CC2=CC(CC(C)C)=CC=C2N=C1C1=CC=C(Br)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -7.190261423517304&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1267605633802817&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 412.32700000000006&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.506398840016298&quot;}, {&quot;data-molecular_weight&quot;: 612.6800000000003, &quot;data-scs_score&quot;: 1.0011068946097008, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 48, &quot;data-smiles&quot;: &quot;CCCC(CCO)C(=O)NC(CC1=CC=C(OC(=O)N2CCC(NC(=O)NC3=CC=C4OCCOC4=C3)CC2)C=C1)C(=O)O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.20&quot;, &quot;data-solubility&quot;: -6.20453575383966, &quot;data-similarity&quot;: 0.12631578947368421, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCCC(CCO)C(=O)NC(CC1=CC=C(OC(=O)N2CCC(NC(=O)NC3=CC=C4OCCOC4=C3)CC2)C=C1)C(=O)O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.20453575383966&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.12631578947368421&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 612.6800000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.0011068946097008&quot;}, {&quot;data-molecular_weight&quot;: 269.348, &quot;data-scs_score&quot;: 2.4245973902281417, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 49, &quot;data-smiles&quot;: &quot;CC(=O)N(CCCC1=CC=CC=C1)CC1=NC=NC=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.58&quot;, &quot;data-solubility&quot;: -3.5782261514042855, &quot;data-similarity&quot;: 0.125, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(=O)N(CCCC1=CC=CC=C1)CC1=NC=NC=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.5782261514042855&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.125&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 269.348&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.4245973902281417&quot;}, {&quot;data-molecular_weight&quot;: 503.5000000000002, &quot;data-scs_score&quot;: 1.2707046390819137, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 50, &quot;data-smiles&quot;: &quot;CN1CCCN(C2=NN=C(SCC(C)(C)NCC(O)COC3=CC=C(Cl)C=C3Cl)N2)CC1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.52&quot;, &quot;data-solubility&quot;: -5.519830731723583, &quot;data-similarity&quot;: 0.125, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CN1CCCN(C2=NN=C(SCC(C)(C)NCC(O)COC3=CC=C(Cl)C=C3Cl)N2)CC1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.519830731723583&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.125&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 503.5000000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.2707046390819137&quot;}, {&quot;data-molecular_weight&quot;: 440.72900000000004, &quot;data-scs_score&quot;: 1.5911712531540907, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 51, &quot;data-smiles&quot;: &quot;O=C(CN(CCCN=CC1=CN=CC=N1)CC1=CC=C(Cl)C(Br)=C1)NO&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.83&quot;, &quot;data-solubility&quot;: -4.828655188122672, &quot;data-similarity&quot;: 0.125, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(CN(CCCN=CC1=CN=CC=N1)CC1=CC=C(Cl)C(Br)=C1)NO&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.828655188122672&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.125&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 440.72900000000004&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.5911712531540907&quot;}, {&quot;data-molecular_weight&quot;: 354.45400000000006, &quot;data-scs_score&quot;: 2.0137108526320278, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 52, &quot;data-smiles&quot;: &quot;CC(=O)C1=CC=C(CN2CCC3=C(C2)N=C(N2CCN(C)CC2)O3)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.87&quot;, &quot;data-solubility&quot;: -3.8719003693551244, &quot;data-similarity&quot;: 0.125, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(=O)C1=CC=C(CN2CCC3=C(C2)N=C(N2CCN(C)CC2)O3)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.8719003693551244&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.125&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 354.45400000000006&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.0137108526320278&quot;}, {&quot;data-molecular_weight&quot;: 389.33700000000005, &quot;data-scs_score&quot;: 2.8797844202111182, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 53, &quot;data-smiles&quot;: &quot;O=C(CCCCCCCCC1=CC=C(Br)C=C1)NC1=CC=CC=N1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.76&quot;, &quot;data-solubility&quot;: -6.761503411046153, &quot;data-similarity&quot;: 0.125, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(CCCCCCCCC1=CC=C(Br)C=C1)NC1=CC=CC=N1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.761503411046153&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.125&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 389.33700000000005&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.8797844202111182&quot;}, {&quot;data-molecular_weight&quot;: 628.633, &quot;data-scs_score&quot;: 2.0270020214596656, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 54, &quot;data-smiles&quot;: &quot;CCN(C(=O)C1=C(C)N(C(=O)NCC2=CC=CS2)C(C)=C(C(=O)OC(C)C)C1C1=CC=C(Br)C=C1)C1CCCC1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-9.26&quot;, &quot;data-solubility&quot;: -9.259625815687595, &quot;data-similarity&quot;: 0.12359550561797752, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCN(C(=O)C1=C(C)N(C(=O)NCC2=CC=CS2)C(C)=C(C(=O)OC(C)C)C1C1=CC=C(Br)C=C1)C1CCCC1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -9.259625815687595&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.12359550561797752&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 628.633&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.0270020214596656&quot;}, {&quot;data-molecular_weight&quot;: 383.5870000000001, &quot;data-scs_score&quot;: 2.569504790255171, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 55, &quot;data-smiles&quot;: &quot;CSC(N=CO)NCCN=C(S)NCC(C1=CC=C(C)C=C1)N(C)C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.05&quot;, &quot;data-solubility&quot;: -4.046175277247591, &quot;data-similarity&quot;: 0.12162162162162163, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CSC(N=CO)NCCN=C(S)NCC(C1=CC=C(C)C=C1)N(C)C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.046175277247591&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.12162162162162163&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 383.5870000000001&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.569504790255171&quot;}, {&quot;data-molecular_weight&quot;: 300.32899999999995, &quot;data-scs_score&quot;: 2.740460748982426, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 56, &quot;data-smiles&quot;: &quot;CCC=CC1=CC=C(OCC2=CC=C(F)C(C(=O)O)=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.29&quot;, &quot;data-solubility&quot;: -5.2938110708469095, &quot;data-similarity&quot;: 0.11940298507462686, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCC=CC1=CC=C(OCC2=CC=C(F)C(C(=O)O)=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.2938110708469095&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.11940298507462686&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 300.32899999999995&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.740460748982426&quot;}, {&quot;data-molecular_weight&quot;: 477.6220000000002, &quot;data-scs_score&quot;: 2.2519067145590146, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 57, &quot;data-smiles&quot;: &quot;CC(C)CC(CC1=CC=C(F)C=C1)C(=O)NC(CC=C[N+]1=CSC(O)=C1)C(=O)OC(C)(C)C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.32&quot;, &quot;data-solubility&quot;: -6.322504477137137, &quot;data-similarity&quot;: 0.11764705882352941, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)CC(CC1=CC=C(F)C=C1)C(=O)NC(CC=C[N+]1=CSC(O)=C1)C(=O)OC(C)(C)C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.322504477137137&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.11764705882352941&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 477.6220000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.2519067145590146&quot;}, {&quot;data-molecular_weight&quot;: 344.43400000000014, &quot;data-scs_score&quot;: 1.975947253505579, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 58, &quot;data-smiles&quot;: &quot;CC1=NN(CC2=CC=C(F)C=C2)C(C)=C1CC(=O)N1CCN(C)CC1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.68&quot;, &quot;data-solubility&quot;: -3.6767751751607425, &quot;data-similarity&quot;: 0.11594202898550725, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1=NN(CC2=CC=C(F)C=C2)C(C)=C1CC(=O)N1CCN(C)CC1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.6767751751607425&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.11594202898550725&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 344.43400000000014&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.975947253505579&quot;}, {&quot;data-molecular_weight&quot;: 474.5160000000002, &quot;data-scs_score&quot;: 1.3864755634760737, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 59, &quot;data-smiles&quot;: &quot;O=C(NC1=CC=C2OCOC2=C1)C1=C=C2C(=O)NC3=CC=C(CCC4=CC=CC=C4)C=C3C2=CC=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.60&quot;, &quot;data-solubility&quot;: -5.595228538349717, &quot;data-similarity&quot;: 0.11494252873563218, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(NC1=CC=C2OCOC2=C1)C1=C=C2C(=O)NC3=CC=C(CCC4=CC=CC=C4)C=C3C2=CC=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.595228538349717&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.11494252873563218&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 474.5160000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.3864755634760737&quot;}, {&quot;data-molecular_weight&quot;: 428.48900000000026, &quot;data-scs_score&quot;: 1.6737379919793849, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 60, &quot;data-smiles&quot;: &quot;CC1=NNC(C(=O)NC(CC2=CC=C(OCC(=O)N3CCCCCC3)C=C2)C(=O)O)=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.12&quot;, &quot;data-solubility&quot;: -4.124288807313468, &quot;data-similarity&quot;: 0.11392405063291139, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1=NNC(C(=O)NC(CC2=CC=C(OCC(=O)N3CCCCCC3)C=C2)C(=O)O)=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.124288807313468&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.11392405063291139&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 428.48900000000026&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.6737379919793849&quot;}, {&quot;data-molecular_weight&quot;: 570.7750000000004, &quot;data-scs_score&quot;: 1.1895193966793842, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 61, &quot;data-smiles&quot;: &quot;CC(C)CC(NC(=O)CCCCCC1CCCN1CC(=O)N1CCCCC1)C(=O)NC(CC1=CC=CC=C1)C(=O)O&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.31&quot;, &quot;data-solubility&quot;: -6.307303210804699, &quot;data-similarity&quot;: 0.11363636363636363, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC(C)CC(NC(=O)CCCCCC1CCCN1CC(=O)N1CCCCC1)C(=O)NC(CC1=CC=CC=C1)C(=O)O&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.307303210804699&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.11363636363636363&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 570.7750000000004&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.1895193966793842&quot;}, {&quot;data-molecular_weight&quot;: 403.49, &quot;data-scs_score&quot;: 1.0949257129504772, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 62, &quot;data-smiles&quot;: &quot;CC1=CC=C(C2=NC3=C(N2)N(CC2CCNC2)CC(C(=O)NC2=CNC=N2)=C3)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.52&quot;, &quot;data-solubility&quot;: -4.516052277234645, &quot;data-similarity&quot;: 0.11363636363636363, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1=CC=C(C2=NC3=C(N2)N(CC2CCNC2)CC(C(=O)NC2=CNC=N2)=C3)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.516052277234645&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.11363636363636363&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 403.49&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.0949257129504772&quot;}, {&quot;data-molecular_weight&quot;: 416.3590000000001, &quot;data-scs_score&quot;: 2.5904584717684935, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 63, &quot;data-smiles&quot;: &quot;C=C(CCCCCCCC1=CC=C(O)C=C1)NC(=O)C1=CC=C(Br)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-7.09&quot;, &quot;data-solubility&quot;: -7.091077112257947, &quot;data-similarity&quot;: 0.1111111111111111, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C=C(CCCCCCCC1=CC=C(O)C=C1)NC(=O)C1=CC=C(Br)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -7.091077112257947&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1111111111111111&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 416.3590000000001&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.5904584717684935&quot;}, {&quot;data-molecular_weight&quot;: 446.59500000000014, &quot;data-scs_score&quot;: 2.3541013583397596, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 64, &quot;data-smiles&quot;: &quot;CC1=C(C#N)C(C2=CC=C(C(=O)NCC3=CCCCC3)C=C2)C(C(=O)NC(C)(C)C)=C(C)N1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.16&quot;, &quot;data-solubility&quot;: -6.156953631640952, &quot;data-similarity&quot;: 0.1111111111111111, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1=C(C#N)C(C2=CC=C(C(=O)NCC3=CCCCC3)C=C2)C(C(=O)NC(C)(C)C)=C(C)N1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.156953631640952&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1111111111111111&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 446.59500000000014&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.3541013583397596&quot;}, {&quot;data-molecular_weight&quot;: 459.53700000000015, &quot;data-scs_score&quot;: 1.2874242454791518, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 65, &quot;data-smiles&quot;: &quot;O=C(CN1CCOCC1)NCC1CCN(CC2=CC=C(OC3=CC=C(F)C=C3F)C=C2)CC1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.44&quot;, &quot;data-solubility&quot;: -5.440171893334341, &quot;data-similarity&quot;: 0.1111111111111111, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(CN1CCOCC1)NCC1CCN(CC2=CC=C(OC3=CC=C(F)C=C3F)C=C2)CC1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.440171893334341&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1111111111111111&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 459.53700000000015&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.2874242454791518&quot;}, {&quot;data-molecular_weight&quot;: 324.3110000000001, &quot;data-scs_score&quot;: 2.993876314730506, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 66, &quot;data-smiles&quot;: &quot;N#CC(=CC1=CC=C(F)C=C1)C(=O)NCC1=CC=C2OCOC2=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.14&quot;, &quot;data-solubility&quot;: -4.143270014795728, &quot;data-similarity&quot;: 0.1111111111111111, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: N#CC(=CC1=CC=C(F)C=C1)C(=O)NCC1=CC=C2OCOC2=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.143270014795728&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1111111111111111&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 324.3110000000001&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.993876314730506&quot;}, {&quot;data-molecular_weight&quot;: 453.5670000000001, &quot;data-scs_score&quot;: 2.359342452466284, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 67, &quot;data-smiles&quot;: &quot;COC1=CC=C(S(=O)(=O)N(C)C2=CC=C(S(=O)(=O)NCC3=CSC=N3)C=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.78&quot;, &quot;data-solubility&quot;: -4.781918658816503, &quot;data-similarity&quot;: 0.1111111111111111, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC1=CC=C(S(=O)(=O)N(C)C2=CC=C(S(=O)(=O)NCC3=CSC=N3)C=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.781918658816503&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1111111111111111&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 453.5670000000001&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.359342452466284&quot;}, {&quot;data-molecular_weight&quot;: 538.6300000000002, &quot;data-scs_score&quot;: 1.3014907445177184, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 68, &quot;data-smiles&quot;: &quot;CCCCC(NC(=O)C1=CSC(N2C=CN=C2)=N1)C(=O)OCC(=O)N1CCN(C(=O)C2=CC=CC=C2)CC1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.04&quot;, &quot;data-solubility&quot;: -5.0372226136564215, &quot;data-similarity&quot;: 0.10989010989010989, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCCCC(NC(=O)C1=CSC(N2C=CN=C2)=N1)C(=O)OCC(=O)N1CCN(C(=O)C2=CC=CC=C2)CC1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.0372226136564215&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10989010989010989&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 538.6300000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.3014907445177184&quot;}, {&quot;data-molecular_weight&quot;: 402.43200000000013, &quot;data-scs_score&quot;: 2.6263545349687316, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 69, &quot;data-smiles&quot;: &quot;COC1=CC(CC(CC(=O)C2=CC=CS2)C(=O)O)=CC=C1OCC1=NN=NN1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.36&quot;, &quot;data-solubility&quot;: -4.36361634176812, &quot;data-similarity&quot;: 0.10975609756097561, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC1=CC(CC(CC(=O)C2=CC=CS2)C(=O)O)=CC=C1OCC1=NN=NN1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.36361634176812&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10975609756097561&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 402.43200000000013&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.6263545349687316&quot;}, {&quot;data-molecular_weight&quot;: 391.46700000000016, &quot;data-scs_score&quot;: 2.6434807687360227, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 70, &quot;data-smiles&quot;: &quot;COC(=O)C1=CC=C(C2=CC=C(OC)C(OC3CCNCC3)=C2)C2=CC=CC=C12&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.83&quot;, &quot;data-solubility&quot;: -5.833513070969551, &quot;data-similarity&quot;: 0.1095890410958904, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC(=O)C1=CC=C(C2=CC=C(OC)C(OC3CCNCC3)=C2)C2=CC=CC=C12&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.833513070969551&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1095890410958904&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 391.46700000000016&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.6434807687360227&quot;}, {&quot;data-molecular_weight&quot;: 461.6090000000003, &quot;data-scs_score&quot;: 1.7653274837905821, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 71, &quot;data-smiles&quot;: &quot;C=[SH](=O)C(NC(=O)C1=CC=C(S(C)(=O)=O)C=C1)=C(N)C1=CC=C(N2CCCCC2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.43&quot;, &quot;data-solubility&quot;: -4.425537815250555, &quot;data-similarity&quot;: 0.1095890410958904, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C=[SH](=O)C(NC(=O)C1=CC=C(S(C)(=O)=O)C=C1)=C(N)C1=CC=C(N2CCCCC2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.425537815250555&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1095890410958904&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 461.6090000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.7653274837905821&quot;}, {&quot;data-molecular_weight&quot;: 244.25400000000002, &quot;data-scs_score&quot;: 2.655074300202816, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 72, &quot;data-smiles&quot;: &quot;O=C(C=CC1=CC=C(O)C=C1)NCC1=CNN=N1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.22&quot;, &quot;data-solubility&quot;: -2.223868056515583, &quot;data-similarity&quot;: 0.109375, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(C=CC1=CC=C(O)C=C1)NCC1=CNN=N1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -2.223868056515583&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.109375&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 244.25400000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.655074300202816&quot;}, {&quot;data-molecular_weight&quot;: 247.38200000000003, &quot;data-scs_score&quot;: 2.7321045133940345, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 73, &quot;data-smiles&quot;: &quot;C=C(CCCCCCCC1=CC=C(O)C=C1)NC&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.46&quot;, &quot;data-solubility&quot;: -4.458890143691376, &quot;data-similarity&quot;: 0.10909090909090909, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C=C(CCCCCCCC1=CC=C(O)C=C1)NC&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.458890143691376&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10909090909090909&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 247.38200000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.7321045133940345&quot;}, {&quot;data-molecular_weight&quot;: 255.38299999999998, &quot;data-scs_score&quot;: 3.2712648093525467, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 74, &quot;data-smiles&quot;: &quot;CS(=O)(=O)NCCCCCCC1=CC=CC=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.29&quot;, &quot;data-solubility&quot;: -3.2852441949606788, &quot;data-similarity&quot;: 0.10909090909090909, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CS(=O)(=O)NCCCCCCC1=CC=CC=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.2852441949606788&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10909090909090909&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 255.38299999999998&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.2712648093525467&quot;}, {&quot;data-molecular_weight&quot;: 382.3760000000001, &quot;data-scs_score&quot;: 2.3671646899541137, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 75, &quot;data-smiles&quot;: &quot;COC1=CC=C(C=CC(=O)NCC(C2=CC=C([N+](=O)[O-])O2)N2C=CC=N2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.57&quot;, &quot;data-solubility&quot;: -4.5692512817812805, &quot;data-similarity&quot;: 0.10843373493975904, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC1=CC=C(C=CC(=O)NCC(C2=CC=C([N+](=O)[O-])O2)N2C=CC=N2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.5692512817812805&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10843373493975904&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 382.3760000000001&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.3671646899541137&quot;}, {&quot;data-molecular_weight&quot;: 447.3940000000002, &quot;data-scs_score&quot;: 2.0576873145276613, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 76, &quot;data-smiles&quot;: &quot;CCOC(=O)CC(NC(=O)C1=NC2=CC=C(O)C=C2N1)C(=O)OCC1=CC=C(F)C=C1F&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.61&quot;, &quot;data-solubility&quot;: -4.606771172379003, &quot;data-similarity&quot;: 0.10843373493975904, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCOC(=O)CC(NC(=O)C1=NC2=CC=C(O)C=C2N1)C(=O)OCC1=CC=C(F)C=C1F&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.606771172379003&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10843373493975904&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 447.3940000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.0576873145276613&quot;}, {&quot;data-molecular_weight&quot;: 496.8190000000002, &quot;data-scs_score&quot;: 1.2057648064283102, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 77, &quot;data-smiles&quot;: &quot;NC1=CC=C(COC2=CC=C(C(=O)NCCOP(=O)(O)O)C=C2)C(C2=CC(F)=C(Cl)N=C2)=N1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.40&quot;, &quot;data-solubility&quot;: -5.403979571329778, &quot;data-similarity&quot;: 0.10588235294117647, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: NC1=CC=C(COC2=CC=C(C(=O)NCCOP(=O)(O)O)C=C2)C(C2=CC(F)=C(Cl)N=C2)=N1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.403979571329778&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10588235294117647&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 496.8190000000002&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.2057648064283102&quot;}, {&quot;data-molecular_weight&quot;: 311.41, &quot;data-scs_score&quot;: 3.1695624309523796, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 78, &quot;data-smiles&quot;: &quot;O=C(CSC1=NC2=CC=CC=C2N1)NCCC1=CC=CC=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-4.30&quot;, &quot;data-solubility&quot;: -4.303664959716194, &quot;data-similarity&quot;: 0.1044776119402985, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C(CSC1=NC2=CC=CC=C2N1)NCCC1=CC=CC=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -4.303664959716194&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1044776119402985&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 311.41&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.1695624309523796&quot;}, {&quot;data-molecular_weight&quot;: 211.242, &quot;data-scs_score&quot;: 3.419402823506749, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 79, &quot;data-smiles&quot;: &quot;CCOC1=CC=C([SH](=O)=O)C=C1C#N&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-2.00&quot;, &quot;data-solubility&quot;: -1.9959822594575742, &quot;data-similarity&quot;: 0.10344827586206896, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CCOC1=CC=C([SH](=O)=O)C=C1C#N&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -1.9959822594575742&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10344827586206896&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 211.242&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.419402823506749&quot;}, {&quot;data-molecular_weight&quot;: 372.50500000000005, &quot;data-scs_score&quot;: 3.6070439397066116, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 80, &quot;data-smiles&quot;: &quot;COOC(C)(C)C(O)CC(C1=CC=C(OCC2=CC=CC=C2)C=C1)C(C)C&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.15&quot;, &quot;data-solubility&quot;: -6.14945334947492, &quot;data-similarity&quot;: 0.10294117647058823, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COOC(C)(C)C(O)CC(C1=CC=C(OCC2=CC=CC=C2)C=C1)C(C)C&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.14945334947492&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10294117647058823&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 372.50500000000005&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.6070439397066116&quot;}, {&quot;data-molecular_weight&quot;: 354.42499999999995, &quot;data-scs_score&quot;: 2.789703286827643, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 81, &quot;data-smiles&quot;: &quot;COC1=CC=C(N2C(=O)C(N3CCCC3)CC2C2=CC=C(F)C=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.07&quot;, &quot;data-solubility&quot;: -5.066919315947816, &quot;data-similarity&quot;: 0.10294117647058823, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC1=CC=C(N2C(=O)C(N3CCCC3)CC2C2=CC=C(F)C=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.066919315947816&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10294117647058823&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 354.42499999999995&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 2.789703286827643&quot;}, {&quot;data-molecular_weight&quot;: 439.49700000000024, &quot;data-scs_score&quot;: 1.634853959351528, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 82, &quot;data-smiles&quot;: &quot;COC1=CC=C(C(=O)NN=C(SC2=CC=C3NC=NC3=C2)C2CCCN2C(=O)O)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.47&quot;, &quot;data-solubility&quot;: -5.467135049028173, &quot;data-similarity&quot;: 0.10227272727272728, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC1=CC=C(C(=O)NN=C(SC2=CC=C3NC=NC3=C2)C2CCCN2C(=O)O)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.467135049028173&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10227272727272728&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 439.49700000000024&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.634853959351528&quot;}, {&quot;data-molecular_weight&quot;: 250.3849999999999, &quot;data-scs_score&quot;: 3.4222529835812896, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 83, &quot;data-smiles&quot;: &quot;C1=CC=C(C(C2=CC=CC=C2)C2CCCCC2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.66&quot;, &quot;data-solubility&quot;: -5.657811093503515, &quot;data-similarity&quot;: 0.10204081632653061, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: C1=CC=C(C(C2=CC=CC=C2)C2CCCCC2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.657811093503515&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10204081632653061&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 250.3849999999999&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.4222529835812896&quot;}, {&quot;data-molecular_weight&quot;: 268.31600000000003, &quot;data-scs_score&quot;: 3.0964306785348548, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 84, &quot;data-smiles&quot;: &quot;O=C1NCCN1CC1=CC=C(OC2=CC=CC=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-3.98&quot;, &quot;data-solubility&quot;: -3.9834060262181707, &quot;data-similarity&quot;: 0.1016949152542373, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: O=C1NCCN1CC1=CC=C(OC2=CC=CC=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -3.9834060262181707&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.1016949152542373&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 268.31600000000003&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 3.0964306785348548&quot;}, {&quot;data-molecular_weight&quot;: 455.44000000000005, &quot;data-scs_score&quot;: 1.7934071027871903, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 85, &quot;data-smiles&quot;: &quot;CC1=CC=C2CCC(C(=O)NCCN3CCCCC3)C(C3=CC=C(Br)C=C3)C2=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-6.66&quot;, &quot;data-solubility&quot;: -6.6584987635187725, &quot;data-similarity&quot;: 0.10126582278481013, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: CC1=CC=C2CCC(C(=O)NCCN3CCCCC3)C(C3=CC=C(Br)C=C3)C2=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -6.6584987635187725&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10126582278481013&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 455.44000000000005&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.7934071027871903&quot;}, {&quot;data-molecular_weight&quot;: 510.58700000000033, &quot;data-scs_score&quot;: 1.9121176957950066, &quot;data-img&quot;: null, &quot;mols2grid-id&quot;: 86, &quot;data-smiles&quot;: &quot;COC1=CC=C(CC(NC(C)=O)C(=O)NCCCCCCOC(=O)C=CC2=CC=C3OCOC3=C2)C=C1&quot;, &quot;data-text&quot;: &quot;Solubility (log(mol/L))=-5.73&quot;, &quot;data-solubility&quot;: -5.730554647442604, &quot;data-similarity&quot;: 0.10112359550561797, &quot;mols2grid-tooltip&quot;: &quot;&lt;strong&gt;smiles&lt;/strong&gt;: COC1=CC=C(CC(NC(C)=O)C(=O)NCCCCCCOC(=O)C=CC2=CC=C3OCOC3=C2)C=C1&lt;br&gt;&lt;strong&gt;solubility&lt;/strong&gt;: -5.730554647442604&lt;br&gt;&lt;strong&gt;similarity&lt;/strong&gt;: 0.10112359550561797&lt;br&gt;&lt;strong&gt;molecular_weight&lt;/strong&gt;: 510.58700000000033&lt;br&gt;&lt;strong&gt;scs_score&lt;/strong&gt;: 1.9121176957950066&quot;}]);\n",
       "// filter\n",
       "if (window.parent.mols2grid_lists === undefined) {\n",
       "    window.parent.mols2grid_lists = {};\n",
       "}\n",
       "window.parent.mols2grid_lists[&quot;default&quot;] = listObj;\n",
       "\n",
       "\n",
       "// selection\n",
       "class MolStorage extends Map {\n",
       "    multi_set(_id, _smiles) {\n",
       "        for (let i=0; i &lt; _id.length; i++) {\n",
       "            this.set(_id[i], _smiles[i]);\n",
       "        }\n",
       "    }\n",
       "    multi_del(_id) {\n",
       "        for (let i=0; i &lt; _id.length; i++) {\n",
       "            this.delete(_id[i]);\n",
       "        };\n",
       "    }\n",
       "    to_dict() {\n",
       "        var content = &quot;{&quot;;\n",
       "        for (let [key, value] of this) {\n",
       "            content += key + &quot;:&quot; + JSON.stringify(value) + &quot;,&quot;;\n",
       "        }\n",
       "        content = content.length &gt; 1 ? content.slice(0, -1) : content;\n",
       "        content += &quot;}&quot;;\n",
       "        return content\n",
       "    }\n",
       "    download_smi(fileName) {\n",
       "        var content = &quot;SMILES index\\n&quot;;\n",
       "        for (let [key, value] of this) {\n",
       "            content += value + &quot; &quot; + key + &quot;\\n&quot;;\n",
       "        }\n",
       "        var a = document.createElement(&quot;a&quot;);\n",
       "        var file = new Blob([content], {type: &quot;text/plain&quot;});\n",
       "        a.href = URL.createObjectURL(file);\n",
       "        a.download = fileName;\n",
       "        a.click();\n",
       "        a.remove();\n",
       "    }\n",
       "}\n",
       "var SELECTION = new MolStorage();\n",
       "\n",
       "\n",
       "\n",
       "// kernel\n",
       "var kernel_env = null;\n",
       "if (window.parent.IPython !== undefined) {\n",
       "    // Jupyter notebook\n",
       "    kernel_env = &quot;jupyter&quot;;\n",
       "    var kernel = window.parent.IPython.notebook.kernel;\n",
       "    kernel.execute(&#x27;from mols2grid.select import register as _m2g_reg&#x27;)\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "        kernel.execute(&quot;_m2g_reg.add_selection(&#x27;&quot;+grid_id+&quot;&#x27;, &quot;+JSON.stringify(_id)+&quot;,&quot;+JSON.stringify(smiles)+&quot;)&quot;);\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "        kernel.execute(&quot;_m2g_reg.del_selection(&#x27;&quot;+grid_id+&quot;&#x27;, &quot;+JSON.stringify(_id)+&quot;)&quot;);\n",
       "    }\n",
       "} else if (window.parent.google !== undefined) {\n",
       "    // Google colab\n",
       "    kernel_env = &quot;colab&quot;;\n",
       "    var kernel = window.parent.google.colab.kernel;\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "        (async function() {\n",
       "        const result = await kernel.invokeFunction(&#x27;_m2g_reg.add_selection&#x27;,\n",
       "                                                   [grid_id, _id, smiles], {});\n",
       "        })();\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "        (async function() {\n",
       "        const result = await kernel.invokeFunction(&#x27;_m2g_reg.del_selection&#x27;,\n",
       "                                                   [grid_id, _id], {});\n",
       "        })();\n",
       "    }\n",
       "} else {\n",
       "    function add_selection(grid_id, _id, smiles) {\n",
       "        SELECTION.multi_set(_id, smiles);\n",
       "    }\n",
       "    function del_selection(grid_id, _id) {\n",
       "        SELECTION.multi_del(_id);\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// sort\n",
       "var sort_field = &quot;mols2grid-id&quot;;\n",
       "var sort_order = &quot;asc&quot;;\n",
       "function mols2gridSortFunction(itemA, itemB, options) {\n",
       "    var x = itemA.values()[options.valueName];\n",
       "    var y = itemB.values()[options.valueName];\n",
       "    if (typeof x === &quot;number&quot;) {\n",
       "        if (isFinite(x - y)) {\n",
       "            return x - y; \n",
       "        } else {\n",
       "            return isFinite(x) ? -1 : 1;\n",
       "        }\n",
       "    } else {\n",
       "        x = x.toLowerCase();\n",
       "        y = y.toLowerCase();\n",
       "        return (x &lt; y) ? -1: (x &gt; y) ? 1: 0;\n",
       "    }\n",
       "}\n",
       "function checkboxSort(itemA, itemB, options) {\n",
       "    if (itemA.elm !== undefined) {\n",
       "        var checkedA = itemA.elm.firstChild.checked;\n",
       "        if (itemB.elm !== undefined) {\n",
       "            var checkedB = itemB.elm.firstChild.checked;\n",
       "            if (checkedA &amp;&amp; !checkedB) {\n",
       "                return -1;\n",
       "            } else if (!checkedA &amp;&amp; checkedB) {\n",
       "                return 1;\n",
       "            } else {\n",
       "                return 0;\n",
       "            }\n",
       "        } else {\n",
       "            return -1;\n",
       "        }\n",
       "    } else if (itemB.elm !== undefined) {\n",
       "        return 1;\n",
       "    } else {\n",
       "        return 0;\n",
       "    }\n",
       "}\n",
       "$(&#x27;#mols2grid button.sort-btn&#x27;).click(function(e) {\n",
       "    var _field = $(this).attr(&quot;data-name&quot;);\n",
       "    if (_field == sort_field) {\n",
       "        $(this).removeClass(&quot;arrow-&quot; + sort_order)\n",
       "        sort_order = (sort_order === &quot;desc&quot;) ? &quot;asc&quot; : &quot;desc&quot;;\n",
       "    } else {\n",
       "        $(&#x27;#mols2grid button.sort-btn.active&#x27;).removeClass(&quot;active arrow-&quot; + sort_order);\n",
       "        sort_order = &quot;asc&quot;;\n",
       "        sort_field = _field;\n",
       "        $(this).addClass(&quot;active&quot;);\n",
       "    }\n",
       "    $(this).addClass(&quot;arrow-&quot; + sort_order)\n",
       "    if (sort_field == &quot;checkbox&quot;) {\n",
       "        listObj.sort(&quot;mols2grid-id&quot;, {order: sort_order, sortFunction: checkboxSort});\n",
       "    } else {\n",
       "        listObj.sort(_field, {order: sort_order, sortFunction: mols2gridSortFunction});\n",
       "    }\n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// tooltips\n",
       "$.fn.tooltip.Constructor.Default.whiteList.span = [&#x27;style&#x27;]\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    $(function () {\n",
       "        // hide previous popovers\n",
       "        $(&#x27;#mols2grid a.page-link&#x27;).click(function(e) {\n",
       "            $(&#x27;.mols2grid-tooltip[data-toggle=&quot;popover&quot;]&#x27;).popover(&#x27;hide&#x27;)\n",
       "        });\n",
       "        // create new popover\n",
       "        $(&#x27;.mols2grid-tooltip[data-toggle=&quot;popover&quot;]&#x27;).popover({\n",
       "            placement: &#x27;bottom&#x27;,\n",
       "            trigger: &#x27;click hover&#x27;,\n",
       "            html: true,\n",
       "            sanitize: false,\n",
       "        });\n",
       "    })\n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "// selection modifyers and export options\n",
       "// check all\n",
       "$(&#x27;#btn-chkbox-all&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 9;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id = [];\n",
       "    var _smiles = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox&quot;).each(function() {\n",
       "            this.checked = true;\n",
       "            _id.push(parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;)));\n",
       "            _smiles.push($($(this).siblings(&quot;.data-smiles&quot;)[0]).text());\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    add_selection(&quot;default&quot;, _id, _smiles);\n",
       "});\n",
       "// uncheck all\n",
       "$(&#x27;#btn-chkbox-none&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 9;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox:checked&quot;).each(function() {\n",
       "            this.checked = false;\n",
       "            _id.push(parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;)));\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    del_selection(&quot;default&quot;, _id);\n",
       "});\n",
       "// invert\n",
       "$(&#x27;#btn-chkbox-invert&#x27;).click(function (e) {\n",
       "    var current_page = parseInt($(&quot;li.page-item.active &gt; a&quot;).text());\n",
       "    var n_items = 9;\n",
       "    var last_page = parseInt($(&quot;li.page-item &gt; a&quot;).last().text());\n",
       "    var _id_add = [];\n",
       "    var _id_del = [];\n",
       "    var _smiles = [];\n",
       "    for (let i = 0; i &lt; last_page; i++) {\n",
       "        listObj.show(i * n_items + 1, n_items);\n",
       "        $(&quot;input:checkbox&quot;).each(function() {\n",
       "            this.checked = !this.checked;\n",
       "            var _id = parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;));\n",
       "            if (this.checked) {\n",
       "                _id_add.push(_id);\n",
       "                _smiles.push($(this).siblings(&quot;.data-smiles&quot;).first().text());\n",
       "            } else {\n",
       "                _id_del.push(_id);\n",
       "            }\n",
       "        });\n",
       "    }\n",
       "    listObj.show((current_page - 1) * n_items + 1, n_items);\n",
       "    del_selection(&quot;default&quot;, _id_del);\n",
       "    add_selection(&quot;default&quot;, _id_add, _smiles);\n",
       "});\n",
       "// copy to clipboard\n",
       "$(&quot;#btn-chkbox-copy&quot;).click(function(e) {\n",
       "    navigator.clipboard.writeText(SELECTION.to_dict());\n",
       "});\n",
       "// export smiles\n",
       "$(&quot;#btn-chkbox-dlsmi&quot;).click(function(e) {\n",
       "    SELECTION.download_smi(&quot;selection.smi&quot;);\n",
       "});\n",
       "// export CSV\n",
       "$(&quot;#btn-chkbox-dlcsv&quot;).click(function(e) {\n",
       "    var sep = &quot;\\t&quot;\n",
       "    // same order as subset + tooltip\n",
       "    var columns = Array.from(listObj.items[0].elm.querySelectorAll(&quot;div.data&quot;))\n",
       "                       .map(elm =&gt; elm.classList[1]);\n",
       "    // remove &#x27;data-&#x27;\n",
       "    var header = columns.map(name =&gt; name.slice(5));\n",
       "    // csv content\n",
       "    header = [&quot;index&quot;].concat(header).join(sep);\n",
       "    var content = header + &quot;\\n&quot;;\n",
       "    for (let [index, smiles] of SELECTION.entries()) {\n",
       "        var data = listObj.items[index].values();\n",
       "        content += index;\n",
       "        columns.forEach((key) =&gt; {\n",
       "            content += sep + data[key];\n",
       "        })\n",
       "        content += &quot;\\n&quot;;\n",
       "    }\n",
       "    var a = document.createElement(&quot;a&quot;);\n",
       "    var file = new Blob([content], {type: &quot;text/csv&quot;});\n",
       "    a.href = URL.createObjectURL(file);\n",
       "    a.download = &quot;selection.csv&quot;;\n",
       "    a.click();\n",
       "    a.remove();\n",
       "});\n",
       "// update selection on checkbox click\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    $(&quot;input:checkbox&quot;).change(function() {\n",
       "        var _id = parseInt($(this).closest(&quot;.cell&quot;).attr(&quot;data-mols2grid-id&quot;));\n",
       "        if (this.checked) {\n",
       "            var _smiles = $($(this).siblings(&quot;.data-smiles&quot;)[0]).text();\n",
       "            add_selection(&quot;default&quot;, [_id], [_smiles]);\n",
       "        } else {\n",
       "            del_selection(&quot;default&quot;, [_id]);\n",
       "        }\n",
       "    }); \n",
       "});\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "// generate images for the currently displayed molecules\n",
       "var draw_opts = {&quot;width&quot;: 300, &quot;height&quot;: 200};\n",
       "var json_draw_opts = JSON.stringify(draw_opts);\n",
       "\n",
       "var smarts_matches = {};\n",
       "\n",
       "// Load RDKit\n",
       "window\n",
       ".initRDKitModule()\n",
       ".then(function(RDKit) {\n",
       "    console.log(&#x27;RDKit version: &#x27;, RDKit.version());\n",
       "    window.RDKit = RDKit;\n",
       "    window.RDKitModule = RDKit;\n",
       "\n",
       "    // search bar\n",
       "    function SmartsSearch(query, columns) {\n",
       "    var smiles_col = columns[0];\n",
       "    smarts_matches = {};\n",
       "    var query = $(&#x27;#mols2grid #searchbar&#x27;).val();\n",
       "    var qmol = RDKit.get_qmol(query);\n",
       "    if (qmol.is_valid()) {\n",
       "        for (var k = 0, kl = listObj.items.length; k &lt; kl; k++) {\n",
       "            var item = listObj.items[k];\n",
       "            var smiles = item.values()[smiles_col]\n",
       "            var mol = RDKit.get_mol(smiles);\n",
       "            if (mol.is_valid()) {\n",
       "                var results = JSON.parse(mol.get_substruct_match(qmol));\n",
       "                if (results.atoms) {\n",
       "                    item.found = true;\n",
       "                    \n",
       "                    smarts_matches[smiles] = results;\n",
       "                    \n",
       "                } else {\n",
       "                    item.found = false;\n",
       "                }\n",
       "            } else {\n",
       "                item.found = false;\n",
       "            }\n",
       "            mol.delete();\n",
       "        }\n",
       "    }\n",
       "    qmol.delete();\n",
       "}\n",
       "var search_type = &quot;Text&quot;;\n",
       "$(&#x27;#mols2grid .search-btn&#x27;).click(function() {\n",
       "    search_type = $(this).text();\n",
       "    $(&#x27;#mols2grid button.search-btn.active&#x27;).removeClass(&quot;active&quot;);\n",
       "    $(this).addClass(&quot;active&quot;);\n",
       "});\n",
       "$(&#x27;#mols2grid #searchbar&#x27;).on(&quot;keyup&quot;, function(e) {\n",
       "    var query = e.target.value;\n",
       "    if (search_type === &quot;Text&quot;) {\n",
       "        smarts_matches = {};\n",
       "        listObj.search(query, [&#x27;data-smiles&#x27;, &#x27;data-text&#x27;, &#x27;data-smiles&#x27;, &#x27;data-solubility&#x27;, &#x27;data-similarity&#x27;, &#x27;data-molecular_weight&#x27;, &#x27;data-scs_score&#x27;]);\n",
       "    } else {\n",
       "        listObj.search(query, [&quot;data-smiles&quot;], SmartsSearch);\n",
       "    }\n",
       "});\n",
       "\n",
       "    \n",
       "    // generate images for the currently displayed molecules\n",
       "RDKit.prefer_coordgen(true);\n",
       "function draw_mol(smiles) {\n",
       "    var mol = RDKit.get_mol(smiles, &#x27;{&quot;removeHs&quot;: false }&#x27;);\n",
       "    var svg = &quot;&quot;;\n",
       "    if (mol.is_valid()) {\n",
       "        var highlights = smarts_matches[smiles];\n",
       "        if (highlights) {\n",
       "            var details = Object.assign({}, draw_opts, highlights);\n",
       "            details = JSON.stringify(details);\n",
       "        } else {\n",
       "            var details = json_draw_opts;\n",
       "        }\n",
       "        svg = mol.get_svg_with_highlights(details);\n",
       "    }\n",
       "    mol.delete();\n",
       "    if (svg == &quot;&quot;) {\n",
       "        return &#x27;&lt;svg width=&quot;300&quot; height=&quot;200&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 300 200&quot;&gt;&lt;/svg&gt;&#x27;;\n",
       "    }\n",
       "    return svg;\n",
       "}\n",
       "listObj.on(&quot;updated&quot;, function (list) {\n",
       "    var query = $(&#x27;#mols2grid #searchbar&#x27;).val();\n",
       "    if (query === &quot;&quot;) {\n",
       "        smarts_matches = {};\n",
       "    }\n",
       "    $(&#x27;#mols2grid .cell&#x27;).each(function() {\n",
       "        var $t = $(this);\n",
       "        var smiles = $t.children(&quot;.data-smiles&quot;).first().text()\n",
       "        var svg = draw_mol(smiles);\n",
       "        $t.children(&quot;.data-img&quot;).html(svg);\n",
       "    });\n",
       "});\n",
       "    \n",
       "\n",
       "    // trigger update to activate tooltips, draw images, setup callbacks...\n",
       "    listObj.update();\n",
       "    // resize iframe to fit content\n",
       "    if (window.frameElement) {\n",
       "        window.parent.fit_height(window.frameElement);\n",
       "    }\n",
       "});\n",
       "    &lt;/script&gt;\n",
       "  &lt;/body&gt;\n",
       "&lt;/html&gt;\">\n",
       "</iframe>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot_molecules_df(molecules_df=second_set_molecules_df, similarity_threshold=similarity_threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "a3b63edb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f81bce3dbd0>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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y+bEadsFdH1ax1Z5XI8WjYhrUL4+4lR+ESkHMrwgocERRkl4iaNHj3L99dfTvn17+vXrx6BBg5g5c6bf5FmyZEm1Yu20bduW48ePV92wGrz55pt069aNG264gfz8fEaOHElycjLTpk1zeoyzsOaVhSBv2LChx2SuivHjxzN9+nSf9RdMrNxruzaif9vGLiUWCgkRhnaKt6lbuiMwY7bVRoxNwgsopbj88su55ZZb+OKLLwDYt28fs2fP9mq/lYUNX7JkCQ0bNvRI9E5PMXnyZBYuXEhSUhK///47QFm8K0PtY3UFJdHE5WOHdU5gV1Z5rpWlO9J49IIuHpPN4JzarSSei/Hy+TMdVi9atIiIiAgmTJhQVtemTRvuv/9+AIqLi3niiSdYsmQJ+fn53Hvvvdx1110sWbKE5557jvj4eDZt2kS/fv347LPPEBHWrFnDI488QnZ2NvHx8UydOpXmzZszfPhwkpOTWbZsGddddx2dO3dm4sSJFBQUEBcXx+eff05ubi7vvvsuoaGhfPbZZ7z11lt07dqVCRMmsH//fkD7vQ8ZMoT09HSuu+46Dh48yKBBg3C02LK4uJjbb7+d1atXIyLcdtttPPzww+zatYsJEyaQlpZGaGgo33zzDU2bNuWyyy7j5MmTFBYWMnHiRC677DImTJjA7t27ueiii7jxxhv54IMPSEtLIzk5mRkzZrB3714ee+wxioqKOPPMM3nnnXcqhBh3JwT5ww8/zI8//kizZs346quvSEhI4IMPPuD999+noKCAjh078umnnxIVFcU333zD888/T2hoKDExMSxdutTpd6aU4v777+enn36iVatWRES4GDZiwHuutQtQ3nvPfflX7bFVEgPaua4khnZK4KW3fi3b3nAwkxOnC2jSwITp8DZmuskLbN68mb59+zrd/+GHHxITE8OqVatYtWoVH3zwAXv27AFg3bp1TJo0iS1btrB7925+++03CgsLuf/++5k+fTpr1qzhtttu429/+1vZ+QoKCli9ejWPPvooZ599Nr///jvr1q1j3LhxvPrqq7Rt25YJEybw8MMPk5KSwtChQ3nwwQd5+OGHWbVqFTNmzOCOO3QSwOeff56zzz6bzZs3c8UVV5QpEWtSUlI4ePAgmzZtYuPGjdx6660A3HDDDdx7772sX7+e5cuX07x5cyIjI5k5cyZr165l8eLF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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "minimum_value = min(first_set_molecules_df[\"solubility\"].min(), second_set_molecules_df[\"solubility\"].min())\n",
    "sns.distplot(first_set_molecules_df[\"solubility\"], label=f\"{molecule_name}-based\", hist=False, kde_kws={\"linewidth\": 4})\n",
    "plt.axvline(x=first_set_molecules_df[\"solubility\"].mean(), linestyle=\"--\", c=\"lightblue\")\n",
    "sns.distplot(second_set_molecules_df[\"solubility\"], label=\"Generated scaffold-based\", hist=False, kde_kws={\"linewidth\": 4})\n",
    "plt.axvline(x=second_set_molecules_df[\"solubility\"].mean(), linestyle=\"--\", c=\"orange\")\n",
    "plt.axvline(x=solubility, linestyle=\"--\", c=\"k\")\n",
    "plt.xlabel(\"Solubility (log(mol/L))\", size=14)\n",
    "plt.ylabel(\"Density\", size=14)\n",
    "plt.xlim([min([first_set_molecules_df[\"solubility\"].min(), second_set_molecules_df[\"solubility\"].min(), solubility]), 0.0])\n",
    "plt.title(f\"Solubility using {molecule_name} as a reference\", size=14)\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "468f43e7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Analyzing the landscape of the generated molecules')"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAGICAYAAACtCvK+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAB8BElEQVR4nO2deXxU1fXAv2cmKyEkbFEgYFRwRUQ2FZGmFZdat1pcaF1wA1sV19blp9SiVm21WqtWXJCqrbt1q7Vqa0RFBUTcFxBRAkjYErLPdn9/3DfJZJiZzCSzJOF8P5/5zMx799133jJz3j33LGKMQVEURVGUnoUr0wIoiqIoipJ8VMEriqIoSg9EFbyiKIqi9EBUwSuKoihKD0QVvKIoiqL0QFTBK4qiKEoPRBV8D0FErhWRT5LY3yoRuSxZ/SW473IRMSIyIMn9ljn9jktmv1H29aKIzE/1fjKNiLhEZK6IbHLObXkC21aIyJ2pk04BEJFxzrUpy8C+54vIi2ne53QRqUvnPrsqquDTgIiMERG/iLydaVkSYDxwd6p3on/y3Z4jgTOAo4FBwMLwBql6YOvJqJJSkoEq+PRwNlZZjhSRPTMtTDwYYzYYYxoyLYfS5RkOrDPGLDTGfG+M8WRaoK6MiORkWgZl+0EVfIoRkXzg58C9wFPAWWHrg2bjn4nIqyLSICKficihIW3cIvKAiHwjIo0islxEfiMiEa+fiEwWEa+I7Bi2/AYR+cj5vMrZb/irLGT9ZSHbGhGZISJPiki9iKwUkVPC+t9fRJaKSJOIfCAiR8Yy2zom7B8A54Xv32FfEXnPOSdLRGRM2PYTReQNZ/0aEfmriPSJtK8o+2/3vAZNjCJyobOPLSLyoIj0CmnTy2lXJyLrReSqCPs6XkQ+cvaz2ZF7h5D1RzrH2uiYu18QkTxn3SkislhEakWkyrkGQ0K2DY6QjxKRZc75f19Exnb2fDn30ntOn+tF5LagknKu323AMGf/qyJsXwa87nzd4LSbH9LEJSK/F5GNzrHdEnb+c0TkZhGpdOReLCKHtyNzgYg8FHI9rpSwKZP2+g05p4d05h4Ua6H6q3NcG4C3neWXOPdDvbPd/SJSHNw38CBQEPK7uDbe8yEiR4jIF841exPYLdb5crZZJSKznfu4VkRWi8hJIlIsIo8553K5iBwWtl3U+yPKfkTsb+xr517/WLb9HxksIn93fgcNzj39Q2fdNlOREoe1Q0SOdn4TTWJ/7zeEyint/D67LcYYfaXwBZwKfOh8LgeqgOyQ9WWAAb7AmjlHAH8DNgG9nTbZwBys2bwMOBGoBs4K6eda4JOQ718Avwn57gJWAxc63wcCO4a8XgA+B/Kd9auAy0K2N0AlcAp21HYj4AGGOet7AxuAfwB7A4cCnzrblUc5N0VYk+68EDncznkywCLgh8AewH8c+cTZdh+gDrjUOWf7A+8AT8W4FsFzPS6B8zofqAHuA/YEDnPaXBnS5m5gDXA4MBJ4EtgKzHfW7+icq0ud/YzEWnV2cNYfAfiA64G9gFHAZUAvZ/2ZWFP4LsAErMJcELL/4Pn6IkyGdSF9dOR8DQHqgXucYz8K+B64NeT6/Q57X+0IDIzQhxs43pFvL6ddkbOuwjm3c7BK6ETnPEwL2f7vwLvAZOf4z3fO5b4x5L4H+BZ7D+4NPObsZ368/ZKke9A5xlrgVqePPZ3lFwE/cu6HHwAfAQ8763KAC51zH/xd9I5T7qFAE/AXZ38nYn+3BiiLcc5WAZuBXznHcqvTz0vAadjf/APY/6+8eO6PkN/PiyHfbwC+xN7zO2MHP/XAT5z1BcBy7IPQwcCu2Pvnh5H+55xl04G6GN8Px/4ez3D6+6Ejwy3x/D678yvjAvT0l/MDv8z5LM4PaWrI+jLnxzczZNkQZ9mkGP3eBLwW8r3NjY9VEJ+HfP8x0Az0j9DX5cBGYNeQZavYVsHfGPI9C2gATnG+z3T+IPJD2vycGAo+5PzcGbas3Nnu8JBlBznLSp3vDwEPhG032mlTEmVfwXM9LoHzOh+rwNwhy+4LtsE+2DQDvwhZ3xv7EDDf+T7G2e9OUfb5NvBYAvfUHmHnIni+IslwdifO1w3YP1tXyLLpzvEGHxwuA1a1I29QvgERrv07YcteBe53Pu8KBHAeIkPaPAvcHWVfvbF/1ieHLCsAtoRcj3b7TdY96BzjR3Fc0yOc8+oKOc91YW3ikfv3wFc4DyHOsquJT8E/GnYeDXBHtN9PnPfHfBwF71yHRuDgsH3fDrzkfD4H+0A0IIqc15K4gl8AXBO2zXHYhzOhnd9nd35loaQMERkOTMIqOowxRkT+jjXTPxXW/KOQz2ud95KQvs7FPlXuBORjR5/fxtj934AbRGSiMWYhdhT4rDFmU5iMR2NHYYcbY75u55BaZDTG+ByTY1DGPbA/vMaQ9u+10197RDsnlcBYYLiInBTSRpz3XbEjjXaJ87x+Zozxh8myf8i+crAjNwCMMXUi8nFI+w+B14BPROQV5/NTxpgNzvr9sH+E0WQcA/wWqzz6hRznMOy5CBJJhr2cRR05X3sC7xpjAiHL3nKOdzhtr09HCe9jLa331BhHxs9EJLRNLvC/KP3tir2Gi4ILjDH1YWbdRPpNxj34friQIvIj4ErsOS7CWjpysKPJteHtE5A7eM1MyPp3iI/Q33ediDQAoffxeuc9eH0SvT/2AvKAl0UkVL5s7AMG2N/CR8aYjXHKHA9jgQkicnnIMhf2974j7f8+uy2q4FPL2dgf7nchP0gBEJGhxpjVIW29wQ/OgwA4PhLOH8jt2NHSQqy56Tzgp9F2bIzZICLPA2eKyJfAMdgpgBZEZCTW5HeeMeaNOI7HG/bdkFo/jtD9Bf8QXCHv92PngMNZE0/nCZzXTh23McbvzF0egDXxnwXcKCI/MMZ82I6MBVjT8GvY6Z4qYADwJvaPNF46fb7CMO03iYtY59blfB8foV0jHSeRfpNxD9aHrhCRnYB/YS1Bs7HTcWOAR4l9TVN1PoJEuhaxjj8Wke6P4HZHA9+1s+9oBGh9iAqS3c42Luwg5skI6zZ05vfZ1VEFnyJEJAs4HfuUHh4H+jB2PmhOnN1NAt4zxrSEk4nIrnFsdx/WUrASOzf2Wsj2A7Dz7vcZYx6IU45YfAGcLiL5IaP4CXFs58E+BCXKUmBvY8yKDmwbpKPnNZSvsX9OB2DPc1Apj3TWAfahDTuSekdE5mD9E07Cjh4+AA7BXq9w9sAq9KuMMd84/R8fRZZIMjzkrOvI+focOFFEXCGjtEnYa9aetSeUoGd9otf5A+yf+Y7GmNfj3CZ4PcbTei560fZ6dKTfSHT0HhyHVeQXBy1DInJUWJtIv4t45P4c+JmISMgo/oAE5YuXRO+Pz7Dm+52MMdEsMB8Ap4rIgCij+A3ADmHHN7odOZcCe8S6Tu38Prst6kWfOn6C/WO+zxjzSegL6/RzhoTZ2WLwFTBGRH4sIiNE5BqsY057vIodHfwWO/8Yakp7GjvKuFVEdgx5dUTZgnWu8wP3icheIjIFCHqTxxrtrcKaz8pEZIBEiQyIwM3OdveIyH4iMlysF/ncBGTu6HltwRhTh3U+ullEDhWRvbFOgy3nUUQOEJGrRWS8iAzDWlOGYv/wwM5lniAi1zvnbm8RudhRTN9h/xTPF5FdROQnwHVRxLk6TAYP9rpAx87X3cBg4G4R2dPZ901Yn4lEQii/xd4DPxGRgSLSO56NjDFfYS1M80VkqnP840TksmgPOc71mIe9HoeIyF7YUXZw9NuhfqPQ0XtwuSPPRSKys4hMwzrdhbIKyHOu5wAR6RWn3Pdg58pvF5HdRWQqcG4Cx5QICd0fxpha4BbgFhE50zlfo0XkXBGZ4TT7B9ZK9ZyIHOwc4zHieNFjfRr6AVeJyK4ichYwtR055wA/F5E5IjJSRPZwzt8fIK7fZ/cl004APfUFPA+8EmXdLtg/m8OI4vjlLJvqfM7BKpEtWMepB7CmvVUh7a8lzPnEWT4ba9Yqi9B/pFeZs34V2zrZTQ3rI7zNAdgn8Gbn/WfOdvvHOE+7YZ+cG4L7J4JTVqTzhB0JvYw1rddj5wvnxNhXmz7iPK/zCfECjnSusc5DD2GddqqAa7BWm/nO+j2Bf2PnMJuBFYREODhtjsHO1TZjHR6fp9Vb+STsiKgJO7d8OCHOiyHn6xjsvGczdtQyPmwfCZ0vZ5vJWF+KZkf+24DckPXtOtk57a7BevUHQs5LBds6WLY531jz67XY0bgHa4l6HhgbY1+9sVayekfmK4D/An+Nt1+SdA9GOkZn+SzsA3ajI9uJhDnCAX917gUDXBvv+cAOLr507pe3gV+E9x1BnlWE/JadZXXA9JDveU4/RyVwf4RfTwEuoHU0vwE7EDk0pE0p8Dj2N9mA/S8pD1k/E/vQWI8dLF1IDCc7Z9lh2GmtBudaLQHOj/f32V1fwXAPpYciIn8FhhtjDm23cfL3fSzwT6xHcTKdZpQQxMZNv44NU9PzHIaI5GIVwh+NMbdmWh5FSRc6B99DEZEirNfqadjRQTr2eTp2ZLEaO+d5O/CCKh0lnYjIfthR2SKgEBsGWogdFSrKdoMq+J7Lc1gntweMMf9K0z53wHqrDsKaDv+F/XNVlHRzCbA7NnHOMmCyMaYy5haK0sNQE72iKIqi9EDUi15RFEVReiCq4BVFURSlB9Lt5+AH9OtnygYPzrQYiqIoCREwBowPV257idiU7kggYPBjcGXnJr3vZe8v22iMGdheu26v4MsGD2bJK69kWgxFUZTEWfcx7LlPpqVQUkR18xqyivZMer+F7sJYdUhaUBO9oihKBrh7/nzufvKFTIuhpIi7753P/Q+E1xRLL6rgFUVRMsATL77IE68uyLQYSop44pkXefbZ19pvmEJUwSuKoihKD6Tbz8FHwuv3U1lXR5Pf335jRUkxeW43pb17k+3uaB0fRVGUxOmRCr6yro7Cvn0p69uX+Au2KUryMcawacsWKrdsYeeiokyLoyjKdkSPNNE3+f30V+WudAFEhP59+6o1SVGUtNMjR/CAKnely6D3ohKJiqeesmFySo+k4uWnqG5ek1EZeuQIXkk9Wb16UfHGG5kWQ1EURYmCKvgeTPmhhyK5uTzxVNtYzPcWLUJycynbbbcMSaYoyi333MMtD2c2TlpJHbfcfg9/+csjGZUhbQpeROaJSJWIfBJlvYjIHSKyQkQ+EpEx6ZKtJ7PnHntw3wMPtFl237x57LnHHhmSSFGUilU1/OHR57nuuXeZ9tByKlbUZFokJcm8+PJr/OeVtzIqQzpH8POBI2Ks/zEwwnnNAP6aBpl6PMcfdxwffPghK1euBKC2tpan//lPzjjttJY2DQ0NXHjJJQzddVcGDB7McVOn8t1337Wsr62t5fSzzqLfjjuy04gR/O3hh7fZz7PPPcfYAw6guKSEPUeN4u+PPpr6g1OUbkjFqhpmV1Ti9RuyBKpqvcx+qVKVvJJ00qbgjTELgM0xmhwLPGQs7wLFIjIoPdL1XPLy8vjFySfzwPz5ADz6+OP84OCDGTSo9dRefNllvLtoEe8uWMC3y5czYMAAjj7+ePyO5/dFl13G8hUr+GzZMj5asoTnXnihZR3Aq6+9xlnnnsvtt9zC5u+/528PPMD5F13EgjffTOuxKkp3YO7SKrLdgstlnS975bjIdgtzF1ZlWDKlp9GV5uCHAKtDvlc6y7ZBRGaIyBIRWbJhy5a0CNedOeess3jwoYfw+Xzc+8ADnHPmmS3rAoEAf3vkEa6/9lqGDBlCQUEBt99yC59/8QWLFi8mEAjw90cf5brf/pYdd9yRoqIibr7hhjb9//nOO7nw/PM5eNIkXC4XE8aP55Rp03jo739P96EqSpdn9VYP+VltIyvys4XKak+GJFJ6Kl1JwceNMeZeY8w4Y8y4gX37ZlqcLs/Ivfdmp2HDuO73v6dqwwaOOPzwlnUbNmygubmZncvKWpb17t2bkpISVldWtqwv22mnlvU777xzm/6/WbWKm2+5heKSkpbX/IcfZu3atSk/NkXpbgztk0Ojz+DOzsHtlBJt9BpKi3MyLJmSTPLz8sjLS36p2EToSnHwa4ChId9LnWVKEphx1lmcNXMms//v/3CHpEwdOHAgubm5rPr2W4YPHw5AXV0dVVVVDC0tZcCAAeTk5LDq22/ZddddAVi1alWbvncaNozpp57Kry+9NG3HoyjdlZljSphdUck+039PvmmmwRPA6zfMnFiSadGUJPLvZx/ROPgQngdOc7zpDwBqjDHrMi1UT2HaSSfxyr/+xYXnn99mucvl4rRf/IJrfvc71q5dS0NDA5f+5jfssfvuTBg/Hrfbzc9PPpnfXncd69evZ+vWrVxx9dVt+rjoggu47S9/4c233sLv9+PxeHh/6VKWvP9+Og9RUboF5WVFzCkvpaQgmxoPlBRmM+fIUsqHaypjJbmkM0zuUeAdYHcRqRSRs0TkXBE512nyErASWAHcB/wqXbJtD+Tl5THlkEPoG2FK47ZbbmHcmDGMP+gghg0fzrrvv+f5p59uGen/+dZb2bmsjD1GjWKfsWM5+ic/aWMFOOzQQ7nv7rv59ZVXMmDwYAbttBMX//rX1NXVpe34FKU7UV5WxF7fvshh6x7n0dNGqHLvgVx302388Y8PtN8whYgxJqMCdJZxI0eaJa+80mbZ55s3s6cmcVG6EJ9/9RV79uuXaTGULkT51KnQXEfFmy9nWhQlBZQfMRVfoJmXFyQ/42ehu/B9Y8y49tp1JRO9oiiKoihJQhW8oiiKovRAVMEriqIoSg+kK4XJKYqibDf079sXGnWM1VPp368vXn9jRmVQBa8oipIBnr7vPq0H34N5+h/3aRy8oiiKoijJRxW8oihKBrjyxhu58s55mRZDSRFXzr6R3825K6MyqIJPEe78fEaPH8++48YxZv/9WfjOO+1uc/sdd9DQ0JAG6dpSfuihacs6N/+hhzj/wgvTsi9F6cq88/77vPPR55kWQ0kR7yx6n8WLMzsFowo+ReTn57Ns8WI+XLKEG6+7jiuvuabdbW6/886EFbzP5+uoiIqiKEoPRhU8UPHVRqY9uIRJf3qTaQ8uoeKrjUntf2ttLX2Li+2+3niDo447rmXd+RdeyPyHHuKOO+9k7dq1/PCww/jhYYcB0Dsk89lTzzzD9LPPBmD62Wdz7nnnsf+kSfzmyitZ9uGHHHDwwYwaO5afnnACW5wSuuWHHsrlV13FhIMOYre99+bNt96KKuPDf/87o8ePZ+R++7Fo8WIAFi1ezIGTJ7PfhAlM/MEP+PLLLwH49LPPmHDQQYweP55RY8eyfPlyAB75xz9als/81a9aasY/+Le/sdveezPhoIN4Ow5LhqIoitJ5tnsFX/HVRmb/6wuqapspzs+iqraZ2f/6otNKvrGxkdHjx7PHPvtw9rnncs1VV8VsP+v88xk8eDCvv/IKr4el3o1E5Zo1LHzjDf70xz9y2plncvMNN/DR+++zz8iR/O7661va+Xw+Fr39Nrffckub5eE0NDaybPFi7r7jDs6cMQOAPXbfnTf/9z8+WLSIObNnc9Xs2QDcc++9XHj++SxbvJgl77xDaWkpn3/+OY8/+SRvV1SwbPFi3G43f3/0UdatW8dvr7uOtysqeOv11/nsczVJKoqipIPtPkxu7turyHYLvXJs8ZReOW4aPH7mvr2K8t0GdLjfoIke4J133+W0M8/kkw8+SIrMACf87Ge43W5qamqorqnhB5MnA3D6Kadwws9/3tLueMdaMHbMGFZ9+23U/qadeCIAkw8+mK21tVRXV1NbW8vpZ53F8hUrEBG8Xi8ABx5wADfcdBOVa9Zw/LHHMmLECP77+uu8/8EHjJ84EbAPOCUlJby3aBHlkyczcOBAAE6aOpWvnBG/omzPlA4aBI1bMi2GkiJKBw/CE0i/T1Uo272CX72lkeL8tqchP9tF5ZbkJSg48IAD2LhpExs2bCArK4tAINCyrqm5Oep2ItLarqmpzbqCgoK49p2bmwuA2+3G55jMzzjnHD5YtozBgwbx0vPPb7Ov4Pdrfvc7fviDH/DPJ59k1apVlDtTBz8/+WT2Hz+ef/373xx57LHMvesujDGcfsop3BhmJXj2uefiklNRtjce+ctfNA6+B/PIvL9oHHymGdo3n0ZvoM2yRm+A0r75SdvHF198gd/vp3///uw0bBifffEFzc3NVFdX89///a+lXWHv3tTW1rZ836GkhM8//5xAIMA/oyjKoqIi+hYXt8yvP/yPf/CDgw+OKc+D993HssWLW5Q7wONPPgnAW2+/TVGfPhQVFVFTU8OQIUMAmP/wwy1tV65cyS677MKs88/n2KOP5qOPP+aQH/2Ip555hqqqKgA2b97Mt99+y/4TJvDGm2+yadMmvF4vTz7zTCKnTlEURekg2/0IfuZBZcz+1xc0ePzkZ7to9Abw+g0zDyrrVL/BOXgAYwx/u/9+3G43Q4cO5cSf/YyR++3HzmVl7Dd6dMs2M846iyOOPrplLv6mG27gqJ/+lIEDBzJuzBjq6usj7utvDzzAueefT0NDA7vsvDMP3ndfwvLm5eWx34QJeL1e5t17LwC/ufRSTj/rLK6/8UZ+8uMft7R94umnefjvfyc7O5sdd9iBqy6/nH79+nH9737HYT/5CYFAgOzsbO768585YP/9ufbqqzlw8mSKi4sZPWpUwrIpSk/kotmzoWETt9+f2VhpJTVc9OvZNPvr+ePdif8fJwutB491tJv79ioqtzRS2jefmQeVdWr+XVHC0XrwSjhaD75n0xXqwW/3I3iA8t0GqEJXFEVRehTb/Ry8oiiKovREVMEriqIoSg9ETfSKoigZYLdddoGGzZkWQ0kRuw3fBY8/smN0ulAFryiKkgHu/cMfNA6+B3PvnX/QOHhFURRFUZKPKvgUsX79en5+2mnssvvujD3gAA6cPDlqspp0UPHGG3GVrA2nbLfd2LgxucV3gtxx553sOWoUvzj9dJqbm5lyxBGMHj++JelOJKKVto1VhrZ3GsPTpp99Nk9pMh8lDmb85jfMuOHPmRZDSREzzv8NF130+4zKoCb6FGCM4bgTTuD0U07hHw89BMC3337L8y++mNL9+nw+srIiX9KKBQvoXVDAxAMPTKkMiXD33Lm89u9/U1payrvvvQfQkr9fUXo6X61cCc11mRZDSRFfrViJLxA9FXk60BE8wNf/hb//FO4aa9+//m+nuvvf66+Tk5PDuU5VNoCddtqJC847DwC/38+vr7iC8RMnMmrsWOY6mecq3niD8kMPZerJJ7PHPvvwi9NPJ5iI6P2lS/nBlCmMPeAADv/JT1i3bh1gR7QXXXop4w48kD//5S+88OKL7D9pEvtNmMCUI45g/fr1rFq1invuu4/b/vIXRo8fz5tvvcWGDRv42UknMX7iRMZPnMjbCxcCsGnTJg478kj2Hj2as889l0iJkPx+P9PPPpuR++3HPmPGcNuf7ShkxYoVTDniCPYdN44x++/P119/TV1dHYccfjhj9t+ffcaM4TknPe65553Hym++4cfHHMPNt9zCKdOns/j99xk9fjxff/01//3f/9hvwgT2GTOGM2fMoDlCzv5EytBefNll7D16NIccfjgbNmwA4L4HHmD8xInsO24cPzvpJBoabGGIJ59+mpH77ce+48Yx+ZBDYl4zYwznX3ghu48cyZQjjmhJ1asoipJpVMF//V/4z+VQtx7yiu37fy7vlJL/9LPPGBOSgjacBx58kKKiIhYvXMjihQu5b948vvnmGwA+WLaM22+5hc8+/JCV33zD2wsX4vV6ueDii3nq0Ud5/913OXP6dP7vt79t6c/j8bDknXe49OKLmXTQQbz75pt8sGgRJ594In+49VbKyso495xzuPiCC1i2eDEHT5rEhZdeysWzZrF44UKefuwxzj73XAB+d/31TDroID5dtoyfHnMM33333TbyL/vwQ9asWcMnH3zAx0uXcsbppwPwi+nTOe+Xv+TDJUtY+MYbDBo0iLy8PP755JMsfe89Xn/lFS69/HKMMdxz110tKXkvv+wy7r/nHg4+6CCWLV7MkCFDmH7OOTz+yCN8vHQpPp+Pv86d20aGRMrQ1tfXM27sWD5dtowfTJ7cUjb3+OOOY/HChXy4ZAl77rEHDzz4IABzbriB/7z4Ih8uWcLzTz8d85r987nn+PKrr/jsww95aN48Fr77bnu3h6IoSlpQE/27d4I7B7J72e/B93fvhF0PScouzps1i7cWLiQnJ4fFCxfyymuv8dHHH7fM1dbU1LB8xQpycnKYMG4cpaWlAIweNYpV335LcXExn3z6KYceeSRgR5ODdtyxpf+TTjih5XPlmjWc9ItfsO777/F4POxcVhZRptf+9782SnFrbS11dXUseOstnnn8cQB+cuSR9O3bd5ttd9l5Z1Z+8w0XXHQRP/nxjzns0EOpra1lzdq1/PTYYwGb2x7A6/Vy1TXXsOCtt3C5XKxZu5b169ezY4j84Xz51VfsXFbGbk664dNPOYW77rmHi2bNammTSBlal8vVco5OmTaN4086CYBPPv2Uq6+9lurqaurq6jj80EMBOOjAA5l+9tmcOHVqS7ndaNdswZtvMu2kk3C73QwePJgflZdHPS5FUZR0ogq++js7cg8lK98u7yB777UXTz/7bMv3u+64g40bNzLOqZVujOEvt93G4U751SAVb7zRUt4VnBKvPh/GGPbeay/eWbAg4v5CS8decPHFXDJrFsccfTQVb7zBtWHlW4MEAgHeffPNFkWcCH379uXD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",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(8 , 6))\n",
    "\n",
    "plt.axvline(x=desired_solubility, linestyle=\"--\", c=\"k\")\n",
    "plt.axvline(x=solubility, linestyle=\"--\", c=\"k\")\n",
    "ax.axvspan(xmin=desired_solubility, xmax=0.0, alpha=0.1, color=\"lightgreen\")\n",
    "ax.axvspan(xmin=solubility, xmax=desired_solubility, alpha=0.1, color=\"orange\")\n",
    "ax.axvspan(xmin=minimum_value - .5, xmax=solubility, alpha=0.1, color=\"red\")\n",
    "plt.scatter(first_set_molecules_df[\"solubility\"], first_set_molecules_df[\"similarity\"], label=f\"{molecule_name}-based\", alpha=0.8)\n",
    "plt.scatter(second_set_molecules_df[\"solubility\"], second_set_molecules_df[\"similarity\"], label=\"Generated scaffold-based\", alpha=0.8)\n",
    "plt.xlabel(\"Solubility (log(mol/L))\", size=14)\n",
    "plt.ylabel(\"Tanimoto similarity\", size=14)\n",
    "plt.legend(title=\"Mode\", title_fontsize=13)\n",
    "plt.xlim([minimum_value - .5, 0.0])\n",
    "plt.title(\"Analyzing the landscape of the generated molecules\", size=14)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7079c3e9",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.7.12 ('gt4sd_37')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.12"
  },
  "vscode": {
   "interpreter": {
    "hash": "54d70367f76e5453ce5f02f6b81dc050ecb9e0de86da02b58851f81781c5d71f"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}