From 9f7396ada65a6f080a0d1f7ca11525e3c8be83ab Mon Sep 17 00:00:00 2001 From: amine179 <43514233+amine179@users.noreply.github.com> Date: Mon, 18 Jul 2022 16:41:24 +0100 Subject: [PATCH] Delete Data_exploration&analysis.ipynb --- Data_exploration&analysis.ipynb | 840 -------------------------------- 1 file changed, 840 deletions(-) delete mode 100644 Data_exploration&analysis.ipynb diff --git a/Data_exploration&analysis.ipynb b/Data_exploration&analysis.ipynb deleted file mode 100644 index 837ad7f..0000000 --- a/Data_exploration&analysis.ipynb +++ /dev/null @@ -1,840 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "7a93bf59", - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "sns.set()\n", - "\n", - "import numpy as np\n", - "import random\n", - "\n", - "import unidecode\n", - "\n", - "import rdkit\n", - "from rdkit import Chem\n", - "\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "c8efb6ad", - "metadata": {}, - "outputs": [], - "source": [ - "from utils import get_props, strsmis2listsmis, check_validity, logP, molWt, numAcc, numDon, rolBon" - ] - }, - { - "cell_type": "markdown", - "id": "c3390fda", - "metadata": {}, - "source": [ - "## Percent of intersection and UMAP overlap" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "aa627ab9", - "metadata": {}, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import seaborn as sns\n", - "from sklearn.manifold import TSNE\n", - "import umap\n", - "sns.set_context('poster')\n", - "sns.set_style('white')\n", - "sns.set_color_codes()\n", - "plot_kwds = {'alpha':0.5, 's':80, 'linewidth':0}" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "d48fe3c1", - "metadata": {}, - "outputs": [], - "source": [ - "from rdkit import Chem\n", - "from rdkit.Chem import AllChem\n", - "from rdkit.Chem import Draw\n", - "from rdkit.Chem import DataStructs\n", - "from rdkit.Chem.Draw import IPythonConsole" - ] - }, - { - "cell_type": "markdown", - "id": "957d0cf5", - "metadata": {}, - "source": [ - "**Here, read the generated molecules, for each model and each objective :**" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "67014a65", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "10000 10000\n" - ] - } - ], - "source": [ - "RL_file = 'gen_smis/RL_1_all_smis_.txt'\n", - "\n", - "RL = pd.read_csv(RL_file, header=None)\n", - "RL_smis = list(RL[0])\n", - "\n", - "#-------------------------------------------------------------------------------------------------\n", - "\n", - "CRLV_file = 'gen_smis/CRLV_1_all_smis_.txt'\n", - "\n", - "CRLV = pd.read_csv(CRLV_file, header=None)\n", - "CRLV_smis = list(CRLV[0])\n", - "\n", - "print(len(RL_smis), len(CRLV_smis))" - ] - }, - { - "cell_type": "markdown", - "id": "dcbff2b1", - "metadata": {}, - "source": [ - "**Keep only valid_unique ones:**" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "b25b435d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7698\n", - "6633\n", - "-----------------------------\n", - "5820\n", - "4800\n" - ] - } - ], - "source": [ - "RL_val = []\n", - "CRLV_val = []\n", - "for s2, s3 in zip(RL_smis, CRLV_smis):\n", - " v2 = check_validity(s2)\n", - " if v2 == 1:\n", - " RL_val.append(s2)\n", - " v3 = check_validity(s3)\n", - " if v3 == 1:\n", - " CRLV_val.append(s3)\n", - " \n", - "print(len(RL_val))\n", - "print(len(CRLV_val))\n", - "\n", - "print(\"-----------------------------\")\n", - "RL_unq = list(set(RL_val))\n", - "CRLV_unq = list(set(CRLV_val))\n", - "print(len(RL_unq))\n", - "print(len(CRLV_unq))" - ] - }, - { - "cell_type": "markdown", - "id": "6e115647", - "metadata": {}, - "source": [ - "### Percent of intersections:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "6bcd6cd2", - "metadata": {}, - "outputs": [], - "source": [ - "intersect = list(set(RL_unq) & set(CRLV_unq))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "101eff64", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1.838487972508591 %\n", - "2.2291666666666665 %\n" - ] - } - ], - "source": [ - "print(100 * len(intersect) / len(RL_unq), \"%\")\n", - "print(100 * len(intersect) / len(CRLV_unq), \"%\")" - ] - }, - { - "cell_type": "markdown", - "id": "c78e0961", - "metadata": {}, - "source": [ - "### Chemical space overlap:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "d82d6bd6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "5820\n", - "4800\n" - ] - } - ], - "source": [ - "# convert to rdkit mol objects from smiles\n", - "RL_mols = []\n", - "for s in RL_unq:\n", - " RL_mols.append(Chem.MolFromSmiles(s))\n", - " \n", - "print(len(RL_mols))\n", - "\n", - "CRLV_mols = []\n", - "for s in CRLV_unq:\n", - " CRLV_mols.append(Chem.MolFromSmiles(s))\n", - " \n", - "print(len(CRLV_mols))" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "4cc72c27", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "5820 mols loaded\n", - "4800 mols loaded\n" - ] - } - ], - "source": [ - "# compute Morgant fingerprints :\n", - "RL_X = []\n", - "for mol in RL_mols:\n", - " arr = np.zeros((0,))\n", - " fp = AllChem.GetMorganFingerprintAsBitVect(mol, 2)\n", - " DataStructs.ConvertToNumpyArray(fp, arr)\n", - " RL_X.append(arr)\n", - " \n", - "print('{} mols loaded'.format(len(RL_X)))\n", - "\n", - "CRLV_X = []\n", - "for mol in CRLV_mols:\n", - " arr = np.zeros((0,))\n", - " fp = AllChem.GetMorganFingerprintAsBitVect(mol, 2)\n", - " DataStructs.ConvertToNumpyArray(fp, arr)\n", - " CRLV_X.append(arr)\n", - " \n", - "print('{} mols loaded'.format(len(CRLV_X)))" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "167e07b6", - "metadata": {}, - "outputs": [], - "source": [ - "# compute tanimoto distance (use numba for speed)\n", - "import numba\n", - "@numba.njit()\n", - "def tanimoto_dist(a,b):\n", - " dotprod = np.dot(a,b)\n", - " tc = dotprod / (np.sum(a) + np.sum(b) - dotprod)\n", - " return 1.0-tc" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "6e3f3ae2", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(5820, 2)\n", - "(4800, 2)\n" - ] - } - ], - "source": [ - "# compute the UMAP\n", - "umap_RL_X = umap.UMAP(n_neighbors=8, min_dist=0.3, metric=tanimoto_dist).fit_transform(RL_X)\n", - "print(umap_RL_X.shape)\n", - "\n", - "umap_CRLV_X = umap.UMAP(n_neighbors=8, min_dist=0.3, metric=tanimoto_dist).fit_transform(CRLV_X)\n", - "print(umap_CRLV_X.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "eab8c4f6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# plot results\n", - "plt.scatter(umap_RL_X.T[0], umap_RL_X.T[1]) #, **plot_kwds)\n", - "plt.scatter(umap_CRLV_X.T[0], umap_CRLV_X.T[1]) #, **plot_kwds)\n", - "\n", - "# plt.savefig('gen_smis/obj1_umap.png', dpi=300)" - ] - }, - { - "cell_type": "markdown", - "id": "76bcb96f", - "metadata": {}, - "source": [ - "## Structural variance:" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "9ae83c37", - "metadata": {}, - "outputs": [], - "source": [ - "def sv(smi):\n", - " return len(set(smi)) / 100 " - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "562ebb76", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.05\n", - "0.24\n" - ] - } - ], - "source": [ - "# Example:\n", - "smi = 'Nc1cccc2ncccc12'\n", - "print(sv(smi))\n", - "\n", - "smi = '[K+].[O-]S(=O)(=O)c1ccccc1C(=O)n2cc(C(=O)c3ccn4[C@H](SCc34)c5cccnc5)c6ccc(cc26)c7ccc(F)cc7'\n", - "print(sv(smi))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "e07ac446", - "metadata": {}, - "outputs": [], - "source": [ - "# read the molecules (from Chembl21) that are satisfying objectives 2, 3 and 4 \n", - "\n", - "fobj2 = pd.read_csv('all_data/obj2.txt', header=None)\n", - "obj2 = list(fobj2[0])\n", - "\n", - "fobj3 = pd.read_csv('all_data/obj3.txt', header=None)\n", - "obj3 = list(fobj3[0])\n", - "\n", - "fobj4 = pd.read_csv('all_data/obj4.txt', header=None)\n", - "obj4 = list(fobj4[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "7f84f6dc", - "metadata": {}, - "outputs": [], - "source": [ - "# compute their SV:\n", - "\n", - "os2sv = []\n", - "os3sv = []\n", - "os4sv = []\n", - " \n", - "for i, s in enumerate(obj2):\n", - " os2sv.append(sv(s))\n", - " \n", - "for i, s in enumerate(obj3):\n", - " os3sv.append(sv(s))\n", - " \n", - "for i, s in enumerate(obj4):\n", - " os4sv.append(sv(s))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "2eec8e3a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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mjWw2+249tprE/gqY4NiQES/hbWAeLMdvDUJgrMBACC4mqBPDrpAWMumsMINMejGx7Nv78G/JzDFqGzBKitANhssVqt8Xy9pC5DDHXmcXHB9j0WLFmH37t34+OOPcdlll+Hss8+GxWLBd999h/r6eowdOxb333+/6jHjxo3D+vXrsWvXLowbNw6FhYUoKipCdnZ2mz3crFYrHn/8cdx666148skn8d5772HYsGE4fvw4jh8/DqvVin/84x/IysrqxFetDVlARL+FFSCd2QadJVk5x9QCsTEgrxiWmabTdsHpBOUxBosNJpsiQAYEVCnbQPAXrcMVKUBkAfU9eJ7H008/jb/97W8YO3Ysvv/+e2zbtg15eXm46667sHr1aqSlpakeM378ePz3v/9FZmYmNm/ejIaGBlx99dV45513MGTIkDaf85xzzsG7776Lyy+/HA0NDdi8eTOcTicWLFiANWvW4Lzzzuusl9sqZAER/RY2C4632NW1OkyqNBsP8oV9ZBwBTs52CwmVFPCDR1BgBImD2WyC1WxEvaSDkRPktZxRKSr0BUQEBLUoARQD6qtwHIcFCxZgwYIFra6bPn06jhw5It9fvXp1q+v9/uCPGIMhMnOyoKAATz75ZBy77TzIAiL6LWoXnA28SbFSJK9iebAWUHiYpsEtKddrWcdmwHkkA8xmA8xGHXySIl6iT13z43BpJyaQBUS0h+PHg5000tPTu3knsUEWENEvkUQBolcpFuVNVvAmxSJhz7HjthvcaiulxiEi5DmXNATIKxlgNuphMenhlfSwo8VK8quVzMnEf8xGHTy+oKVEMSAiFoqKinDHHXfg9OnTAIAZM2Z0845igywgol/CCgxnsoLjdeCNrAApIsK64OpcisUDANXNQsQ69rFeyQCLSQ+Dnoef+b3n86gtGzYBIT8nCaE6xYZmr6ZrjiBYiouLUVFRAa/Xi4suugjLly/v7i3FBFlARL9ElYDQ4npjXXCij7GAGAFyBdS/2dikBDkGxKRjexC0fjiOgx+KX97rckGJOKktoGSbEVazQT7m9gaQZFV3YCAIlgsuuADbt2/v7m20m7gsoJ///Od4//335WFGBNHbEBmR4LQEKEoMyCeps+DYuE5UF5wp+BiBZ4bShX12WAvIbjHAalau6+oHDUqJ/klcAvT1119jxYoVOPfcc7F8+XJ89dVX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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Plot results\n", - "sns.kdeplot(x=os2sv[0:50000], fill=False, label='obj2')#, shade=True)\n", - "sns.kdeplot(x=os3sv[0:50000], fill=False, label='obj3')#, shade=True)\n", - "plt.legend()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "3890e5bd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Plot results\n", - "sns.kdeplot(x=os2sv[0:50000], fill=False, label='obj2')#, shade=True)\n", - "sns.kdeplot(x=os4sv[0:50000], fill=False, label='obj4')#, shade=True)\n", - "plt.legend()" - ] - }, - { - "cell_type": "markdown", - "id": "36025acc", - "metadata": {}, - "source": [ - "## Example molecules of objective 5:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "f582eb31", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'COc1ccc2[C@@H]3[C@H](COc2c1)C(C)(C)OC4=C3C(=O)C(=O)C5=C4OC(C)(C)[C@@H]6COc7cc(OC)ccc7[C@H]56'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataset = unidecode.unidecode(open('all_data/s_100_str_+1M.txt').read())\n", - "dataset_smis_ = strsmis2listsmis(dataset)\n", - "dataset_smis_[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "fc1c58a6", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "There is one at 74359\n", - "There is one at 140100\n", - "There is one at 151740\n", - "There is one at 213038\n", - "There is one at 274395\n", - "There is one at 361520\n", - "There is one at 365067\n", - "There is one at 392169\n", - "There is one at 432600\n", - "There is one at 445777\n", - "There is one at 479901\n", - "There is one at 515337\n", - "There is one at 552106\n", - "There is one at 621924\n", - "There is one at 635869\n", - "There is one at 723269\n", - "There is one at 732423\n", - "There is one at 738912\n", - "There is one at 785390\n", - "There is one at 785392\n", - "There is one at 785394\n", - "There is one at 785395\n", - "There is one at 787642\n", - "There is one at 796942\n", - "There is one at 873360\n", - "There is one at 917597\n", - "There is one at 921850\n", - "There is one at 924728\n", - "There is one at 938046\n", - "There is one at 939348\n", - "There is one at 944402\n", - "There is one at 954244\n", - "There is one at 962220\n", - "There is one at 962725\n", - "There is one at 1000203\n", - "There is one at 1016015\n", - "There is one at 1035824\n", - "There is one at 1050392\n", - "There is one at 1056647\n", - "There is one at 1074411\n", - "There is one at 1099731\n", - "There is one at 1099977\n", - "There is one at 1111176\n", - "There is one at 1112030\n", - "There is one at 1182986\n", - "There is one at 1211357\n", - "There is one at 1211490\n", - "There is one at 1211641\n", - "There is one at 1212042\n", - "There is one at 1212512\n", - "There is one at 1215667\n", - "There is one at 1279599\n", - "There is one at 1284038\n", - "There is one at 1289953\n", - "There is one at 1292746\n", - "There is one at 1320914\n", - "There is one at 1321705\n", - "There is one at 1329836\n", - "There is one at 1329837\n", - "There is one at 1363041\n", - "There is one at 1451320\n", - "There is one at 1457780\n", - "There is one at 1458549\n", - "There is one at 1459089\n", - "There is one at 1459375\n", - "There is one at 1460011\n", - "There is one at 1467279\n", - "There is one at 1475482\n", - "There is one at 1476524\n", - "There is one at 1478526\n", - "There is one at 1482622\n", - "There is one at 1482860\n", - "There is one at 1488284\n", - "There is one at 1488455\n", - "There is one at 1488582\n", - "There is one at 1488799\n" - ] - } - ], - "source": [ - "obj5 = []\n", - "idxs = []\n", - "for i, s in enumerate(dataset_smis_): \n", - " arr, alr, oh, cooh, coor, nh2, rval = get_props(s, c=2) \n", - " cycle, grp, rv = 0, 0, 0 \n", - " if arr==2 or alr==1: \n", - " cycle = 1\n", - " if oh>=1 and cooh>=1 and coor>=1 and nh2>=1:\n", - " grp = 1\n", - " if 0.05" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# draw\n", - "from rdkit.Chem import Draw\n", - "mol = Chem.MolFromSmiles(expl)\n", - "Draw.MolToImage(mol, size=(400,250))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "02502595", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b3cfb38c", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}