{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "chemo.ipynb", "version": "0.3.2", "provenance": [], "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "accelerator": "GPU" }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "metadata": { "id": "c20nBaAf1yYV", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "b9e24d2a-3b48-400b-ab82-fa4f709fa922" }, "cell_type": "code", "source": [ "!python --version" ], "execution_count": 20, "outputs": [ { "output_type": "stream", "text": [ "Python 3.7.0\n" ], "name": "stdout" } ] }, { "metadata": { "id": "PInm4lFu2Uyq", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 1394 }, "outputId": "145e842d-937d-413f-eba9-b50000d49d5d" }, "cell_type": "code", "source": [ "!wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh\n", "!chmod +x Miniconda3-latest-Linux-x86_64.sh\n", "!time bash ./Miniconda3-latest-Linux-x86_64.sh -b -f -p /usr/local\n", "!time conda install -q -y -c conda-forge rdkit\n" ], "execution_count": 21, "outputs": [ { "output_type": "stream", "text": [ "--2018-10-31 13:08:02-- https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh\n", "Resolving repo.continuum.io (repo.continuum.io)... 104.16.19.10, 104.16.18.10, 2400:cb00:2048:1::6810:120a, ...\n", "Connecting to repo.continuum.io (repo.continuum.io)|104.16.19.10|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "\n", " The file is already fully retrieved; nothing to do.\n", "\n", "PREFIX=/usr/local\n", "reinstalling: python-3.7.0-hc3d631a_0 ...\n", "Python 3.7.0\n", "reinstalling: ca-certificates-2018.03.07-0 ...\n", "reinstalling: conda-env-2.6.0-1 ...\n", "reinstalling: libgcc-ng-8.2.0-hdf63c60_1 ...\n", "reinstalling: libstdcxx-ng-8.2.0-hdf63c60_1 ...\n", "reinstalling: libffi-3.2.1-hd88cf55_4 ...\n", "reinstalling: ncurses-6.1-hf484d3e_0 ...\n", "reinstalling: openssl-1.0.2p-h14c3975_0 ...\n", "reinstalling: xz-5.2.4-h14c3975_4 ...\n", "reinstalling: yaml-0.1.7-had09818_2 ...\n", "reinstalling: zlib-1.2.11-ha838bed_2 ...\n", "reinstalling: libedit-3.1.20170329-h6b74fdf_2 ...\n", "reinstalling: readline-7.0-h7b6447c_5 ...\n", "reinstalling: tk-8.6.8-hbc83047_0 ...\n", "reinstalling: sqlite-3.24.0-h84994c4_0 ...\n", "reinstalling: asn1crypto-0.24.0-py37_0 ...\n", "reinstalling: certifi-2018.8.24-py37_1 ...\n", "reinstalling: chardet-3.0.4-py37_1 ...\n", "reinstalling: idna-2.7-py37_0 ...\n", "reinstalling: pycosat-0.6.3-py37h14c3975_0 ...\n", "reinstalling: pycparser-2.18-py37_1 ...\n", "reinstalling: pysocks-1.6.8-py37_0 ...\n", "reinstalling: ruamel_yaml-0.15.46-py37h14c3975_0 ...\n", "reinstalling: six-1.11.0-py37_1 ...\n", "reinstalling: cffi-1.11.5-py37he75722e_1 ...\n", "reinstalling: setuptools-40.2.0-py37_0 ...\n", "reinstalling: cryptography-2.3.1-py37hc365091_0 ...\n", "reinstalling: wheel-0.31.1-py37_0 ...\n", "reinstalling: pip-10.0.1-py37_0 ...\n", "reinstalling: pyopenssl-18.0.0-py37_0 ...\n", "reinstalling: urllib3-1.23-py37_0 ...\n", "reinstalling: requests-2.19.1-py37_0 ...\n", "reinstalling: conda-4.5.11-py37_0 ...\n", "unlinking: ca-certificates-2018.10.15-ha4d7672_0\n", "unlinking: certifi-2018.10.15-py37_1000\n", "unlinking: conda-4.5.11-py37_1000\n", "unlinking: openssl-1.0.2p-h470a237_1\n", "installation finished.\n", "WARNING:\n", " You currently have a PYTHONPATH environment variable set. This may cause\n", " unexpected behavior when running the Python interpreter in Miniconda3.\n", " For best results, please verify that your PYTHONPATH only points to\n", " directories of packages that are compatible with the Python interpreter\n", " in Miniconda3: /usr/local\n", "\n", "real\t0m15.630s\n", "user\t0m13.287s\n", "sys\t0m4.019s\n", "Solving environment: ...working... done\n", "\n", "## Package Plan ##\n", "\n", " environment location: /usr/local\n", "\n", " added / updated specs: \n", " - rdkit\n", "\n", "\n", "The following packages will be UPDATED:\n", "\n", " ca-certificates: 2018.03.07-0 --> 2018.10.15-ha4d7672_0 conda-forge\n", " certifi: 2018.8.24-py37_1 --> 2018.10.15-py37_1000 conda-forge\n", " conda: 4.5.11-py37_0 --> 4.5.11-py37_1000 conda-forge\n", " openssl: 1.0.2p-h14c3975_0 --> 1.0.2p-h470a237_1 conda-forge\n", "\n", "Preparing transaction: ...working... done\n", "Verifying transaction: ...working... done\n", "Executing transaction: ...working... done\n", "\n", "real\t0m40.560s\n", "user\t0m38.017s\n", "sys\t0m1.007s\n" ], "name": "stdout" } ] }, { "metadata": { "id": "AFT7w0WD2bj_", "colab_type": "code", "colab": {} }, "cell_type": "code", "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import sys\n", "import os\n", "sys.path.append('/usr/local/lib/python3.7/site-packages/')" ], "execution_count": 0, "outputs": [] }, { "metadata": { "id": "L_QLM4zNOp5A", "colab_type": "code", "colab": {} }, "cell_type": "code", "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "from rdkit import Chem\n", "from rdkit.Chem import DataStructs\n", "from rdkit.Chem import AllChem\n", "from rdkit.Chem import RDConfig\n", "from rdkit import rdBase\n", "from rdkit.Chem.Draw import IPythonConsole" ], "execution_count": 0, "outputs": [] }, { "metadata": { "id": "cP4ELmt67TwY", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "07cdd998-d145-40ec-d780-f07482291c9a" }, "cell_type": "code", "source": [ "rdBase.rdkitVersion" ], "execution_count": 28, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "'2018.09.1'" ] }, "metadata": { "tags": [] }, "execution_count": 28 } ] }, { "metadata": { "id": "uJ66JY_Y6TJg", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "8507632c-790e-4881-f6c4-69235c3dc87b" }, "cell_type": "code", "source": [ "trainsdf = Chem.SDMolSupplier(os.path.join( RDConfig.RDDocsDir, 'Book/data/solubility.train.sdf'))\n", "testsdf = Chem.SDMolSupplier(os.path.join( RDConfig.RDDocsDir, 'Book/data/solubility.test.sdf'))\n", "train_mols = [mol for mol in trainsdf if mol != None]\n", "test_mols = [mol for mol in testsdf if mol != None]\n", "print(len(train_mols), len(test_mols))\n", "\n", "sol_class = {\"(A) low\":0, \"(B) medium\":1, \"(C) high\": 2}" ], "execution_count": 41, "outputs": [ { "output_type": "stream", "text": [ "1025 257\n" ], "name": "stdout" } ] }, { "metadata": { "id": "c7LO9wFe6_l9", "colab_type": "code", "colab": {} }, "cell_type": "code", "source": [ "# 2048 bit vector\n", "def mol2arr(mol):\n", " arr = np.zeros((1,))\n", " fp = AllChem.GetMorganFingerprintAsBitVect(mol, 2)\n", " DataStructs.ConvertToNumpyArray(fp, arr)\n", " return arr" ], "execution_count": 0, "outputs": [] }, { "metadata": { "id": "1mRyMr18Sxny", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "d5eefcae-c608-41e4-edbf-dd2616bddd1c" }, "cell_type": "code", "source": [ "np.sum(mol2arr(train_mols[0]))" ], "execution_count": 60, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "7.0" ] }, "metadata": { "tags": [] }, "execution_count": 60 } ] }, { "metadata": { "id": "ZtFfizuNS5MJ", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "ae1a7daf-3cc5-4a6a-9274-e3bab5443275" }, "cell_type": "code", "source": [ "" ], "execution_count": 44, "outputs": [ { "output_type": "stream", "text": [ "(2048,)\n" ], "name": "stdout" } ] }, { "metadata": { "id": "4eHTvTNDUJcY", "colab_type": "code", "colab": {} }, "cell_type": "code", "source": [ "import tensorflow as tf\n", "import tensorflow.keras as keras\n", "from keras import Model\n", "from keras.layers import Activation, Dense, Dropout, Input\n", "from keras.utils import np_utils\n", "\n", "\n", "trainX = np.array([mol2arr(mol) for mol in train_mols])\n", "trainY = [sol_class[mol.GetProp(\"SOL_classification\")] for mol in train_mols]\n", "trainY = np_utils.to_categorical(trainY)\n", "\n", "testX = np.array([mol2arr(mol) for mol in test_mols])\n", "testY = [sol_class[mol.GetProp(\"SOL_classification\")] for mol in test_mols]\n", "testY = np_utils.to_categorical(testY)\n" ], "execution_count": 0, "outputs": [] }, { "metadata": { "id": "0O692Z2mUqC7", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 561 }, "outputId": "25672f7f-5763-4043-e4c7-6c10731d4538" }, "cell_type": "code", "source": [ "inputs = Input(shape=(2048,), name='input')\n", "x = Dense(100, activation='relu', name='Layer1')(inputs)\n", "x = Dense(20, activation='relu', name='Layer2')(x)\n", "x = Dense(2, activation='relu', name='Layer3')(x)\n", "predictions = Dense(3, activation='softmax', name='output')(x)\n", "\n", "model = Model(inputs=inputs, outputs = predictions)\n", "model.compile(optimizer=tf.train.RMSPropOptimizer(0.001),\n", " loss='categorical_crossentropy',\n", " metrics=['accuracy'])\n", "model.summary()\n", "\n", "\n", "model_int = Model(inputs=inputs, outputs=model.get_layer(name='Layer3').output)\n", "model_int.summary()" ], "execution_count": 84, "outputs": [ { "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "input (InputLayer) (None, 2048) 0 \n", "_________________________________________________________________\n", "Layer1 (Dense) (None, 100) 204900 \n", "_________________________________________________________________\n", "Layer2 (Dense) (None, 20) 2020 \n", "_________________________________________________________________\n", "Layer3 (Dense) (None, 2) 42 \n", "_________________________________________________________________\n", "output (Dense) (None, 3) 9 \n", "=================================================================\n", "Total params: 206,971\n", "Trainable params: 206,971\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "input (InputLayer) (None, 2048) 0 \n", "_________________________________________________________________\n", "Layer1 (Dense) (None, 100) 204900 \n", "_________________________________________________________________\n", "Layer2 (Dense) (None, 20) 2020 \n", "_________________________________________________________________\n", "Layer3 (Dense) (None, 2) 42 \n", "=================================================================\n", "Total params: 206,962\n", "Trainable params: 206,962\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ], "name": "stdout" } ] }, { "metadata": { "id": "M-OtvArzWXGC", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 1717 }, "outputId": "9d27253f-f1cd-46e5-a3e4-df16ddddd189" }, "cell_type": "code", "source": [ "epochs = 50\n", "hist = model.fit(np.array(trainX), trainY, batch_size=32, epochs=epochs)" ], "execution_count": 85, "outputs": [ { "output_type": "stream", "text": [ "Epoch 1/50\n", "1025/1025 [==============================] - 0s 478us/step - loss: 1.0971 - acc: 0.4322\n", "Epoch 2/50\n", "1025/1025 [==============================] - 0s 175us/step - loss: 1.0896 - acc: 0.4244\n", "Epoch 3/50\n", "1025/1025 [==============================] - 0s 176us/step - loss: 1.0620 - acc: 0.4117\n", "Epoch 4/50\n", "1025/1025 [==============================] - 0s 178us/step - loss: 1.0195 - acc: 0.4351\n", "Epoch 5/50\n", "1025/1025 [==============================] - 0s 181us/step - loss: 0.9382 - acc: 0.5307\n", "Epoch 6/50\n", "1025/1025 [==============================] - 0s 173us/step - loss: 0.8520 - acc: 0.6010\n", "Epoch 7/50\n", "1025/1025 [==============================] - 0s 177us/step - loss: 0.7807 - acc: 0.6654\n", "Epoch 8/50\n", "1025/1025 [==============================] - 0s 189us/step - loss: 0.7262 - acc: 0.6995\n", "Epoch 9/50\n", "1025/1025 [==============================] - 0s 190us/step - loss: 0.6837 - acc: 0.7239\n", "Epoch 10/50\n", "1025/1025 [==============================] - 0s 186us/step - loss: 0.6427 - acc: 0.7434\n", "Epoch 11/50\n", "1025/1025 [==============================] - 0s 195us/step - loss: 0.6119 - acc: 0.7532\n", "Epoch 12/50\n", "1025/1025 [==============================] - 0s 188us/step - loss: 0.5826 - acc: 0.7610\n", "Epoch 13/50\n", "1025/1025 [==============================] - 0s 244us/step - loss: 0.5492 - acc: 0.7698\n", "Epoch 14/50\n", "1025/1025 [==============================] - 0s 182us/step - loss: 0.5258 - acc: 0.7776\n", "Epoch 15/50\n", "1025/1025 [==============================] - 0s 181us/step - loss: 0.4976 - acc: 0.8449\n", "Epoch 16/50\n", "1025/1025 [==============================] - 0s 193us/step - loss: 0.4642 - acc: 0.9580\n", "Epoch 17/50\n", "1025/1025 [==============================] - 0s 184us/step - loss: 0.4318 - acc: 0.9600\n", "Epoch 18/50\n", "1025/1025 [==============================] - 0s 188us/step - loss: 0.3990 - acc: 0.9649\n", "Epoch 19/50\n", "1025/1025 [==============================] - 0s 192us/step - loss: 0.3606 - acc: 0.9756\n", "Epoch 20/50\n", "1025/1025 [==============================] - 0s 187us/step - loss: 0.3201 - acc: 0.9824\n", "Epoch 21/50\n", "1025/1025 [==============================] - 0s 200us/step - loss: 0.2810 - acc: 0.9854\n", "Epoch 22/50\n", "1025/1025 [==============================] - 0s 187us/step - loss: 0.2484 - acc: 0.9824\n", "Epoch 23/50\n", "1025/1025 [==============================] - 0s 183us/step - loss: 0.2151 - acc: 0.9844\n", "Epoch 24/50\n", "1025/1025 [==============================] - 0s 184us/step - loss: 0.1897 - acc: 0.9824\n", "Epoch 25/50\n", "1025/1025 [==============================] - 0s 184us/step - loss: 0.1650 - acc: 0.9863\n", "Epoch 26/50\n", "1025/1025 [==============================] - 0s 198us/step - loss: 0.1451 - acc: 0.9854\n", "Epoch 27/50\n", "1025/1025 [==============================] - 0s 186us/step - loss: 0.1268 - acc: 0.9863\n", "Epoch 28/50\n", "1025/1025 [==============================] - 0s 190us/step - loss: 0.1071 - acc: 0.9824\n", "Epoch 29/50\n", "1025/1025 [==============================] - 0s 188us/step - loss: 0.0798 - acc: 0.9844\n", "Epoch 30/50\n", "1025/1025 [==============================] - 0s 183us/step - loss: 0.0574 - acc: 0.9873\n", "Epoch 31/50\n", "1025/1025 [==============================] - 0s 188us/step - loss: 0.0482 - acc: 0.9893\n", "Epoch 32/50\n", "1025/1025 [==============================] - 0s 199us/step - loss: 0.0440 - acc: 0.9863\n", "Epoch 33/50\n", "1025/1025 [==============================] - 0s 186us/step - loss: 0.0395 - acc: 0.9893\n", "Epoch 34/50\n", "1025/1025 [==============================] - 0s 184us/step - loss: 0.0351 - acc: 0.9873\n", "Epoch 35/50\n", "1025/1025 [==============================] - 0s 182us/step - loss: 0.0393 - acc: 0.9854\n", "Epoch 36/50\n", "1025/1025 [==============================] - 0s 183us/step - loss: 0.0372 - acc: 0.9883\n", "Epoch 37/50\n", "1025/1025 [==============================] - 0s 193us/step - loss: 0.0362 - acc: 0.9834\n", "Epoch 38/50\n", "1025/1025 [==============================] - 0s 187us/step - loss: 0.0348 - acc: 0.9873\n", "Epoch 39/50\n", "1025/1025 [==============================] - 0s 190us/step - loss: 0.0295 - acc: 0.9893\n", "Epoch 40/50\n", "1025/1025 [==============================] - 0s 193us/step - loss: 0.0320 - acc: 0.9873\n", "Epoch 41/50\n", "1025/1025 [==============================] - 0s 208us/step - loss: 0.0272 - acc: 0.9883\n", "Epoch 42/50\n", "1025/1025 [==============================] - 0s 243us/step - loss: 0.0372 - acc: 0.9873\n", "Epoch 43/50\n", "1025/1025 [==============================] - 0s 184us/step - loss: 0.0325 - acc: 0.9873\n", "Epoch 44/50\n", "1025/1025 [==============================] - 0s 187us/step - loss: 0.0304 - acc: 0.9873\n", "Epoch 45/50\n", "1025/1025 [==============================] - 0s 187us/step - loss: 0.0251 - acc: 0.9902\n", "Epoch 46/50\n", "1025/1025 [==============================] - 0s 183us/step - loss: 0.0319 - acc: 0.9883\n", "Epoch 47/50\n", "1025/1025 [==============================] - 0s 192us/step - loss: 0.0265 - acc: 0.9893\n", "Epoch 48/50\n", "1025/1025 [==============================] - 0s 185us/step - loss: 0.0306 - acc: 0.9893\n", "Epoch 49/50\n", "1025/1025 [==============================] - 0s 190us/step - loss: 0.0284 - acc: 0.9883\n", "Epoch 50/50\n", "1025/1025 [==============================] - 0s 184us/step - loss: 0.0300 - acc: 0.9873\n" ], "name": "stdout" } ] }, { "metadata": { "id": "alpYfIqaX1s2", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 282 }, "outputId": "ee1bc3e2-d2d9-4fd8-d9fc-46190cb3487c" }, "cell_type": "code", "source": [ "plt.plot(range(epochs), hist.history['acc'])\n", "plt.plot(range(epochs), hist.history['loss'])" ], "execution_count": 86, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[]" ] }, "metadata": { "tags": [] }, "execution_count": 86 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] }, { "metadata": { "id": "8gu88IAMX-KM", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 153 }, "outputId": "62e8eab4-0af0-496f-fe56-e636f23bc18e" }, "cell_type": "code", "source": [ "from sklearn.metrics import classification_report\n", "predY = model.predict(testX)\n", "predY = [np.argmax(y) for y in predY]\n", "Y = [np.argmax(y) for y in testY]\n", "print(classification_report(Y, predY))" ], "execution_count": 97, "outputs": [ { "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 0.78 0.73 0.75 102\n", " 1 0.69 0.78 0.73 115\n", " 2 0.77 0.60 0.68 40\n", "\n", "avg / total 0.74 0.73 0.73 257\n", "\n" ], "name": "stdout" } ] }, { "metadata": { "id": "hZqQQxbmhEjD", "colab_type": "code", "colab": {} }, "cell_type": "code", "source": [ "intdata = model_int.predict(testX)\n", "colormap = {0:\"red\", 1:\"blue\", 2:\"green\"}\n", "c = [colormap[i] for i in Y]" ], "execution_count": 0, "outputs": [] }, { "metadata": { "id": "v9_QrO9sgiPU", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "outputId": "f53a13a8-71b5-44d0-ebd5-ddd4f2730499" }, "cell_type": "code", "source": [ "intdata[:,0].shape" ], "execution_count": 103, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(257,)" ] }, "metadata": { "tags": [] }, "execution_count": 103 } ] }, { "metadata": { "id": "gGjLQ3vwgwjv", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 282 }, "outputId": "4a0ed8e8-1c84-4f5f-da40-b1dce9742168" }, "cell_type": "code", "source": [ "plt.scatter(intdata[:,0], intdata[:,1], c=c)" ], "execution_count": 107, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 107 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] }, { "metadata": { "id": "OVZGl0EairPr", "colab_type": "code", "colab": {} }, "cell_type": "code", "source": [ "" ], "execution_count": 0, "outputs": [] } ] }