Skip to content

Instantly share code, notes, and snippets.

@madgpap
Last active October 13, 2015 05:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save madgpap/10457778 to your computer and use it in GitHub Desktop.
Save madgpap/10457778 to your computer and use it in GitHub Desktop.
Ligand-based Target Prediction Tutorial
{
"metadata": {
"name": "chembl_predict_targets_public"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": "Ligand-based Target Prediction Tutorial"
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": "George Papadatos, ChEMBL Group, EMBL-EBI."
},
{
"cell_type": "markdown",
"metadata": {},
"source": "This is a short tutorial on getting target predictions based on the current multi-category Naive Bayesian [ChEMBL_18 models](http://chembl.blogspot.co.uk/2014/04/ligand-based-target-predictions-in.html) for a single molecule input. The predictions are ranked by the output classifier probability or score."
},
{
"cell_type": "markdown",
"metadata": {},
"source": "This is the outline of the tutorial\n* Download the models\n* Input a molecule to get target predictions for it\n* Assess the predictions\n* Retrieve individual feature contributions for a prediction"
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": "First of all, get the models from the ChEMBL ftp site. You only need to run this once."
},
{
"cell_type": "code",
"collapsed": false,
"input": "!wget ftp://ftp.ebi.ac.uk/pub/databases/chembl/target_predictions/chembl_18_models.tar.gz",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "--2014-04-11 10:40:24-- ftp://ftp.ebi.ac.uk/pub/databases/chembl/target_predictions/chembl_18_models.tar.gz\r\n => `chembl_18_models.tar.gz'\r\nResolving ftp.ebi.ac.uk... 193.62.193.4\r\nConnecting to ftp.ebi.ac.uk|193.62.193.4|:21... connected.\r\nLogging in as anonymous ... Logged in!\r\n==> SYST ... done. ==> PWD ... done.\r\n==> TYPE I ... done. ==> CWD (1) /pub/databases/chembl/target_predictions ... "
},
{
"output_type": "stream",
"stream": "stdout",
"text": "done.\r\n==> SIZE chembl_18_models.tar.gz ... 56545450\r\n==> PASV ... done. ==> RETR chembl_18_models.tar.gz ... done.\r\nLength: 56545450 (54M) (unauthoritative)\r\n\r\n\r 0% [ ] 0 --.-K/s "
},
{
"output_type": "stream",
"stream": "stdout",
"text": "\r26% [=========> ] 15,266,616 72.8M/s "
},
{
"output_type": "stream",
"stream": "stdout",
"text": "\r59% [======================> ] 33,765,520 80.3M/s "
},
{
"output_type": "stream",
"stream": "stdout",
"text": "\r89% [=================================> ] 50,648,816 80.4M/s "
},
{
"output_type": "stream",
"stream": "stdout",
"text": "\r100%[======================================>] 56,545,450 81.5M/s in 0.7s \r\n\r\n"
},
{
"output_type": "stream",
"stream": "stdout",
"text": "2014-04-11 10:40:25 (81.5 MB/s) - `chembl_18_models.tar.gz' saved [56545450]\r\n\r\n"
}
],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": "!tar -zxf chembl_18_models.tar.gz",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": "The two models are now under ./models"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Import the necessary modules:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "from rdkit.Chem import AllChem as Chem\nfrom rdkit.Chem.Draw import IPythonConsole\nfrom rdkit.Chem import PandasTools\nfrom rdkit.Chem import Draw\n\nimport pandas as pd\nfrom pandas import concat\n\nfrom collections import OrderedDict\n\nimport requests",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 104
},
{
"cell_type": "code",
"collapsed": false,
"input": "from sklearn.externals import joblib",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 105
},
{
"cell_type": "code",
"collapsed": false,
"input": "%matplotlib",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "Using matplotlib backend: module://IPython.kernel.zmq.pylab.backend_inline\n"
}
],
"prompt_number": 107
},
{
"cell_type": "code",
"collapsed": false,
"input": "rcParams['figure.figsize'] = 10,10",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 108
},
{
"cell_type": "markdown",
"metadata": {},
"source": "A couple of utility functions:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "def calc_scores(classes):\n p = []\n for c in classes:\n p.append(pred_score(c))\n return p",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 109
},
{
"cell_type": "code",
"collapsed": false,
"input": "def pred_score(trgt):\n diff = morgan_nb.estimators_[classes.index(trgt)].feature_log_prob_[1] - morgan_nb.estimators_[classes.index(trgt)].feature_log_prob_[0]\n return sum(diff*fp)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 110
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Load one of the two models:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "morgan_nb = joblib.load('./models/10uM/mNB_10uM_all.pkl')",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 111
},
{
"cell_type": "code",
"collapsed": false,
"input": "classes = list(morgan_nb.classes_)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 112
},
{
"cell_type": "code",
"collapsed": false,
"input": "morgan_nb.multilabel_",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 113,
"text": "True"
}
],
"prompt_number": 113
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Check the number of classses/targets:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "len(classes)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 114,
"text": "1244"
}
],
"prompt_number": 114
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": "Get predictions for a compound"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Let's use a molecule (GS-5759) found in [this](http://www.ncbi.nlm.nih.gov/pubmed/24513870) publication. It is a novel compound (not in ChEMBL) reported to have dual activity against PDE4 and beta-2 adrenergic receptor. "
},
{
"cell_type": "code",
"collapsed": false,
"input": "smiles = 'O[C@@H](CNCCCC#CC1=CC=C(C=C1)NC(=O)C=1C=C(C=CC1)S(=O)(=O)C=1C=C2C(=C(C=NC2=C(C1)C)C(=O)N)NC1=CC(=CC=C1)OC)C1=C2C=CC(NC2=C(C=C1)O)=O' #GS-5759",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 115
},
{
"cell_type": "code",
"collapsed": false,
"input": "mol = Chem.MolFromSmiles(smiles)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 116
},
{
"cell_type": "code",
"collapsed": false,
"input": "mol",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAYAAABNcIgQAAA2IklEQVR4nO3deXxMVxsH8J+ahGFK\naFRTFdtkJSQoQaqxByVCtWgpKVqhpWKtKNpoiHiLkmospdZ4NdpaYo31tUtiSSSSIqGIkKWJyTLL\n8/4xnUkmCZLM3Mkyz/fz8fnMXeace2NmnnvPPec5NYiIwBhjjJmoVyr6ABhjjLGKxIGQMcaYSeNA\nyBhjzKRxIGSMMWbSOBAyxhgzaRwIGWOMmTQOhIwxxkwaB0LGGGMmjQMhY4wxk8aBkDHGmEnjQMgY\nY8ykcSBkjDFm0jgQMsYYM2kcCBljjJk0DoSMMcZMGgdCxhhjJo0DIWPMJPAc5Ox5OBAyxqq1EydO\noEOHDujUqROWLl2K/Pz8ij4kVslwIGSMVUuxsbEYMGAA+vXrBzc3N/j4+GDNmjVwdnbG8ePHK/rw\nWCXCgZAxVq08fPgQn376Kdq1a4dXX30VMTExWLlyJcaNG4fY2Fi899576NevHz7++GM8fPiwog+X\nVQIcCBlj1UJ2djb8/PwglUqRmJiI06dPIzQ0FFKpVLuPRCJBYGAgoqKicP/+fTg4OGDVqlVQKBQV\neOSsotUgfoLMGKvCFAoFQkJCsHDhQjRq1Aj+/v7w8vLSbs/IyMDixYuRmZmJkJAQ7XoiwtatWzFr\n1iy88cYbCA4ORpcuXSriFFgF4ztCxliVtWfPHrRu3Rr+/v5YtGgRrl69qg2C+fn5WL58OWxsbHDo\n0CEMHTpU5701atTA6NGjcfPmTbi5uaF79+4YP348njx5UhGnwioQB0LGWJVz/vx5dOvWDWPGjMGI\nESNw69YtTJo0CSKRCESEHTt2wMHBAStWrMDSpUsRHR0NDw+PEsuysLDAjz/+iAsXLuDGjRuwt7dH\nSEgIVCqVkc+KVRQOhIyxKmXcuHHo3r07WrdujVu3bmHRokWQSCQA1EMlOnfuDB8fH3h7e+PWrVvw\n9vbGK6+8/Keuffv2OHv2LL7//nt8/fXX6Nq1KyIjI4U+HVYJcCBkjFUZx48fx/nz5xEdHY2QkBBY\nWVkBUA+VGDRoEPr164fOnTsjISEB8+bNg1gsLlP5r7zyCiZOnIi4uDg4OTmhf//+uHv3rgBnwioT\nDoSMsSojLS0NMpkMjo6OANRDJSZMmABnZ2fUrl0bMTEx+PHHH2FpaalXPZaWlli3bh2aN2+O8PBw\nQxw6q8REFX0AjDFWWnl5eRCJCn62li1bhri4OJw6dQqurq56l//jjz/i6dOnWLhwIQAgJydH7zJZ\n5ceBkDFWpdStW1f7OiAgALVq1TJY2Tdv3kRmZqbOunr16hmsfFY5cdMoY6zKyMrK0lk2ZBDU0HS8\nAdR3oDVq1DB4Haxy4UDIGKsyVCpVmTvAlIVcLkfNmjW1y7m5uTpNsax64kDIGKsylEolzM3NBStf\nJpMVG2pRuCmWVU8cCBljVUZ2drbgdbz66qtGrY9VPA6EjLEqRcjOKzKZTGdZqVSidu3agtXHKgcO\nhIyxKiM3N1fQzityuVyn6VWlUhm2Q45KBcTGAqmphiuT6Y2fAjPGqoy8vDyYmZkJWkfhzjhFe6nq\nJSMDGDcO6NsXiIsD2rQBJkwwXPms3DgQMsaqlDp16ghWdtExhIDuM0O9hISoA+Hgwerl3r3Vy9wr\ntcJx0yhjrNRyc4H0dPVrpRLIzFSv0zxaUyrVNz5CMegd2nNoeonm5+cDQKkSdpfKnTuAnV3B8htv\nAGlphimb6YUDIWOs1A4eBFxcgJwc4N494Lvv1Ot27VJvf/gQ8PMTrn6VSqVzRzh9+nT88ccfBitf\noVBoxw1q0qsVHleoF3t7IDq6YPnBA0DPnKjMMDgQMlaNJCYmYsGCBVi8eLFgXf89PIDVq3XXqVSA\nQqG+IxSSUqnUeUbYsGFDjBw5EoMGDcLt27f1Lr9mzZrFOscUzjSjlwkTgL171VcKY8cCU6YAhrrb\nZHrh/wXGqoEnT55g2rRpaN26NY4fP44tW7bA0dERu3fvNnhdbm7AjRvqZlGNnTuBGTPUd4hCyc/P\nR3x8PJKTk0FEAAA/Pz/ExMSgRo0aaNOmDb777jvk5eWVu44zZ87A29sbAPDs2TP9D/rWrYLXdeoA\nW7cCM2cC69YBQ4fqXz4zCA6EjFVhOTk5WLJkCWxsbHDq1CkcOnQIp06dwrVr1+Dj44OxY8fCw8MD\niYmJBq3X1xdYvrxgedQoYMUK4N9JGwyKiLB79260bt0asbGxOH36NNzd3RETEwMAaNGiBf7880/s\n3LkTGzduhJOTEw4fPqxXnRkZGQgMDIRUKsWGDRu0zwvLfOyzZwBff12w4sABwNMT+OcfvY6PGRYH\nQsaqIJVKhU2bNsHe3h5r165FcHAwrly5And3dwCAubk55syZg9jYWNSpUwdOTk5YsGCBwaYVatsW\nMEYu6jNnzqBr164YN24cPvnkE9y+fRtxcXFo2rQpXFxcMGvWLG0T8ODBgxEbG4vhw4dj0KBBGD58\nOO7fv1+m+vLz87FixQrY2NjgyJEjGDNmDDZt2oR27dohIiKiTGWlpW3HrakxoC8nq1dkZADe3sCw\nYcBrr5WpLCYwYoxVKeHh4eTs7EwNGjSgoKAgysvL026Ty+W0bt06SkhI0HnP/v37qVWrVtSqVSva\nt2+fsQ+5zOLi4sjLy4tEIhH5+PjQw4cPi+0TERFBjo6O9NZbb9F///vfYu/v3bs3SSQSCgwMJLlc\n/sL6VCoV7dixg6RSKVlZWdGGDRtIqVQSEVFWVhbNmjWLzM3NaeTIkfTgwYOXHr9CkUlXr1rRo0fL\nC9YtmEXk7EykUJTmT8CMiAMhY1VEZGQk9e3bl2rVqkW+vr6Unp6us/3PP/8kR0dHsrS0pPDw8GLv\nl8lktGDBAqpduzZ5enpSUlLSC+tTKpV04sQJ2rp1Kx06dIuKxNYXSk0l+v13oj/+OESxsbHaoPIy\njx49Ih8fHxKJROTl5UU3b9584f55eXm0ZMkSkkgk1Ldv32IXAKGhofTmm29S69atn1vW8ePHydXV\nlSQSCfn7+5NMJitxv5iYGHJ3d6d69erRDz/88MLgev/+XIqL60YqlXqfZ8+iKOpCHZLfvvjC82EV\ngwMhY5VcUlISjRkzhkQiEY0cObJYALtw4QK5u7uTWCymefPmUUZGxgvLS0hIoP79+1OdOnUoICBA\n545SIzw8nNq0aUOWlpa0fPnyEvd5GaVSRSEhIWRpaUmdOnWiK1euPHffrKws8vf3J4lEQq6urnT6\n9Oky1ZWUlERDhw6lWrVq0fz583WCWVZWFvn5+RW7cIiJiSFPT0/tXWdqaupL61GpVLRlyxaysrKi\n/ftHUlbWmVIdX3r6b3T37vgynRMzHg6EjFVSmZmZNGvWLBKLxdSjRw+KjIzU2Z6YmEgjR46kmjVr\nkre3N927d69M5e/evZusra3J3t6ejh07RkTqu86ePXuSWCymmTNnFgse5ZGamkrjx48nkUhEU6ZM\n0SlTLpfT+vXrycrKiqRSKe3atYtUKlW569q/fz9JpVJq2bIl7d27t8R9Hjx4QBMnTiQzMzPy8vIq\ndhdZGunp6ZScPI2uXDGjJ09+fen+T55sJLn8SZnrYcbBgZCxSurnn38mBweHYs2cqampNH36dDI3\nNycPDw+6du1aueso/PzL3d2dRCIRjR49+qXNpuVx9uxZcnZ2psaNG9Ovv/5Ke/fu1Tblrlq1qlx3\nnSWRyWS0cOFCEovF5OnpSXfv3iUi9bl+8803JJFIqEuXLnTu3Dm963r2LJIePlyms04uTyWZ7Bop\nlTnadTk5MXrXxYTDgZCxSmrUqFE0Z84c7bJMJqPAwECysLAgFxcXOnr0qMHqioiIoLp161JERITB\nyizJ5cuXacKECdSoUSNq0KABjR49mi5duiRIXQkJCTRgwACqU6cOjRs3jqysrMjGxobCwsIMXFPB\nHWxm5hG6c2ccpaaup5SUlSXuwyqf6pXtVaVSZ3Vv1Ej9j7EqrPBQB7lcDmdnZ+Tm5mL16tUYOXKk\n3jkwf/rpJ/Tt2xetWrVCy5Yt8ezZM7Rv317fw36hI0eO4M6dO0hOToZKpcKwYcNw9OhRdOzY0eB1\nSaVS7N+/H2FhYbhw4QL8/PwwceJEbQo1wykYRyKTXUH9+h5o0OCD5+5jaEql0nBp4ExU9QmEPMUJ\nq2by8/O16cTMzMywbt06dOrUyWATxX7//fewtrZGq1at8I+RBnhr5vfTnIMxZoAfOnQohhopi0uj\nRj5ISVmKp083QSJxxxtvzBKsrvv372PBggWIi4tDo0aNsHLlSjRr1kyw+gDg5MmTeOeddwyXiLyS\nqD5no5niZNIkYOVKIDRUnfxQQ4AvemJiIk6ePIkMIdPtM5NWOMF09+7dDTpbekkzORhsyqEy1Fm/\nfn1B6xQakUr7umbNV/Hmm/6QSg/gn38OgUj9G6RQGG6WiczMTPj5+cHW1ha3b9+Gr68v5HI5HB0d\nERAQUO4sOC8SFRWFfv36oV+/foiKijJ4+RWt+gTCl01xMnEi8PPP6uZTPT158gSTJ09G69atMW3a\nNDg4OGDr1q3a/IeMGYIxphzSBD6DTzlUijoB9YzzVd2zZ2e0r9PSduL+/Vn4++85MDe3Ro0a6ka3\n9PT/4v79mVCpyn8HnJ+fjzVr1kAqlWLPnj0IDQ3F8ePHMXToUOzfvx9btmzB2rVr0a5dOxw7dkzv\n8wKA5ORkfPLJJ+jUqRNee+013Lp1Cx06dDBI2ZVJ9QmEL5viZNw4wM8POQMH4sqVK+WqIicnB4sX\nL0arVq1w+fJlHDp0CJcuXcKcOXMwZcoU9OjRA7GxsfqdB2P/KjrlkKHl5+drA19OTo5RnjPl5eXp\nBFtjzDgvJIXiMTIyCqaBathwBN58cyGsrPzQvPkv2vUWFoOQmXkA1661wd69YWWqg4jw22+/oXXr\n1li8eDG+//57XL16FYMGDdLZb+jQoYiJiYGnpycGDBiAESNG4OHDh+U6r4yMDMyZMwf29va4d+8e\nLl68iO3bt8Pa2rpc5VV21ScQvmyKk379gLg4HGzfHq6urpg8eXKpmzRVKhU2btwIGxsb/PLLL1i7\ndi3Onz8Pd3d3iEQiTJ06FTdv3kSTJk3g7OyM2bNnG+XZB6veik45ZGhFg5/Bpht6gdzc3GIBV8hg\nL7T792eiRo2C/yOlMg3Pnp1D0c4xZmZvwtExCpmZczBq1Cfo168fEhISXlr+2bNn0bVrV4wdOxZj\nxozBrVu3MGHCBG2Hn6dPn6JDhw74/fffAaj/D5csWYKoqCg8fvwYdnZ2WLFiBRSFHxO9QOFcq/v2\n7UNYWBgiIiLg4uJSuj9IVVXR3VYNLiODKD//hbucP3+eXFxc6PXXX6fNmze/cADvizJsKBQKioqK\n0tn/2LFj5ODgQE2bNqXdu3frdSrMtDk5OVFwcLBg5QPQjkE8ePAg1a9fX7C6NCZNmkSTJk3SLjdr\n1oy2bdsmeL1CUJ4/Q8k7XEgmu0pERCpVHt24YU/378964fuSkpJo2LBhJWbB0YiPj9fJtfq8/KZ5\neXm0ePFiEovFNHDgQEpMTNTZvnXrVrKysqK2bdvSmTPPz4LzolyrpqD6BcLCcnKINm8mGjGCFNOm\n6STuVSgUtGrVKrKwsKB33nmHrl+/rvPW0mTYOHbsGIlEIvr8888pLS1Nuz4vL48CAgKobt265OHh\nUa7MFYw5OTnR1q1bBSk7OztbJxDu27ePGjduLEhdhZ2ZPZv+t2CBdnnje+/RlSqQBLyY/HyiNm2I\nvvpKu+rhwwC6dq0pKZVZpSriwIEDxbLgpKSk6ORajY2NLVVZd+7cocGDB5NYLKZFixZRTk7BYP6M\njAz68ssvyczMjMaOHVsslVxpc61WZ9U7EGpcu0YnvL3JwsKCVq1aRYpC2d8fPHhAH3/8MZmZmdHq\n1aspKSmJPvroo1Jn2Lhw4QJ16NCBGjVqRL/88ovO3WVSUhINGTKEateuTQsWLDDJDxgrPxsbG8Hu\nljIyMggAxcfHE5E6Ybe1tbUgdekYNUoneFCTJkRVMRAuW6Y+9sxM9XJSEqUF9KL0tLK1AhXOguPu\n7q7NtXry5MlyHdaff/5JLVq0IKlUSgcPHtTZFhUVRV26dKEGDRrQTz/9RNevXy9zrtXqyjQCIalv\n/Tdv3kyvv/46ubi40Pnz53W27927l0aPHk1isZj69OlTLK/jiyiVSlq9ejVZWFhQt27d6OrVqzrb\n9+3bp50CZ//+/QY5n5ccEFFMDNHjxwXrcnKInj1Tv1YoiAyQQ5IJy9ramkJDQwUpOz09nQBoL/S2\nbdtmnEA4YgRRoWw5VL9+1QuEmZlE8+cTRUcXrPv1V6KPPy53kQkJCdSkSRMKCAjQK9cqkTq4+vn5\nkbm5Ob3//vuUnJys3aZSqWjdunXUsGFDatiwYblzrVY3JhMINdLT02nSpEkkEolowoQJ9OTJE8rJ\nyaH+/fuTk5NTidPXlNajR49ozJgxZGZmRtOmTaN//vlHu00mk9E333xDtWvXJi8vL3r69KkhTqe4\n9HSiIUOIgoOJvvySKCREvX7PHqJfflG/vnePaPJkYepnBmNtbS3Y3IFJSUnFAmHr1q0FqUtHQABR\n4bvcTz4hKmXzX6VXxqTnRZmbm2tn3fjnn3+K9T8oq/j4eOrTp492Tsb8Qn0nli9fTq6urnqVX51U\nn16jpWRhYYHg4GCcO3cO0dHRsLe3x+rVqxEeHo6TJ0/Cw8Oj3GU3btwYmzdvxtGjR3H06FHY2dkh\nNDQUACAWi7Fo0SJcv34dKSkp2LVrl6FOSdeLEguoVOrXSqUwdTODKtzzWKVS4bfffjP4WFVNT9Gi\nwxoEM2cOMGpUwfKmTYCDg/D1GsNbb+n19sKZhK5evQp3d3e9yrO1tcXhw4exYcMGrFixAu3bt8ez\nZ8+0dRk+1VzVZXKBUKNjx444f/48vvvuO+2PS926dQ1Sdvfu3REVFQVfX1+MHz8evXv3Rnx8PAB1\n/sPmzZsLN97wRYkFdu4EZswAvvtOmLqZQSmVSojFYgBAfHw8xo8fDzc3N1y9elXvsuVyOQBohzKU\nNKyBlUClAmJjgdRUQYrXDCUxZDKFDz74APHx8ZgzZ47Ob5wxhstUFSYbCAF1Fo3PP/8cffr0AQCY\nm5sbrGyRSARfX1/ExcWhYcOG8Pb21tluqKBbzIsSC4waBaxYASxcKEzdzKAKJ1N2cHBAfHw8bGxs\n8Pbbb2PatGl65Qdt3Lgxjhw5UjE/jAIHE8FkZADDhgEnTwL+/sC6dQYrumjgM3QyBYlEgo8++ki7\nnJ+fzxc+hZh0INQQcvB7kyZNsGvXLhw5csQo9b00sQCr9KKiotC7d280aNAAkydPxv/+9z8AwOuv\nv45NmzYhIiICERERsLe3x44dO8pVh0QiQe/evSESiaBQKHDu3DnhLs4KEzCYCO5l+Yz1oPo39aMm\n+BkjmUJ1S5ytD/5L/KtevXqCll/46k6pVBo0eXKRioCtW4GZM9U/Mpqs+0OGqAMjoH6WsXq1MPWz\ncktOTsbHH3+MTp06wcrKCgcOHECvXr3Qo0cPeHt748mTJwAANzc3REZGYubMmZg4cSJ69eqFuLi4\nctV54MABtGvXDuHh4ViyZIkhT6dkAgYTwb0sn7EelP8+t9cEP2NkphI6wXpVwoEQ6ucjNWoIN19Y\nUZqpaARVvz7uPXqEK1euaP89fvxY2DpZuWRkZGDGjBmwt7dHSkoKLl68iC1btqBNmzZYuXIlLly4\ngLi4ONjZ2eHnn3+GSqWCSCTCV199hfj4eFhaWqJdu3aYO3cuZDJZqeq8cuUKevTogffffx+enp5I\nSEiAs7OzsCcKCBpMBPeyfMZ6KCnwCTkrR2k/J6aCAyHUPeaM2YPKGLMKAMDevXvRsWNH7b/bt28b\npV5WOvn5+Vi+fDmkUimOHDmCsLAwHDlypFheRxcXF5w5cwZLly6Fn58funTpok0c/+abbyI0NFQ7\nAa2Dg4M272RJ7t69i1GjRqFz585o0aIF4uLi8P3338PCwkLAMy1EwGAiOCM8dtC0TAk9K4dcLhf+\nYrwK4UAIwMzMGp07f2vUOo3RLGFra6t9LRKJ0LZtW8HrZGqqF0z3RUTYsWMHHBwcsHLlSgQGBiIq\nKuqFQ3deeeUVjB8/Hjdv3kS7du3g6uqKKVOmaBPH9+7dG9evX8fEiRMRGBiobWrTSEtLw4wZM2Bn\nZ4f09HRcvnwZGzduNP5sAlX5GfbzHjsYgCbwaVqmjDErh2CPZ6qgKvIJFFZamhNu3PAxWn2Fp78R\nkl2hJigHB4cqneW/qkhISMDQoUOxaNGiErefOHECnTt3ho+PD7y9vREfHw9vb+9Sfx4sLS0REhKC\n06dP4+zZs7Czs8Ovv/4KIoK5uTnmzZuHM2fOaHsE5uTkYPny5WjVqhUiIiKwb98+hIeHG6cZtCQC\nBhOjqV8fMHCQysvLAwCdlikhv6+ZmZmClV0VcSCEujf3v8O1jMJYc7+99dZb2i7x1XEyzcokNTUV\nkydPhqOjI4gIH374oc722NhYDBo0CP369UOnTp2QkJCAefPmaccJlpWrqysuXrwIPz8/TJ06Fe++\n+y5u3LgBQH33qFKpsG3bNtjb22PVqlVYtWoVLl++rB0qVOEECCbVgabnrjEenxill3AVwYEQ6kQr\nBhxCWCrGGLNVo0YNbfNo+/btBa/PFMlkMixevBgtW7ZEZGQkjh49ij179sDR0REA8PDhQ/j5+cHZ\n2Rm1atVCTEwMVq9eDUsDPBcTiUT44osvEBsbi2bNmqF9+/aYMWMG9u3bh44dO2LKlCmYMmUK4uLi\nMHr0aO4uX4kV7Swj9KTMcrmcM8sUwt8MAB06AN98Y7z6NGmOjEHTPNqxY0ej1WkKlEolNm7cCKlU\nik2bNmH9+vU4e/Ys3n33XQDqH7b58+fD1tYWUVFROHXqFHbv3g2pVGrwY7GyssKWLVtw5MgRhIeH\nY/r06ejRowcSEhIwc+bMct91MuMpnEVIsyzkM0KZTGbUnvKVHV8SAHB0VP8zFoVCYbQeW/b29qhZ\nsybatWtnlPpMQXh4OGbMmIHHjx/Dz88PkyZN0mYlUigUCAkJwXfffYf69evj119/hZeXl1GO6913\n38X169e1wyuYfjTP8o3xt1SpVDqZrdzc3NCqVStB6xR67HRVYpJ3hLm5QHq6+rVSCWRmqtdphtYo\nleoEGEIhIqP12LK1teWOMgYSGRmJHj16YNiwYRg8eDASEhIwdepU7Q/Ynj174OTkhG+//Rbz58/H\njRs3jBYENYz1w12dpaSkYPLkyXBwcECbNm1w9OhRwevMysqCUqnU9gJ+9913MWLECMHqy8nJEazs\nqsgkA+HBg4CLC5CTA9y7p85BffAgoJkQ4uFDde9uoeiTI7Ks7O3tBe0oU9EXFca0aNEiNG/eHHFx\ncQgICNCOvTt//jzeeecdjBkzBsOGDUNiYiJ8fHwgEolARNi3b5/BZ41ghpednY3FixdDKpUiMjIS\na9euhZeXFwYOHIgRI0bgwYMHgtU9cOBAdOvWDXZ2dti8ebNgnxfN0J1Hjx5h//79uHv3riD1VDUm\nGQgBwMOjeJYxY8xSpFAoio3xEpKtra2ggbCiLyqMKSwsDL/88ot27F1iYiKGDx+O7t27w87ODrdu\n3YK/v7+2I9SJEyfQpUsXjBo1Cjdv3qzIQ2cvoFAosHHjRtja2mLTpk3YuHEjzp49iz59+iAgIADR\n0dFITU2Fvb09fvjhBygESgm3f/9+zJ8/H9OmTdM2cxuSZujOpEmTMGDAANSrVw+Ojo5YvHgx8vPz\nDVpXVWOygdDNDbhxQ30HoyH0LEV//PEH2rVrB0tLS3h7e2PLli2C3ilkZ2dj2bJl+Pvvv5GcnCxY\nPRV1UWFsmiEvT548wRdffIHWrVsjJycH0dHRWL9+PaysrACoh0p4enqib9++6NChA27fvq3tRcoq\nF02u1dmzZ2Pu3LmIiYnB8OHDUaNGDW1SBAcHBxw7dgxr167FsmXL0KFDB5w5c8bgx1KzZk1MmTIF\nN2/eRPPmzdGhQwf4+vrqnXe06NCdxMRELFu2DPv378eOHTsQEhICJycnozQBV1oVNCFwhdqzh2jL\nFqKrV4lGjyby9RV2Avdz586Ru7s7icVimjdvHqWlpdHKlSvJwsKCunfvTjdu3DBcZUQkl8tpzZo1\n9MYbb5CtrS25ublRnTp1KCAggPLy8gxal+ZvOWYMUXR0wd+yTx+iqVOJPv3UsH/Lwg4fPkyHDx8m\nmUwmTAVFyGQy8vf3JwsLC+rYsSMdP35cZ/uDBw9o4sSJZGZmRl5eXpSQkGCU42Jld/nyZe138uuv\nv6b09HSd7XK5nN5++21auHAh5eTkaNdnZGTQ1KlTyczMjMaOHUuPHz8W7BhPnDhBrVu3piZNmlBo\naGiZ3//gwQOaMGECmZmZ0bBhw577eXz27BnNmTOHzM3N6YMPPqD79+/re+hVjkkHQiL1D7hQgTAh\nIYFGjBhBNWvWJG9vb/r77791tj948IA++ugjMjMzo5kzZ1JWVpbedYaFhZG9vT01btyY1qxZQ3K5\nnIiIdu/eTdbW1mRvb0/Hjh3Tux4NY19UEBFFRUWRh4cHmZubU8uWLally5a0d+9ew1ZSiFKppA0b\nNtDAgQOpRYsWtH37dlKpVNrtWVlZ9M0335BEIqEuXbrQuXPnBDsWpp87d+7QyJEjtd/JpKSk5+67\nd+9eatGiBUmlUgoPD9fZFhUVRV27dqUGDRrQTz/9REqlUpDjzc/Pp8DAQJJIJNS7d2+Kj49/6Xuy\nsrJo/vz5JJFIqFu3biV+HqdOnUq7d+/WWXfz5k3q2bMnde7sQcuXE/3702ESTDIQloZCQZScTBQd\nraCkpGRtQCmN1NRU+uqrr8jc3Jw8PDyK3fE9evRIZzkiIoIcHR3prbfeov/+97/lOt5z586Rm5sb\nSSQSmjdvXolBNSsri2bNmkXm5uY0YsQIevDgQbnqKsxYFxVERElJSTRu3DiqWbMmjRw5ku7evUsy\nmYwWLlxIYrGYBg8eTHfv3jVMZf8KDw+ntm3b0muvvUZBQUE6d9RyuZyCg4PJysqKbGxsKCwszKB1\nM8N5+vQp+fr6ar+TUVFRpXqfTCaj+fPnk7m5OQ0bNoySk5O121QqFa1fv54sLS3p7bffpkuXLgl0\n9ETJycn0/vvvk7m5Oc2bN6/EVhBNS5CVlRXZ2to+9/OoUqkoICCA6tSpQ/379y92p7h7dzpZWRF1\n6SLIqVRKHAhfIjr6Drm6ulLDhg3p559/fuGVn0wmo6VLl5KFhQW5uLhQREREsX2ePn1KEomEPvvs\nM3r69Kl2fV5eHi1ZsoQkEgn17du31M1qCQkJNHz4cDIzM6NPP/20VMEtJiaG3N3dqV69evTDDz+U\nKchXhPT0dJo7dy6JxWJyd3enK1euFNsnISGBBgwYQGKxmL7//nu9m4AjIyOpd+/eJBaLydfXt1jT\nWWJiIjk6OlKjRo107rxZ5XPp0iXtd/LQoUPlKuPWrVvUp08fkkgktHTpUp3P15MnT2jixIkkEolo\n0qRJxT4rhnTw4EGSSqXUvHlz+vPPP7Xrw8LCyMHBgV5//fVSfx7v3r1Lnp6eJBaLaeHChTrBNTOT\naM6cgn1zcojS0tSvFQqijAyDnVKlwIGwFJRKJYWEhJClpSV16tSp2A+xUqmkzZs3k7W1NVlbW9P2\n7dtfGDAvXrxIHTt2JEtLS9q4caNOM1tSUhINHTqUatWqRd98881zn3+lpqbSF198Qebm5jRw4ECK\niYkp0zmpVCraunUrWVlZUbt27ejMmTMvfU9UVBTt2bOHdu06TFeuEOXnl66uZ8+IIiKI9u6NonPn\nzlFubm6p3peXl0crV64kS0tLcnR0pP3797/0PWFhYWRtbU12dnZ09OjR0h1gIUlJSfTxxx+TSCSi\njz766LlNZ3K5nJYtW2aQ5mwmrJ49e9Knn35qkObLXbt2UZMmTcjR0bHYM+Lz589T27Zt6ZNPPtG7\nnhfJycmhRYsWkVgspl69elHXrl2pbt26z20Jepm9e/dSy5YtydX1XTpwoOR99uwhataMSCYjunNH\n3fJTnXAgLIPU1FQaP348iUQimjJlCqWnp9OhQ4fIxcWFLCwsKCgoSOfB+osolUoKDg4mCwsL6tat\nG0VHR+ts379/P0mlUmrZsiXt27dPu14mk9HixYvJwsKCOnToUOzLWFbp6en05ZdfkpmZGY0bN45S\nU1OL7RMfH09eXl7aK97yNqkeP36CHB0dqUmTJrRr167n7qdSqSg0NJSkUilZWVnRhg0bynTHlZ2d\nTbNnzyZzc3P68MMPS3W86enpNGPGDO2PS2RkZKnrY5Vb165dKTg4mIjUz9yOHDmi1wVMVlYW+fr6\nkpmZGX388cc6n6+TJ09S/fr19T3kUklMTCRXV1fq27ev3o85ZDIZBQVdpVq1iIYNIyp6/bdnD9Fn\nnxEFBnIgZP86e/Ysubi4kLW1NZmbm5Ovr69OM2dZpKSk0CeffEJmZmY0bdo0yszM1G6TyWS0YMEC\nEovF5OnpScuWLSNra2tq3rx5sQ4b+oqMjKQuXbpQw4YNae3ataRUKiklJYV8fHxIJBKRl5dXme86\nS5KXl0dLly4liURCffr0oVu3bulsP3nyJLm6upJEIiF/f3/Kzs4ud12xsbHUo0cPevXVV+k///lP\nicE0Ly+PgoKCyNLSkpycnIp1imBVn5OTkzYQZmRkEAC6c+eO3uVev36dunfvThYWFtrvxuHDh40W\nCImI+vfvTwEBAdrltLQ0vZrpb90i6tuXSCIhWrGiYH1JvcOrEw6E5SSXy6lhw4a0YcMGg5R36tQp\ncnJyIisrK9q+fbvOtoSEBHrnnXdIKpUW67BhSEqlktatW0eWlpbUtm1bkkgk5OrqSidPnjR4XUlJ\nSTRs2DCqVasWzZ8/n65cuaK96/Tx8aGUlBSD1aVpAm7bti2dPn2aiNR3ndu3b6eWLVtS06ZNacOG\nDYL1/GMVy8nJibb826Pr8ePHBOCFvUXLQqVS0R9//KG9KN23bx81atTIIGWXhpubm04gBEDXrl3T\nu9xdu4gcHAqWS+odXp1wINRD/fr1tQ/fHz9+TEuWLNGrPLlcTsuXLyeJREI9e/akmzdvarcFBweT\nk5OTXuWXVmpqKu3cuZN27dpl0LvOkhw4cICkUim1atWKvLy8StU9vDwKj//y9PSkDh06kIWFBfn7\n+xttHCKrGLa2trRt2zYiUl+AARBsrNy+ffvI2tpakLJL4ubmRmvWrCEi9bNDQwVCIqLCjTEl9Q6v\nTjg7r540yazj4+MxZ84czJ49u9xliUQiTJ8+HR9++CGmT5+OTp064e7du2jYsCEA48xhCKhnQS86\nsaxQ+vfvj2vXrkGhUODVV18VrJ769etjxYoVGDt2LLZt24ZmzZrh4MGDBpkXkFVuubm5xSbCFuq7\nZMw8woB6ZnvNdEqaWe4NNX1T4Xl7hwwpeL15s0GKr1Q4EOqh6CzShprxuUmTJggNDcWdO3e0QTA/\nP98os9pXBGPOl+fs7AxnZ2ej1ccqB03g0zdd2csQkVFnesnNzS0224hQ9R8+DEycCFTHPN0mm2vU\nEFQqlfZHXIgZn1u0aKF9nZOTwzOMM1YOhSfC1iS8F2oaNIVCIeiEuiXRXIAXvTA3NLlcnT+4OuJf\n1nLSfKE0c9EZY8ZnIZsOGauuFAqFNvBpEmkLNTF24aBrDIXvcDXnJlQLi1wOVNNGKQ6E5VVSE4uQ\nMz4b+wvGWHVBRNrAJ/RdE6B+Hm0sSqVSG/iKXpwbmlyehebNhf/7VQQOhHrSBD+hZ3xWKBSCXcUy\nVp0V7cAiZMtKbm6uYGWXRKVSaQOf0M8/5fK9SE/vJmgdFYUDYTlpemhpmkPz8/MFfTZARII912Cs\nutN0lsnLyxP0WXteXp5RnxGWdIcrVMuUTCYTpNzKgANhOWmu/Ap3kBGyt5ixu2UzVh1oZl7X9Lgu\naSiFoRmz1yhQEPiKXpwbmlwuF6zZtaJxINSTpseWMQIVd5ZhrGw0jywK3wUacgxhTk4Ojh07pl02\nxjPIwgqPIzRGkDfmUCdj4kBYTkXb44UeP5Sfn8/DJ1i1IfQz9aI0F5GOjo747rvv9C5PpVJh48aN\nkEqlmDp1KuRyuXa9MYNF0XGEhk4U8Pfff2tfZ2ZmGrTsyoR/Wcup6HgkpVIp6LOBnJycajugnpmW\nO3fuoGnTpvjhhx+gEHhg2rlz51C3bl3cunULgHps7pgxY/Qq8+DBg2jbti1mz56NGTNmIDIyUvvd\nVyqVRm8+1LRKNWzYEB988IFByoyNjcWQIUPQtm1bnWeDhkoaUtlwICynouORDN1j69KlS9i6davO\nOmOlWGNMSC1atMCPP/6IZcuWoX379jhz5ozB6/jrr78watQovPfee+jcuTMGDBiA6dOn6/U9jYqK\nQs+ePTF06FAMHDgQCQkJ+Oqrr7SBb8+ePdizZw+uXLmCI0eOGOpUnuvhw4cACh7LODo6IiQkRO8y\nP//8c7Rr1w6vvPIKLly4oG3pEiJpSGXBgbCcij4LGDt2LFavXq13ubdv38aoUaPQpUsXXLx4Ubue\nxxGy6mTkyJGIi4tDz5490bNnT4wdOxapqal6l/vkyRP4+vrC0dER6enpiIqKwrFjx3D06FEcPnwY\ndnZ2CA0NLVOZycnJGDVqFDp16oSmTZsiLi4OS5cuhYWFBQDg/Pnz6N69O8aMGYNhw4Zh0KBBeO+9\n9/DBBx/oNC0ailwuR3BwMNq2bQt7e3t4eXlh06ZNIKJyl5mdnY2FCxfC1tYWV69exenTpxEWFgap\nVApA/Tc4deoUWrdubajTqFwqNOV3FSWTyeiLL74gqVRKR44cMUiZqamp5OvrS+bm5uTh4UFXr17V\n2e7h4UELFy40SF2MVSbR0dHUtWtXsrCwoODgYFKVYzosmUxGgYGBZGFhQS4uLnT06NFi+8jlcgoM\nDCSJREK9e/emuLi4F5aZnp5Ovr6+VKtWLerbt2+xyZoTEhJo+PDhZGZmRp9++qnO5LhxcXHUq1cv\nkkgkFBQUpNccgRoqlYrCwsK0E1avXbuW8vLyaPXq1WRhYUFubm7FfjdeRi6X008//URWVlYklUop\nLCxMZ3t6ejp9/fXXJBaLyd3dnZKTk/U+j8qIA2EZKJVK2rBhA1lbW1OLFi1o9OjRZZoFvSTqmaGD\ntF/gooH18ePH5OPjQ40aNSo2iz1j1YVKpaINGzbQB+7uRB07EpVlaqxff6VfBw0ia2tr2rp160vn\nlbx37x4NHz6czM3N6euvvy5xGq69e/dSgwYNyNnZudhkzampqfTFF1+Qubk5DRw48IUTVu/YsYOs\nrKyoTZs2dOrUqdKfUxFnz57VTli9cOFCysrK0tn+6NEjGjNmjHaC73/++eelZe7Zs4ccHR3J0tKS\n1qxZoxOs8/LyaNWqVWRpaUmOjo60b9++ch97VcCBsJTCw8OpXbt21LBhQ53JcQvPgv7DDz+U+spP\nqVTS1q1bydramqytrWnLli06X2CZTEb+/v7ayXFPnDghyHkxVqk8fUr02WdE16+Xbv+sLCILC3q2\nahXl5OSUqapDhw6RjY0NNW/enP744w+dbYmJibRx48Zi38nFixeThYUFdejQgY4fP17KQ8yi0NBQ\nmjvXjzZtUlApYpRWSgrR9u0X6PPPP6egoKCXXnCfPHmS2rRpQ1ZWVrRz584S97l69Sq9++67JBaL\nad68eTpBVaVS0a5du7R3nevXrzfI3Wxlx4HwJR49ekQ7d+6koKAgWrp0KaWnp5e4X+FZ0M+cOfPC\nMo8ePUouLi5kYWFBgYGBOlekmrtOTVPFzp07BZ8cl7FK59kz3WWlkigmhujxY931OTnq4FlOubm5\n9O2335JYLKZBgwbR7du3i+1TuCWoefPmtH379kr9nZTL5RQUFEQSiYR69epVrAk4OjqavL29iwXV\nU6dOae86/f39i911VmccCA0oIyODvvzySzIzM6OxY8dSampqsX0WLFhA5ubmNH369GLbw8PDtU0V\nK1as0N51MmbS0tOJhgwhCg4m+vJLopAQg1fx119/0XvvvUdisZi+/fZb7XfveS1B+srJIUpLU79W\nKIgyMtTrNPFfoVCftj7u37+vbQKeO3cuPSt6cfGv2NhY8vLyIpFIRD4+PvTo0SP9Kq6COBAKICoq\nirp06UINGjSgtWvX6jSv/PXXX5SYmKizf2RkJLm7u5NYLKbZs2c/966TMZO0dClR4abLXr2IBGqu\n+/3336lZs2bUqlUr6tatG9WuXZt8fX0N/p3cs4eoWTP1o9A7d4h8fdXrfvlFvf3ePaLJkw1T1+HD\nh8nGxoaaNWtGv//+u3b9gwcPaNKkSSQSicjLy+ulnYeqM9MbPpGbC2gGiCqVQEaG+rVKBcTGAgbo\nwu3s7Iz//e9/CAwMhJ+fH1xdXXHlyhUAQMuWLdGqVSsABd2y3377bTRr1gxxcXFYsmSJtls2YwzA\nnTuAnV3B8htvAGlpglTl6emJmzdvYvz48ejXrx/i4+MRFBQkyHfSwwMoOuJKpVJPfvtvvg6D6NOn\nD27cuIHx48dj5MiRGDhwIHx9fWFra4uoqCicPHkSYWFhsCv8NzYxphcIDx4Edu1Sv374EPDzUwfD\nYcOAkycBf39g3Tq9q6lRowbGjx+PuLg4ODs7w9XVFZMnT0ZGRgYyMjIwY8YM2NjYIC0tDZcuXcKm\nTZtgbW2td72MVTv29kB0dMHygweApaVg1YnFYsyZMwfz588X9Dvp5gbcuAEUzly2cycwYwZggCxw\nOszNzeHn54eYmBhkZ2fj0KFD2Lx5M86ePYuuXbsatrIqqHqmCXiZopddISHAuHHA4MHq5d691csG\nyKLw2muvISQkBJ9++ikmTZoEGxsbyOVytGzZEn/88Qc8PDz0roOxam3CBGDiROD6deD+fWDKFKCa\n5N319QWCgoDXX1cvjxoFjB2rPs0lSwxfX4sWLdC/f3+cOXMGQ4cONXwFVZRpBsKdO4Fr14DsbKB2\nbXXTi6dnwXZN04vm02kAnTt3xqVLl3D06FHIZDJ4enpyEm3GSqNOHWDrVvWtU506gBHn+xNa27aA\nQLMmPZexZ8ioCkwzEBa97NI0vWjayAVqeqlZsyb69etn8HIZMwn161f0ERjMkCEFrzdvLr79rbeK\nPz80FGPPkFEVmGYgLKoaN70wxlhhKpWq2k6wW141iPTI1FrdVMOmF8YYK8zHxweZmZnYtm1bRR9K\npcF3hIVVo6YXxhh7nnr16lX0IVQq3P7HGGMmJC8vDzWM3UOnkuNAyBhjJiQ3Nxc1a9as6MOoVDgQ\nMsaYiZFIJBV9CJUKB0LGGDMh2dnZFX0IlQ4HQsYYMyFKpRK1a9eu6MOoVDgQMsaYCSEi1KpVq6IP\no1LhQMgYYybkn3/+qehDqHQ4EDLGmImRyWT46quvkKGZhs7EcSBkjDETIpPJoFQqcfz4cTg6OmLb\ntm0w9QRjHAgZY8wExMbGwtPTEykpKfjss89w+fJlzJo1Cz4+PujZsydiY2Mr+hArDAdCxhirxh4+\nfIjPPvsMzs7OICJMnjwZb731FkQiEaZNm4a4uDhYWVnBxcUFs2fPNsnhFRwIGWOsGsrOzsaCBQtg\na2uL69ev49SpU5g3bx7+85//oHPnzrh8+TIAwMrKCtu3b0d4eDj27t2L5V5ewG+/VfDRGxfPPsEY\nY9WIUglERCRh/fpZEIvFmDBhArp166bdnpaWhrlz52Ljxo0YP348AgICYGFhAQDIz89HbnAw6t2+\nDUilwIgRBp2gvLLiQMgYYybo4sWLmDRpEu7du4dly5ZhzJgxJpuMm5tGGWOsEsvNBWQy9WulEtCM\neLh9G7h3r2Cf9PSCfTIzX15up06dcOnSJXzzzTeYNm0apgwZop6c3ATxHSFjjFViv/+uDn5jxwL3\n7wNLlgD9+gExMcDjx0CLFkDTpsC0acDNm0BKCrB6NRAUVPo6UlJSkLdsGaxXrQKmTAH+85+CjSoV\nEBcHNGqk/lcN8R0hY4xVcioVoFCo7/YAYNAgYM4c4NtvgbNn1es8PNQBsDwaN24M66Ag4OhR4PDh\ngg0ZGcCwYcDJk4C/P7BunV7nUVnxDPWMMVbJ7dwJXLsGZGcDmnzZRMCsWcCMGeomUjc34MgRoG9f\nPSrq3h2Iji5YDgkBxo0DBg9WL/furV4WVa/QwXeEjDFWyY0aBaxYASxcWLBuxgz1zVqHDgXrfH2B\n5cv1rKxwkLtzB7CzK1h+4w0gLU3PCiqf6hXWGWPMBISEABERQF4ecOMG0KyZen3btoBBO37a26vv\nEDXB8MEDwNLSgBVUDtxZhjHGWMlkMmDiRKB5c3VPncGDgaFDK/qoDI4DIWOMsRfLzATq1AHMzCr6\nSATBgZAxxphJ484yjDHGTBoHQsYYYyaNAyFjjDGTxoGQMcaYSeNAyBhjzKRxIGSMMWbSOBAyxhgz\naRwIGWOMmTQOhIwxxkwaB0LGGGMmjQMhY4wxk8aBkDHGmEnjQMgYY8yk/R/EOQNsdnI8lgAAAABJ\nRU5ErkJggg==\n",
"prompt_number": 117,
"text": "<rdkit.Chem.rdchem.Mol at 0x6c81ec0>"
}
],
"prompt_number": 117
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Convert to the Morgan fingerprint and save the bit dictionary for later..."
},
{
"cell_type": "code",
"collapsed": false,
"input": "info={}\nfp = Chem.GetMorganFingerprintAsBitVect(mol,2,nBits=2048, bitInfo=info)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 118
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Get the predictions in a Pandas frame"
},
{
"cell_type": "code",
"collapsed": false,
"input": "predictions = pd.DataFrame(zip(classes, calc_scores(classes),list(morgan_nb.predict_proba(fp)[0])),columns=['id','score','proba'])",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 119
},
{
"cell_type": "code",
"collapsed": false,
"input": "predictions.head()",
"language": "python",
"metadata": {},
"outputs": [
{
"html": "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>id</th>\n <th>score</th>\n <th>proba</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td> CHEMBL1075051</td>\n <td>-49.683154</td>\n <td> 5.836404e-26</td>\n </tr>\n <tr>\n <th>1</th>\n <td> CHEMBL1075104</td>\n <td>-22.709670</td>\n <td> 1.221899e-13</td>\n </tr>\n <tr>\n <th>2</th>\n <td> CHEMBL1075108</td>\n <td>-76.563053</td>\n <td> 6.262378e-38</td>\n </tr>\n <tr>\n <th>3</th>\n <td> CHEMBL1075111</td>\n <td>-81.947712</td>\n <td> 2.656745e-40</td>\n </tr>\n <tr>\n <th>4</th>\n <td> CHEMBL1075115</td>\n <td>-13.045515</td>\n <td> 5.122346e-10</td>\n </tr>\n </tbody>\n</table>\n</div>",
"metadata": {},
"output_type": "pyout",
"prompt_number": 120,
"text": " id score proba\n0 CHEMBL1075051 -49.683154 5.836404e-26\n1 CHEMBL1075104 -22.709670 1.221899e-13\n2 CHEMBL1075108 -76.563053 6.262378e-38\n3 CHEMBL1075111 -81.947712 2.656745e-40\n4 CHEMBL1075115 -13.045515 5.122346e-10"
}
],
"prompt_number": 120
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Let's check the distributions of prediction probability and score for the 1244 targets."
},
{
"cell_type": "code",
"collapsed": false,
"input": "predictions['proba'].hist()",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 121,
"text": "<matplotlib.axes.AxesSubplot at 0x9b6ba10>"
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": "<matplotlib.figure.Figure at 0x9071c50>"
}
],
"prompt_number": 121
},
{
"cell_type": "code",
"collapsed": false,
"input": "predictions['score'].hist()",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 122,
"text": "<matplotlib.axes.AxesSubplot at 0xdb22a10>"
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nkC677LLi4xx/7GtmsvTnXSqde8eOHdq0aZO6u7v1/PPPa8aMGerp6Ul/yCoolfvWW2/do1e0+2Oc\n18d79+f6zTffrMMOO0wXX3xx2uOZyNpjmITNmzfrggsu0J133qkRIyr/N4EPerkazIXymGOO0emn\nn66jjz5aktTZ2anu7m7NnDlzj29A2tvbu8ffBkIymNzLly/Xww8/rG984xvauHGjamtrNXToULW0\ntJT9xquhGOxi1Nvbq/PPP1/333+/jjvuOEl7f8PZvD3e+8rX1NSkHTt2ZObx3l2p34OLLrpIv/zl\nLyVJF1xwgS699FJJH/0enHzyyZLCfoz3p1Tuu+66S1/4whckSSeeeKIOO+wwvfXWW/t97LNkf7lf\neeUVrVmzRhMnTpS0M9sJJ5yg5557LvePtyT96Ec/UldXl5544onifXl4vEs5kG8Onifbt2/XjBkz\ndPHFF+u8886TJI0ePVrr169XXV2d+vv7NWbMmJK/RmrHgrv/beZzn/ucXnzxRW3ZskUDAwP61a9+\npXHjxqmpqUm1tbXFrzB54IEH1NnZmdaIVbF77ieffFJr1qzRmjVrdNVVV+lb3/qW/vZv/1Ynnnii\nXnnlFfX19Wn79u366U9/qrPOOstw6oO3e+6NGzdq+vTp+u53v6tTTjmleP8xxxyT68e7s7NTP/nJ\nT4q9k1deeUUnnXRSLh/vY489Vr/61a8kSU888URxge7s7NQDDzwgSVq5cmWxk5IX06dPL15kf/vb\n3+q9995TfX39fh/7PJgwYYLeeuut4mtZY2OjVq5cWcyd58d7yZIluu222/Tv//7vOvzww4v35/nx\nlpTL16z9ieNYc+bM0fjx43X11VcX7+/s7NTChQslSQsXLix/rapS4T6O4zhetGhR3NjYGB9++OFx\nfX19fOaZZxbftnDhwrhQKMTHH3988Ssu4njnV120tbXF48ePj6+88spqjlc1pXLvMm/evPiOO+4o\n3l68eHFcKBTicePGxbfcckua4yZmf7lvuumm+I/+6I/itra24n/9/f1xHOf/8b755pvjcePGxYVC\nofjVdHGcj8d7d08//XQ8ceLEePz48XF7e3v83HPPFd92+eWXF+/f11fPZtm2bdvimTNnxoVCIS4U\nCvFjjz1WfNv+Hvu8Oe6444pfLRjH+X68/+RP/iQ+5phjiq9jX/va14pvy/vjnbfXrP156qmn4pqa\nmnjixInFx/nRRx+N33777fhzn/tc3NLSEk+dOjV+5513Sv46fBNRAACABJl8tSAAAEBesVwBAAAk\niOUKAAAgQSxXAAAACWK5AgAASBDLFQAAQIJYrgAAABLEcgUAAJCg/w+PcdNLWrSF7QAAAABJRU5E\nrkJggg==\n",
"text": "<matplotlib.figure.Figure at 0x6036990>"
}
],
"prompt_number": 122
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Sort by probability and take top 10."
},
{
"cell_type": "code",
"collapsed": false,
"input": "top_preds = predictions.sort(columns=['proba'],ascending=False).head(10)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 123
},
{
"cell_type": "code",
"collapsed": false,
"input": "top_preds",
"language": "python",
"metadata": {},
"outputs": [
{
"html": "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>id</th>\n <th>score</th>\n <th>proba</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1124</th>\n <td> CHEMBL5414</td>\n <td> 18.159497</td>\n <td> 0.999977</td>\n </tr>\n <tr>\n <th>568 </th>\n <td> CHEMBL3252</td>\n <td> 10.654329</td>\n <td> 0.874618</td>\n </tr>\n <tr>\n <th>409 </th>\n <td> CHEMBL275</td>\n <td> 7.960013</td>\n <td> 0.843829</td>\n </tr>\n <tr>\n <th>210 </th>\n <td> CHEMBL210</td>\n <td> 6.068692</td>\n <td> 0.558651</td>\n </tr>\n <tr>\n <th>216 </th>\n <td> CHEMBL213</td>\n <td> -1.089044</td>\n <td> 0.000909</td>\n </tr>\n <tr>\n <th>616 </th>\n <td> CHEMBL3397</td>\n <td> -4.842163</td>\n <td> 0.000119</td>\n </tr>\n <tr>\n <th>85 </th>\n <td> CHEMBL1844</td>\n <td> -4.558361</td>\n <td> 0.000024</td>\n </tr>\n <tr>\n <th>746 </th>\n <td> CHEMBL3864</td>\n <td> -3.178081</td>\n <td> 0.000024</td>\n </tr>\n <tr>\n <th>28 </th>\n <td> CHEMBL1293224</td>\n <td> -8.120585</td>\n <td> 0.000020</td>\n </tr>\n <tr>\n <th>618 </th>\n <td> CHEMBL340</td>\n <td> -7.057586</td>\n <td> 0.000017</td>\n </tr>\n </tbody>\n</table>\n</div>",
"metadata": {},
"output_type": "pyout",
"prompt_number": 124,
"text": " id score proba\n1124 CHEMBL5414 18.159497 0.999977\n568 CHEMBL3252 10.654329 0.874618\n409 CHEMBL275 7.960013 0.843829\n210 CHEMBL210 6.068692 0.558651\n216 CHEMBL213 -1.089044 0.000909\n616 CHEMBL3397 -4.842163 0.000119\n85 CHEMBL1844 -4.558361 0.000024\n746 CHEMBL3864 -3.178081 0.000024\n28 CHEMBL1293224 -8.120585 0.000020\n618 CHEMBL340 -7.057586 0.000017"
}
],
"prompt_number": 124
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Use ChEMBL WS to merge with target information"
},
{
"cell_type": "code",
"collapsed": false,
"input": "def fetch_WS(trgt):\n re = requests.get('https://www.ebi.ac.uk/chemblws/targets/{0}.json'.format(trgt))\n return re.json()['target']",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 125
},
{
"cell_type": "code",
"collapsed": false,
"input": "plist = []\nfor i,e in enumerate(top_preds['id']):\n p = pd.DataFrame(fetch_WS(e), index=(i,))\n plist.append(p)\ntarget_info = concat(plist)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 126
},
{
"cell_type": "code",
"collapsed": false,
"input": "target_info.shape",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 127,
"text": "(10, 10)"
}
],
"prompt_number": 127
},
{
"cell_type": "code",
"collapsed": false,
"input": "target_info",
"language": "python",
"metadata": {},
"outputs": [
{
"html": "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>bioactivityCount</th>\n <th>chemblId</th>\n <th>compoundCount</th>\n <th>description</th>\n <th>geneNames</th>\n <th>organism</th>\n <th>preferredName</th>\n <th>proteinAccession</th>\n <th>synonyms</th>\n <th>targetType</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td> 1038</td>\n <td> CHEMBL5414</td>\n <td> 567</td>\n <td> Beta-2 adrenergic receptor</td>\n <td> Unspecified</td>\n <td> Cavia porcellus</td>\n <td> Beta-2 adrenergic receptor</td>\n <td> Q8K4Z4</td>\n <td> Adrb2,Beta-2 adrenoreceptor,Beta-2 adrenoceptor,Beta-2 adrenergic receptor</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>1</th>\n <td> 421</td>\n <td> CHEMBL3252</td>\n <td> 298</td>\n <td> Beta-1 adrenergic receptor</td>\n <td> Unspecified</td>\n <td> Rattus norvegicus</td>\n <td> Beta-1 adrenergic receptor</td>\n <td> P18090</td>\n <td> Beta-1 adrenoceptor,Adrb1r,Beta-1 adrenergic receptor,Adrb1,Beta-1 adrenoreceptor</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>2</th>\n <td> 1127</td>\n <td> CHEMBL275</td>\n <td> 997</td>\n <td> Phosphodiesterase 4B</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Phosphodiesterase 4B</td>\n <td> Q07343</td>\n <td> 3.1.4.53,cAMP-specific 3',5'-cyclic phosphodiesterase 4B,DPDE4,PDE32,PDE4B</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>3</th>\n <td> 6595</td>\n <td> CHEMBL210</td>\n <td> 4320</td>\n <td> Beta-2 adrenergic receptor</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Beta-2 adrenergic receptor</td>\n <td> P07550</td>\n <td> Beta-2 adrenergic receptor,ADRB2,Beta-2 adrenoreceptor,Beta-2 adrenoceptor,ADRB2R ,B2AR</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>4</th>\n <td> 4380</td>\n <td> CHEMBL213</td>\n <td> 2716</td>\n <td> Beta-1 adrenergic receptor</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Beta-1 adrenergic receptor</td>\n <td> P08588</td>\n <td> ADRB1,ADRB1R ,B1AR,Beta-1 adrenergic receptor,Beta-1 adrenoreceptor,Beta-1 adrenoceptor</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>5</th>\n <td> 26321</td>\n <td> CHEMBL3397</td>\n <td> 21212</td>\n <td> Cytochrome P450 2C9</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Cytochrome P450 2C9</td>\n <td> P11712</td>\n <td> (R)-limonene 6-monooxygenase,CYP2C9,Cytochrome P450 MP-4,CYP2C10,Cytochrome P450 MP-8,(S)-limonene 7-monooxygenase,1.14.13.-,S-mephenytoin 4-hydroxylase,CYPIIC9,Cytochrome P-450MP,Cytochrome P450 2C9,1.14.13.48,1.14.13.49,1.14.13.80,(S)-limonene 6-monooxygenase,Cytochrome P450 PB-1</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>6</th>\n <td> 3061</td>\n <td> CHEMBL1844</td>\n <td> 2245</td>\n <td> Macrophage colony stimulating factor receptor </td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Macrophage colony stimulating factor receptor </td>\n <td> P07333</td>\n <td> CD_antigen=CD115,FMS,Proto-oncogene c-Fms,CSF-1 receptor,CSF1R,2.7.10.1,CSF-1R,Macrophage colony-stimulating factor 1 receptor,CSF-1-R,M-CSF-R</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>7</th>\n <td> 578</td>\n <td> CHEMBL3864</td>\n <td> 528</td>\n <td> Protein-tyrosine phosphatase 2C</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Protein-tyrosine phosphatase 2C</td>\n <td> Q06124</td>\n <td> PTP2C ,Protein-tyrosine phosphatase 1D,SH-PTP2,Shp2,PTP-2C,PTPN11,3.1.3.48,Protein-tyrosine phosphatase 2C,Tyrosine-protein phosphatase non-receptor type 11,PTP-1D,SHPTP2,SH-PTP3,SHP-2</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>8</th>\n <td> 94907</td>\n <td> CHEMBL1293224</td>\n <td> 66755</td>\n <td> Microtubule-associated protein tau</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Microtubule-associated protein tau</td>\n <td> P10636</td>\n <td> Neurofibrillary tangle protein,TAU,Microtubule-associated protein tau,MAPT,MTBT1,MAPTL ,Paired helical filament-tau,PHF-tau</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>9</th>\n <td> 41780</td>\n <td> CHEMBL340</td>\n <td> 25658</td>\n <td> Cytochrome P450 3A4</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Cytochrome P450 3A4</td>\n <td> P08684</td>\n <td> Cytochrome P450-PCN1,Quinine 3-monooxygenase,1.14.13.32,CYPIIIA3,CYPIIIA4,Cytochrome P450 3A4,Taurochenodeoxycholate 6-alpha-hydroxylase,1.14.13.157,1.14.13.97,CYP3A3,Nifedipine oxidase,Albendazole monooxygenase,Cytochrome P450 3A3,1,8-cineole 2-exo-monooxygenase,1.14.13.-,1.14.13.67,Albendazole sulfoxidase,Cytochrome P450 NF-25,CYP3A4,Cytochrome P450 HLp</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n </tbody>\n</table>\n</div>",
"metadata": {},
"output_type": "pyout",
"prompt_number": 128,
"text": " bioactivityCount chemblId compoundCount description geneNames organism preferredName proteinAccession synonyms targetType\n0 1038 CHEMBL5414 567 Beta-2 adrenergic receptor Unspecified Cavia porcellus Beta-2 adrenergic receptor Q8K4Z4 Adrb2,Beta-2 adrenoreceptor,Beta-2 adrenoceptor,Beta-2 adrenergic receptor SINGLE PROTEIN\n1 421 CHEMBL3252 298 Beta-1 adrenergic receptor Unspecified Rattus norvegicus Beta-1 adrenergic receptor P18090 Beta-1 adrenoceptor,Adrb1r,Beta-1 adrenergic receptor,Adrb1,Beta-1 adrenoreceptor SINGLE PROTEIN\n2 1127 CHEMBL275 997 Phosphodiesterase 4B Unspecified Homo sapiens Phosphodiesterase 4B Q07343 3.1.4.53,cAMP-specific 3',5'-cyclic phosphodiesterase 4B,DPDE4,PDE32,PDE4B SINGLE PROTEIN\n3 6595 CHEMBL210 4320 Beta-2 adrenergic receptor Unspecified Homo sapiens Beta-2 adrenergic receptor P07550 Beta-2 adrenergic receptor,ADRB2,Beta-2 adrenoreceptor,Beta-2 adrenoceptor,ADRB2R ,B2AR SINGLE PROTEIN\n4 4380 CHEMBL213 2716 Beta-1 adrenergic receptor Unspecified Homo sapiens Beta-1 adrenergic receptor P08588 ADRB1,ADRB1R ,B1AR,Beta-1 adrenergic receptor,Beta-1 adrenoreceptor,Beta-1 adrenoceptor SINGLE PROTEIN\n5 26321 CHEMBL3397 21212 Cytochrome P450 2C9 Unspecified Homo sapiens Cytochrome P450 2C9 P11712 (R)-limonene 6-monooxygenase,CYP2C9,Cytochrome P450 MP-4,CYP2C10,Cytochrome P450 MP-8,(S)-limonene 7-monooxygenase,1.14.13.-,S-mephenytoin 4-hydroxylase,CYPIIC9,Cytochrome P-450MP,Cytochrome P450 2C9,1.14.13.48,1.14.13.49,1.14.13.80,(S)-limonene 6-monooxygenase,Cytochrome P450 PB-1 SINGLE PROTEIN\n6 3061 CHEMBL1844 2245 Macrophage colony stimulating factor receptor Unspecified Homo sapiens Macrophage colony stimulating factor receptor P07333 CD_antigen=CD115,FMS,Proto-oncogene c-Fms,CSF-1 receptor,CSF1R,2.7.10.1,CSF-1R,Macrophage colony-stimulating factor 1 receptor,CSF-1-R,M-CSF-R SINGLE PROTEIN\n7 578 CHEMBL3864 528 Protein-tyrosine phosphatase 2C Unspecified Homo sapiens Protein-tyrosine phosphatase 2C Q06124 PTP2C ,Protein-tyrosine phosphatase 1D,SH-PTP2,Shp2,PTP-2C,PTPN11,3.1.3.48,Protein-tyrosine phosphatase 2C,Tyrosine-protein phosphatase non-receptor type 11,PTP-1D,SHPTP2,SH-PTP3,SHP-2 SINGLE PROTEIN\n8 94907 CHEMBL1293224 66755 Microtubule-associated protein tau Unspecified Homo sapiens Microtubule-associated protein tau P10636 Neurofibrillary tangle protein,TAU,Microtubule-associated protein tau,MAPT,MTBT1,MAPTL ,Paired helical filament-tau,PHF-tau SINGLE PROTEIN\n9 41780 CHEMBL340 25658 Cytochrome P450 3A4 Unspecified Homo sapiens Cytochrome P450 3A4 P08684 Cytochrome P450-PCN1,Quinine 3-monooxygenase,1.14.13.32,CYPIIIA3,CYPIIIA4,Cytochrome P450 3A4,Taurochenodeoxycholate 6-alpha-hydroxylase,1.14.13.157,1.14.13.97,CYP3A3,Nifedipine oxidase,Albendazole monooxygenase,Cytochrome P450 3A3,1,8-cineole 2-exo-monooxygenase,1.14.13.-,1.14.13.67,Albendazole sulfoxidase,Cytochrome P450 NF-25,CYP3A4,Cytochrome P450 HLp SINGLE PROTEIN"
}
],
"prompt_number": 128
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Finally, let's get the complete top 10 target predictions in descreasing order of probability."
},
{
"cell_type": "code",
"collapsed": false,
"input": "result = pd.merge(top_preds, target_info, left_on='id', right_on='chemblId')",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 129
},
{
"cell_type": "code",
"collapsed": false,
"input": "result",
"language": "python",
"metadata": {},
"outputs": [
{
"html": "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>id</th>\n <th>score</th>\n <th>proba</th>\n <th>bioactivityCount</th>\n <th>chemblId</th>\n <th>compoundCount</th>\n <th>description</th>\n <th>geneNames</th>\n <th>organism</th>\n <th>preferredName</th>\n <th>proteinAccession</th>\n <th>synonyms</th>\n <th>targetType</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td> CHEMBL5414</td>\n <td> 18.159497</td>\n <td> 0.999977</td>\n <td> 1038</td>\n <td> CHEMBL5414</td>\n <td> 567</td>\n <td> Beta-2 adrenergic receptor</td>\n <td> Unspecified</td>\n <td> Cavia porcellus</td>\n <td> Beta-2 adrenergic receptor</td>\n <td> Q8K4Z4</td>\n <td> Adrb2,Beta-2 adrenoreceptor,Beta-2 adrenoceptor,Beta-2 adrenergic receptor</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>1</th>\n <td> CHEMBL3252</td>\n <td> 10.654329</td>\n <td> 0.874618</td>\n <td> 421</td>\n <td> CHEMBL3252</td>\n <td> 298</td>\n <td> Beta-1 adrenergic receptor</td>\n <td> Unspecified</td>\n <td> Rattus norvegicus</td>\n <td> Beta-1 adrenergic receptor</td>\n <td> P18090</td>\n <td> Beta-1 adrenoceptor,Adrb1r,Beta-1 adrenergic receptor,Adrb1,Beta-1 adrenoreceptor</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>2</th>\n <td> CHEMBL275</td>\n <td> 7.960013</td>\n <td> 0.843829</td>\n <td> 1127</td>\n <td> CHEMBL275</td>\n <td> 997</td>\n <td> Phosphodiesterase 4B</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Phosphodiesterase 4B</td>\n <td> Q07343</td>\n <td> 3.1.4.53,cAMP-specific 3',5'-cyclic phosphodiesterase 4B,DPDE4,PDE32,PDE4B</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>3</th>\n <td> CHEMBL210</td>\n <td> 6.068692</td>\n <td> 0.558651</td>\n <td> 6595</td>\n <td> CHEMBL210</td>\n <td> 4320</td>\n <td> Beta-2 adrenergic receptor</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Beta-2 adrenergic receptor</td>\n <td> P07550</td>\n <td> Beta-2 adrenergic receptor,ADRB2,Beta-2 adrenoreceptor,Beta-2 adrenoceptor,ADRB2R ,B2AR</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>4</th>\n <td> CHEMBL213</td>\n <td> -1.089044</td>\n <td> 0.000909</td>\n <td> 4380</td>\n <td> CHEMBL213</td>\n <td> 2716</td>\n <td> Beta-1 adrenergic receptor</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Beta-1 adrenergic receptor</td>\n <td> P08588</td>\n <td> ADRB1,ADRB1R ,B1AR,Beta-1 adrenergic receptor,Beta-1 adrenoreceptor,Beta-1 adrenoceptor</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>5</th>\n <td> CHEMBL3397</td>\n <td> -4.842163</td>\n <td> 0.000119</td>\n <td> 26321</td>\n <td> CHEMBL3397</td>\n <td> 21212</td>\n <td> Cytochrome P450 2C9</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Cytochrome P450 2C9</td>\n <td> P11712</td>\n <td> (R)-limonene 6-monooxygenase,CYP2C9,Cytochrome P450 MP-4,CYP2C10,Cytochrome P450 MP-8,(S)-limonene 7-monooxygenase,1.14.13.-,S-mephenytoin 4-hydroxylase,CYPIIC9,Cytochrome P-450MP,Cytochrome P450 2C9,1.14.13.48,1.14.13.49,1.14.13.80,(S)-limonene 6-monooxygenase,Cytochrome P450 PB-1</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>6</th>\n <td> CHEMBL1844</td>\n <td> -4.558361</td>\n <td> 0.000024</td>\n <td> 3061</td>\n <td> CHEMBL1844</td>\n <td> 2245</td>\n <td> Macrophage colony stimulating factor receptor </td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Macrophage colony stimulating factor receptor </td>\n <td> P07333</td>\n <td> CD_antigen=CD115,FMS,Proto-oncogene c-Fms,CSF-1 receptor,CSF1R,2.7.10.1,CSF-1R,Macrophage colony-stimulating factor 1 receptor,CSF-1-R,M-CSF-R</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>7</th>\n <td> CHEMBL3864</td>\n <td> -3.178081</td>\n <td> 0.000024</td>\n <td> 578</td>\n <td> CHEMBL3864</td>\n <td> 528</td>\n <td> Protein-tyrosine phosphatase 2C</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Protein-tyrosine phosphatase 2C</td>\n <td> Q06124</td>\n <td> PTP2C ,Protein-tyrosine phosphatase 1D,SH-PTP2,Shp2,PTP-2C,PTPN11,3.1.3.48,Protein-tyrosine phosphatase 2C,Tyrosine-protein phosphatase non-receptor type 11,PTP-1D,SHPTP2,SH-PTP3,SHP-2</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>8</th>\n <td> CHEMBL1293224</td>\n <td> -8.120585</td>\n <td> 0.000020</td>\n <td> 94907</td>\n <td> CHEMBL1293224</td>\n <td> 66755</td>\n <td> Microtubule-associated protein tau</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Microtubule-associated protein tau</td>\n <td> P10636</td>\n <td> Neurofibrillary tangle protein,TAU,Microtubule-associated protein tau,MAPT,MTBT1,MAPTL ,Paired helical filament-tau,PHF-tau</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n <tr>\n <th>9</th>\n <td> CHEMBL340</td>\n <td> -7.057586</td>\n <td> 0.000017</td>\n <td> 41780</td>\n <td> CHEMBL340</td>\n <td> 25658</td>\n <td> Cytochrome P450 3A4</td>\n <td> Unspecified</td>\n <td> Homo sapiens</td>\n <td> Cytochrome P450 3A4</td>\n <td> P08684</td>\n <td> Cytochrome P450-PCN1,Quinine 3-monooxygenase,1.14.13.32,CYPIIIA3,CYPIIIA4,Cytochrome P450 3A4,Taurochenodeoxycholate 6-alpha-hydroxylase,1.14.13.157,1.14.13.97,CYP3A3,Nifedipine oxidase,Albendazole monooxygenase,Cytochrome P450 3A3,1,8-cineole 2-exo-monooxygenase,1.14.13.-,1.14.13.67,Albendazole sulfoxidase,Cytochrome P450 NF-25,CYP3A4,Cytochrome P450 HLp</td>\n <td> SINGLE PROTEIN</td>\n </tr>\n </tbody>\n</table>\n</div>",
"metadata": {},
"output_type": "pyout",
"prompt_number": 130,
"text": " id score proba bioactivityCount chemblId compoundCount description geneNames organism preferredName proteinAccession synonyms targetType\n0 CHEMBL5414 18.159497 0.999977 1038 CHEMBL5414 567 Beta-2 adrenergic receptor Unspecified Cavia porcellus Beta-2 adrenergic receptor Q8K4Z4 Adrb2,Beta-2 adrenoreceptor,Beta-2 adrenoceptor,Beta-2 adrenergic receptor SINGLE PROTEIN\n1 CHEMBL3252 10.654329 0.874618 421 CHEMBL3252 298 Beta-1 adrenergic receptor Unspecified Rattus norvegicus Beta-1 adrenergic receptor P18090 Beta-1 adrenoceptor,Adrb1r,Beta-1 adrenergic receptor,Adrb1,Beta-1 adrenoreceptor SINGLE PROTEIN\n2 CHEMBL275 7.960013 0.843829 1127 CHEMBL275 997 Phosphodiesterase 4B Unspecified Homo sapiens Phosphodiesterase 4B Q07343 3.1.4.53,cAMP-specific 3',5'-cyclic phosphodiesterase 4B,DPDE4,PDE32,PDE4B SINGLE PROTEIN\n3 CHEMBL210 6.068692 0.558651 6595 CHEMBL210 4320 Beta-2 adrenergic receptor Unspecified Homo sapiens Beta-2 adrenergic receptor P07550 Beta-2 adrenergic receptor,ADRB2,Beta-2 adrenoreceptor,Beta-2 adrenoceptor,ADRB2R ,B2AR SINGLE PROTEIN\n4 CHEMBL213 -1.089044 0.000909 4380 CHEMBL213 2716 Beta-1 adrenergic receptor Unspecified Homo sapiens Beta-1 adrenergic receptor P08588 ADRB1,ADRB1R ,B1AR,Beta-1 adrenergic receptor,Beta-1 adrenoreceptor,Beta-1 adrenoceptor SINGLE PROTEIN\n5 CHEMBL3397 -4.842163 0.000119 26321 CHEMBL3397 21212 Cytochrome P450 2C9 Unspecified Homo sapiens Cytochrome P450 2C9 P11712 (R)-limonene 6-monooxygenase,CYP2C9,Cytochrome P450 MP-4,CYP2C10,Cytochrome P450 MP-8,(S)-limonene 7-monooxygenase,1.14.13.-,S-mephenytoin 4-hydroxylase,CYPIIC9,Cytochrome P-450MP,Cytochrome P450 2C9,1.14.13.48,1.14.13.49,1.14.13.80,(S)-limonene 6-monooxygenase,Cytochrome P450 PB-1 SINGLE PROTEIN\n6 CHEMBL1844 -4.558361 0.000024 3061 CHEMBL1844 2245 Macrophage colony stimulating factor receptor Unspecified Homo sapiens Macrophage colony stimulating factor receptor P07333 CD_antigen=CD115,FMS,Proto-oncogene c-Fms,CSF-1 receptor,CSF1R,2.7.10.1,CSF-1R,Macrophage colony-stimulating factor 1 receptor,CSF-1-R,M-CSF-R SINGLE PROTEIN\n7 CHEMBL3864 -3.178081 0.000024 578 CHEMBL3864 528 Protein-tyrosine phosphatase 2C Unspecified Homo sapiens Protein-tyrosine phosphatase 2C Q06124 PTP2C ,Protein-tyrosine phosphatase 1D,SH-PTP2,Shp2,PTP-2C,PTPN11,3.1.3.48,Protein-tyrosine phosphatase 2C,Tyrosine-protein phosphatase non-receptor type 11,PTP-1D,SHPTP2,SH-PTP3,SHP-2 SINGLE PROTEIN\n8 CHEMBL1293224 -8.120585 0.000020 94907 CHEMBL1293224 66755 Microtubule-associated protein tau Unspecified Homo sapiens Microtubule-associated protein tau P10636 Neurofibrillary tangle protein,TAU,Microtubule-associated protein tau,MAPT,MTBT1,MAPTL ,Paired helical filament-tau,PHF-tau SINGLE PROTEIN\n9 CHEMBL340 -7.057586 0.000017 41780 CHEMBL340 25658 Cytochrome P450 3A4 Unspecified Homo sapiens Cytochrome P450 3A4 P08684 Cytochrome P450-PCN1,Quinine 3-monooxygenase,1.14.13.32,CYPIIIA3,CYPIIIA4,Cytochrome P450 3A4,Taurochenodeoxycholate 6-alpha-hydroxylase,1.14.13.157,1.14.13.97,CYP3A3,Nifedipine oxidase,Albendazole monooxygenase,Cytochrome P450 3A3,1,8-cineole 2-exo-monooxygenase,1.14.13.-,1.14.13.67,Albendazole sulfoxidase,Cytochrome P450 NF-25,CYP3A4,Cytochrome P450 HLp SINGLE PROTEIN"
}
],
"prompt_number": 130
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Not bad! The model retrieved the correct targets in the top 4 predictions out of a pool of 1244 targets."
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": "Feature contribution"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Now let's look at contributions of specific substructural features to the PDE4 predictions. Which features of the active molecules in the training set were the most important?"
},
{
"cell_type": "code",
"collapsed": false,
"input": "bit_scores = (morgan_nb.estimators_[classes.index(result['id'][2])].feature_log_prob_[1] - morgan_nb.estimators_[classes.index(result['id'][2])].feature_log_prob_[0])*fp",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 131
},
{
"cell_type": "markdown",
"metadata": {},
"source": "The snippet below maps the specific bits back to atomic environments"
},
{
"cell_type": "code",
"collapsed": false,
"input": "frags = OrderedDict()\nfor k in info.keys():\n if bit_scores[k] > 0.1:\n atomId,radius = info[k][0]\n env=Chem.FindAtomEnvironmentOfRadiusN(mol,radius,atomId)\n ats = set([atomId])\n for bidx in env:\n bond = mol.GetBondWithIdx(bidx)\n ats.add(bond.GetBeginAtomIdx())\n ats.add(bond.GetEndAtomIdx())\n frag = Chem.MolFragmentToSmiles(mol,atomsToUse=list(ats),bondsToUse=env,rootedAtAtom=atomId)\n legend = str(round(bit_scores[k],2))\n frags[k] = (legend,frag)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 132
},
{
"cell_type": "code",
"collapsed": false,
"input": "legends = [l[1][0] for l in sorted(frags.items(), key=lambda t: t[1][0], reverse=True)][:10]\nffrags = [l[1][1] for l in sorted(frags.items(), key=lambda t: t[1][0], reverse=True)][:10]",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 133
},
{
"cell_type": "code",
"collapsed": false,
"input": "fmols=[Chem.MolFromSmarts(s) for s in ffrags]",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 134
},
{
"cell_type": "markdown",
"metadata": {},
"source": "This was the original molecule"
},
{
"cell_type": "code",
"collapsed": false,
"input": "mol",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAYAAABNcIgQAAA2IklEQVR4nO3deXxMVxsH8J+ahGFK\naFRTFdtkJSQoQaqxByVCtWgpKVqhpWKtKNpoiHiLkmospdZ4NdpaYo31tUtiSSSSIqGIkKWJyTLL\n8/4xnUkmCZLM3Mkyz/fz8fnMXeace2NmnnvPPec5NYiIwBhjjJmoVyr6ABhjjLGKxIGQMcaYSeNA\nyBhjzKRxIGSMMWbSOBAyxhgzaRwIGWOMmTQOhIwxxkwaB0LGGGMmjQMhY4wxk8aBkDHGmEnjQMgY\nY8ykcSBkjDFm0jgQMsYYM2kcCBljjJk0DoSMMcZMGgdCxhhjJo0DIWPMJPAc5Ox5OBAyxqq1EydO\noEOHDujUqROWLl2K/Pz8ij4kVslwIGSMVUuxsbEYMGAA+vXrBzc3N/j4+GDNmjVwdnbG8ePHK/rw\nWCXCgZAxVq08fPgQn376Kdq1a4dXX30VMTExWLlyJcaNG4fY2Fi899576NevHz7++GM8fPiwog+X\nVQIcCBlj1UJ2djb8/PwglUqRmJiI06dPIzQ0FFKpVLuPRCJBYGAgoqKicP/+fTg4OGDVqlVQKBQV\neOSsotUgfoLMGKvCFAoFQkJCsHDhQjRq1Aj+/v7w8vLSbs/IyMDixYuRmZmJkJAQ7XoiwtatWzFr\n1iy88cYbCA4ORpcuXSriFFgF4ztCxliVtWfPHrRu3Rr+/v5YtGgRrl69qg2C+fn5WL58OWxsbHDo\n0CEMHTpU5701atTA6NGjcfPmTbi5uaF79+4YP348njx5UhGnwioQB0LGWJVz/vx5dOvWDWPGjMGI\nESNw69YtTJo0CSKRCESEHTt2wMHBAStWrMDSpUsRHR0NDw+PEsuysLDAjz/+iAsXLuDGjRuwt7dH\nSEgIVCqVkc+KVRQOhIyxKmXcuHHo3r07WrdujVu3bmHRokWQSCQA1EMlOnfuDB8fH3h7e+PWrVvw\n9vbGK6+8/Keuffv2OHv2LL7//nt8/fXX6Nq1KyIjI4U+HVYJcCBkjFUZx48fx/nz5xEdHY2QkBBY\nWVkBUA+VGDRoEPr164fOnTsjISEB8+bNg1gsLlP5r7zyCiZOnIi4uDg4OTmhf//+uHv3rgBnwioT\nDoSMsSojLS0NMpkMjo6OANRDJSZMmABnZ2fUrl0bMTEx+PHHH2FpaalXPZaWlli3bh2aN2+O8PBw\nQxw6q8REFX0AjDFWWnl5eRCJCn62li1bhri4OJw6dQqurq56l//jjz/i6dOnWLhwIQAgJydH7zJZ\n5ceBkDFWpdStW1f7OiAgALVq1TJY2Tdv3kRmZqbOunr16hmsfFY5cdMoY6zKyMrK0lk2ZBDU0HS8\nAdR3oDVq1DB4Haxy4UDIGKsyVCpVmTvAlIVcLkfNmjW1y7m5uTpNsax64kDIGKsylEolzM3NBStf\nJpMVG2pRuCmWVU8cCBljVUZ2drbgdbz66qtGrY9VPA6EjLEqRcjOKzKZTGdZqVSidu3agtXHKgcO\nhIyxKiM3N1fQzityuVyn6VWlUhm2Q45KBcTGAqmphiuT6Y2fAjPGqoy8vDyYmZkJWkfhzjhFe6nq\nJSMDGDcO6NsXiIsD2rQBJkwwXPms3DgQMsaqlDp16ghWdtExhIDuM0O9hISoA+Hgwerl3r3Vy9wr\ntcJx0yhjrNRyc4H0dPVrpRLIzFSv0zxaUyrVNz5CMegd2nNoeonm5+cDQKkSdpfKnTuAnV3B8htv\nAGlphimb6YUDIWOs1A4eBFxcgJwc4N494Lvv1Ot27VJvf/gQ8PMTrn6VSqVzRzh9+nT88ccfBitf\noVBoxw1q0qsVHleoF3t7IDq6YPnBA0DPnKjMMDgQMlaNJCYmYsGCBVi8eLFgXf89PIDVq3XXqVSA\nQqG+IxSSUqnUeUbYsGFDjBw5EoMGDcLt27f1Lr9mzZrFOscUzjSjlwkTgL171VcKY8cCU6YAhrrb\nZHrh/wXGqoEnT55g2rRpaN26NY4fP44tW7bA0dERu3fvNnhdbm7AjRvqZlGNnTuBGTPUd4hCyc/P\nR3x8PJKTk0FEAAA/Pz/ExMSgRo0aaNOmDb777jvk5eWVu44zZ87A29sbAPDs2TP9D/rWrYLXdeoA\nW7cCM2cC69YBQ4fqXz4zCA6EjFVhOTk5WLJkCWxsbHDq1CkcOnQIp06dwrVr1+Dj44OxY8fCw8MD\niYmJBq3X1xdYvrxgedQoYMUK4N9JGwyKiLB79260bt0asbGxOH36NNzd3RETEwMAaNGiBf7880/s\n3LkTGzduhJOTEw4fPqxXnRkZGQgMDIRUKsWGDRu0zwvLfOyzZwBff12w4sABwNMT+OcfvY6PGRYH\nQsaqIJVKhU2bNsHe3h5r165FcHAwrly5And3dwCAubk55syZg9jYWNSpUwdOTk5YsGCBwaYVatsW\nMEYu6jNnzqBr164YN24cPvnkE9y+fRtxcXFo2rQpXFxcMGvWLG0T8ODBgxEbG4vhw4dj0KBBGD58\nOO7fv1+m+vLz87FixQrY2NjgyJEjGDNmDDZt2oR27dohIiKiTGWlpW3HrakxoC8nq1dkZADe3sCw\nYcBrr5WpLCYwYoxVKeHh4eTs7EwNGjSgoKAgysvL026Ty+W0bt06SkhI0HnP/v37qVWrVtSqVSva\nt2+fsQ+5zOLi4sjLy4tEIhH5+PjQw4cPi+0TERFBjo6O9NZbb9F///vfYu/v3bs3SSQSCgwMJLlc\n/sL6VCoV7dixg6RSKVlZWdGGDRtIqVQSEVFWVhbNmjWLzM3NaeTIkfTgwYOXHr9CkUlXr1rRo0fL\nC9YtmEXk7EykUJTmT8CMiAMhY1VEZGQk9e3bl2rVqkW+vr6Unp6us/3PP/8kR0dHsrS0pPDw8GLv\nl8lktGDBAqpduzZ5enpSUlLSC+tTKpV04sQJ2rp1Kx06dIuKxNYXSk0l+v13oj/+OESxsbHaoPIy\njx49Ih8fHxKJROTl5UU3b9584f55eXm0ZMkSkkgk1Ldv32IXAKGhofTmm29S69atn1vW8ePHydXV\nlSQSCfn7+5NMJitxv5iYGHJ3d6d69erRDz/88MLgev/+XIqL60YqlXqfZ8+iKOpCHZLfvvjC82EV\ngwMhY5VcUlISjRkzhkQiEY0cObJYALtw4QK5u7uTWCymefPmUUZGxgvLS0hIoP79+1OdOnUoICBA\n545SIzw8nNq0aUOWlpa0fPnyEvd5GaVSRSEhIWRpaUmdOnWiK1euPHffrKws8vf3J4lEQq6urnT6\n9Oky1ZWUlERDhw6lWrVq0fz583WCWVZWFvn5+RW7cIiJiSFPT0/tXWdqaupL61GpVLRlyxaysrKi\n/ftHUlbWmVIdX3r6b3T37vgynRMzHg6EjFVSmZmZNGvWLBKLxdSjRw+KjIzU2Z6YmEgjR46kmjVr\nkre3N927d69M5e/evZusra3J3t6ejh07RkTqu86ePXuSWCymmTNnFgse5ZGamkrjx48nkUhEU6ZM\n0SlTLpfT+vXrycrKiqRSKe3atYtUKlW569q/fz9JpVJq2bIl7d27t8R9Hjx4QBMnTiQzMzPy8vIq\ndhdZGunp6ZScPI2uXDGjJ09+fen+T55sJLn8SZnrYcbBgZCxSurnn38mBweHYs2cqampNH36dDI3\nNycPDw+6du1aueso/PzL3d2dRCIRjR49+qXNpuVx9uxZcnZ2psaNG9Ovv/5Ke/fu1Tblrlq1qlx3\nnSWRyWS0cOFCEovF5OnpSXfv3iUi9bl+8803JJFIqEuXLnTu3Dm963r2LJIePlyms04uTyWZ7Bop\nlTnadTk5MXrXxYTDgZCxSmrUqFE0Z84c7bJMJqPAwECysLAgFxcXOnr0qMHqioiIoLp161JERITB\nyizJ5cuXacKECdSoUSNq0KABjR49mi5duiRIXQkJCTRgwACqU6cOjRs3jqysrMjGxobCwsIMXFPB\nHWxm5hG6c2ccpaaup5SUlSXuwyqf6pXtVaVSZ3Vv1Ej9j7EqrPBQB7lcDmdnZ+Tm5mL16tUYOXKk\n3jkwf/rpJ/Tt2xetWrVCy5Yt8ezZM7Rv317fw36hI0eO4M6dO0hOToZKpcKwYcNw9OhRdOzY0eB1\nSaVS7N+/H2FhYbhw4QL8/PwwceJEbQo1wykYRyKTXUH9+h5o0OCD5+5jaEql0nBp4ExU9QmEPMUJ\nq2by8/O16cTMzMywbt06dOrUyWATxX7//fewtrZGq1at8I+RBnhr5vfTnIMxZoAfOnQohhopi0uj\nRj5ISVmKp083QSJxxxtvzBKsrvv372PBggWIi4tDo0aNsHLlSjRr1kyw+gDg5MmTeOeddwyXiLyS\nqD5no5niZNIkYOVKIDRUnfxQQ4AvemJiIk6ePIkMIdPtM5NWOMF09+7dDTpbekkzORhsyqEy1Fm/\nfn1B6xQakUr7umbNV/Hmm/6QSg/gn38OgUj9G6RQGG6WiczMTPj5+cHW1ha3b9+Gr68v5HI5HB0d\nERAQUO4sOC8SFRWFfv36oV+/foiKijJ4+RWt+gTCl01xMnEi8PPP6uZTPT158gSTJ09G69atMW3a\nNDg4OGDr1q3a/IeMGYIxphzSBD6DTzlUijoB9YzzVd2zZ2e0r9PSduL+/Vn4++85MDe3Ro0a6ka3\n9PT/4v79mVCpyn8HnJ+fjzVr1kAqlWLPnj0IDQ3F8ePHMXToUOzfvx9btmzB2rVr0a5dOxw7dkzv\n8wKA5ORkfPLJJ+jUqRNee+013Lp1Cx06dDBI2ZVJ9QmEL5viZNw4wM8POQMH4sqVK+WqIicnB4sX\nL0arVq1w+fJlHDp0CJcuXcKcOXMwZcoU9OjRA7GxsfqdB2P/KjrlkKHl5+drA19OTo5RnjPl5eXp\nBFtjzDgvJIXiMTIyCqaBathwBN58cyGsrPzQvPkv2vUWFoOQmXkA1661wd69YWWqg4jw22+/oXXr\n1li8eDG+//57XL16FYMGDdLZb+jQoYiJiYGnpycGDBiAESNG4OHDh+U6r4yMDMyZMwf29va4d+8e\nLl68iO3bt8Pa2rpc5VV21ScQvmyKk379gLg4HGzfHq6urpg8eXKpmzRVKhU2btwIGxsb/PLLL1i7\ndi3Onz8Pd3d3iEQiTJ06FTdv3kSTJk3g7OyM2bNnG+XZB6veik45ZGhFg5/Bpht6gdzc3GIBV8hg\nL7T792eiRo2C/yOlMg3Pnp1D0c4xZmZvwtExCpmZczBq1Cfo168fEhISXlr+2bNn0bVrV4wdOxZj\nxozBrVu3MGHCBG2Hn6dPn6JDhw74/fffAaj/D5csWYKoqCg8fvwYdnZ2WLFiBRSFHxO9QOFcq/v2\n7UNYWBgiIiLg4uJSuj9IVVXR3VYNLiODKD//hbucP3+eXFxc6PXXX6fNmze/cADvizJsKBQKioqK\n0tn/2LFj5ODgQE2bNqXdu3frdSrMtDk5OVFwcLBg5QPQjkE8ePAg1a9fX7C6NCZNmkSTJk3SLjdr\n1oy2bdsmeL1CUJ4/Q8k7XEgmu0pERCpVHt24YU/378964fuSkpJo2LBhJWbB0YiPj9fJtfq8/KZ5\neXm0ePFiEovFNHDgQEpMTNTZvnXrVrKysqK2bdvSmTPPz4LzolyrpqD6BcLCcnKINm8mGjGCFNOm\n6STuVSgUtGrVKrKwsKB33nmHrl+/rvPW0mTYOHbsGIlEIvr8888pLS1Nuz4vL48CAgKobt265OHh\nUa7MFYw5OTnR1q1bBSk7OztbJxDu27ePGjduLEhdhZ2ZPZv+t2CBdnnje+/RlSqQBLyY/HyiNm2I\nvvpKu+rhwwC6dq0pKZVZpSriwIEDxbLgpKSk6ORajY2NLVVZd+7cocGDB5NYLKZFixZRTk7BYP6M\njAz68ssvyczMjMaOHVsslVxpc61WZ9U7EGpcu0YnvL3JwsKCVq1aRYpC2d8fPHhAH3/8MZmZmdHq\n1aspKSmJPvroo1Jn2Lhw4QJ16NCBGjVqRL/88ovO3WVSUhINGTKEateuTQsWLDDJDxgrPxsbG8Hu\nljIyMggAxcfHE5E6Ybe1tbUgdekYNUoneFCTJkRVMRAuW6Y+9sxM9XJSEqUF9KL0tLK1AhXOguPu\n7q7NtXry5MlyHdaff/5JLVq0IKlUSgcPHtTZFhUVRV26dKEGDRrQTz/9RNevXy9zrtXqyjQCIalv\n/Tdv3kyvv/46ubi40Pnz53W27927l0aPHk1isZj69OlTLK/jiyiVSlq9ejVZWFhQt27d6OrVqzrb\n9+3bp50CZ//+/QY5n5ccEFFMDNHjxwXrcnKInj1Tv1YoiAyQQ5IJy9ramkJDQwUpOz09nQBoL/S2\nbdtmnEA4YgRRoWw5VL9+1QuEmZlE8+cTRUcXrPv1V6KPPy53kQkJCdSkSRMKCAjQK9cqkTq4+vn5\nkbm5Ob3//vuUnJys3aZSqWjdunXUsGFDatiwYblzrVY3JhMINdLT02nSpEkkEolowoQJ9OTJE8rJ\nyaH+/fuTk5NTidPXlNajR49ozJgxZGZmRtOmTaN//vlHu00mk9E333xDtWvXJi8vL3r69KkhTqe4\n9HSiIUOIgoOJvvySKCREvX7PHqJfflG/vnePaPJkYepnBmNtbS3Y3IFJSUnFAmHr1q0FqUtHQABR\n4bvcTz4hKmXzX6VXxqTnRZmbm2tn3fjnn3+K9T8oq/j4eOrTp492Tsb8Qn0nli9fTq6urnqVX51U\nn16jpWRhYYHg4GCcO3cO0dHRsLe3x+rVqxEeHo6TJ0/Cw8Oj3GU3btwYmzdvxtGjR3H06FHY2dkh\nNDQUACAWi7Fo0SJcv34dKSkp2LVrl6FOSdeLEguoVOrXSqUwdTODKtzzWKVS4bfffjP4WFVNT9Gi\nwxoEM2cOMGpUwfKmTYCDg/D1GsNbb+n19sKZhK5evQp3d3e9yrO1tcXhw4exYcMGrFixAu3bt8ez\nZ8+0dRk+1VzVZXKBUKNjx444f/48vvvuO+2PS926dQ1Sdvfu3REVFQVfX1+MHz8evXv3Rnx8PAB1\n/sPmzZsLN97wRYkFdu4EZswAvvtOmLqZQSmVSojFYgBAfHw8xo8fDzc3N1y9elXvsuVyOQBohzKU\nNKyBlUClAmJjgdRUQYrXDCUxZDKFDz74APHx8ZgzZ47Ob5wxhstUFSYbCAF1Fo3PP/8cffr0AQCY\nm5sbrGyRSARfX1/ExcWhYcOG8Pb21tluqKBbzIsSC4waBaxYASxcKEzdzKAKJ1N2cHBAfHw8bGxs\n8Pbbb2PatGl65Qdt3Lgxjhw5UjE/jAIHE8FkZADDhgEnTwL+/sC6dQYrumjgM3QyBYlEgo8++ki7\nnJ+fzxc+hZh0INQQcvB7kyZNsGvXLhw5csQo9b00sQCr9KKiotC7d280aNAAkydPxv/+9z8AwOuv\nv45NmzYhIiICERERsLe3x44dO8pVh0QiQe/evSESiaBQKHDu3DnhLs4KEzCYCO5l+Yz1oPo39aMm\n+BkjmUJ1S5ytD/5L/KtevXqCll/46k6pVBo0eXKRioCtW4GZM9U/Mpqs+0OGqAMjoH6WsXq1MPWz\ncktOTsbHH3+MTp06wcrKCgcOHECvXr3Qo0cPeHt748mTJwAANzc3REZGYubMmZg4cSJ69eqFuLi4\nctV54MABtGvXDuHh4ViyZIkhT6dkAgYTwb0sn7EelP8+t9cEP2NkphI6wXpVwoEQ6ucjNWoIN19Y\nUZqpaARVvz7uPXqEK1euaP89fvxY2DpZuWRkZGDGjBmwt7dHSkoKLl68iC1btqBNmzZYuXIlLly4\ngLi4ONjZ2eHnn3+GSqWCSCTCV199hfj4eFhaWqJdu3aYO3cuZDJZqeq8cuUKevTogffffx+enp5I\nSEiAs7OzsCcKCBpMBPeyfMZ6KCnwCTkrR2k/J6aCAyHUPeaM2YPKGLMKAMDevXvRsWNH7b/bt28b\npV5WOvn5+Vi+fDmkUimOHDmCsLAwHDlypFheRxcXF5w5cwZLly6Fn58funTpok0c/+abbyI0NFQ7\nAa2Dg4M272RJ7t69i1GjRqFz585o0aIF4uLi8P3338PCwkLAMy1EwGAiOCM8dtC0TAk9K4dcLhf+\nYrwK4UAIwMzMGp07f2vUOo3RLGFra6t9LRKJ0LZtW8HrZGqqF0z3RUTYsWMHHBwcsHLlSgQGBiIq\nKuqFQ3deeeUVjB8/Hjdv3kS7du3g6uqKKVOmaBPH9+7dG9evX8fEiRMRGBiobWrTSEtLw4wZM2Bn\nZ4f09HRcvnwZGzduNP5sAlX5GfbzHjsYgCbwaVqmjDErh2CPZ6qgKvIJFFZamhNu3PAxWn2Fp78R\nkl2hJigHB4cqneW/qkhISMDQoUOxaNGiErefOHECnTt3ho+PD7y9vREfHw9vb+9Sfx4sLS0REhKC\n06dP4+zZs7Czs8Ovv/4KIoK5uTnmzZuHM2fOaHsE5uTkYPny5WjVqhUiIiKwb98+hIeHG6cZtCQC\nBhOjqV8fMHCQysvLAwCdlikhv6+ZmZmClV0VcSCEujf3v8O1jMJYc7+99dZb2i7x1XEyzcokNTUV\nkydPhqOjI4gIH374oc722NhYDBo0CP369UOnTp2QkJCAefPmaccJlpWrqysuXrwIPz8/TJ06Fe++\n+y5u3LgBQH33qFKpsG3bNtjb22PVqlVYtWoVLl++rB0qVOEECCbVgabnrjEenxill3AVwYEQ6kQr\nBhxCWCrGGLNVo0YNbfNo+/btBa/PFMlkMixevBgtW7ZEZGQkjh49ij179sDR0REA8PDhQ/j5+cHZ\n2Rm1atVCTEwMVq9eDUsDPBcTiUT44osvEBsbi2bNmqF9+/aYMWMG9u3bh44dO2LKlCmYMmUK4uLi\nMHr0aO4uX4kV7Swj9KTMcrmcM8sUwt8MAB06AN98Y7z6NGmOjEHTPNqxY0ej1WkKlEolNm7cCKlU\nik2bNmH9+vU4e/Ys3n33XQDqH7b58+fD1tYWUVFROHXqFHbv3g2pVGrwY7GyssKWLVtw5MgRhIeH\nY/r06ejRowcSEhIwc+bMct91MuMpnEVIsyzkM0KZTGbUnvKVHV8SAHB0VP8zFoVCYbQeW/b29qhZ\nsybatWtnlPpMQXh4OGbMmIHHjx/Dz88PkyZN0mYlUigUCAkJwXfffYf69evj119/hZeXl1GO6913\n38X169e1wyuYfjTP8o3xt1SpVDqZrdzc3NCqVStB6xR67HRVYpJ3hLm5QHq6+rVSCWRmqtdphtYo\nleoEGEIhIqP12LK1teWOMgYSGRmJHj16YNiwYRg8eDASEhIwdepU7Q/Ynj174OTkhG+//Rbz58/H\njRs3jBYENYz1w12dpaSkYPLkyXBwcECbNm1w9OhRwevMysqCUqnU9gJ+9913MWLECMHqy8nJEazs\nqsgkA+HBg4CLC5CTA9y7p85BffAgoJkQ4uFDde9uoeiTI7Ks7O3tBe0oU9EXFca0aNEiNG/eHHFx\ncQgICNCOvTt//jzeeecdjBkzBsOGDUNiYiJ8fHwgEolARNi3b5/BZ41ghpednY3FixdDKpUiMjIS\na9euhZeXFwYOHIgRI0bgwYMHgtU9cOBAdOvWDXZ2dti8ebNgnxfN0J1Hjx5h//79uHv3riD1VDUm\nGQgBwMOjeJYxY8xSpFAoio3xEpKtra2ggbCiLyqMKSwsDL/88ot27F1iYiKGDx+O7t27w87ODrdu\n3YK/v7+2I9SJEyfQpUsXjBo1Cjdv3qzIQ2cvoFAosHHjRtja2mLTpk3YuHEjzp49iz59+iAgIADR\n0dFITU2Fvb09fvjhBygESgm3f/9+zJ8/H9OmTdM2cxuSZujOpEmTMGDAANSrVw+Ojo5YvHgx8vPz\nDVpXVWOygdDNDbhxQ30HoyH0LEV//PEH2rVrB0tLS3h7e2PLli2C3ilkZ2dj2bJl+Pvvv5GcnCxY\nPRV1UWFsmiEvT548wRdffIHWrVsjJycH0dHRWL9+PaysrACoh0p4enqib9++6NChA27fvq3tRcoq\nF02u1dmzZ2Pu3LmIiYnB8OHDUaNGDW1SBAcHBxw7dgxr167FsmXL0KFDB5w5c8bgx1KzZk1MmTIF\nN2/eRPPmzdGhQwf4+vrqnXe06NCdxMRELFu2DPv378eOHTsQEhICJycnozQBV1oVNCFwhdqzh2jL\nFqKrV4lGjyby9RV2Avdz586Ru7s7icVimjdvHqWlpdHKlSvJwsKCunfvTjdu3DBcZUQkl8tpzZo1\n9MYbb5CtrS25ublRnTp1KCAggPLy8gxal+ZvOWYMUXR0wd+yTx+iqVOJPv3UsH/Lwg4fPkyHDx8m\nmUwmTAVFyGQy8vf3JwsLC+rYsSMdP35cZ/uDBw9o4sSJZGZmRl5eXpSQkGCU42Jld/nyZe138uuv\nv6b09HSd7XK5nN5++21auHAh5eTkaNdnZGTQ1KlTyczMjMaOHUuPHz8W7BhPnDhBrVu3piZNmlBo\naGiZ3//gwQOaMGECmZmZ0bBhw577eXz27BnNmTOHzM3N6YMPPqD79+/re+hVjkkHQiL1D7hQgTAh\nIYFGjBhBNWvWJG9vb/r77791tj948IA++ugjMjMzo5kzZ1JWVpbedYaFhZG9vT01btyY1qxZQ3K5\nnIiIdu/eTdbW1mRvb0/Hjh3Tux4NY19UEBFFRUWRh4cHmZubU8uWLally5a0d+9ew1ZSiFKppA0b\nNtDAgQOpRYsWtH37dlKpVNrtWVlZ9M0335BEIqEuXbrQuXPnBDsWpp87d+7QyJEjtd/JpKSk5+67\nd+9eatGiBUmlUgoPD9fZFhUVRV27dqUGDRrQTz/9REqlUpDjzc/Pp8DAQJJIJNS7d2+Kj49/6Xuy\nsrJo/vz5JJFIqFu3biV+HqdOnUq7d+/WWXfz5k3q2bMnde7sQcuXE/3702ESTDIQloZCQZScTBQd\nraCkpGRtQCmN1NRU+uqrr8jc3Jw8PDyK3fE9evRIZzkiIoIcHR3prbfeov/+97/lOt5z586Rm5sb\nSSQSmjdvXolBNSsri2bNmkXm5uY0YsQIevDgQbnqKsxYFxVERElJSTRu3DiqWbMmjRw5ku7evUsy\nmYwWLlxIYrGYBg8eTHfv3jVMZf8KDw+ntm3b0muvvUZBQUE6d9RyuZyCg4PJysqKbGxsKCwszKB1\nM8N5+vQp+fr6ar+TUVFRpXqfTCaj+fPnk7m5OQ0bNoySk5O121QqFa1fv54sLS3p7bffpkuXLgl0\n9ETJycn0/vvvk7m5Oc2bN6/EVhBNS5CVlRXZ2to+9/OoUqkoICCA6tSpQ/379y92p7h7dzpZWRF1\n6SLIqVRKHAhfIjr6Drm6ulLDhg3p559/fuGVn0wmo6VLl5KFhQW5uLhQREREsX2ePn1KEomEPvvs\nM3r69Kl2fV5eHi1ZsoQkEgn17du31M1qCQkJNHz4cDIzM6NPP/20VMEtJiaG3N3dqV69evTDDz+U\nKchXhPT0dJo7dy6JxWJyd3enK1euFNsnISGBBgwYQGKxmL7//nu9m4AjIyOpd+/eJBaLydfXt1jT\nWWJiIjk6OlKjRo107rxZ5XPp0iXtd/LQoUPlKuPWrVvUp08fkkgktHTpUp3P15MnT2jixIkkEolo\n0qRJxT4rhnTw4EGSSqXUvHlz+vPPP7Xrw8LCyMHBgV5//fVSfx7v3r1Lnp6eJBaLaeHChTrBNTOT\naM6cgn1zcojS0tSvFQqijAyDnVKlwIGwFJRKJYWEhJClpSV16tSp2A+xUqmkzZs3k7W1NVlbW9P2\n7dtfGDAvXrxIHTt2JEtLS9q4caNOM1tSUhINHTqUatWqRd98881zn3+lpqbSF198Qebm5jRw4ECK\niYkp0zmpVCraunUrWVlZUbt27ejMmTMvfU9UVBTt2bOHdu06TFeuEOXnl66uZ8+IIiKI9u6NonPn\nzlFubm6p3peXl0crV64kS0tLcnR0pP3797/0PWFhYWRtbU12dnZ09OjR0h1gIUlJSfTxxx+TSCSi\njz766LlNZ3K5nJYtW2aQ5mwmrJ49e9Knn35qkObLXbt2UZMmTcjR0bHYM+Lz589T27Zt6ZNPPtG7\nnhfJycmhRYsWkVgspl69elHXrl2pbt26z20Jepm9e/dSy5YtydX1XTpwoOR99uwhataMSCYjunNH\n3fJTnXAgLIPU1FQaP348iUQimjJlCqWnp9OhQ4fIxcWFLCwsKCgoSOfB+osolUoKDg4mCwsL6tat\nG0VHR+ts379/P0mlUmrZsiXt27dPu14mk9HixYvJwsKCOnToUOzLWFbp6en05ZdfkpmZGY0bN45S\nU1OL7RMfH09eXl7aK97yNqkeP36CHB0dqUmTJrRr167n7qdSqSg0NJSkUilZWVnRhg0bynTHlZ2d\nTbNnzyZzc3P68MMPS3W86enpNGPGDO2PS2RkZKnrY5Vb165dKTg4mIjUz9yOHDmi1wVMVlYW+fr6\nkpmZGX388cc6n6+TJ09S/fr19T3kUklMTCRXV1fq27ev3o85ZDIZBQVdpVq1iIYNIyp6/bdnD9Fn\nnxEFBnIgZP86e/Ysubi4kLW1NZmbm5Ovr69OM2dZpKSk0CeffEJmZmY0bdo0yszM1G6TyWS0YMEC\nEovF5OnpScuWLSNra2tq3rx5sQ4b+oqMjKQuXbpQw4YNae3ataRUKiklJYV8fHxIJBKRl5dXme86\nS5KXl0dLly4liURCffr0oVu3bulsP3nyJLm6upJEIiF/f3/Kzs4ud12xsbHUo0cPevXVV+k///lP\nicE0Ly+PgoKCyNLSkpycnIp1imBVn5OTkzYQZmRkEAC6c+eO3uVev36dunfvThYWFtrvxuHDh40W\nCImI+vfvTwEBAdrltLQ0vZrpb90i6tuXSCIhWrGiYH1JvcOrEw6E5SSXy6lhw4a0YcMGg5R36tQp\ncnJyIisrK9q+fbvOtoSEBHrnnXdIKpUW67BhSEqlktatW0eWlpbUtm1bkkgk5OrqSidPnjR4XUlJ\nSTRs2DCqVasWzZ8/n65cuaK96/Tx8aGUlBSD1aVpAm7bti2dPn2aiNR3ndu3b6eWLVtS06ZNacOG\nDYL1/GMVy8nJibb826Pr8ePHBOCFvUXLQqVS0R9//KG9KN23bx81atTIIGWXhpubm04gBEDXrl3T\nu9xdu4gcHAqWS+odXp1wINRD/fr1tQ/fHz9+TEuWLNGrPLlcTsuXLyeJREI9e/akmzdvarcFBweT\nk5OTXuWXVmpqKu3cuZN27dpl0LvOkhw4cICkUim1atWKvLy8StU9vDwKj//y9PSkDh06kIWFBfn7\n+xttHCKrGLa2trRt2zYiUl+AARBsrNy+ffvI2tpakLJL4ubmRmvWrCEi9bNDQwVCIqLCjTEl9Q6v\nTjg7r540yazj4+MxZ84czJ49u9xliUQiTJ8+HR9++CGmT5+OTp064e7du2jYsCEA48xhCKhnQS86\nsaxQ+vfvj2vXrkGhUODVV18VrJ769etjxYoVGDt2LLZt24ZmzZrh4MGDBpkXkFVuubm5xSbCFuq7\nZMw8woB6ZnvNdEqaWe4NNX1T4Xl7hwwpeL15s0GKr1Q4EOqh6CzShprxuUmTJggNDcWdO3e0QTA/\nP98os9pXBGPOl+fs7AxnZ2ej1ccqB03g0zdd2csQkVFnesnNzS0224hQ9R8+DEycCFTHPN0mm2vU\nEFQqlfZHXIgZn1u0aKF9nZOTwzOMM1YOhSfC1iS8F2oaNIVCIeiEuiXRXIAXvTA3NLlcnT+4OuJf\n1nLSfKE0c9EZY8ZnIZsOGauuFAqFNvBpEmkLNTF24aBrDIXvcDXnJlQLi1wOVNNGKQ6E5VVSE4uQ\nMz4b+wvGWHVBRNrAJ/RdE6B+Hm0sSqVSG/iKXpwbmlyehebNhf/7VQQOhHrSBD+hZ3xWKBSCXcUy\nVp0V7cAiZMtKbm6uYGWXRKVSaQOf0M8/5fK9SE/vJmgdFYUDYTlpemhpmkPz8/MFfTZARII912Cs\nutN0lsnLyxP0WXteXp5RnxGWdIcrVMuUTCYTpNzKgANhOWmu/Ap3kBGyt5ixu2UzVh1oZl7X9Lgu\naSiFoRmz1yhQEPiKXpwbmlwuF6zZtaJxINSTpseWMQIVd5ZhrGw0jywK3wUacgxhTk4Ojh07pl02\nxjPIwgqPIzRGkDfmUCdj4kBYTkXb44UeP5Sfn8/DJ1i1IfQz9aI0F5GOjo747rvv9C5PpVJh48aN\nkEqlmDp1KuRyuXa9MYNF0XGEhk4U8Pfff2tfZ2ZmGrTsyoR/Wcup6HgkpVIp6LOBnJycajugnpmW\nO3fuoGnTpvjhhx+gEHhg2rlz51C3bl3cunULgHps7pgxY/Qq8+DBg2jbti1mz56NGTNmIDIyUvvd\nVyqVRm8+1LRKNWzYEB988IFByoyNjcWQIUPQtm1bnWeDhkoaUtlwICynouORDN1j69KlS9i6davO\nOmOlWGNMSC1atMCPP/6IZcuWoX379jhz5ozB6/jrr78watQovPfee+jcuTMGDBiA6dOn6/U9jYqK\nQs+ePTF06FAMHDgQCQkJ+Oqrr7SBb8+ePdizZw+uXLmCI0eOGOpUnuvhw4cACh7LODo6IiQkRO8y\nP//8c7Rr1w6vvPIKLly4oG3pEiJpSGXBgbCcij4LGDt2LFavXq13ubdv38aoUaPQpUsXXLx4Ubue\nxxGy6mTkyJGIi4tDz5490bNnT4wdOxapqal6l/vkyRP4+vrC0dER6enpiIqKwrFjx3D06FEcPnwY\ndnZ2CA0NLVOZycnJGDVqFDp16oSmTZsiLi4OS5cuhYWFBQDg/Pnz6N69O8aMGYNhw4Zh0KBBeO+9\n9/DBBx/oNC0ailwuR3BwMNq2bQt7e3t4eXlh06ZNIKJyl5mdnY2FCxfC1tYWV69exenTpxEWFgap\nVApA/Tc4deoUWrdubajTqFwqNOV3FSWTyeiLL74gqVRKR44cMUiZqamp5OvrS+bm5uTh4UFXr17V\n2e7h4UELFy40SF2MVSbR0dHUtWtXsrCwoODgYFKVYzosmUxGgYGBZGFhQS4uLnT06NFi+8jlcgoM\nDCSJREK9e/emuLi4F5aZnp5Ovr6+VKtWLerbt2+xyZoTEhJo+PDhZGZmRp9++qnO5LhxcXHUq1cv\nkkgkFBQUpNccgRoqlYrCwsK0E1avXbuW8vLyaPXq1WRhYUFubm7FfjdeRi6X008//URWVlYklUop\nLCxMZ3t6ejp9/fXXJBaLyd3dnZKTk/U+j8qIA2EZKJVK2rBhA1lbW1OLFi1o9OjRZZoFvSTqmaGD\ntF/gooH18ePH5OPjQ40aNSo2iz1j1YVKpaINGzbQB+7uRB07EpVlaqxff6VfBw0ia2tr2rp160vn\nlbx37x4NHz6czM3N6euvvy5xGq69e/dSgwYNyNnZudhkzampqfTFF1+Qubk5DRw48IUTVu/YsYOs\nrKyoTZs2dOrUqdKfUxFnz57VTli9cOFCysrK0tn+6NEjGjNmjHaC73/++eelZe7Zs4ccHR3J0tKS\n1qxZoxOs8/LyaNWqVWRpaUmOjo60b9++ch97VcCBsJTCw8OpXbt21LBhQ53JcQvPgv7DDz+U+spP\nqVTS1q1bydramqytrWnLli06X2CZTEb+/v7ayXFPnDghyHkxVqk8fUr02WdE16+Xbv+sLCILC3q2\nahXl5OSUqapDhw6RjY0NNW/enP744w+dbYmJibRx48Zi38nFixeThYUFdejQgY4fP17KQ8yi0NBQ\nmjvXjzZtUlApYpRWSgrR9u0X6PPPP6egoKCXXnCfPHmS2rRpQ1ZWVrRz584S97l69Sq9++67JBaL\nad68eTpBVaVS0a5du7R3nevXrzfI3Wxlx4HwJR49ekQ7d+6koKAgWrp0KaWnp5e4X+FZ0M+cOfPC\nMo8ePUouLi5kYWFBgYGBOlekmrtOTVPFzp07BZ8cl7FK59kz3WWlkigmhujxY931OTnq4FlOubm5\n9O2335JYLKZBgwbR7du3i+1TuCWoefPmtH379kr9nZTL5RQUFEQSiYR69epVrAk4OjqavL29iwXV\nU6dOae86/f39i911VmccCA0oIyODvvzySzIzM6OxY8dSampqsX0WLFhA5ubmNH369GLbw8PDtU0V\nK1as0N51MmbS0tOJhgwhCg4m+vJLopAQg1fx119/0XvvvUdisZi+/fZb7XfveS1B+srJIUpLU79W\nKIgyMtTrNPFfoVCftj7u37+vbQKeO3cuPSt6cfGv2NhY8vLyIpFIRD4+PvTo0SP9Kq6COBAKICoq\nirp06UINGjSgtWvX6jSv/PXXX5SYmKizf2RkJLm7u5NYLKbZs2c/966TMZO0dClR4abLXr2IBGqu\n+/3336lZs2bUqlUr6tatG9WuXZt8fX0N/p3cs4eoWTP1o9A7d4h8fdXrfvlFvf3ePaLJkw1T1+HD\nh8nGxoaaNWtGv//+u3b9gwcPaNKkSSQSicjLy+ulnYeqM9MbPpGbC2gGiCqVQEaG+rVKBcTGAgbo\nwu3s7Iz//e9/CAwMhJ+fH1xdXXHlyhUAQMuWLdGqVSsABd2y3377bTRr1gxxcXFYsmSJtls2YwzA\nnTuAnV3B8htvAGlpglTl6emJmzdvYvz48ejXrx/i4+MRFBQkyHfSwwMoOuJKpVJPfvtvvg6D6NOn\nD27cuIHx48dj5MiRGDhwIHx9fWFra4uoqCicPHkSYWFhsCv8NzYxphcIDx4Edu1Sv374EPDzUwfD\nYcOAkycBf39g3Tq9q6lRowbGjx+PuLg4ODs7w9XVFZMnT0ZGRgYyMjIwY8YM2NjYIC0tDZcuXcKm\nTZtgbW2td72MVTv29kB0dMHygweApaVg1YnFYsyZMwfz588X9Dvp5gbcuAEUzly2cycwYwZggCxw\nOszNzeHn54eYmBhkZ2fj0KFD2Lx5M86ePYuuXbsatrIqqHqmCXiZopddISHAuHHA4MHq5d691csG\nyKLw2muvISQkBJ9++ikmTZoEGxsbyOVytGzZEn/88Qc8PDz0roOxam3CBGDiROD6deD+fWDKFKCa\n5N319QWCgoDXX1cvjxoFjB2rPs0lSwxfX4sWLdC/f3+cOXMGQ4cONXwFVZRpBsKdO4Fr14DsbKB2\nbXXTi6dnwXZN04vm02kAnTt3xqVLl3D06FHIZDJ4enpyEm3GSqNOHWDrVvWtU506gBHn+xNa27aA\nQLMmPZexZ8ioCkwzEBa97NI0vWjayAVqeqlZsyb69etn8HIZMwn161f0ERjMkCEFrzdvLr79rbeK\nPz80FGPPkFEVmGYgLKoaN70wxlhhKpWq2k6wW141iPTI1FrdVMOmF8YYK8zHxweZmZnYtm1bRR9K\npcF3hIVVo6YXxhh7nnr16lX0IVQq3P7HGGMmJC8vDzWM3UOnkuNAyBhjJiQ3Nxc1a9as6MOoVDgQ\nMsaYiZFIJBV9CJUKB0LGGDMh2dnZFX0IlQ4HQsYYMyFKpRK1a9eu6MOoVDgQMsaYCSEi1KpVq6IP\no1LhQMgYYybkn3/+qehDqHQ4EDLGmImRyWT46quvkKGZhs7EcSBkjDETIpPJoFQqcfz4cTg6OmLb\ntm0w9QRjHAgZY8wExMbGwtPTEykpKfjss89w+fJlzJo1Cz4+PujZsydiY2Mr+hArDAdCxhirxh4+\nfIjPPvsMzs7OICJMnjwZb731FkQiEaZNm4a4uDhYWVnBxcUFs2fPNsnhFRwIGWOsGsrOzsaCBQtg\na2uL69ev49SpU5g3bx7+85//oHPnzrh8+TIAwMrKCtu3b0d4eDj27t2L5V5ewG+/VfDRGxfPPsEY\nY9WIUglERCRh/fpZEIvFmDBhArp166bdnpaWhrlz52Ljxo0YP348AgICYGFhAQDIz89HbnAw6t2+\nDUilwIgRBp2gvLLiQMgYYybo4sWLmDRpEu7du4dly5ZhzJgxJpuMm5tGGWOsEsvNBWQy9WulEtCM\neLh9G7h3r2Cf9PSCfTIzX15up06dcOnSJXzzzTeYNm0apgwZop6c3ATxHSFjjFViv/+uDn5jxwL3\n7wNLlgD9+gExMcDjx0CLFkDTpsC0acDNm0BKCrB6NRAUVPo6UlJSkLdsGaxXrQKmTAH+85+CjSoV\nEBcHNGqk/lcN8R0hY4xVcioVoFCo7/YAYNAgYM4c4NtvgbNn1es8PNQBsDwaN24M66Ag4OhR4PDh\ngg0ZGcCwYcDJk4C/P7BunV7nUVnxDPWMMVbJ7dwJXLsGZGcDmnzZRMCsWcCMGeomUjc34MgRoG9f\nPSrq3h2Iji5YDgkBxo0DBg9WL/furV4WVa/QwXeEjDFWyY0aBaxYASxcWLBuxgz1zVqHDgXrfH2B\n5cv1rKxwkLtzB7CzK1h+4w0gLU3PCiqf6hXWGWPMBISEABERQF4ecOMG0KyZen3btoBBO37a26vv\nEDXB8MEDwNLSgBVUDtxZhjHGWMlkMmDiRKB5c3VPncGDgaFDK/qoDI4DIWOMsRfLzATq1AHMzCr6\nSATBgZAxxphJ484yjDHGTBoHQsYYYyaNAyFjjDGTxoGQMcaYSeNAyBhjzKRxIGSMMWbSOBAyxhgz\naRwIGWOMmTQOhIwxxkwaB0LGGGMmjQMhY4wxk8aBkDHGmEnjQMgYY8yk/R/EOQNsdnI8lgAAAABJ\nRU5ErkJggg==\n",
"prompt_number": 135,
"text": "<rdkit.Chem.rdchem.Mol at 0x6c81ec0>"
}
],
"prompt_number": 135
},
{
"cell_type": "markdown",
"metadata": {},
"source": "And these are its most important features, based on their enrichent in PDE4B actives in ChEMBL. The legend is the Bayesian score for each feature. "
},
{
"cell_type": "code",
"collapsed": false,
"input": "Draw.MolsToGridImage(fmols, molsPerRow=5, legends=legends)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"png": "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\n",
"prompt_number": 136,
"text": "<PIL.Image.Image image mode=RGB size=1000x400 at 0xC287830>"
}
],
"prompt_number": 136
},
{
"cell_type": "code",
"collapsed": false,
"input": "",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 136
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment