{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "QQHZHevuXdEy" }, "source": [ "# **QSAR Model Building of Acetylcholinesterase Inhibitors**\n", "\n", "Chanin Nantasenamat\n", "\n", "*Data Professor YouTube channel, http://youtube.com/dataprofessor*" ] }, { "cell_type": "markdown", "metadata": { "id": "g1qtHa0zXfWM" }, "source": [ "# Read in data" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "id": "9MdfbvFKXtXq" }, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 439 }, "id": "nerGP0fCXfgP", "outputId": "b639892c-8f7b-4b24-d02c-628c9f1a1460" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PubchemFP0PubchemFP1PubchemFP2PubchemFP3PubchemFP4PubchemFP5PubchemFP6PubchemFP7PubchemFP8PubchemFP9...PubchemFP872PubchemFP873PubchemFP874PubchemFP875PubchemFP876PubchemFP877PubchemFP878PubchemFP879PubchemFP880pIC50
01110000001...0000000006.124939
11110000001...0000000007.000000
21110000001...0000000004.301030
31100000001...0000000006.522879
41100000001...0000000006.096910
..................................................................
46901111000001...0000000005.612610
46911111000001...0000000005.595166
46921111000001...0000000005.419075
46931111000001...0000000005.460924
46941111000001...0000000005.555955
\n", "

4695 rows × 882 columns

\n", "
" ], "text/plain": [ " PubchemFP0 PubchemFP1 PubchemFP2 PubchemFP3 PubchemFP4 PubchemFP5 \\\n", "0 1 1 1 0 0 0 \n", "1 1 1 1 0 0 0 \n", "2 1 1 1 0 0 0 \n", "3 1 1 0 0 0 0 \n", "4 1 1 0 0 0 0 \n", "... ... ... ... ... ... ... \n", "4690 1 1 1 1 0 0 \n", "4691 1 1 1 1 0 0 \n", "4692 1 1 1 1 0 0 \n", "4693 1 1 1 1 0 0 \n", "4694 1 1 1 1 0 0 \n", "\n", " PubchemFP6 PubchemFP7 PubchemFP8 PubchemFP9 ... PubchemFP872 \\\n", "0 0 0 0 1 ... 0 \n", "1 0 0 0 1 ... 0 \n", "2 0 0 0 1 ... 0 \n", "3 0 0 0 1 ... 0 \n", "4 0 0 0 1 ... 0 \n", "... ... ... ... ... ... ... \n", "4690 0 0 0 1 ... 0 \n", "4691 0 0 0 1 ... 0 \n", "4692 0 0 0 1 ... 0 \n", "4693 0 0 0 1 ... 0 \n", "4694 0 0 0 1 ... 0 \n", "\n", " PubchemFP873 PubchemFP874 PubchemFP875 PubchemFP876 PubchemFP877 \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "... ... ... ... ... ... \n", "4690 0 0 0 0 0 \n", "4691 0 0 0 0 0 \n", "4692 0 0 0 0 0 \n", "4693 0 0 0 0 0 \n", "4694 0 0 0 0 0 \n", "\n", " PubchemFP878 PubchemFP879 PubchemFP880 pIC50 \n", "0 0 0 0 6.124939 \n", "1 0 0 0 7.000000 \n", "2 0 0 0 4.301030 \n", "3 0 0 0 6.522879 \n", "4 0 0 0 6.096910 \n", "... ... ... ... ... \n", "4690 0 0 0 5.612610 \n", "4691 0 0 0 5.595166 \n", "4692 0 0 0 5.419075 \n", "4693 0 0 0 5.460924 \n", "4694 0 0 0 5.555955 \n", "\n", "[4695 rows x 882 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset_url = 'https://github.com/dataprofessor/data/raw/master/acetylcholinesterase_06_bioactivity_data_3class_pIC50_pubchem_fp.csv'\n", "dataset = pd.read_csv(dataset_url)\n", "dataset" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 439 }, "id": "tgFxx8m_YEUy", "outputId": "47903560-3aa4-497f-85b4-27b1361b200a" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PubchemFP0PubchemFP1PubchemFP2PubchemFP3PubchemFP4PubchemFP5PubchemFP6PubchemFP7PubchemFP8PubchemFP9...PubchemFP871PubchemFP872PubchemFP873PubchemFP874PubchemFP875PubchemFP876PubchemFP877PubchemFP878PubchemFP879PubchemFP880
01110000001...0000000000
11110000001...0000000000
21110000001...0000000000
31100000001...0000000000
41100000001...0000000000
..................................................................
46901111000001...0000000000
46911111000001...0000000000
46921111000001...0000000000
46931111000001...0000000000
46941111000001...0000000000
\n", "

4695 rows × 881 columns

\n", "
" ], "text/plain": [ " PubchemFP0 PubchemFP1 PubchemFP2 PubchemFP3 PubchemFP4 PubchemFP5 \\\n", "0 1 1 1 0 0 0 \n", "1 1 1 1 0 0 0 \n", "2 1 1 1 0 0 0 \n", "3 1 1 0 0 0 0 \n", "4 1 1 0 0 0 0 \n", "... ... ... ... ... ... ... \n", "4690 1 1 1 1 0 0 \n", "4691 1 1 1 1 0 0 \n", "4692 1 1 1 1 0 0 \n", "4693 1 1 1 1 0 0 \n", "4694 1 1 1 1 0 0 \n", "\n", " PubchemFP6 PubchemFP7 PubchemFP8 PubchemFP9 ... PubchemFP871 \\\n", "0 0 0 0 1 ... 0 \n", "1 0 0 0 1 ... 0 \n", "2 0 0 0 1 ... 0 \n", "3 0 0 0 1 ... 0 \n", "4 0 0 0 1 ... 0 \n", "... ... ... ... ... ... ... \n", "4690 0 0 0 1 ... 0 \n", "4691 0 0 0 1 ... 0 \n", "4692 0 0 0 1 ... 0 \n", "4693 0 0 0 1 ... 0 \n", "4694 0 0 0 1 ... 0 \n", "\n", " PubchemFP872 PubchemFP873 PubchemFP874 PubchemFP875 PubchemFP876 \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "... ... ... ... ... ... \n", "4690 0 0 0 0 0 \n", "4691 0 0 0 0 0 \n", "4692 0 0 0 0 0 \n", "4693 0 0 0 0 0 \n", "4694 0 0 0 0 0 \n", "\n", " PubchemFP877 PubchemFP878 PubchemFP879 PubchemFP880 \n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 0 0 0 0 \n", "3 0 0 0 0 \n", "4 0 0 0 0 \n", "... ... ... ... ... \n", "4690 0 0 0 0 \n", "4691 0 0 0 0 \n", "4692 0 0 0 0 \n", "4693 0 0 0 0 \n", "4694 0 0 0 0 \n", "\n", "[4695 rows x 881 columns]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X = dataset.drop(['pIC50'], axis=1)\n", "X" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "JDwxgKHqYmD4", "outputId": "472cd19d-7dab-4f16-b03d-fab52d3fc782" }, "outputs": [ { "data": { "text/plain": [ "0 6.124939\n", "1 7.000000\n", "2 4.301030\n", "3 6.522879\n", "4 6.096910\n", " ... \n", "4690 5.612610\n", "4691 5.595166\n", "4692 5.419075\n", "4693 5.460924\n", "4694 5.555955\n", "Name: pIC50, Length: 4695, dtype: float64" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Y = dataset.iloc[:,-1]\n", "Y" ] }, { "cell_type": "markdown", "metadata": { "id": "AQ9E0xUY_o_M" }, "source": [ "# Remove low variance features" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Qkgj-lsG_wOJ", "outputId": "d3d11b21-fdf3-4cfb-e0c8-0f2b5a1d779b" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PubchemFP3PubchemFP12PubchemFP13PubchemFP15PubchemFP16PubchemFP18PubchemFP19PubchemFP20PubchemFP37PubchemFP143...PubchemFP758PubchemFP761PubchemFP776PubchemFP777PubchemFP797PubchemFP798PubchemFP818PubchemFP819PubchemFP821PubchemFP824
00101110011...0000000000
10101011101...0000000000
20101110011...0000000000
30101110011...0000000000
40001111001...0001000000
..................................................................
46901101011010...0001100100
46911101011010...0001100100
46921101011000...0001100100
46931101011100...0001100100
46941111011000...0011100100
\n", "

4695 rows × 218 columns

\n", "
" ], "text/plain": [ " PubchemFP3 PubchemFP12 PubchemFP13 PubchemFP15 PubchemFP16 \\\n", "0 0 1 0 1 1 \n", "1 0 1 0 1 0 \n", "2 0 1 0 1 1 \n", "3 0 1 0 1 1 \n", "4 0 0 0 1 1 \n", "... ... ... ... ... ... \n", "4690 1 1 0 1 0 \n", "4691 1 1 0 1 0 \n", "4692 1 1 0 1 0 \n", "4693 1 1 0 1 0 \n", "4694 1 1 1 1 0 \n", "\n", " PubchemFP18 PubchemFP19 PubchemFP20 PubchemFP37 PubchemFP143 ... \\\n", "0 1 0 0 1 1 ... \n", "1 1 1 1 0 1 ... \n", "2 1 0 0 1 1 ... \n", "3 1 0 0 1 1 ... \n", "4 1 1 0 0 1 ... \n", "... ... ... ... ... ... ... \n", "4690 1 1 0 1 0 ... \n", "4691 1 1 0 1 0 ... \n", "4692 1 1 0 0 0 ... \n", "4693 1 1 1 0 0 ... \n", "4694 1 1 0 0 0 ... \n", "\n", " PubchemFP758 PubchemFP761 PubchemFP776 PubchemFP777 PubchemFP797 \\\n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 1 0 \n", "... ... ... ... ... ... \n", "4690 0 0 0 1 1 \n", "4691 0 0 0 1 1 \n", "4692 0 0 0 1 1 \n", "4693 0 0 0 1 1 \n", "4694 0 0 1 1 1 \n", "\n", " PubchemFP798 PubchemFP818 PubchemFP819 PubchemFP821 PubchemFP824 \n", "0 0 0 0 0 0 \n", "1 0 0 0 0 0 \n", "2 0 0 0 0 0 \n", "3 0 0 0 0 0 \n", "4 0 0 0 0 0 \n", "... ... ... ... ... ... \n", "4690 0 0 1 0 0 \n", "4691 0 0 1 0 0 \n", "4692 0 0 1 0 0 \n", "4693 0 0 1 0 0 \n", "4694 0 0 1 0 0 \n", "\n", "[4695 rows x 218 columns]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.feature_selection import VarianceThreshold\n", "\n", "def remove_low_variance(input_data, threshold=0.1):\n", " selection = VarianceThreshold(threshold)\n", " selection.fit(input_data)\n", " return input_data[input_data.columns[selection.get_support(indices=True)]]\n", "\n", "X = remove_low_variance(X, threshold=0.1)\n", "X" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "X.to_csv('descriptor_list.csv', index = False)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# In the app, use the following to get this same descriptor list\n", "# of 218 variables from the initial set of 881 variables\n", "# Xlist = list(pd.read_csv('descriptor_list.csv').columns)\n", "# X[Xlist]" ] }, { "cell_type": "markdown", "metadata": { "id": "LNohCdqQY5VZ" }, "source": [ "# Random Forest Regression Model" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "id": "EanoyG2eX9cV" }, "outputs": [], "source": [ "from sklearn.ensemble import RandomForestRegressor\n", "from sklearn.metrics import mean_squared_error, r2_score" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "mLQJ2KLLY_9a", "outputId": "e0c22032-02af-40ca-c5c9-536982ec8627" }, "outputs": [ { "data": { "text/plain": [ "0.8606007951843838" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = RandomForestRegressor(n_estimators=500, random_state=42)\n", "model.fit(X, Y)\n", "r2 = model.score(X, Y)\n", "r2" ] }, { "cell_type": "markdown", "metadata": { "id": "F5f8KGWjZRSc" }, "source": [ "## Model Prediction" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "MI3c8LB2ZCYW", "outputId": "1bc71664-c9f8-434f-a666-7f78a2d34da6" }, "outputs": [ { "data": { "text/plain": [ "array([5.97555142, 6.38304794, 4.94339087, ..., 5.802151 , 5.70372719,\n", " 5.62942524])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Y_pred = model.predict(X)\n", "Y_pred" ] }, { "cell_type": "markdown", "metadata": { "id": "fXv7bcolZqa-" }, "source": [ "## Model Performance" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6f13gYleZVKy", "outputId": "fd565d7f-26e4-45d1-89f7-55b37687746c" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean squared error (MSE): 0.34\n", "Coefficient of determination (R^2): 0.86\n" ] } ], "source": [ "print('Mean squared error (MSE): %.2f'\n", " % mean_squared_error(Y, Y_pred))\n", "print('Coefficient of determination (R^2): %.2f'\n", " % r2_score(Y, Y_pred))" ] }, { "cell_type": "markdown", "metadata": { "id": "uWvxj1iSaL3n" }, "source": [ "# Data Visualization (Experimental vs Predicted pIC50 for Training Data)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "id": "iPcFF0MjZlh8" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Matplotlib is building the font cache; this may take a moment.\n" ] } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 351 }, "id": "QRNyIlGAaQQI", "outputId": "1cf12d14-4ba5-49d4-e627-902a049fba2e" }, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Experimental pIC50')" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(5,5))\n", "plt.scatter(x=Y, y=Y_pred, c=\"#7CAE00\", alpha=0.3)\n", "\n", "# Add trendline\n", "# https://stackoverflow.com/questions/26447191/how-to-add-trendline-in-python-matplotlib-dot-scatter-graphs\n", "z = np.polyfit(Y, Y_pred, 1)\n", "p = np.poly1d(z)\n", "\n", "plt.plot(Y,p(Y),\"#F8766D\")\n", "plt.ylabel('Predicted pIC50')\n", "plt.xlabel('Experimental pIC50')" ] }, { "cell_type": "markdown", "metadata": { "id": "YzKTmvZrbFVI" }, "source": [ "# Save Model as Pickle Object" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "id": "DzjpPyVyb8XO" }, "outputs": [], "source": [ "import pickle" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "id": "b2K9ajBaaYUk" }, "outputs": [], "source": [ "pickle.dump(model, open('acetylcholinesterase_model.pkl', 'wb'))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ef4fyvrEb-NC" }, "outputs": [], "source": [] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "QSAR-web-app.ipynb", "provenance": [] }, "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.12" } }, "nbformat": 4, "nbformat_minor": 1 }