{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Find and Highlight the Maximum Common Substructure Between a Set of Molecules Using RDKit" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When analyzing a set of molecules, you might want to find the maximum common substructure (MCS) match between them. This utility function `SmilesMCStoGridImage` does that for a set of molecules specified by [SMILES](https://en.wikipedia.org/wiki/Simplified_molecular-input_line-entry_system), displays the [SMARTS](https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification) substructure as a molecule, and displays all the molecules in a grid with that substructure highlighted and aligned.\n", "\n", "*[Download this notebook from GitHub by right-clicking and choosing Save Link As...](https://raw.githubusercontent.com/bertiewooster/bertiewooster.github.io/main/_notebooks/2022-10-09-RDKit-find-and-highlight-the-maximum-common-substructure-between-molecules.ipynb)*\n", "\n", "The key RDKit commands it uses are:\n", "- [`FindMCS`](https://www.rdkit.org/docs/source/rdkit.Chem.rdFMCS.html) to find the maximum common substructure (SMARTS string)\n", "- [`MolFromSmarts`](https://www.rdkit.org/docs/source/rdkit.Chem.rdmolfiles.html) to generate a molecule corresponding to the maximum common substructure\n", "- [`GenerateDepictionMatching2DStructure`](http://rdkit.org/docs/source/rdkit.Chem.rdDepictor.html) to align the matching substructure\n", "- [`MolsToGridImage`](https://www.rdkit.org/docs/source/rdkit.Chem.Draw.html) to draw the grid of the MCS, and the molecules with that MCS highlighted" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from rdkit.Chem import AllChem as Chem\n", "from rdkit.Chem import Draw\n", "from rdkit.Chem import rdFMCS" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def SmilesMCStoGridImage(smiles: list[str] or dict[str, str], align_substructure: bool = True, verbose: bool = False, **kwargs):\n", " \"\"\"\n", " Convert a list (or dictionary) of SMILES strings to an RDKit grid image of the maximum common substructure (MCS) match between them\n", "\n", " :returns: RDKit grid image, and (if verbose=True) MCS SMARTS string and molecule, and list of molecules for input SMILES strings\n", " :rtype: RDKit grid image, and (if verbose=True) string, molecule, and list of molecules\n", " :param molecules: The SMARTS molecules to be compared and drawn\n", " :type molecules: List of (SMARTS) strings, or dictionary of (SMARTS) string: (legend) string pairs\n", " :param align_substructure: Whether to align the MCS substructures when plotting the molecules; default is True\n", " :type align_substructure: boolean\n", " :param verbose: Whether to return verbose output (MCS SMARTS string and molecule, and list of molecules for input SMILES strings); default is False so calling this function will present a grid image automatically\n", " :type verbose: boolean\n", " \"\"\"\n", " mols = [Chem.MolFromSmiles(smile) for smile in smiles]\n", " res = rdFMCS.FindMCS(mols, **kwargs)\n", " mcs_smarts = res.smartsString\n", " mcs_mol = Chem.MolFromSmarts(res.smartsString)\n", " smarts = res.smartsString\n", " smart_mol = Chem.MolFromSmarts(smarts)\n", " smarts_and_mols = [smart_mol] + mols\n", "\n", " smarts_legend = \"Max. substructure match\"\n", "\n", " # If user supplies a dictionary, use the values as legend entries for molecules\n", " if isinstance(smiles, dict):\n", " mol_legends = [smiles[molecule] for molecule in smiles]\n", " else:\n", " mol_legends = [\"\" for mol in mols]\n", "\n", " legends = [smarts_legend] + mol_legends\n", " \n", " matches = [\"\"] + [mol.GetSubstructMatch(mcs_mol) for mol in mols]\n", "\n", " subms = [x for x in smarts_and_mols if x.HasSubstructMatch(mcs_mol)]\n", "\n", " Chem.Compute2DCoords(mcs_mol)\n", "\n", " if align_substructure:\n", " for m in subms:\n", " _ = Chem.GenerateDepictionMatching2DStructure(m, mcs_mol)\n", "\n", " drawing = Draw.MolsToGridImage(smarts_and_mols, highlightAtomLists=matches, legends=legends)\n", "\n", " if verbose:\n", " return drawing, mcs_smarts, mcs_mol, mols\n", " else:\n", " return drawing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Minimal Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All you have to provide to `SmilesMCStoGridImage` is a list of SMILES strings, and it will return a grid image:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SmilesMCStoGridImage([\"NC1OC1\", \"C1OC1[N+](=O)[O-]\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If there is no common substructure, the first cell in the grid will be empty (because there is no SMARTS match), and the molecules will be displayed without any highlighting:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SmilesMCStoGridImage([\"O\", \"c1ccccc1\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Label Molecules" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you want to label the molecules in the grid image, provide a *dictionary* of molecules where each\n", "- key is the SMILES string for that molecule\n", "- value is the legend for that molecule, for example its name or a description" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SmilesMCStoGridImage({\"NC1OC1\": \"amine\", \"C1OC1[N+](=O)[O-]\": \"nitro\"})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get Additional Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you want `SmilesMCStoGridImage` to return not just the grid image, but also the substructure match and molecule, plus the molecules for the SMILES strings, set `verbose=True`:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "drawing, mcs_smarts, mcs_mol, mols = SmilesMCStoGridImage({\"NC1OC1\": \"amine\", \"C1OC1[N+](=O)[O-]\": \"nitro\"}, verbose=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You then must explicitly call the image to draw it:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drawing" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "`mcs_smarts` is the SMARTS string for the maximum common substructure (MCS):" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'[#7]-[#6]1-[#8]-[#6]-1'" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mcs_smarts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`mcs_mol` is the molecular representation of that MCS:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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sWMzMzMPHz7MDiXibpT+2J07d5KSkj766KMHDx64u7vHxMSsXr3a2dlZdC4ii8Aapf+lra1t9+7d0dHR1dXVDg4OkZGRW7duHThwoOhcRBaENUqPdfToUYVCUVJSAmDmzJlKpXK8Hf/ClehxeG+UOvHTTz/JZLLg4OCSkhJPT8+UlJQjR46wQ4k6xd0o/U5jY+OWLVuSkpLu37/v6uoaHR0dGxvbs2dP0bmILBdrlLQeGW0XERHx4Ycfenp6is5FZOlYowQAJ06ckMvleXl5AAICApRKZVBQkOhQRNaB90bt3fXr12UymVQqzcvLGzJkiFqtzs/PZ4cSdR13o/arqakpOTl506ZNd+/e7dWr16pVq9atW9e7d2/RuYisDGvUTmk0GrlcfvHiRQBhYWHJycnPPPOM6FBEVolv6u1OcXHxjBkzFixYcPHixeeee+7YsWMajYYdStRtrFE7UltbK5fLAwICcnJy+vfvr1QqT548OX36dNG5iKwb39TbBY62IzId1qjty8rKUigUP/74I4CQkBClUvnss8+KDkVkO/im3pZVVlaGh4eHhob++OOPY8aM0Wg0hw8fZocSGRd3o7bpl19+SUxM7Bht17dv39jYWIVC8cQTT4jORWSDWKO2pmO03dq1a2/dusXRdkRmwBq1Kd99951CoTh9+jSAF198UalUTpgwQXQoIhvHe6M2omO03cyZM0+fPv300093jLZjhxKZAXejVu/evXubN2/uGG3n4uKydu1ajrYjMifWqBVrb2/fu3dvdHT0lStXOkbbbd26ddiwYaJzEdkX1qi1OnnypEKh+P777wE8//zzSqXyhRdeEB2KyB7x3qj1uX79elRUlFQq/f777wcPHqxWqwsKCtihRKJwN2pNHjx4sHPnzvXr19fX1zs7Oy9fvvy999578sknRecismusUauh0WgUCsWFCxcAhIWFqVSqkSNHig5FRHxTbw3Ky8vnzJmzYMGCCxcueHt7HzhwQKPRsEOJLARr1KLdvn1bLpf7+fkdOnSoX79+SqWytLR0zpw5onMRkQ7f1Fuohw8ffv755+vWraupqXF0dFy2bNmmTZsGDBggOhcRPYo1aomysrJWr1595swZALNmzVIqlb6+vqJDEVHn+Kbespw7d27RokWhoaFnzpwZPXp0enp6VlYWO5TIknE3aikaGhq2bt2amJjY3Nzs5ub25ptvvv322xxtR2T5WKPidYy2e+utt27evNkx2m7Lli2DBg0SnYuIuoQ1KlhBQYFcLi8oKAAglUpVKpVUKhUdioj0wHujwly9elUmk02ZMqWgoKBjtF1eXh47lMjqcDcqwL1797Zv375x48aGhgYXF5c33njj3XffdXNzE52LiLqDNWpWHaPt1q5de/nyZQBhYWEff/zx8OHDReciou5jjZrPqVOnFApFbm4uAH9/f5VKNXXqVNGhiMhQvDdqDr+OtsvNzR0wYIBSqSwsLGSHEtkG7kZN6969e0uWLMnIyGhtbXVyclqxYgVH2xHZGNao8f38888d/163bt2WLVtaWloASKXSL7/80svLS3Q6IjIyvqk3vqamJgB1dXXvv/9+S0tLz549k5KS8vPz2aFENom7UePr3bt3x0IikbzyyitpaWl8TieRDZO0t7eLzmCDiouLY2Njd+zYwR0okc1jjRIRGYT3RomIDMIaJSIyCGuUiMggrFEiIoOwRomIDMIaJSIyyP8BLnJZvQwWFoEAAAC8elRYdHJka2l0UEtMIHJka2l0IDIwMjIuMDkuMQAAeJx7v2/tPQYg4GWAAEYgZoHiBkZ2gQywIJMkSN6xJD8XhDOT/UpzFaXYoVpkGLTZIOqYGbGpY0Oo4xDQALGwGseBYRwTVnVIxnEzMApIcgLZTvl5Kf5FKalFjig8RSlGhGJGJuLVMjETr5aZBDeIMDIzMjGLW0EDGgxYCpUf2zMwKKiCOId7e+wYGBKWgtiFys37GRgc7JHY+0FsMQCYkkelduUjkgAAALp6VFh0TU9MIHJka2l0IDIwMjIuMDkuMQAAeJx9kN0KwjAMhe/7FOcFVtKfMXq5rkNE1oJW38F73x9TZ+124ZIGkvBxklSg2DVcni/8TAchADp4zjk8DBGJBSWBn0/niCmPvnamdI/5BstOxffkmNNSOwoRSg6D7ZUDSfrYJqmcxsRdvXLdAWiQ0ClJ+qs49H9Ay4oN7A7IOYbdzusVPsXQriiu27JcwLSVFIdtgxWH3qpvtUpd/5Jz8QY0AFAxgezTSQAAAE56VFh0U01JTEVTIHJka2l0IDIwMjIuMDkuMQAAeJzzczZ09jdUqNEw1DM3NzE10jHQsTbQMwIyDS1BbF1DPQMjkLiugZ65KRIfzNWsAQC1zQ01zF/NswAAAABJRU5ErkJggg==", "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mcs_mol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`mols` is the list of RDKit molecules:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", " ]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mols" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can plot each molecule, with the MCS highlighted, by indexing the molecule in `mols`:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mols[0]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mols[1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Caveat About Aligning Maximum Common Substructure\n", "The SMARTS substructure match may not match the form of the molecule. For example, if you input two structures containing six-membered carbon rings, the SMARTS substructure match includes a linear chain of six carbons. So if you align the molecules to that substructure, you get some odd-looking \"rings\":" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAIAAAC7/QjhAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3dd1gUV9sG8Hu2sbB0BAQhCoJYQFQUrDRBBSyxoUbT1HzWaLolicYUo0ZTXltMUaNJjLHEGLuISLEhdrGACIpIb8v2Mt8fQzYrAhKlJNnnd+XKtTvMzh63zH3OM2dmGZZlQQghhJgqXks3gBBCCGlJFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQk0ZBSAghxKRREBJCCDFpFISEEEJMGgUhIYQQkyZo6QYQ8nRYFrm5KC4Gj4c2bdCqVUs3iPynFRcjLw86HVq1gpsbGKalG0QaAQUh+TfLzMTvv0OjgV4PhgHLwsEBo0e3TByyLKRSALCyov3jf1BJCXbtQnFx9SeNx4NAgOHD0aFDy7RHJoNaDWtr8Pkt04D/EIZl2ZZuAyFP5NIl7N8PjeahhQwDoRAvv4zWrZuvJUoljh3DpUt/LfH3x8CBEIubrw2kSRUW4vvvodGgxg5TKMSQIejRo/lawrI4cwbJyVCpwONBp0O7dhgyhGohT4OCkPw7VVRg7dqaKWhgY4O5c5tpWFZRge++g0IBne6vhQIBxGJMmQJb2+ZoA5CRkfHuu+/OHjs2WK/H/fvQ6+HggJ494etLw9OnxbJYvRplZbX/VSjEzJnN9EbrdNi6FXl5D33yGQYCAWJj4eXVHG0wKCvDyZPIzIRaDUtL+PoiMBBmZs3ahkbC/+CDD1q6DYT8fUlJyM2t2T031ro1HByavBksi++/R0UF9PqHluv10GiQkYFevZo6hwoKCubNmzdlypQrV67kpKW92KYN1GpoNKioQGYmbtxAly4QNO9BEK0W6elITcXVqyguhkQCC4tmbUDjysrCxYsPdXRqYNlmCqGDB5GRAa225nK9HjduwN+/+XLo4kVs24a8PCgU0Gggk+HePZw7h/btYWnZTG3gsCyys5GaiosXcf8++Pwn6JTQMULy75SRYdgxncnN/fL0aUuRaNXgwdbcjkCtxp078PZu8mbcvInKytrzmDtkePMmOnZsoieXyWRr1qxZunRpZWUlj2HG+vquiIh4aA21GoWF2LoVU6c237gwOxs7dkCrhVoNADwekpLQpQuGDv23Hs3Kzq7+twCFMtlrhw6Z8flv9u3r6+QEAHo9bt9ujmbIZLh4sZYU5Oh0SEzE0KHN0ZKsLBw4ULMeo9VCq8UPP2D2bEgkzdEMABUV2LYNZWXVbxDD4Nw5ODhgwgRYWTV8MxSE5N+GZXH5MoqLAZQpFMtTUj4/dUqj0wE4kJGxccSIwV5eYFncvg2ttslHQtevG3aRAH69ds3GzGywYXCgViM9vSmCUKPRbNq0afHixfn5+QAiQkNX+fp2ffQoEcNAp0NxMW7cQKdOjd6MWty7h59/fmgXqddDr8e1a6isxJAhkMshlUIuh0wGpRIA3N3RsWNzj1kbLisLFy4A0Or1Gy9cWHjsWIlcDmDb1avLIyJmBwbyeTyUl6OyEtbWTd4S3l8nvB3LyipXKmM6dBBzL51ej5s3myoIlUpIpVAoUFWFykokJNR5VEKtRnw8hg1rkmbUoFDg228hl1fPlQPAslCrUVCAb7/FzJkNP0hPxwjJv0pWFg4fRmGhUqtdfebMp8nJZQoFA7haW8s1mjKFAsBzfn6rBg9ubWkJOztERzdhzaqyEt9+i6oqAGfv339+9+5bJSUAujo7750woS1Xn7G3x6uvNuJzsiy7c+fOd999NyMjA0BQUNDy5ctDzM0RF2fYNym1WgYwM44WLy9MnNiIzahJp4NcDoUCP/wAufwxK1tYwMEBLAsLC4SHw9m5CRv2NIqKkJCA9HSWZXdfv77w2DHu/W1tacmybIFMBiCwTZv1Q4f2cHGBUIiQEPTt21Qjb40GO3fi1i0AuZWVbxw+vOPaNQC2YvG+557r98wzAMAwePfdvz3s1mqrE84QddwNLvykUshkdR2D0Oh0hXK5rZmZRCT6a6mZGebPf8J/5t+yZw+uXq29ZC0QwN+/4d0CCkLyL5Gbi7g45OToWXZXevq8uLg7ZWUAIjw9l0dG9nBx0eh061JT34uPr1KrbcTiJaGh1b31Dh0QE9PIvXWlEsnJOHMGWu3N4uJ34+N3p6ezAI9hAOhZViISfRAaOjcoSMjnw9sb0dGNMpni5MmT77zzTkpKCoCOHTt++OGHY8aMYRgGP/+MjAwAGp3u3fj4L06dYlk2sn3738aPrx4uWFnhjTee/Im12up9olJZ+06zqqpB2zEzg40Niorg6orISLRt++RNalIVFUhKwvnzYNlT9+7Ni4tLyskB0MHB4ePw8DGdOzMM88fNm68ePJhTXs5jmKk9enw2aJC1mRlat0ZMDNzcGrMxej0uXEBCAqqqyhSKT5OTV585o9RqeQzDADqWZYApPXosj4y0NzeHgwOio+Hp+ddjucF3VRVkMsjl1Te4/6qqIJfXWWsFFBpNmVL5QCrNk0qNb5QpFA+qqvKk0oKqKj3LDu3QAcD6oUPduG8Zj4e3327yKdNaLZYtq+/ArUCABQuMx9D1aMkgLC8vHzNmzMmTJ0Ui0caNG0eNGtVSLSH/aEVFiIvj+sJxWVlvHTlyKT8fQBcnp8UhIWO7dDFe935l5WuHDu1MTwfQ3cXl66FDA9u0gZkZwsIQGNgIvXWdDhcvIj4ecnmxXL7y5MkvTp1S63QWQuGrQUHz+/eXaTQL4uK2XroEwKdVq3UxMeEeHhAI0K8fBgx44oNk6enpH3zwwY4dOwC0adNm0aJFkydPFggEyMvD0aPIztaz7C9Xr74XH3/HaHKjt4PD2ujoyPbtASAoCAMHQiis5V8kl9eXcJWV9exuyhSKApmsSCYrkMlO5+aey8srlstLFQqpSiXXaNZERc0IDHzoAQ4OCA9Hp07/0LmscjkSE3HuHHS660VFixMSuIFXKwuLt/r2fb1PH5HROyjXaFakpHyalKTW6VysrJZFRLzg7w+GQc+eGDiwceat/FkCUet0my9efC8+vkgmY4AxXbosHTjQxcrqs5SU5cnJSq3Wztx8cUjIq0FBPIaBtTXMzavTro49vFavL5LJiuTy/Kqqwj/fwYKqqiK5vFAmy6+qKpLJlHVnpDERn6/W6WzE4o/Dw2f07Mnn8eDlhaFDYWPTCK9AXR48wKZNXBWkUqVakZIyrksXP+PqgkiEV15p4FklLROEKpVq7dq1S5cuLSkp4ZbweLxp06YtXbrUtrmmmxu7f/9+eXl5VVWVr6+vpNkO85LHkkpx4gTXMT97//68o0cTsrMBPGNj825w8JTu3fk8XvXZzQ9rkt46y+LSJRw/jsrKKrV67dmzS5OSKlUqHsNM9PNbFhnpanRw/vidOzP3779RXMwAk/z9Vw0a5CiRwNERMTF/dxh07969jz/++Pvvv9fpdJaWlrNmzXr33XetrKxQUoL4eKSnA4jLypp39Oj5Bw8AdHJ0nN2rl72FxdKkpCsFBQCGduiwLibG3cYGEgm8vWFm9lDU1b2vBFCmUNQYDRjfyK2sVNfTJQc6OzpemzXrr/t8PhYubGAnvblpNDh7FklJUKlyKys/OnHi+wsXdHq9pUg0KzBw4YAB1mZmtX7YLhcUzNi37+S9ewDCPDzWxcR0bNUKlpaIiEDXrk+e9zk5OHoU9+/XVQIxrJhZWjr7wIHDmZkA+j/zzPqhQ32dnGoM5gxjOMONQplMV2Oq8yPEAoGdubmrlZWLpaWdubmdWOzq4ACx+I9z507evcsCDubmb/frF9uly7y4OK7H0K1166+HDg1yc6uuFffp0yRvd1YW9u9Haalap1ufmvpxYmKxXB7t7b3fuP5vZobJk8FNaHqc5g5CvV6/a9eu+fPnZ2VlAejTp8+ECRPS09M3bdqkUqns7e0//fTTV155hWnG3mJhYeH69euFQqFGo7GxsZkzZw6vhb6oer2+sLCQYRhHR8eWasM/hVqNkyeRkgKt9lZJyXvx8TuvXWMBBwuLt/v2ndu7t1ggQKtWCA5GSQnOn4dUCh4PDg7o0gWZmcjNNe6tt7a0XB4Z+YK/PwB07YohQ2Bu/vfak5WFo0eRn6/R6TZdvLjo+PGCqioAEZ6enw8e7FfbUS6NTvf5qVMfJCTU7K137ozo6IZMqystLV2xYsVXX32lVCpFItFLL7300UcfOTk5QS7HyZM4fRo63dXCwgVxcftu3QLgZm39fkhIdf8A0Or1a8+eff/4calKJRGJ3g8OfqtvX77R56pCqcyvqiqSy4tksgdVVY+OD7hjrvWzEYtbW1o6Wlg4SiSMQHAxN/deZaVGp+MxjJ+T01dRUSHt2v21trMzpk9/7DabGzf96tgxSKXc9Kv/nTmj0GiEfP7L3bp9GBbmbGkJc3P07QuJBKdPo6gILAtra3TpAqUSFy6wLLv18uU3Dx8ulsvFAsG8/v3n9+8vFgjQti2GDq19UMIdmTMchzO+UVaGsjKuYllXCUSh0dQItvN5eXF37ig0GgYQ8fmqejsoHLFA4Gpl5WJlZScWP3qjjbW1raG8aW8PK6uioqKPd+1al5qq1eu5EsiC/v1t/lznj5s35xw8mF1ezmOYiV27fjF4sIOFBZydMXRoY9aK799HXByys1mW3ZmevuDYsdulpQD6uLsvj4gYYNzL5PMxb14tJZDaNGsQxsXFvfPOOxcuXADQuXPnDz74YOzYsdyfMjIyZs6cGRcXByA4OHj9+vWdO3dutoZt377d0tKyrKzM29s7KCio2Z7XmEwm27hxo1wuZ1nW1tb2pZdeErfcdUm0Wq2gpWbx1Vt7rP7iWVsjOBg9etTe3eb2a0eOQC6vvbcukSAysqG99T9rj9wXb+GxY5mlpQB6u7mtiIwc0LYtGAbt20OlwoMH1VMftVrY23PjrdulpbMe6a1DLEZoaD2lWrlcvnr16mXLlpWXlzMMM2bw4GWzZ3va2qKiAjk53I74bkXFJ4mJ350/r2dZO3Pzef36zQkKMjf62nODuVslJV+ePp2YkwPAwcKiY6tW3J9yKysrVarH/uvtzM250YBhWGA8PnC3sbGWSODoqBUINh48+MHhww+kUgARnp4rBw3yN764D8tCJMKgQejZ8/GveXOqt/boZW8PoRCBgRgwoM5SZ04O9u9HUVGpQrEkIWHN2bN6lvWyt18THT3Yyws8Htq2RZs21cfqDAfn6pp1CSi12lKFIjEnZ1lS0qWCAgDWZmadHR0dLCzyq6rypNIimUz7uMEcA9iKxS5WVnVFnZNEIqirt80wsLCARAKRCDweiourysvXnj37SVKSVKUS8HiTu3f/IDTU5ZHzEx7tfT7ftSvD4yEgoBEutFRSgmPHcP06HimBLAkNrXGIBDwevL0xfnwDt91MQXju3Ll58+bFx8cDcHd3f++996ZMmcJ/5HjJjh07Zs+eXVhYKBQKZ8yYsXTp0mYuVLIs25yD0Rp++OGH8vJyvV7v7Oz83HPPtUgbdDpdXFxcenr6rFmzRMYzwZrgmXD2LFJTUV4OhoGdHYKCYGGBuDiUl8vU6jXGtceuXZdFRLhaWUEsRv/+CAp6/Gx7hQLHjiEtjeutv3XkSJFMJuLzX+/T54PQ0OreekwMHB3r3ELdtce/vnienhg0qHreo1x+/dSpzhER5ubmYrHYUiIRarU2DCPg8dQ63c3iYqVWyzCMv7NzkJubrVjMt7S07tQJZmZ2YjGUSiuBQKDXi3W6hAsXtpw8WVxVBSC4bdt3+vULcnPjM4yFUMhNBC2Ryz9NTl599qxaqxXweP2feWbAM89UqFTGFbDCqird477aNQpfD1XArKxcrKycJRJ+XftKw8zPwsK4GzdeP3ToamEhgMA2bZZHRoYajwI53Hh9+vQWq4veuIGkJBQUQKeDpSX8/ODlhcTEeqZfgcdD9+4IDa15hvijg7nKSmRnIz8fen1STs7M/fu5V2Nohw5/TSH506ODOeMbXD3zsf+aegZz+VVVnyQmXszPB9DV2dnXycmyxheZxwOfD4EAQiFPJLKxtoZIBJEIAkH1DaEQFRXIzoZMpmfZywUFyTk5Mo0GQDtb23BPT2eJxMbcHAIBdLq3+vblsywEAuj14PG4Es7M/fuPZWUBCG3Xbl1MTCdHR5ibY+DAOjuv9WtYCeQhIhFmzmz4QcomD8KcnJylS5d+9913er3e3t7+nXfemTt3bj1jnfLy8sWLF69Zs0av13t6eq5evTo6OrqxGqPX69PS0lQqVf/+/RuyPsuy2dnZHh4ejdWA+slkMgsLC51Op1KpWvBQ5caNG3Nzc8eOHdup6c48k8uxaRMqKmpeKYpl66w98vno1g3h4X/vGiV/9tbLFIoPau2t9+qFHj1w+TJycsCycHFB9+6wtTV88a4VFi45cYI7/tHG2nqR4YvXpg0iIvDwHv/8+fMBAQGN8QI1AjM+XyISWQiFFkKhrVhsY2aWJ5XeKC7WsayVmdkkf/+RPj7mAoG5UCg2/F8gAGDH7ePEYlhZget8GG6Ym4NhcPUqrlypZ0YluP8MoxaRCA4OmDSpZa4vw7LYtQsZGcZnfBqO9tVeexQI4O6ODh3A4z00wZK7Ybydh3GDuSKZ7Ju0tI0XLii1WjOBoKuTk5OlZblS+UAq5erGDWk1j2GesbHp7ebmJJEYoo7rr7hbWwvrnXWlZ9nvzp9/+8iRhgz6n5I6IUGoVsPODl5eMDN7tPcp5PPfaHjvs+bW1UhNRWIi1Oo6SyAMAz7/r7mvQiGEQkyaBKPDqI/VhEFYXFy8cuXKL7/8UqVSmZubz5kzZ/78+Q2cC5OWljZjxozU1FQAQ4cOXbt27TPciTJPJz8/f8OGDQKBYO7cuZYNuA7QpUuX9uzZ4+/v/+yzzz79sxurqKjIy8treNKoVCqz5rp4UkFBAQDnpju7i2Xx3XfVfXPjxXr9zuvXa689duqEyMgnPANBr0dqKuLjoVYn3707Y9++mr114702w1QPWXQ67ovHzZiwMjN7o0+fef36mQuFcHDAgAFwcYFSWesxHnlpqaqqSqpWa/X6MoVCx7KVKpVap5Op1deLizdduJBdXg7A3cbG296eAUoUCplGI1OrFVqtXKNRa7UtfkqTtbX1/PnzFyxY8NBShQIpKdxJI3XOqHRywsCBcHZGaiqysqDRwMEB3brBx6fFpokeO4YzZx4tRdYy/apvX76TE1gWRUWoLUJqHcwZz0nJl0of+97VOpgzFwpT79//5erVKrWaqz0uDg11ffTaKHw+zM1hbg4rK3BHLmv0V2xsqjt/JSX5VVUv/Pbb0du3AThbWj7n59exVStwUzq9vKBQoLhYr1ZXqNVwcICZGeRy3L6NggIAmaWlBzMy7kulAJwkkkhPz+oD4fb26NBBb2FRUVHBteiTTz6pWdu7exf79tXofba3t18THT3E0PusdQKzMe6kkePHIZOVyOWfnTz55enTKq1WxOe/1K3bx+Hhjtx1+4KD4e+Pixdx4wakUlhbo1MndO/ewEODBk0ShA9d+YnHGz169IoVK9o9Wi2pl1arXbt27aJFiyorKyUSyfvvv//mm28+/YGr+Pj4Nm3a+Pj4NGTly5cvHzx4MCoqqmvXrk/5vMYqKytXr17NMMycOXMaksfl5eVff/11YGBgWFhYo1duS0pKHJrhmpzGbt3Crl01utVxWVnz4+LS8vIAdGzV6sOwsOraY4cOGDiwgVO/6lNWhgMHkJnJTSGp5XRDI9wX76vTp5XGXzx3d9jaQqnkKmB1PU/9ha88qbScu5xKvWrsKxVabdzt2w+qqgD4OTktDg0N9/BQaDRKnY57RqVWq9BqlVqtQqNRsqwCUDIMxGIFwygBBaBkWYVarSwoUBQVKTWanIqKi/n5ap2OYRhnicROLFbpdAqWVQIKpVKpVAL4ZN68he++W32dqjpmVEpEotmGGZU2Nhgw4AlrX01HLscXX9Q4Va7m9KuIiLnDhjEKRcndu2Vyea0J18DBnJlAYG9UW7YTi4tksiNZWSVyOY9hYrt0WRMT42A8UYtlNXp97SUQhoGrKzp2rM45LuosLRv08mq1SE5GcjJ0uoTs7Bn79tWcwCwSVV+NRaOBSASdDg4OKCmpr/ZYWwmkTnX3PqsnMNvZISqq+iKI5eWQySAWw96+eqR+/Tri4lBWJtdouOtmVCiVPIYZ3bnz8ogIDzs7iETo1QvBwWikwzeNHIQ1r/wUEbFq1aqnSZG8vLz58+dv3boVgL+///r16/v06dPwhz/9MT+FQiEWixs9fnbs2CEQCCIjIxsShGlpafv37/f19W3cUy01Gs3WrVsLCgrmzJnTrJXYXbtw9arh3s3i4jkHDx65fRuAm7X1krCwF/39//YXr4Fu3cKBA6ioqP10Q6CWL9748R5ubqisRFkZV/iqNeEeNHgWA3dkzkokkqrV3NGgVhYWU7p37/fMM4/OYqiz9igWw8kJjo7VwwLD+IDbXdbjsb11V1cUFlYolWZCoZhhYGsLLy9cvcqdzV3njMp+/dC79z/xUqKXL2P/fkOv6255ecjmzTkVFSzL8hiGqxvbmZs/kEobOHXIWSJxlEicJRJnS0tHCwsniaS1paWjROJoYeFiZWVdW9mm9tMNuYsE1TX96mlKIAalpThwALdv1zmB+WF11h6f+NTPykocOoTr140nMD/U+3RxgVQKlap6ywIBfH1x9y7y87kL2n2QkFBz+hV34DYsrHEvZ9qYQfjHH3+8+eabD135KSSkUbYcHx8/c+bMmzdvMgwzadKkzz//vNXjTpOUSqVxcXECgWBYY1/1jmVZhUJh8XRHO/5uQt+/f9/GxqYhqfm3bNu27f79+7GxsY1SeW6ob77BgweGezeLi33XrTMXCv+qPQqFePbZpjrnWqNBSgqSkqDT/XHrluF0wyk9enRwcPgsJaVQJgPg4+AQ7OUFvb6gstJwirGs7oNDBtw+0VEicbG0dJJIWllYtLa0NN5pGl+MKiE7e+a+fddr9NYBAI+pPT7Nj8E+3FufuX9/zdMNH/HkMypbFsti927jXteDqirXlSvrWr2eKbKuVlZu1taiepK+1qOqZmYoLsb581AojCcw93Bx6dWmzal79y4XFKCe6VeNIj0dBw5AJqt9AjOAP0sgddYee/V6qilORr3PBceOcdea+Ot0w9rE3b79+uHDtUy/6twZERGws3vyxtShcYLQ+MpPPj4+H330UfWVnxqPQqFYvnz5smXLGni6YWlp6dq1a/l8/muvvfaUoVXDmTNnEhISYmJifH19G7L+jRs3SkpK+vXr14htaCxSqdTMzKxpZ4c+assW3LljvGBnenq4h4e9oWTUpQvGjGnaNuTnY8sWKBRVavWShIQvT59+7EgOtRW+auwrHzOLgduzSCSwtASfj3v3UFpao7f+WlBQdIcO36alNXntsbwcBw4gI6P+0w0fnVG5LCIiwNUVPB569EBISHP/5k7D/XnqZ43FXdetU+p0rlZWzhKJu42Np51duIeHs0RiV/+ppVy21TqByMrqMT8Tr1Bgxw7cucOy7Hfnz8+LizOcoNnkJRCOUomEBJw9C5b94+bNmfv351ZWckciXwsK2nH9+uenTjVt7VGtRkICzpyBXl/76YZ/qrME0r49IiKa7te2nzYIja/85Orqunjx4uorPzWNjIyMWbNmHT16FEBwcPC6deu61Dh9xMilS5fatWtn09iX+dm1a9fVq1cnTJjQoQG98tLS0jVr1jAMM2vWLHt7+0ZsRlFR0W+//RYVFeXu7t6Q9ZVK5d27dxvS5iZ38iSOH6/zCociEaKi0K1bkzfjt99w+TJ380pBwaaLF3+5coXH47W3s3O2tOQqYNWFrz9HeFb1jHsaMovh0W51ejp+/x1qdUZJyawDB44a/ZqPiM+f1rPn+8HBjhJJE9Ye/+yt50ml8/+8Mly31q3XDR3ax82tzgvaeXpi8OBGOHDbRLhTP3Nzq2cn5ufX97uVqGMwx02R5d7NBh6Zq8fVq/j9d+4zn1laOnzbtiq12t/Z+dexY6tP/Xyy62X/LQ8eYPduFBdXKJXvxsd/fe6c8ZVlhnbo8GlEhK+TUxPVHgGgoAD79+PevRqnGy6LjHyha9cbxcVNVQJpgKcKwq1bt7700kt6vd7Gxuadd95p9LFXXWqcbvjJJ59YWFhwc1Ob4dkB3L17t+G1xLi4OBsbm4CAgMa9WMzu3buvXLkSGBgYFRX12JWVSuXq1atVKtXs2bNb5CJ2D1Eo8OWXdc5BNzfH66//3UlfT+LcORw5Us95zQ8RCOpMuL81i+FRcXFISeFurj5z5o3Dh7V6fSdHx70TJnhxPSeBAG+91YS1R0OtWK/fe/PmnIMHc8rLGYYR8njc5dM87Ow+Dg8f7+vLYxi4uSEyEs1ZSP9bKiqQnIyCgodmfvJ4dU5uEgjw/FOp6noAAB3tSURBVPPN8c8pLsY339T3YbO1xdy5Td6MO3fw889cHp+6dy9y61aZWm1tZvbb+PHh3EliPB4mTULTnTBmdLGLq4WFM/btS757F4CIz9fodCxgbWb2dr9+r/fuLRGJmnP61VMFYVFRUefOnUeNGvXhhx824Wz72pSVlc2fP587PbFnz57jx493d3ePjY1tzjYYa/4z8bVa7alTpwIDAxt4WsWePXsqKytjYmKae45orW7exM6dDw0KWRYMA6EQEyc2048SKBT44os69018PgYPxjPPVBczm+408Idnc3AzPx8q07VujWnTmurZDRISkJgIllVoNNzvVwAQ8vkfhYVVX9AOwJgxqLsA0/IKCpCdDYapLj5zb5yFBcrLsWEDVKqa40KhEAMGYMCAZmre+vUoLKxlOXfNnfBw9O7d5G2orMTq1YbvnU6vL1ep7MzM/uqj8/mYP7/JfxsyLw8bN0KnY1l2y+XLU37/nRubTu7efenAgc5cn7J7d0RHN9v0q6ctjcpkshY89fv8+fPTp0/Py8ubMWOGtbX1//3f/zXbyXY1JCQk3Lt3z97eXqfTDR8+vEXaUL+WvGparXJysHs3lMrq3RPDwNISo0fD1bX52nD+PA4dqiULRSL4+6PxruRQn/rzWCjEwIFohsv+3bqF337Dn6d2xGVlZZeXR3l5tTFcFUUoxMKFTd6MJlJRgd27kZcHPr/6AigMgyFDwF1+tnkUFOD772t5owUC2Ntj2rRmuuZOXXkMgGHg6YlJk5q8DSoVPvvMcBrxrZKSlLt3Pe3s/rosrUiEKVOas/b+r/89Qq1Wm56e7uDg4OLi0lIXqtZqtV999VVVVRWfz9fr9a+++qpdE8xraoh79+7dunXLy8vr/v37ffv2bZE2/A0si7w8FBaCYeDs/LeuBNFo0tJw+DBYtrqbzOdXn/AbEdF858MlJSE5uZZaMcPAxgazZjXHr7erVFi5ss4DtwwDHx+MG9fkzWhSpaXIza2+Eqy7ewuc7JGbi19+gUZT/V5zJZA2bRAb2+S/3mdw7x62bq294yUUYto0NE/FqJ48BmBujrffbs4TUv/1QfgPIZPJbt26BcDZ2dm1Occ0RliW3bBhQ0FBAY/HY1l22rRpzVyv/reSyXDlCnJyoNejTRv4+TXF/Oz6sCwOHMClSw/tnoRCSCR46aWm/VE3Y0ePIjW1zl3k1Kn/3Nkx/yJaLdLTkZkJuRyOjujUqQUOuF65gj/+gE7316FTPh98PsaN++sXfZva7dvYvr32D5tIhMjIZr44OwXhf8r9+/dTUlLs7e0Zhunfv39LFYrJk8jJQXIy7t+HTgdbW3Tvjp49m2MsaKDX48cfkZtbc/ckFCI6ujnm8ZJmU1aGpCRkZEClgoUFOnZE//7NfSbMiRNISan5YROJ0KkTRoxo5usTURASQv7EsjhzBklJ0Gi4XxKAkxOioxvz9+QIMcjIwOHDKC+HUAitFhYWCAtrkS4XBSEh5BHl5VAqYWvbfMeuiMmSy1FRAUtLPHqR8eZCQUgIIcSktdCPZBJCCCH/DBSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGEEJNGQUgIIcSkURASQggxaRSEhBBCTBoFISGE/HMdOHCAYZjCwsJ61tmwYQPDMM3WpP8eCkJCCCEm7T8ShMePH09MTGzpVvxnaTSaHTt23Lp1q6Ub0pJyc3Pj4uLUanVLN4QQ0sgE9f/50KFDCQkJkZGRAwcONF5+8uTJvXv3BgUFjRw5simb11Dvv/++ubn50aNHW7oh/00KhSI2NnblypVvvvlmS7elxezdu3fWrFn5+fnOzs4t3Rbyb6JWqxMSEq5fv25jYzNixAg7O7vz588XFBRERUUZ1omLi3N0dPT39wdw+fLl1NTUqqqq8PBwPz+/GltTqVTx8fG3bt1ydXUNCQlxcnIy/Emn0yUkJFy7dq1du3bDhg0zFEulUml8fHx2dranp2dkZKRYLOaeUafTDR48mFsnMTFRq9WGh4fXur5MJjtw4MDIkSMvXbqUlJRka2s7atQoa2tr7rF6vT4xMfHq1asODg4hISGurq5N9VI2HbZeL774IoDg4OAay0eMGAFg+PDh9T+82fTr1y8iIuLvPio6OvrUqVON2xKdTterV6+srKzG3WzTmTdv3oYNG+pfp6KiAsDKlSubp0n/TGvXrgWQn5/f0g0h/yalpaVdunRp1arVyJEjO3bs6OzsnJOT8+OPP/J4vNzcXG6diooKsVi8e/dulmXfeecdHo83cODAyMhIoVD4zTff7N+/H0BBQQHLsnl5eT4+Ps7OzqNGjercubOlpWV8fDzLsl9//TWAvn37DhgwYNSoUWKxeNq0adzGb9686erq6uHhMXbsWGdn527duqlUKpZld+/ezTDM77//zrJsamqqUCjcsWMHy7LXr193cXHx9PTk1u/Ro4darb5z5w6AMWPG+Pj4jBs3ztXV1cfHR6FQsCyrVCrDw8Otra1HjRrVtWtXa2vrq1evtsAL/XQeE4QhISGWlpY8Hu/evXuGheXl5WKx2NLS0s/Pr4mb11BPEIQ6nU4kEh0+fLhxW5KXlwfg2rVrjbvZptO/f//FixfXvw4FIUtBSJ7IG2+84eDgcP/+fZZltVrtvn379Hp9VVWVpaXll19+ya2zefNma2truVyelpbG4/G+/fZbbnlSUlJxcbFxEL744ouurq5FRUXc1oYOHdq2bVutVssF4a5du7gHrlq1is/nc4E3aNCgbt26KZVKlmVv374tEAi2bNnCrfbiiy+2atUqIyOjQ4cO//d//8ctHDhwYI8ePbj1MzIy+Hz+Tz/9xAXh9OnTtVoty7JXr14FsH//fu65xGLxjRs3WJbVaDS+vr4TJ05slpe2MT2mNHrnzp3x48f/+uuvv/766xtvvMEt3LNnj06nmzx58tatWw1rKpXKQ4cOXblyRafT+fj4jBkzRigUAsjMzIyPjw8JCfHx8QGg1+u3bNni7u5eo9b6qIyMjN9//728vNzT0zMmJsbZ2fnw4cNVVVWjR4/mVigqKvrtt98GDx7ctm1bbsn169cPHjyoUCgCAgIGDx5sqAxkZWXt3r27rKyM21Tr1q3j4uKuXLmiVqsPHDiQnZ3t5OQUFRX1ww8/jB49+vTp08nJyWFhYa1atTp37tzUqVN5vOojqd98801AQEBAQAB399KlS/v376+srOR6SRYWFr///ntaWhqAHTt2uLi4eHh4BAQE7Ny5MzIy0sPDg3vUkSNHpFLp6NGj8/Ly9u/f//LLL//4448ZGRljx47t1q0bgOTk5Li4OJVK5e/vP2bMGIGglveosLBwz549L7/8cmJiYkJCgkgkGjlypK+vb25u7i+//FJZWdmjR48RI0ZwrwDLsikpKWfOnCktLW3Tps3YsWMdHR0BXLly5dSpU5mZmba2tt988w2AV155hWEYvV5/6NCh06dPsyzbp0+f6Ohow/Nev379t99+U6lUISEhXBXF1KhUqj179mRlZbVv337QoEHm5uaGP929e3ffvn1SqbRdu3YjR44UiUQA9u7d2717d3Nz8z179lRUVPTo0SMsLIxb//jx48XFxcYbHzx4MFduKiws3Lt3b0lJSevWrUePHm1paQkgLi7O3d3d1dV1z549+fn5nTp1iomJMZ4rmJiYePbsWQAhISG9evVq+heDPN6hQ4diY2O5aiGfz4+JiQEgkUiGDx++bdu2uXPnAti+ffvo0aPNzc2PHDliaWk5efJk7rH9+/evsbWkpKTx48e3atWK29qsWbOioqK4lAIwatQo7oaPj49Op8vPz3d3d09OTo6MjPzhhx+4P9nb2585c+b5558H8L///S8xMbFHjx6tW7f+/PPPAej1+pSUlCFDhtRYv2/fvgCeffZZPp8PoGPHjgC4Tn9SUpKbm9uJEydOnDgBwNHR8cyZM03zWjalekJSrVbz+fyVK1dOmDAhMDDQsDwqKmrIkCHff/89gOLiYm7hyJEj3d3dR4wYMXLkSIlEEhgYqNFoWJZVKpV+fn5eXl5SqZRl2RUrVpiZmV24cKH+fE5ISBAKhT4+PoMGDXJ1df30009Zlh0xYkS3bt0M66SmpgLYu3cvy7L9+vVr3bq1paXl0KFDBw4cyDBMbGysXq9nWTY5OVkkEnl7ew8aNKhNmzZLlixhWfbDDz/s2bMngO7du0dERMyePbu0tBRAeHi4g4ODn5/fihUrPvzwQwDcv4IDwDB4WrFiBcMwfn5+zz77bKtWrTp16lRVVTVnzhyupt+nT5+IiIglS5ZcvnwZAFdz4Dz77LP+/v4sy8bHx3PP6Obm1qlTJ657xX0xQkJCRowYIRKJYmJian19Tp06BSAmJqZt27bjxo3z8vIyMzNbtWqVo6PjsGHDBg0axDDMW2+9xa28bt06KyurIUOGjBs37plnnrGxscnMzGRZdufOnREREQA8PT0jIiIiIiJ0Op1Go4mKiuLxeOHh4YMHDxaJRFOnTuVGhL169XJ0dBw9enSfPn0AfPPNN/W/if8x3IjQx8fHy8srPDxcIpF4eXlxPX2WZX/66SeRSOTl5TVw4EALC4tevXqp1WqWZR0dHceMGePo6BgcHMyF0yeffMI9ZOrUqQF/srGxEQgEXK0sLi7OysrKzc0tMjLS1ta2ffv2JSUlLMsGBARERUW5u7sHBQUFBwczDGMof2m12tGjR/N4vH79+nEdtRUrVrTAa0QeYWdnx+1zati3bx+AjIyM0tJSkUh05MgRlmXnzJnj5eVVY03jEaFYLDZ+Zy9evAjgxIkT3IjQsPzAgQMAsrOzud1aUFDQWCOrVq0yrPnee+8B+OCDD7i7RUVFAHr37m28/ueff85l7aFDh7jV9Ho9AO6QSmBgYNu2bY3Xf/755xvlpWtO9QVhZmYmgF27du3atYt7z1iWLSkpEYlE3333HbcfT01N5VYuKSnR6XTcbe5tMLxqV65cEYvFM2bM4G589tlnj23WxIkT27Zty4WQTqfjitH1B6FQKDQ05n//+x+APXv2sCz78ssvu7q6cnslvV7PbYpl2eTkZACG0ij3iQkLC5PL5dySeoLw5s2bfD5/6tSpXNYWFBRwzWBZ9pdffoFRafSxQThjxgxuIyzLHj9+HIDhY7plyxYAiYmJj74+XBBOmjSJ+3dVVFRYWlo6OzvfunWLW2Hy5MkWFhbclmUymeEfVVZWZmVl9eabb3J3uQ+0cWmU293/8ssvhie6evUqF4R9+vQpLS3llg8YMID7V5gO7pWZMWMG9zlPT083NzefNGkSy7L5+flisXjChAlc4YjrGv/www8syzo6Orq5uV2/fp3byPjx421tbWts+dq1a+bm5h9++CHLsgqFwtnZOTQ0lPug3rx5UyQScX8KCAiwtrY+efIk9yjuYFJ5ebmhbdwHnmXZadOmWVlZGd4s0oJ8fX0N/RVjGo3Gycnpk08++fbbbx0dHbn9zPLly62srLhPkYFxEHp5eb322ms1/nT79u26glCv10skkrp6RdxnuE+fPhYWFunp6SzL6vV6CwsL46Tk1BOEo0aNeoL5Gf809Z0+kZ2dDaBdu3ZRUVGWlpa//vorgJ07d+r1+uHDh7dr186wDgB7e3sejyeXy2/dusUNn7Oysrg/+fr6LlmyZP369YMHD+7bt6+hxFoPOzu7goKCLVu2KJVKHo/HTXOqX58+fbhBHoDp06ebmZmlpKRwmyopKdm0aZNCoWAYpv5NDR8+3LjYVZfjx4/rdLoFCxZwhSknJ6dhw4Y99lG1io2NNVS34uPj+Xx+r1690tLS0tLSnnnmGQBcYNfqueee4+rP1tbWHh4eQUFB3t7e3J/8/f3lcnlJSQkACwsLc3NztVp9796927dvt27d+vbt23VtMz4+3tvbe9y4cdzd3r17d+nShbs9evRoOzs77nbXrl3v3bv3ZP/kf7X58+dzpfJOnTo9++yzCQkJAE6cOKFUKocMGXLx4sW0tDSJROLg4MB1dAAMHz6cKyUB6NWrV3l5eXl5uWGDKpXqueee69Gjx8KFCwFcvHiRm0947dq1tLQ0qVTq7e3N9ZAADBgwgBuOc5vS6/V3794FcPjwYXd3dzc3N+6T061bN6lUypVJScsaNmzY9u3bc3JyuLtVVVXcDYFAMGbMmB9//HH79u3jxo3jjoBERUXJ5fL169dz63BjAOOthYWFbdu2LT8/H4BGo1m9enX79u25XXGtGIYJDQ39/vvvDR+54uJiLsY0Gs2LL744aNCgxMREPz+/iRMnqtVqhmFCQkK+++47ru8LoKioiFu/LmFhYQkJCefOnePuqlQq44/3v0V9Qcj1Ajw8PMzNzaOjo7dv3w5g+/btYWFhjo6O7u7uAoHAUJ5OSUnp3bu3RCLx8/PjdqPGZ1y99dZbbm5ueXl5n332meGQWz3efffdwMDAKVOmuLi4vPnmmzU+DbXiDslwhEKhs7Mzt4+YN29e3759p02b5uLi8tprr8lkssdu6rFycnJ4PJ7h2GRjyc7O5vF4L730UmxsbGxs7OTJkz09PVUqVUMeW+NQItcX4T7B+fn5sbGxEomkbdu2kZGRWVlZGo2mnjbU870yfrr6vx7/VWZmZobb7dq1y8vL02q13Lfgtddei/yTXq837EqMcW+TTqczLJk/f/7t27c3b95s3H1cunSpYVN5eXlSqbSuTWm1WgB37twpKCgwPGThwoV2dnY1DkCSFjF//nxvb++uXbtGRUWFhoa6u7sbcuK55567fv16fHz8+PHjuSV+fn6LFi2aO3du7969hw0b5u7u/tNPPxlv7eOPP3ZycvL19Y2JiencufOZM2d++OGH+veoq1ev1mg0HTt2HDFiRL9+/dq1a3fhwgUA77//fk5OzoYNGwQCwU8//ZSZmfn+++8DWLNmjVKp9PHx4db38PC4dOlSPdufPn16dHT0gAEDBg0aNGjQIBcXl2+//fZpXrEWUd9kmezsbBsbG24QMGbMmNjY2GPHjp04cWLdunUABAKBm5sbNyIsLCyMioqKiIi4c+dOu3btSktLHRwcjDe1cePGvLw8KyurxYsX792797FXA2rduvWJEydu3LixefPmVatWlZeXc4ckG0in0xUUFHAtd3Jy4k672bx588qVK0tKSozn+DwZe3t7vV4vlUptbW2fclPGHBwcxGJxPcO1JxMbG/vgwYOUlJSePXvyeLz6p1E4ODj8Gzt0LaKwsNDc3FwgENjY2AC4du2ai4vL39rC0aNHv/rqqy1btnh5eXFLuE/U4cOHg4KCGr4dGxubfv36Gcag5J/D2tr69OnTqamp3HmE/fr1M+w0+vbtO3HixOTkZG4qCmfRokXPP/98WlqaQqH4+OOP/f398/Pzd+zYwX3GnJyc0tLSkpOTufMI+/fvz+3lIiMjuYodp3v37r/++is3J87Dw+PatWtJSUmZmZkODg6hoaFOTk56vb5Xr16TJk3iTopt3779sWPH7t69q9PpPD09r127lpycbLy+TCb79ddfudMcATAM8+uvv3JHowUCwe+//56amnrp0iWRSPTF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", "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SmilesMCStoGridImage({\"CCc1ccccc1\": \"benzene\", \"C1CCCC=C1CC\": \"cyclohexene\"})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To address this case, in `SmilesMCStoGridImage` you can set `align_substructure=False` (its default value is `True`), with the disadvantage that the molecules may not be aligned:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SmilesMCStoGridImage({\"CCc1ccccc1\": \"benzene\", \"C1CCCC=C1CC\": \"cyclohexene\"}, align_substructure=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pass Arguments to FindMCS\n", "`SmilesMCStoGridImage` will pass any keyword arguments of [`rdFMCS.FindMCS`](https://www.rdkit.org/docs/source/rdkit.Chem.rdFMCS.html) to that function. For example, by default, `rdFMCS.FindMCS` will match a pattern of atoms even if they are in a complete ring in one molecule, and not in another:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SmilesMCStoGridImage({\"C1CCCCCC1CCC\": \"complete ring\", \"C1CCC1CCC\": \"incomplete ring\"}, align_substructure=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`rdFMCS.FindMCS` lets you set the flag `completeRingsOnly=True` to avoid matching these two molecules. You can call `SmilesMCStoGridImage` with `completeRingsOnly=True` to pass that flag to `rdFMCS.FindMCS` so that the two molecules won't produce a match:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SmilesMCStoGridImage({\"C1CCCCCC1\": \"complete ring\", \"C1CCC1CCC\": \"incomplete ring\"}, align_substructure=False, completeRingsOnly=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example With Larger Molecules" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a final example, here's a case with larger molecules:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SmilesMCStoGridImage({\"O=C(NCc1cc(OC)c(O)cc1)CCCC/C=C/C(C)C\": \"unsaturated\", \"CC(C)CCCCCC(=O)NCC1=CC(=C(C=C1)O)OC\": \"saturated\", \"c1(C=O)cc(OC)c(O)cc1\": \"carbonyl\"})" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.4", "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.10.4 (main, Mar 31 2022, 03:38:35) [Clang 12.0.0 ]" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "f8b9e48fa26c0cee807577a4309d1f208b4f08c0094fff1e9a87a3043a77ce60" } } }, "nbformat": 4, "nbformat_minor": 2 }