{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "nbsphinx": "hidden" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/Users/rich/datasets\n" ] } ], "source": [ "cd ~/datasets" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "nbsphinx": "hidden" }, "outputs": [], "source": [ "import pandas as pd\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('ggplot')\n", "plt.rcParams['savefig.dpi'] = 100\n", "\n", "pd.options.display.max_columns = 10\n", "pd.options.display.max_rows = 10" ] }, { "cell_type": "raw", "metadata": {}, "source": [ ".. _quickstart:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Quickstart" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will be working on a mutagenicity dataset, released by [Kazius et al.](http://pubs.acs.org/doi/abs/10.1021/jm040835a). 4337 compounds, provided as the file `mols.sdf`, were subjected to the [AMES test](https://en.wikipedia.org/wiki/Ames_test). The results are given in `labels.csv`. We will clean the molecules, perform a brief chemical space analysis before finally assessing potential predictive models built on the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports\n", "\n", "`scikit-chem` imports all subpackages with the main package, so all we need to do is import the main package, `skchem`. We will also need `pandas`." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import skchem\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use `skchem.read_sdf` to import the sdf file:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "name\n", "1728-95-6 \n", "89786-04-9 \n", "2439-35-2 \n", "95-94-3 \n", " ... \n", "89930-60-9 \n", "90597-22-1 \n", "924-43-6 \n", "97534-21-9 \n", "Name: structure, dtype: object" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ms_raw = skchem.read_sdf('mols.sdf'); ms_raw" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And pandas to import the labels." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "name\n", "1728-95-6 mutagen\n", "91-08-7 mutagen\n", "89786-04-9 nonmutagen\n", "2439-35-2 nonmutagen\n", "95-94-3 nonmutagen\n", " ... \n", "89930-60-9 mutagen\n", "9002-92-0 nonmutagen\n", "90597-22-1 nonmutagen\n", "924-43-6 mutagen\n", "97534-21-9 nonmutagen\n", "Name: Ames test categorisation, dtype: object" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = pd.read_csv('labels.csv').set_index('name').squeeze(); y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will binarize the labels later." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quickly check the class balance:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nKioq1NbWpvPf4mfKlCkWTYXuRDQgbBw5ckTr1q1TbW3tBde3bdvWzRMB6LBr1y698soriouLU8+e\nPYPWbDYb0RAliAaEjQ0bNmjkyJF68skn1SvCP4YWuNIUFBTo7rvv1qxZs6weBRYiGhA26urqtGzZ\nMiUlJVk9CoDztLa26sYbb7R6DFiMCyERNrKyslRSUmL1GAAuYNKkSdq7d2+naxkQXXimAWEjKytL\n69ev15///GddffXVstuDfz1nz55t0WQAmpubtX//fr3//vtKSkrqdHwuX77cosnQnYgGhI2PP/5Y\nI0eO1NmzZ3X27NlO60QDYJ2rr75ad955p9VjwGJ8NDYAADDCMw0IK2fOnNHbb7+tzz//XIsWLdJH\nH32k5ORkZWZmWj0aEPXee+897dmzR6dPn9aqVatUWFio/v3764477rB6NHQTLoRE2CguLta//Mu/\nyO1268iRI2ptbdWpU6e0YsUKffDBB1aPB0S1t99+W1u2bNHNN98cePO11NRU7dq1S9u3b7d4OnQX\nogFh45VXXtHdd9+txx57TLGxsZKkefPmad68eXrttdcsng6IboWFhVqyZIluvfVWxcR8/dAxefJk\nPfjgg9q/f7/F06G7EA0IG5999pnGjRvXafv111+v06dPWzARgA41NTUaPHhwp+2DBg3Sl19+acFE\nsALRgLCRmJioioqKTts//PBD3vAJsFh6errefffdwNc2m01+v1+7du3SyJEjLZwM3YkLIRE2fvSj\nH2nNmjWBD8R599135Xa79cc//lEPPvig1eMBUe2+++7TypUr9dFHH8nr9So/P1+ff/65PB6P/u3f\n/s3q8dBNeMklwsqJEye0e/duVVdXq62tTcnJycrJyVF6errVowFRr7W1VX/4wx+Cjs/Jkyd3+gAr\nRC6iAQAAGOH0BMLGihUrLrjdZrPJbrerf//+mjhxoq677rpungzA3Llzv3HNbrcrISFBEyZM0Ny5\nczu9xTQiR+zTTz/9tNVDAJLkdrv1hz/8QSNHjtTYsWOVnJwsj8ejjz76SKNGjVKPHj302muvKT4+\nXiNGjLB6XCCq9O/fX59++qnuuece3XXXXfrBD36g1NRUVVZW6tZbb9WkSZO0b98+1dXVaezYsVaP\ni28JOYiw8fHHH2v+/Pm69dZbg7ZnZmbqvffe04oVKzRmzBht3bpVU6dOtWhKIDrt2rVLP/vZz4Ke\n6Rs2bJgGDhyol156SXPmzJHL5dJzzz2nefPmWTgpvk285BJho7KyUtdee22n7ddcc43Ky8slSWlp\naaqtre269UECAAAI1ElEQVTu0YCo98UXX8jlcnXa3r9/f9XX1wf+f3Nzc3ePhm5ENCBsDBs2TIWF\nhTr/2ty9e/cqJSVFklReXq4BAwZYMR4Q1caOHauXXnpJNTU1gW01NTXauHGjxowZo/b2dhUVFWno\n0KEWTolvG6+eQNj49NNP9fOf/1y9evXSiBEj5Pf7deLECbW0tOjJJ59UW1ubnnnmGS1cuFC33HKL\n1eMCUaWpqUm/+MUvdOzYMcXFxQW2XXfddfrZz36m8vJyvfDCC3riiSc0atQoi6fFt4VoQFhpbm7W\nH//4R3322WeKiYnRkCFD9L3vfU89e/aU2+1Wc3Ozhg8fbvWYQNQ6deqUPvvsM8XGxiolJUVXX321\npK/fw8HhcMhms1k8Ib5NRAOuCA0NDUpISLB6DCCqtbW16YsvvlB7e7skye/3y+v16sSJE5o4caLF\n06E78OoJhI1Tp05py5YtqqqqCvqj5PP59MUXX+jVV1+1eEIgev3pT3/S2rVrL/jhVAkJCURDlOBC\nSISNjj9Is2bNUmNjo2bOnKkJEyaoublZP/3pT60eD4hq//M//6MbbrhBv/jFLxQXF6dnn31WTz75\npJKSkvSjH/3I6vHQTYgGhI3y8nItXLhQ//AP/6ARI0YoJSVF8+bN07333quioiKrxwOi2pkzZzRr\n1iwlJycrNTVVjY2N+u53v6uFCxeqoKDA6vHQTYgGhA273a7evXtLkgYPHqzKykpJX7/U6+TJk1aO\nBkS9Pn36qLW1VZKUnJysEydOSPr6WHW73RZOhu5ENCBsZGRkaNeuXWptbVVqaqoOHTokv9+viooK\nORwOq8cDotq4ceOUn5+vqqoqXXPNNfr973+vTz/9VO+88w4XKUcRogFhY/78+Tpy5Ij27t2ryZMn\n6+zZs1qwYIGef/55TZ8+3erxgKh23333adCgQaqoqFB2drbS09P1r//6r9q7d69+8pOfWD0eugkv\nuURY8fv9am1tVY8ePfTVV1+puLhYcXFxysjIsHo0IKrV1tbK5XIpJuav/9ZsaWmRw+HQZ599ptTU\nVAunQ3fhmQaEjQcffFDnzp1Tjx49JEk9e/bUd7/7XQ0cOFD333+/xdMB0e2BBx5QU1NT0LZevXqp\ntrZW//7v/27RVOhuvE8DLHXgwAF9+OGHkr5+H/v8/Hw5nc6gfWpqahQbG2vFeEBU27dvn954443A\n10uXLg16pkGSzp07F/hsGEQ+ogGWGj16dCAavsmQIUN09913d9NEADpMmTJFdrtdfr9fL7zwgmbO\nnBl4hZMk2Ww29ejRQ2PGjLFwSnQnrmlA2Ni+fbtmzZoVOD0BIHwUFxdr1KhRPOsX5YgGhI3i4uK/\nuz569OhumgTA+Xbs2PF312fPnt1Nk8BKnJ5A2FixYsUFt9vtdiUkJOjXv/51N08EoMMnn3wS9HVb\nW5vcbrfOnTunG2+80aKp0N14pgFhq729XadPn9aGDRv0/e9/XzfffLPVIwE4z6ZNm2Sz2TR//nyr\nR0E34CWXCFsxMTFKTk7WT37yE23bts3qcQBcwG233abf/e53Vo+BbkI0IOydPXtWzc3NVo8B4AI+\n/PBD3uY9inBNA8LGf/3Xf3Xa9tVXX+nIkSOcMwUs9sADD8hmswVta2lpUVNTk+655x6LpkJ3IxoQ\n1uLi4jR//nxNnjzZ6lGAqPbP//zPQV/bbDbZ7XalpaVp0KBBFk2F7saFkAgbX331lfbt26dTp07J\n6/V2Ws/NzbVgKgBAB55pQNh4/vnnVVpaqu985zud3koagLWqqqq0devWb4x6XhIdHYgGhI1jx47p\nqaee4hMtgTD0y1/+Uj169NCMGTOI+ihGNCBspKSkqLW11eoxAFzA559/rpUrV/LhVFGOaEDYyM3N\n1erVq/X9739fiYmJna7UnjJlikWTAbjuuutUUlJCNEQ5LoRE2Ni0aZMKCwvVr1+/Tk9/2mw2zpkC\nFqqtrdUTTzyhoUOHXjDquVA5OvBMA8LG/v379fDDD2vixIlWjwLgPGvXrlVMTIz69+/fKRgQPYgG\nhI2+ffvy1CcQpv7yl7/omWee0YgRI6weBRYiGhA2Fi5cqJdeekmzZ89WUlKSYmNjg9YHDhxo0WQA\nhgwZonPnzlk9BizGNQ0IG3Pnzv2763xoFWCdoqIibdu2TTfffPMFo54LlaMD0YCwUVNT83fXExMT\nu2kSAOd74IEHvnGNC5WjB9EAAACMcE0DAMBIS0uL/u///k9tbW36239v2mw2ZWVlWTgZugvRAAC4\nqN///vdav379N75rK9ccRQeiAQBwUVu3btW0adM0d+5c9erVy+pxYJEYqwcAAIS/pqYm3XbbbQRD\nlCMaAAAXNX78eH3wwQdWjwGLcXoCAHBRLpdLr776qv73f/9XgwYNkt0e/PDBZ09EB6IBAHBRTU1N\n+t73vmf1GLAY79MAAACM8EwDAMDIn/70J+3atUtVVVVqb29XcnKybr31Vt5COooQDQCAi3rnnXf0\n3//935oxY4Zuv/12tbe3q7S0VC+99JJ8Pp+mTZtm9YjoBkQDAOCidu3apfvvvz/oWYUbbrhBKSkp\neuONN4iGKMFLLgEAF9XY2KiMjIxO20eNGqXa2loLJoIViAYAwEWNGDFC7777bqftv/vd75SSkmLB\nRLACr54AAFxUaWmp/uM//kMjRoxQenp6YNuJEye0dOlSjRkzxuIJ0R2IBgCAkerqau3bt0/V1dVy\nOBxKTk7W9OnTNWDAAKtHQzchGgAAF3Xu3DkVFBSooqJCPp+v0/ry5cstmArdjVdPAAAu6le/+pUq\nKio0adIkPrQqihENAICL+vjjj7VixQqNHDnS6lFgIV49AQC4KJfLpZgYHjKiHdc0AAAu6uDBg3rj\njTc0d+7cC37K5cCBAy2aDN2JaAAAXNTcuXP/7vq2bdu6aRJYiWgAAFxUTU3N311PTEzspklgJaIB\nAAAY4aoWAABghGgAAABGiAYAAGCEaAAAAEaIBgAAYIRoAAAARogGAABghGgAAABG/h/W1ybk1aJf\n/AAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y.value_counts().plot.bar()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The classes are (mercifully) quite balanced." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cleaning\n", "\n", "The data is unlikely to be canonicalized, and potentially contain broken or difficult molecules, so we will now clean it." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Standardization\n", "\n", "The first step is to apply a `Transformer` to canonicalize the representations. Specifically, we will use the ChemAxon Standardizer wrapper. Some compounds are likely to fail this procedure, however they are likely to still be valid structures, so we will use the `keep_failed` configuration option on the object to keep these, rather than returning a None, or raising an error." ] }, { "cell_type": "raw", "metadata": {}, "source": [ ".. tip::\n", "\n", " ``Transformer`` s implement the ``transform`` method, which converts ``Mol`` s into *something else*. This can either be another ``Mol``, such as in this case, or into a vector or even a number. The result will be packaged as a ``pandas`` data structure of appropriate dimensionality." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "std = skchem.standardizers.ChemAxonStandardizer(keep_failed=True)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "ChemAxonStandardizer: 100% (4337 of 4337) |#################################################################################################| Elapsed Time: 0:00:22 Time: 0:00:22\n" ] }, { "data": { "text/plain": [ "name\n", "1728-95-6 \n", "89786-04-9 \n", "2439-35-2 \n", "95-94-3 \n", " ... \n", "89930-60-9 \n", "9002-92-0 \n", "90597-22-1 \n", "924-43-6 \n", "97534-21-9 \n", "Name: structure, dtype: object" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ms = std.transform(ms_raw); ms" ] }, { "cell_type": "raw", "metadata": {}, "source": [ ".. tip::\n", "\n", " This pattern is the typical way to handle all operations while using ``scikit-chem``. The available configuration options for all classes may be found in the class's docstring, available in the :ref:`documentation ` or using the builtin ``help`` function." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Filter undesirable molecules\n", "\n", "Next, we will remove molecules that are likely to not work well with the circular descriptors that we will use. These are usually *large* or *inorganic* molecules.\n", "\n", "To do this, we will use some `Filters`, which implement the `filter` method." ] }, { "cell_type": "raw", "metadata": {}, "source": [ ".. tip::\n", "\n", " ``Filter`` s drop compounds that fail a predicicate. The results of the predicate can be found by using ``transform`` - that's right, each ``Filter`` is also a ``Transformer`` ! Labels with similar index can be passed in as a second argument, and will also be filtered and returned as a second return value." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "OrganicFilter: 100% (4337 of 4337) |########################################################################################################| Elapsed Time: 0:00:04 Time: 0:00:04\n" ] } ], "source": [ "of = skchem.filters.OrganicFilter()\n", "\n", "ms, y = of.filter(ms, y)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\r", "MassFilter: 0% ( 25 of 4337) | | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 1% ( 50 of 4337) |# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 1% ( 74 of 4337) |# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 2% ( 99 of 4337) |## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 2% ( 123 of 4337) |### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 3% ( 148 of 4337) |### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 3% ( 172 of 4337) |#### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 4% ( 197 of 4337) |#### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 5% ( 221 of 4337) |##### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 5% ( 246 of 4337) |###### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 6% ( 270 of 4337) |###### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 6% ( 295 of 4337) |####### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 7% ( 319 of 4337) |####### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 7% ( 344 of 4337) |######## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 8% ( 368 of 4337) |######### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 9% ( 393 of 4337) |######### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 9% ( 417 of 4337) |########## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 10% ( 442 of 4337) |########## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 10% ( 466 of 4337) |########### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 11% ( 491 of 4337) |############ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 11% ( 515 of 4337) |############ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 12% ( 540 of 4337) |############# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 13% ( 564 of 4337) |############# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 13% ( 589 of 4337) |############## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 14% ( 613 of 4337) |############### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 14% ( 638 of 4337) |############### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 15% ( 662 of 4337) |################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 15% ( 687 of 4337) |################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 16% ( 711 of 4337) |################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 16% ( 736 of 4337) |################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 17% ( 760 of 4337) |################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 18% ( 785 of 4337) |################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 18% ( 809 of 4337) |################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 19% ( 834 of 4337) |#################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 19% ( 858 of 4337) |##################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 20% ( 883 of 4337) |##################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 20% ( 907 of 4337) |###################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 21% ( 932 of 4337) |###################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 22% ( 956 of 4337) |####################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 22% ( 981 of 4337) |######################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 23% (1005 of 4337) |######################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 23% (1030 of 4337) |######################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 24% (1054 of 4337) |########################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 24% (1079 of 4337) |########################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 25% (1103 of 4337) |########################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 26% (1128 of 4337) |########################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 26% (1152 of 4337) |############################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 27% (1177 of 4337) |############################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 27% (1201 of 4337) |############################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 28% (1226 of 4337) |############################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 28% (1250 of 4337) |############################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 29% (1275 of 4337) |############################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 29% (1299 of 4337) |################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 30% (1324 of 4337) |################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 31% (1348 of 4337) |################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 31% (1373 of 4337) |################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 32% (1397 of 4337) |################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 32% (1422 of 4337) |################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 33% (1446 of 4337) |################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 33% (1471 of 4337) |#################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 34% (1495 of 4337) |#################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 35% (1520 of 4337) |##################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 35% (1544 of 4337) |###################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 36% (1569 of 4337) |###################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 36% (1593 of 4337) |####################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 37% (1618 of 4337) |####################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 37% (1642 of 4337) |######################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 38% (1667 of 4337) |######################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 38% (1691 of 4337) |######################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 39% (1716 of 4337) |########################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 40% (1740 of 4337) |########################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 40% (1765 of 4337) |########################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 41% (1789 of 4337) |############################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 41% (1814 of 4337) |############################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 42% (1838 of 4337) |############################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 42% (1863 of 4337) |############################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 43% (1887 of 4337) |############################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 44% (1912 of 4337) |############################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 44% (1936 of 4337) |############################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 45% (1961 of 4337) |################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 45% (1985 of 4337) |################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 46% (2010 of 4337) |################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 46% (2034 of 4337) |################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 47% (2059 of 4337) |################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 48% (2083 of 4337) |################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 48% (2108 of 4337) |#################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 49% (2132 of 4337) |#################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 49% (2157 of 4337) |##################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 50% (2181 of 4337) |##################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 50% (2206 of 4337) |###################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 51% (2230 of 4337) |####################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 51% (2255 of 4337) |####################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 52% (2279 of 4337) |######################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 53% (2304 of 4337) |######################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 53% (2328 of 4337) |######################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 54% (2353 of 4337) |########################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 54% (2377 of 4337) |########################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 55% (2402 of 4337) |########################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 55% (2426 of 4337) |########################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 56% (2451 of 4337) |############################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 57% (2475 of 4337) |############################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 57% (2500 of 4337) |############################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 58% (2524 of 4337) |############################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 58% (2549 of 4337) |############################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 59% (2573 of 4337) |############################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 59% (2598 of 4337) |################################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 60% (2622 of 4337) |################################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 61% (2647 of 4337) |################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 61% (2671 of 4337) |################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 62% (2696 of 4337) |################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 62% (2720 of 4337) |################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 63% (2745 of 4337) |################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 63% (2769 of 4337) |#################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 64% (2794 of 4337) |#################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 64% (2818 of 4337) |##################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 65% (2843 of 4337) |###################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 66% (2867 of 4337) |###################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 66% (2892 of 4337) |####################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 67% (2916 of 4337) |####################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 67% (2941 of 4337) |######################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 68% (2965 of 4337) |######################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 68% (2990 of 4337) |######################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 69% (3014 of 4337) |########################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 70% (3039 of 4337) |########################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 70% (3063 of 4337) |########################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 71% (3088 of 4337) |############################################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 71% (3112 of 4337) |############################################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 72% (3137 of 4337) |############################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 72% (3161 of 4337) |############################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 73% (3186 of 4337) |############################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 74% (3210 of 4337) |############################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 74% (3235 of 4337) |############################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 75% (3259 of 4337) |################################################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 75% (3284 of 4337) |################################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 76% (3308 of 4337) |################################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 76% (3333 of 4337) |################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 77% (3357 of 4337) |################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 77% (3382 of 4337) |################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 78% (3406 of 4337) |#################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 79% (3431 of 4337) |#################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 79% (3455 of 4337) |##################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 80% (3480 of 4337) |##################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 80% (3504 of 4337) |###################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 81% (3529 of 4337) |####################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 81% (3553 of 4337) |####################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 82% (3578 of 4337) |######################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 83% (3602 of 4337) |######################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 83% (3627 of 4337) |######################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 84% (3651 of 4337) |########################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 84% (3676 of 4337) |########################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 85% (3700 of 4337) |########################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 85% (3725 of 4337) |########################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 86% (3749 of 4337) |############################################################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 87% (3774 of 4337) |############################################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 87% (3798 of 4337) |############################################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 88% (3823 of 4337) |############################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 88% (3847 of 4337) |############################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 89% (3872 of 4337) |############################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 89% (3896 of 4337) |################################################################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 90% (3921 of 4337) |################################################################################################ | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 90% (3945 of 4337) |################################################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 91% (3970 of 4337) |################################################################################################# | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 92% (3994 of 4337) |################################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 92% (4019 of 4337) |################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 93% (4043 of 4337) |################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 93% (4068 of 4337) |#################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 94% (4092 of 4337) |#################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 94% (4117 of 4337) |##################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 95% (4141 of 4337) |###################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 96% (4166 of 4337) |###################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 96% (4190 of 4337) |####################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 97% (4215 of 4337) |####################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 97% (4239 of 4337) |######################################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 98% (4264 of 4337) |######################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 98% (4288 of 4337) |######################################################################################################### | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 99% (4313 of 4337) |########################################################################################################## | Elapsed Time: 0:00:00 ETA: 0:00:00\r", "MassFilter: 100% (4337 of 4337) |###########################################################################################################| Elapsed Time: 0:00:00 Time: 0:00:00\n" ] } ], "source": [ "mf = skchem.filters.MassFilter(above=100, below=900)\n", "\n", "ms, y = mf.filter(ms, y)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "AtomNumberFilter: 100% (4068 of 4068) |#####################################################################################################| Elapsed Time: 0:00:00 Time: 0:00:00\n" ] } ], "source": [ "nf = skchem.filters.AtomNumberFilter(above=5, below=100, include_hydrogens=True)\n", "\n", "ms, y = nf.filter(ms, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Optimize Geometry\n", "\n", "We would like to calculate some features that require three dimensional coordinates, so we will next calculate three dimensional conformers using the Universal Force Field. Additionally, some compounds may be unfeasible - these should be dropped from the dataset. In order to do this, we will use the `transform_filter` method:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/rich/projects/scikit-chem/skchem/forcefields/base.py:54: UserWarning: Failed to Embed Molecule 109883-99-0\n", " warnings.warn(msg)\n", "/Users/rich/projects/scikit-chem/skchem/forcefields/base.py:54: UserWarning: Failed to Embed Molecule 135768-83-1\n", " warnings.warn(msg)\n", "/Users/rich/projects/scikit-chem/skchem/forcefields/base.py:54: UserWarning: Failed to Embed Molecule 13366-73-9\n", " warnings.warn(msg)\n", "UFF: 100% (4046 of 4046) |##################################################################################################################| Elapsed Time: 0:01:23 Time: 0:01:23\n" ] } ], "source": [ "uff = skchem.forcefields.UFF()\n", "\n", "ms, y = uff.transform_filter(ms, y)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "4043" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(ms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see, we get a warning that 3 molecules failed to embed, have been dropped. If we didn't care about the warnings, we could have set the `warn_on_fail` property to `False` (or set it using a keyword argument at initialization). Conversely, if we *really* cared about failures, we could have set `error_on_fail` to True, which would raise an Error if any `Mol`s failed to embed." ] }, { "cell_type": "raw", "metadata": {}, "source": [ ".. tip::\n", "\n", " ``TransformFilter`` s implement the ``transform_filter`` method. This is a combination of ``transform`` and ``filter`` , which converts ``Mol`` s into *something else* **and** drops instances that fail the predicate. The ``ChemAxonStandardizer`` object is also a ``TransformFilter``, as it can drop ``Mol`` s that fail to standardize." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualize Chemical Space\n", "\n", "`scikit-chem` adds a custom `mol` accessor to `pandas.Series`, which provides a shorthand for calling methods on all `Mol`s in the collection. This is analogous to the `str` accessor:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "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", "
mutagennonmutagen
name
1728-95-610
91-08-710
89786-04-901
2439-35-201
95-94-301
.........
89930-60-910
9002-92-001
90597-22-101
924-43-610
97534-21-901
\n", "

4043 rows × 2 columns

\n", "
" ], "text/plain": [ " mutagen nonmutagen\n", "name \n", "1728-95-6 1 0\n", "91-08-7 1 0\n", "89786-04-9 0 1\n", "2439-35-2 0 1\n", "95-94-3 0 1\n", "... ... ...\n", "89930-60-9 1 0\n", "9002-92-0 0 1\n", "90597-22-1 0 1\n", "924-43-6 1 0\n", "97534-21-9 0 1\n", "\n", "[4043 rows x 2 columns]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y.str.get_dummies()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will use this function to binarize the labels:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [], "source": [ "y = y.str.get_dummies()['mutagen']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Amongst other options, it is provides access to chemical space plotting functionality. This will featurize the molecules using a passed featurizer (or a string shortcut), and a dimensionality reduction technique to reduce the feature space to two dimensions, which are then plotted. In this example, we use circular Morgan fingerprints, reduced by [t-SNE](https://lvdmaaten.github.io/tsne) to visualize structural diversity in the dataset." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nIfqfrVm6XbbizdkXTeePj/yWMjOKEBJmyRjSus2a9YgU3po3so3NmruSeNk4dMWPv+Z1NHcnYhUT\nANNWecFmLzocMsXFxZSW7l8ZfPLJJ+zcsY2CUCHPPvts9j6++uor7rnnXu688w78/gLcHfuXl5fz\n29/+lo0bN/LFF18wevRodF1n+/bt3H777ezevZvFixdz9tlnc9ppp3HYYYchSRJ33303d911F8lk\nknPPOYupZ0/AlXyPKleKi847i2uvn40sy9x///38/Oc/JxqN4na7uffee4lGo/h8vjy2KUC4MASm\njuUqpLmunSeffJJnn32WJ554AiEEo0aNyvuOhw4disORb6wdCoW47LLLuO6667LbZFlm0qRJFPic\neOI7cO/5CGEZGGoQqfJUEniz36XAwtX2Ja7WzxBYGGqQROlYPHVL0Tv9mNdWfMD777/P9OnTWbVq\nFalUCiEEkUiE4uJi3N4A1V39XD6tF4qVQWBgWBKqmaDGNZjXXluec29nnnkm7777LuHCEFfNujo7\ne00mk1x66eWsWvk+RcW2YLluCuIE0TudhWRpWEJBFyoOM44zuhFMg1ThIFKFA/DveYV0sF9Wei9D\ngGTgSFsq7DuD/96GCA31rfSonoSXCO1pgcMTpKzxlZz9kkUjkYx4lnm6D2piB6nwYDvNf2ANWI/n\nVfokIwGSiu4swhQqiqpQWlqW/bthQtpSiZediKfxfYSRQPNW28HcMskEeuFu/AB304dYkoNUeCia\npzOSkSRd0A/dVCgJOpl22SVc+6vrc56BH//4x8iJelCL+C7C4TA33ngjM2fOzAqA/CP6BVVhoshW\nh9iEhGap6IdKnj8M/wRRgurqahRF4dtvv83WHjdu3Jjjx7sPPXr0YOPGjTnb9u7dy+jRo7/39f5n\ng2VRcTHDhw/no49Wc/jgUfzoRz9i8uTJnH12dxwOcEsajsiXOQoganIvjtgWop0m4695BTW5G6k+\nQaxsHEnLlfdwWJaFS2RAixCJtFFb18AXX+YLt69evZpEPI7Pl6va0q9fPyKRCMlkklQqxZ133sk3\n33zDCSecwDXXXMPEiRPZu3cvXbp0xu/3I4TgvPPO47TxRyOMJKVSPQXplR3kGoFhmDidTnRdZ+7c\nuTz//POALVa+YMECZs6cya233sptt93GrFmzsvcx8fRTqfRnyKjVpC0nBX6LB++dg6mn6N/3Hrbv\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ms.mol.visualize(fper='morgan',\n", " dim_red='tsne', dim_red_kw={'method': 'exact'}, \n", " c=y, \n", " cmap='copper')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data appears to be reasonably separable in structural space, so we may suspect that Morgan fingerprints will be a good representation for modelling the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Featurizing the data\n", "\n", "As previously noted, Morgan fingerprints would be a good fit for this data. To calculate them, we will use the `MorganFeaturizer` class, which is a `Transformer`." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "MorganFeaturizer: 100% (4043 of 4043) |#####################################################################################################| Elapsed Time: 0:00:00 Time: 0:00:00\n" ] }, { "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", "
morgan_fp_idx01234...20432044204520462047
name
1728-95-600000...00000
91-08-700000...00000
89786-04-900000...00000
2439-35-200000...00000
95-94-300000...00000
....................................
89930-60-900000...00000
9002-92-000000...10100
90597-22-100000...00000
924-43-600000...00000
97534-21-900000...00000
\n", "

4043 rows × 2048 columns

\n", "
" ], "text/plain": [ "morgan_fp_idx 0 1 2 3 4 ... 2043 2044 2045 2046 \\\n", "name ... \n", "1728-95-6 0 0 0 0 0 ... 0 0 0 0 \n", "91-08-7 0 0 0 0 0 ... 0 0 0 0 \n", "89786-04-9 0 0 0 0 0 ... 0 0 0 0 \n", "2439-35-2 0 0 0 0 0 ... 0 0 0 0 \n", "95-94-3 0 0 0 0 0 ... 0 0 0 0 \n", "... ... ... ... ... ... ... ... ... ... ... \n", "89930-60-9 0 0 0 0 0 ... 0 0 0 0 \n", "9002-92-0 0 0 0 0 0 ... 1 0 1 0 \n", "90597-22-1 0 0 0 0 0 ... 0 0 0 0 \n", "924-43-6 0 0 0 0 0 ... 0 0 0 0 \n", "97534-21-9 0 0 0 0 0 ... 0 0 0 0 \n", "\n", "morgan_fp_idx 2047 \n", "name \n", "1728-95-6 0 \n", "91-08-7 0 \n", "89786-04-9 0 \n", "2439-35-2 0 \n", "95-94-3 0 \n", "... ... \n", "89930-60-9 0 \n", "9002-92-0 0 \n", "90597-22-1 0 \n", "924-43-6 0 \n", "97534-21-9 0 \n", "\n", "[4043 rows x 2048 columns]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mf = skchem.descriptors.MorganFeaturizer()\n", "\n", "X, y = mf.transform(ms, y); X" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pipelining\n", "\n", "If this process appeared unnecessarily laborious (as it should!), `scikit-chem` provides a `Pipeline` class that will sequentially apply objects passed to it. For this example, we could have simply performed:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "ChemAxonStandardizer: 100% (4337 of 4337) |#################################################################################################| Elapsed Time: 0:00:23 Time: 0:00:23\n", "OrganicFilter: 100% (4337 of 4337) |########################################################################################################| Elapsed Time: 0:00:04 Time: 0:00:04\n", "MassFilter: 100% (4337 of 4337) |###########################################################################################################| Elapsed Time: 0:00:00 Time: 0:00:00\n", "AtomNumberFilter: 100% (4074 of 4074) |#####################################################################################################| Elapsed Time: 0:00:00 Time: 0:00:00\n", "MorganFeaturizer: 100% (4064 of 4064) |#####################################################################################################| Elapsed Time: 0:00:00 Time: 0:00:00\n" ] } ], "source": [ "pipeline = skchem.pipeline.Pipeline([\n", " skchem.standardizers.ChemAxonStandardizer(keep_failed=True),\n", " skchem.filters.OrganicFilter(),\n", " skchem.filters.MassFilter(above=100, below=1000),\n", " skchem.filters.AtomNumberFilter(above=5, below=100),\n", " skchem.descriptors.MorganFeaturizer()\n", "])\n", "\n", "X, y = pipeline.transform_filter(ms_raw, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Modelling the data\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section, we will try building some basic [scikit-learn](http://scikit-learn.org) models on the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Partitioning the data\n", "\n", "To decide on the best model to use, we should perform some model selection. This will require comparing the relative performance of a selection of candidate molecules each trained on the same **train** set, and evaluated on a **validation** set.\n", "\n", "In *cheminformatics*, partitioning datasets usually requires some thought, as chemical datasets usually vastly overrepresent certain *scaffolds*, and underrepresent others. In order to get as unbiased an estimate of performance as possible, one can either downsample compounds in a region of high density, or artifically favor splits that pool in the same split molecules that are too close in chemical space.\n", "\n", "`scikit-chem` provides this functionality in the `SimThresholdSplit` class, which applies single link heirachical clustering to produce a large number of clusters consisting of highly similar compounds. These clusters are then randomly assigned to the desired splits, such that no split contains compounds that are more similar to compounds in any other split than the clustering threshold." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [], "source": [ "cv = skchem.cross_validation.SimThresholdSplit(fper=None, n_jobs=4).fit(X)\n", "train, valid, test = cv.split((60, 20, 20))\n", "X_train, X_valid, X_test = X[train], X[valid], X[test]\n", "y_train, y_valid, y_test = y[train], y[valid], y[test]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Model selection" ] }, { "cell_type": "raw", "metadata": {}, "source": [ ".. todo:: \n", " \n", " Improve the modelling section:\n", " \n", " - More features\n", " - More models\n", " - Grid Searches over skchem cross validation indexes" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import sklearn.ensemble\n", "import sklearn.linear_model\n", "import sklearn.naive_bayes" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [], "source": [ "rf = sklearn.ensemble.RandomForestClassifier(n_estimators=100)\n", "nb = sklearn.naive_bayes.BernoulliNB()\n", "lr = sklearn.linear_model.LogisticRegression()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.850119904077 0.796163069544 0.809352517986\n" ] } ], "source": [ "rf_score = rf.fit(X_train, y_train).score(X_valid, y_valid)\n", "nb_score = nb.fit(X_train, y_train).score(X_valid, y_valid)\n", "lr_score = lr.fit(X_train, y_train).score(X_valid, y_valid)\n", "\n", "print(rf_score, nb_score, lr_score)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Random Forests appear to work best (although we should have chosen hyperparameters using Random or Grid search). Final value" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Assessing the Final performance" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.82051282051282048" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rf.fit(X_train.append(X_valid), y_train.append(y_valid)).score(X_test, y_test)" ] } ], "metadata": { "celltoolbar": "Raw Cell Format", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3.0 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" }, "widgets": { "state": {}, "version": "1.1.2" } }, "nbformat": 4, "nbformat_minor": 0 }