{ "metadata": { "name": "", "signature": "sha256:4cb31ce29842824c7265592bdbb9e233aa4108e94dc9e37fd476a72a712cda80" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "# Some nice default configuration for plots\n", "plt.rcParams['figure.figsize'] = 10, 7.5\n", "plt.rcParams['axes.grid'] = True\n", "plt.gray()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The problem with weighting the interactions in the curated edgelist we are using to build our protein-protein interaction network is that the classifier is not perfect and is supplying extremely low probabilities for interactions which we expect to exist.\n", "We can encode this prior into our model by considering inclusion in a database, the edgelist and the result of classification to both be events that are dependent on an underlying interaction event.\n", "If we assume the events are also conditionally independent then we have a Naive Bayes model.\n", "\n", "Specifically, if we have $I$ as interaction $c$ as classifier result and $e$ as edgelist inclusion result the joint can be expressed:\n", "\n", "$$\n", "p(I,e,c) = p(I) p(e|I) p(c|I)\n", "$$\n", "\n", "Where the individual distributions are:\n", "\n", "$$\n", "p(I=1) = Bernoulli(I=1;\\theta_{I}) = \\theta_{I}\n", "$$\n", "\n", "$$\n", "p(e|I=1) = Bernoulli(e;\\theta_{e}) = \\theta_{e}^{e}(1-\\theta_{e})^{1-e}\n", "$$\n", "\n", "$$\n", "p(c|I=1) = Beta(c;\\alpha,\\beta) = \\frac{1}{B(\\alpha,\\beta)} c^{\\alpha-1}(1-c)^{\\beta-1}\n", "$$\n", "\n", "There are parameters we need to find to be able to use this model: $\\alpha, \\beta, \\theta_{I}, \\pmb{\\theta_{e}}$.\n", "We can easily get two of these:\n", "\n", "* $\\theta_{I}$ - We know that the frequency of interactions to non-interactions is approximately one in 600, so we will simply set this to $\\frac{1}{600}$.\n", "* $\\pmb{\\theta_{e}}$ - This is a set of values corresponding to the different databases we will be including in our estimate:\n", " * STRING - provides confidence value\n", " * iRefIndex - can use conservative estimate of $1-1/100$ to estimate that at most every one in 100 interactions are incorrectly classified\n", " * edgelist inclusion - the edgelist itself is constructed from various databases, so we can again use a conservative estimate of $1 - 1/100$\n", "* $\\beta$ and $\\alpha$ - We cannot easily solve to get the [Maximum Likelihood][bml] for a Beta distribution from first principles. However, this is implemented in [scipy.stats][scbt].\n", "\n", "First we have to load the data:\n", "\n", "[bml]: http://en.wikipedia.org/wiki/Beta_distribution#Maximum_likelihood\n", "[scbt]: http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.beta.html" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import scipy.stats" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "cd ../../forGAVIN/mergecode/OUT/" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/data/opencast/MRes/forGAVIN/mergecode/OUT\n" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "interactions = loadtxt(\"edgelist_weighted.txt\",dtype=str)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "interactions = interactions[1:]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "weights = interactions[:,2]\n", "weights = weights.astype(np.float)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, finding the indexes of positive and negative examples:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pickle" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "#unpickle classifier's samples\n", "f = open(\"../../../features/random.forest.bayes.dist.samples.pickle\")\n", "samples = pickle.load(f)\n", "f.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "h = hist(samples[1][:,1],bins=50)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nuyhZAAAAFlCyYIy5At3ITzfy04vs3EXJAgAAsICSBWPMFehGfrqRn15k5y5KFgAAgAWULBhjrkA3\n8tON/PQiO3dRsgAAACygZMEYcwW6kZ9u5KcX2bmLkgUAAGABJQvGmCvQjfx0Iz+9yM5dlCwAAAAL\nKFkwxlyBbuSnG/npRXbuomQBAABYQMmCMeYKdCM/3chPL7JzFyULAADAAkoWjDFXoBv56UZ+epGd\nuyhZAAAAFlCyYIy5At3ITzfy04vs3EXJAgAAsICSBWPMFehGfrqRn15k5y5KFgAAgAWULBhjrkA3\n8tON/PQiO3dRsgAAACygZMEYcwW6kZ9u5KcX2bmLkgUAAGABJQvGmCvQjfx0Iz+9yM5dlCwAAAAL\nKFkwxlyBbuSnG/npRXbuomQBAABYQMmCMeYKdCM/3chPL7JzV78la+nSpZsDgUDblClT9kc+1t7e\nnpyXl7d7/Pjxh+bMmVN19OjRpMjn1q9ff3d6enr9hAkT3qmqqppjc+EAAADxrN+SdccddzxZWVk5\nr+/HSktL1+Tl5e0+dOjQ+FmzZr1QWlq6RkSkrq4uY+vWrbfU1dVlVFZWzlu5cuXGnp4ezpSdRZgr\n0I38dCM/vcjOXQn9ffKaa675UzgcTuv7sYqKivy9e/deJyJSVFRUlpubGyotLV2zc+fOGwsLC7ck\nJiZ2paWlhceNG/dedXV1dk5Ozr4v3/NjInLwxPtJIpIpIrkn9kMn3vbuh8NhCYVCn59ujXyzss8+\n++yzz76G/Yh4WQ/7vfsioRNvT96PvB+WwfJ83+/3gHA4nHbDDTf85/79+6eIiIwYMaKjo6NjhIiI\n7/tecnJye0dHx4hVq1ZtyMnJ2bdkyZJnRESWL1/+xPz583ctWrTo2S88oOf5IuUicovB8kqkuFik\npKRkIM8NAADgSzzPE5H++0+fo8X3fW8gjzNsIDf6/GE9z+8tTaf+/GDuHwAAQKuoS1YgEGhrbW0d\nLSLS0tIyZtSoUR+IiASDwebGxsbUyHFNTU0pwWCweeiWilg7+dQ3dCE/3chPL7JzV9QlKz8/v6Ks\nrKxIRKSsrKxo4cKFOyIfLy8vX9zZ2XluQ0PD2Pr6+vTs7OzqoV4wAACABv0OvhcWFm7Zu3fvdUeO\nHBmZmpraeP/99//bmjVrSgsKCrZt2rRpWVpaWnjbtm0FIiIZGRl1BQUF2zIyMuoSEhK6N27cuJKX\n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\n1tTUZA31WjBwp7ve2TPPPLNk2rRpb06dOvWtq6666sW33npraizWiS8zvVbdq6++ekVCQkL37373\nu5vP5PrQP5P8QqFQblZWVs3kyZPfzs3NDZ3hJeIUTpfdkSNHRs6bN68yMzOzdvLkyW//6le/uj0G\ny8RXWLp06eZAINA2ZcqU/ac6ZkCdxff9Id+6u7vPufTSS99raGhI6+zsTJw2bVptXV3dxL7H/P73\nv18wf/7853zfl3379s2YMWPGPhtrYbOT30svvXTl0aNHL/J9X3bt2jWP/OJjM8kuctzMmTP/3/XX\nX/9/f/vb3y6K9brZzPPr6OhIysjIONDY2Jji+758+OGHI2O9bjaz7IqLi0vWrFmzPpJbcnLy37q6\nuhJivXY2X/74xz9e88Ybb2RNnjx5/1d9fqCdxcqf1TG5XlZFRUV+UVFRmYjIjBkzXjl69GhSW1tb\nwMZ6EB2T/K688sqXL7roor+L9ObX1NSUEpvVoi/Ta9Vt2LBh1be+9a3fXnzxxR/GYp34aib5/eY3\nv7l10aJFz0Z+qWjkyJFHYrNa9GWS3ZgxY1o++uij4SIiH3300fCvf/3rf0tISDC70i2suuaaa/40\nYsSIU16kbKCdxUrJ+qrrZTU3NwdPdwz/o44PJvn1tWnTpmULFix47sysDv0x/W9v586dN37nO995\nTMTs0is4M0zyq6+vT29vb0+eOXPmnunTp7/261//+rYzv1KczCS7FStW/PLAgQOTLrnkksPTpk17\n8+GHH/7+mV8pBmKgnWVIB98jTP/R9k+6Zhb/2MeHaHLYs2fPzM2bNy998cUXr7K5JpgxyW716tU/\nLy0tXeN5nu/7vnfyf4eIHZP8urq6Et94443//sILL8z65JNPzr/yyitfzsnJ2Zeenl5/JtaIr2aS\n3bp169ZmZmbWhkKh3L/85S+X5uXl7X7zzTenXXjhhcfOxBoxOAPpLFZKlsn1sk4+pqmpKSUYDDbb\nWA+iY3q9s7feemvqihUrfllZWTmvv9OsOHNMsnv99dcvX7x4cblI7yDurl275icmJnZxuZXYM8kv\nNTW1ceTIkUfOO++8T88777xPr7322j+++eab0yhZsWWS3UsvvfQ/7rnnnv8jInLppZf+ZezYsQ3v\nvvvuZdOnT3/tTK8X0RlwZ7ExQNbV1ZXwzW9+8y8NDQ1p//znP8893eD7yy+/nMPgdPxsJvn99a9/\n/call1763ssvv5wT6/WyRZdd3+32229/8tlnn7051utmM8/v4MGDE2bNmvV8d3f3OcePHz9/8uTJ\n+w8cOJAR67W7vplk94Mf/OBnJSUlxb7vS2trayAYDDb97W9/S4712tl6t4aGhjSTwfdoOouVM1mn\nul7W448/fqeIyJ133vn4ggULnnvuuecWjBs37r2vfe1rx5988sk7bKwF0TPJ7/777/+3jo6OEZG5\nnsTExK7q6urs2K4cJtnFeo04NZP8JkyY8M68efMqp06d+tawYcN6VqxY8cuMjIy6WK/ddSbZrV27\ndt0dd9zx5LRp097s6ekZ9pOf/ORHycnJ7bFeO0QKCwu37N2797ojR46MTE1NbbzvvvuKu7q6EkUG\n11k832cMCgAAYKhZ+e1CAAAA11GyAAAALKBkAQAAWEDJAgAAsICSBQAAYAElCwAAwIL/D1h+UquO\nkAtEAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "h = hist(samples[0][:,1],bins=100)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAmwAAAHACAYAAAAfozQtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X9cVHW++PH3tJDVFoxQgjEkBkNGIBAKtGt3aRFE14C+\nlMjtIirtY69eW2373q9l21XTTfou3c1qbe/dcEXcRC9dle4mwhpmv4SF1XKllrEv6DAiJYLRmiJx\nvn+4ZxeZT0g1Dcfj6/l4zOPBOcNMh9eDbd/NvAGLpmkCAAAA47pipC8AAAAAQ2NgAwAAMDgGNgAA\nAINjYAMAADA4BjYAAACDY2ADAAAwuGENbJ9//vm34uPj9999992viIicPHkyIC0trSYyMrI5PT29\nuru726p/7po1ax612+2OCRMmfFBdXZ2un29sbEyIiYk5aLfbHYsXL16rnz979uyo3NzcLXa73ZGc\nnLzvyJEj4/T7SktLCyIjI5sjIyObN27cOMczXzIAAMClZVgD29q1axdHRUU1WSwWTUSkqKjokbS0\ntJrm5ubI1NTU3UVFRY+IiDQ1NUVt2bIlt6mpKaqqqipj4cKF6zRNs4iILFiw4IWSkpJCh8Nhdzgc\n9qqqqgwRkZKSksLAwMBOh8Nhf+ihh36xdOnSp0TOD4VPPPHEv9XX1yfW19cnrly5cvnAwRAAAOCy\noWnakDen02lLTU39/WuvvXbXzJkzX9E0TW655ZYPjh8/HqRpmrS3twffcsstH2iaJk8++eSjRUVF\nS/XHTps2reqdd95JPnbs2NgJEya8r5/fvHnz7B/96Ee/0j9n3759SZqmyblz53yuv/76jzVNk5de\neinvn//5n1/QH/OjH/3oV5s3b5498NpEROPGjRs3bty4cbtUbhebu77odtFX2B566KFf/PznP//X\nK664ol8/19HRERQUFNQhIhIUFNTR0dERJCJy7NixG202W5v+eTabrc3lcoUMPh8SEuJyuVwhIiIu\nlyskNDTUKSLi4+PT5+/vf6qzszPwi55r8PV91S/czLfly5eP+DUY8UYXutCELnShy0jevo4hB7b/\n+Z//mTlmzJiP4uPj92t/fWtzMIvFoulvlcIYWltbR/oSDIkuanRxRxM1uqjRRY0unjXkwPb2229/\np7KyMnP8+PEteXl5m1977bXv5+fnlwUFBXUcP348WESkvb197JgxYz4SOf/KmdPpDNUf39bWZrPZ\nbG0hISGutrY22+Dz+mOOHj16k4hIX1+fz6lTp/wDAwM7Bz+X0+kMHfiKGwAAwOViyIHtySefXOZ0\nOkNbWlrGl5eXz/7+97//WllZWX5mZmZlaWlpgcj5n+TMzs7eLiKSmZlZWV5ePru3t/fKlpaW8Q6H\nw56YmFgfHBx83M/P75O6urokTdMsZWVl+VlZWTv0x+jPVVFRcW9qaupuEZH09PTq6urq9O7ubmtX\nV9fompqatGnTpu36ZnOYw9y5c0f6EgyJLmp0cUcTNbqo0UWNLh423Pdd9+zZ87277767UtM06ezs\nDEhNTf293W5vTktLq+7q6rLqn/ezn/1sWXh4+OFbbrnlg6qqqmn6+YaGhoTo6OiD4eHhhx988MFn\n9fNnzpwZdd99922NiIhwJCUl7WtpaQnT71u/fv28iIgIR0REhGPDhg0FiveCNQAAgEuBfI0fOrBo\nX3MJbiRZLBbtUr7+b8qePXskJSVlpC/DcOiiRhd3NFGjixpd1OjizmKxiPYFPxNwMT6evhhve+ut\nt+Tzzz+/4JzFYpHExEQZNWrUCF0VAACA51zyr7BdeeV1cvXVcRecP3PmkPzXf22Qu+++e4SuDAAA\n4EKX9StsV18dK6dO7b3gnJ9ftturbgAAAJcq/vi7Ce3Zs2ekL8GQ6KJGF3c0UaOLGl3U6OJZDGwA\nAAAGd8nvsPn7T5FTp9644LyfX7aUls6V7OzsEboyAACAC32dHTZeYQMAADA4BjYTYm9AjS5qdHFH\nEzW6qNFFjS6excAGAABgcOywAQAAeAE7bAAAACbGwGZC7A2o0UWNLu5ookYXNbqo0cWzGNgAAAAM\njh02AAAAL2CHDQAAwMQY2EyIvQE1uqjRxR1N1OiiRhc1ungWAxsAAIDBscMGAADgBeywAQAAmBgD\nmwmxN6BGFzW6uKOJGl3U6KJGF89iYAMAADA4dtgAAAC8gB02AAAAE2NgMyH2BtTookYXdzRRo4sa\nXdTo4lkMbAAAAAbHDhsAAIAXsMMGAABgYgxsJsTegBpd1OjijiZqdFGjixpdPIuBDQAAwODYYQMA\nAPACdtgAAABMjIHNhNgbUKOLGl3c0USNLmp0UaOLZzGwAQAAGBw7bAAAAF7ADhsAAICJMbCZEHsD\nanRRo4s7mqjRRY0uanTxLAY2AAAAg2OHDQAAwAvYYQMAADAxBjYTYm9AjS5qdHFHEzW6qNFFjS6e\nxcAGAABgcOywAQAAeAE7bAAAACY25MB25syZq5KSkuri4uIOREVFNT366KNrRERWrFixwmaztcXH\nx++Pj4/fv3Pnzun6Y9asWfOo3W53TJgw4YPq6up0/XxjY2NCTEzMQbvd7li8ePFa/fzZs2dH5ebm\nbrHb7Y7k5OR9R44cGaffV1paWhAZGdkcGRnZvHHjxjme/dLNi70BNbqo0cUdTdTookYXNbp4ls9Q\nd1511VVnamtr77rmmmtO9/X1+UyZMuXNN998c4rFYtF+8pOf/PtPfvKTfx/4+U1NTVFbtmzJbWpq\ninK5XCFTp079vcPhsFssFm3BggUvlJSUFCYmJtbPmDHj1aqqqoyMjIyqkpKSwsDAwE6Hw2HfsmVL\n7tKlS58qLy+fffLkyYAnnnji3xobGxNERBISEhozMzMrrVZr9zcZBAAAwGgu+pboNddcc1pEpLe3\n98rPP//8W6NHj+4SEeV7sDt27MjKy8vb7Ovrey4sLKw1IiLicF1dXVJ7e/vYnp6e6xITE+tFRObM\nmbNx+/bt2SIilZWVmQUFBaUiIjk5OS/v3r07VURk165d09LT06utVmu31WrtTktLq6mqqsrw3Jdu\nXikpKSN9CYZEFzW6uKOJGl3U6KJGF88a8hU2EZH+/v4rbr/99j9++OGH4QsWLHjhtttuO1RRUXHv\nc8899+DGjRvnTJo0qeHpp59+2Gq1dh87duzG5OTkffpjbTZbm8vlCvH19T1ns9na9PMhISEul8sV\nIiLicrlCQkNDnSIiPj4+ff7+/qc6OzsDjx07duPAx+jPNfj6Tp9uFpEVfz2yikjc3+7TX47Vv2k4\n5phjjjnmmGOOvXWsf9za2ipfm6Zpw7p1d3f7JyUl7autrU3p6OgY09/fb+nv77c89thjq+fPn1+i\naZosWrTouU2bNt2vP6awsPDFioqKnIaGhoSpU6fW6Of37t1758yZM1/RNE2io6MPulyuG/X7wsPD\nD584cSKwuLj44dWrVz+mn1+1atVPi4uLHx54TSKi+ftP0US0C25+flnatm3btMtVbW3tSF+CIdFF\njS7uaKJGFzW6qNHF3fmxa3hz1+DbFcMd7Pz9/U/94Ac/+F1DQ8OkMWPGfGSxWDSLxaI98MADL9bX\n1yeKnH/lzOl0huqPaWtrs9lstraQkBBXW1ubbfB5/TFHjx69SUSkr6/P59SpU/6BgYGdg5/L6XSG\n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\n2AAAALyAHTYAAAATY2AzIfYG1OiiRhd3NFGjixpd1OjiWQxsAAAABscOGwAAgBewwwYAAGBiDGwm\nxN6AGl3U6OKOJmp0UaOLGl08i4ENAADA4NhhAwAA8AJ22AAAAEyMgc2E2BtQo4saXdzRRI0uanRR\no4tnMbABAAAYHDtsAAAAXsAOGwAAgIkxsJkQewNqdFGjizuaqNFFjS5qdPEsBjYAAACDG3Jgmz9/\n/vqgoKCOmJiYg/q5kydPBqSlpdVERkY2p6enV3d3d1v1+9asWfOo3W53TJgw4YPq6up0/XxjY2NC\nTEzMQbvd7li8ePFa/fzZs2dH5ebmbrHb7Y7k5OR9R44cGaffV1paWhAZGdkcGRnZvHHjxjme+5LN\nLyUlZaQvwZDookYXdzRRo4saXdTo4llDDmzz5s37TVVVVcbAc0VFRY+kpaXVNDc3R6ampu4uKip6\nRESkqakpasuWLblNTU1RVVVVGQsXLlynL9YtWLDghZKSkkKHw2F3OBx2/TlLSkoKAwMDOx0Oh/2h\nhx76xdKlS58SOT8UPvHEE/9WX1+fWF9fn7hy5crlAwdDAACAy4nPUHfeeeedb7S2toYNPFdZWZn5\n+uuvf09EpKCgoDQlJWVPUVHRIzt27MjKy8vb7Ovrey4sLKw1IiLicF1dXdK4ceOO9PT0XJeYmFgv\nIjJnzpyN27dvz87IyKiqrKzMXLly5XIRkZycnJcXLVr0vIjIrl27pqWnp1dbrdZuEZG0tLSaqqqq\njNmzZ5cPvsbTp5tFZMVfj6wiEve3+/T3z/Up/3I51s8Z5XqMcvzMM89IXFycYa7HKMf6OaNcjxGO\nB7cZ6esxyvGBAwdkyZIlhrkeoxzz/cL3yxcd6x+3trbK16Zp2pC3lpaWsOjo6IP6sdVq7dI/7u/v\nt+jHixYtem7Tpk336/cVFha+WFFRkdPQ0JAwderUGv383r1775w5c+YrmqZJdHT0QZfLdaN+X3h4\n+OETJ04EFhcXP7x69erH9POrVq36aXFx8cODr01ENH//KZqIdsHNzy9L27Ztm3a5qq2tHelLMCS6\nqNHFHU3U6KJGFzW6uDs/dg09d33R7YqvM+xZLBbNYrFcur/IzaT0CR8XoosaXdzRRI0uanRRo4tn\nfemBLSgoqOP48ePBIiLt7e1jx4wZ85GISEhIiMvpdIbqn9fW1maz2WxtISEhrra2Ntvg8/pjjh49\n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\nU0+fPn3NHXfc8U5ycvI+u93u8MY1joQv8+/cV1555e4pU6a8abVaTf1HRofT5Mknn1wWFxd3YM+e\nPSkffvhheFpaWs27774be9111/V80WMM/wrbcH4X2+DPaWtrs4WEhLi8eZ3exu+oUxtul/fee2/i\nD3/4w19XVlZmjh49evh/n+wS9WW/X+688843+vr6fDo7OwO9c4XeN5wmjY2NCbNnzy4fP358y8sv\nv5yzcOHCdZWVlZnev1rvGU6X6667rueaa645LXL+B8POnTvne/LkSWP9jT4PG06X0NBQZ3p6evXV\nV1/9WWBgYOc//MM/7H333XdjvX+13vNl/t1SXl4+2+xvh4oMr8nbb7/9nfvuu++/RETCw8M/HD9+\nfMtF/wN5pJfzLnY7d+6cz8033/xhS0tL2NmzZ6+82A8dvPPOO8mXwxL5cLoMXG68XH7oYDhdjhw5\nclN4ePjhd955J3mkr9dIXQ4fPhze399v0TRNGhsbb7/55ps/HOnrHukmA29z5879zcsvv/y/Rvq6\njdDl+PHjQfr3Sl1dXeK4ceNaR/q6jdDl/fffn5Camvr7vr6+b/3lL3+5Jjo6+uChQ4eiRvraR7qL\npmnS3d3tHxAQ0Hn69OmrR/qajdDkoYce+vcVK1Ys17Tz/3sKCQlp6+zsDBjqeUf8CxvO7dVXX50e\nGRn55/Dw8MNPPvnko5qmya9+9asf/epXv/qR/jn/8i//8nx4ePjhiRMnvtvY2Hj7SF+zEbq0t7cH\n22w2p5+f3ymr1doVGhp6tKen59qRvu6R7lJYWPhiQEBAZ1xc3P64uLj9kydPrh/pazZCl6eeeur/\n3HbbbX+Ki4vbP2XKlDfq6+snj/Q1j3STgbfLZWAbTpfnn3/+X2677bY/xcbGHrjjjjvevlz+42c4\n3y8///nP/3dUVNSh6Ojog2vXrv3xSF+zUbps2LChIC8v76WRvlajNPn444+vnzlz5isTJ058Nzo6\n+uBvf/vbf7zYcxr6j78DAADgEthhAwAAuNwxsAEAABgcAxsAAIDBMbABAAAYHAMbAACAwTGwAQAA\nGNz/B11HqFA4UtJVAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "#regularisation samples\n", "posregsamp = scipy.stats.beta.rvs(1,1,size=10)\n", "negregsamp = scipy.stats.beta.rvs(1,1,size=10)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 82 }, { "cell_type": "code", "collapsed": false, "input": [ "idx1 = random_integers(0,len(samples[1][:,1])-1,size=1000)\n", "idx0 = random_integers(0,len(samples[0][:,1])-1,size=1000)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 90 }, { "cell_type": "code", "collapsed": false, "input": [ "alpha_1,beta_1,_,_ = scipy.stats.beta.fit(hstack([samples[1][:,1][idx1],posregsamp]))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 91 }, { "cell_type": "code", "collapsed": false, "input": [ "alpha_0,beta_0,_,_ = scipy.stats.beta.fit(hstack([samples[0][:,1][idx0],negregsamp]))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "/usr/local/lib/python2.7/dist-packages/scipy/optimize/minpack.py:237: RuntimeWarning: The iteration is not making good progress, as measured by the \n", " improvement from the last ten iterations.\n", " warnings.warn(msg, RuntimeWarning)\n" ] } ], "prompt_number": 92 }, { "cell_type": "code", "collapsed": false, "input": [ "x = linspace(0,1,500)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 93 }, { "cell_type": "code", "collapsed": false, "input": [ "b1 = scipy.stats.beta.pdf(x,alpha_1,beta_1)\n", "b0 = scipy.stats.beta.pdf(x,alpha_0,beta_0)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 94 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Have to use logarithmic scaling in the following plot to yield a readable graph:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot(x,b1,label=\"interaction\")\n", "plot(x,b0,label=\"non-interaction\")\n", "legend(loc=0)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 95, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAAHACAYAAACGW+2YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4lNXd//HPZAEBE5KwDFsgiERWCYqCCxjFUEQJVPxR\nbaWBIo+1WpdaNWj7aG2rca9LH2tR09RalWqLoEIJpMEFBWUVRJElLCGJYBIkIFnP749pYmCSEDJz\nJ3Nm3q/ruq/knszc5w6fKF/O+eaMyxgjAAAAtExYW98AAACAzSimAAAAfEAxBQAA4AOKKQAAAB9Q\nTAEAAPiAYgoAAMAHJyymSktLY6666qrXBw8evGXIkCGfrVq1anRxcXFcSkpKdmJi4tYJEyYsLS0t\njWmNmwUAAAg0JyymbrnllicnTZr0zpYtWwZv3LjxzEGDBn2ekZGRnpKSkr1169bE8ePHL8/IyEhv\njZsFAAAIOMaYRo/S0tLO/fv333H842ecccbnhYWFbmOMCgoKepxxxhmfH/8cSYaDg4ODg4ODw5aj\nqZqoqaPJmamdO3f279at2/5Zs2ZlnnXWWWvnzJkz7/Dhw52Kiorcbre7SJLcbndRUVGRu6HXt/Sm\nONr2uPfee9v8HjjIL1QP8rP3IDu7D180WUxVVVVFrF279qyf/exn/7d27dqzOnXqdPj4JT2Xy2Vc\nLpdvd4GAkpeX19a3AB+Qn93Iz15kF7qaLKb69Omzt0+fPnvPOeecjyXpqquuen3t2rVn9ejRo7Cw\nsLCHJBUUFPTs3r37V61xswAAAIGmyWKqR48ehfHx8Xu2bt2aKEnLli27dOjQoZsnT568KCsrK02S\nsrKy0qZOnbqgNW4WrWPmzJltfQvwAfnZjfzsRXahy3WidcINGzaMuO66656vqKhoN2DAgO2ZmZmz\nqqurw6dPnz5/9+7dfRMSEvLmz58/PSYmpvSYC7tcxtc1SAAAgNbgcrlkjHG16LVOFTwUU/bKzc1V\ncnJyW98GWoj87EZ+/hUXF6eSkpK2vg0EkNjYWBUXF3s97ksxFeHzXQEAEKBKSkp8/k0tBBeXq0X1\nUtPXZGYKABCs/jvb0Na3gQDS2M+ELzNTvDcfAACADyim4CU3N7etbwE+ID+7kR9gH4opAAAAH9Az\nBQAIWvRM4Xj0TAEAECSGDRumd999t61v46RFRUXx1jnHoZiCF3o27EZ+diO/0LFp0yaNGzfuhM9L\nSEhQTk5OK9yRt+TkZL3wwgvHPHbo0CElJCS0yf0EKoopAAACmC9LlcYYn5Y5ndiTKRhRTMELuy/b\njfzsRn6hIyEhQcuXL9d9992n6dOnKy0tTdHR0Ro2bJjWrFkjSZoxY4Z2796tyZMnKyoqSo8++qgk\n6aOPPtL555+v2NhYJSUlacWKFXXXTU5O1q9+9StdcMEF6tSpk3bs2KHMzEwNGTJE0dHRGjBggP78\n5z8fcy9vvvmmkpKS1LlzZ51++un697//rXvuuUfvvfeebrrpJkVFRenmm2+WJIWFhWnHjh2SpIMH\nD+rHP/6xunfvroSEBP3+97+vK97+8pe/6MILL9Qdd9yhuLg4nXbaaVqyZInjf65torZq9ffhuTQA\nAG3nRH8XSf45WiIhIcEsW7bM3HvvveaUU04xixcvNjU1NWbu3LlmzJgxxzxv+fLlded79+41Xbp0\nMYsXLzbGGJOdnW26dOliDhw4YIwx5qKLLjL9+vUzn332mamurjaVlZXm7bffNjt27DDGGLNixQrT\nsWNHs3btWmOMMatWrTKdO3c2y5YtM8YYk5+fbz7//HNjjDHJycnmhRdeOOa+XS6X2b59uzHGmBkz\nZpipU6easrIyk5eXZxITE+uen5mZaSIjI83zzz9vampqzLPPPmt69erVsj8sP2rsZ+K/j7eo5mFm\nCl7o2bAb+dmN/FqXv8opX7hcLo0dO1YTJ06Uy+XStddeqw0bNjT6/L/97W+aNGmSJk6cKEm69NJL\nNWrUKL399tt115s5c6YGDx6ssLAwRUREaNKkSerfv78kady4cZowYYLee+89SdILL7yg2bNna/z4\n8ZKkXr166Ywzzqj3Z9TwN1hdXa3XXntNDz74oDp16qR+/frp9ttv10svvVT3nH79+mn27NlyuVz6\n8Y9/rIKCAn311Vc+/GkFJoopAADamNvtrvu8Y8eOOnr0qGpqahp87q5du/SPf/xDsbGxdccHH3yg\nwsLCuufEx8cf85rFixdrzJgx6tKli2JjY/XOO+/o66+/liTt3btXAwYMaPTeGuubOnDggCorK9Wv\nX7+6x/r27av8/Py68x49ehzzfUlSWVlZo2PZijc6hhd6NuxGfnYjPxzv+GKmb9++mjFjhlffU2Ov\nKS8v17Rp0/S3v/1NU6ZMUXh4uL7//e/XzTjFx8dr27ZtzRq7vq5duyoyMlJ5eXkaPHiwJGn37t3q\n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\nqqulF16QzjlHuuYa6bnn/LsVwvFapZjqH9tfO0p2NOu5XbtK8+ZJ777rKawSEjzbJ7z3nucPBwAA\noCFVVdIrr3jetu7FF6WlSz17WrpatHjXfK3SM1VYVqjhzw7X/jv2n/R1Cgo81eXrr0v79kmpqZ7f\n/rvwQqlbN3/fNQAAsElNjbRmjTR/vvS3v3n2kfrf/5UuvfTkiihfeqZapZgyxig6I1q7b92t2A6x\nLb7mjh3SggVSdrb04YdSjx6e7eBHjJCGD/ccFFgAAASvqippyxZp9Wpp2TLP0a2b563qZs6Uzjij\nZdcN+GJKks7+89l69vJndW7vc/1y/epqadMmT1G1caP06aee45RTPH+Q/ft7lghrPyYkeIqv9u39\nMnxQy83N5d3PLUZ+diM/e5Gdfx096plE2br1u2PzZs/f9X36SKNGeZrLJ0yQ4uN9H8+XYirC9+Gb\nZ2DcQG39eqvfiqnwcM+M1IgR3z1mjGevqi+/lHbulPLyPLNYeXme46uvpE6dPEWV2+05evTwVLSx\nsVJMzHcf63/eoYNfbtka69ev538IFiM/u5GfvciuacZIZWXS119LxcWej7Wff/WVlJ9/7HHokGci\nJDHRc5x7rvTjH0tJSVJ0dFt/N8dqcTG1ZMmSibfeeusfqqurw6+77rrn77rrroeaen5il0R9Wfxl\nS4drFpfLU502VqHW1Hi2XCgs9Oy4Xnt89ZWnH6u01PP10tLvPi8p8Vw3OtpTiDV2nHqq92Pt27fs\ncPI3DpqjtLS0bW8APiE/u5GfvWzPrqZGKi/3zAgdPfrd5409duSIpzgqK/MUPk19/s03nqIpMlLq\n0sVzxMV993m3bp6ZpilTpN69PUfXrp63nrNBi4qp6urq8JtuuumZZcuWXdq7d+/8c8455+PU1NSF\ngwcP3tLYaxK7JOqtrW+1/E79ICzsu+CGDm3+67791rNFw+HDnh+ew4ebPvbv93wsLz/2qP0BPNER\nFvZdYRUZKUVEeA5/fx4e7jnCwr77GBYmvf++Z1uK4792sh+b+5ywME/BWns0dX4yz/X3tZz+bRAg\nFBnT9NGc5/jymupqTxFRe5zovKnnfPmltGiR/65ZXS1VVnp6hKqqvvu8sY8t+Vr9v5sqKz2tMu3b\nez7W/7yhx045RYqK8kwmREV5/m6t/fzUU4/9PCrKUzydckrb/aw5qUXF1OrVq889/fTTtyUkJORJ\n0tVXX/3qm2++OaWpYmpcv3H6xb9/oZV7Vur8+PNbeLtto0OH1lvqM8bzQ370qFRR4f0fwcl+3tTX\na//jrf1YVeX5vKgoT/v3H/u1k/14Ms815ruPtUdT5yfzXH9dq1ZzCq/a59V/TUs+tvS1JSV5mjev\n9cdt6Wsb01Q7Z2NfC4bXFBXl6eWXWz7Oie7BH8WKv4qc+o7/76elx8m8/vh/9DX3vLHnfPppnr75\nxrdr1D+v/w/gU0459h/Dx39s6dfqF0aRkfyjsaVaVEzl5+f3jo+P31N73qdPn72rVq0affzzXA2k\ncsGdF7RkSLSyTZuy2voWAlL9IiuQffst+dns0KHQy6+hAstG+fmhlx1aWEy5XK4T/si3tCMeAADA\nJi1q7erdu3f+nj176tq89+zZE9+nT5+9/rstAAAAO7SomBo1atQnX3755cC8vLyEioqKdq+99toP\nUlNTF/r75gAAAAJdi5b5IiIiqp555pmbvve97/27uro6fPbs2S801XwOAAAQrFq8g8Nll122+Isv\nvjjjmWeeuSkrKytt4MCBXz700EN3NfTcm2+++amBAwd+OWLEiA3r1q0b2fLbhb8tWbJk4qBBgz5v\nLL+XX375RyNGjNhw5plnbrzgggs+2Lhx45ltcZ/wdqLsan388cfnREREVP3zn/+8sjXvD01rTn65\nubnJI0eOXDds2LBNycnJua18i2jEibI7cOBA14kTJy5JSkpaP2zYsE1/+ctfZrbBbaIBP/nJT150\nu91Fw4cP/7Sx57SoZjHGtPioqqoKHzBgwLadO3cmVFRURI4YMWL9Z599Nrj+c95+++1Jl1122TvG\nGH300UejR48e/ZEvY3L472hOfitXrjyvtLS0szFGixcvnkh+gXE0J7va51188cU5l19++Vuvv/76\ntLa+b47m51dSUhIzZMiQzXv27OljjNH+/fu7tvV9czQvu3vvvfe+9PT0B2tzi4uL+7qysjKire+d\nw+jdd98du3bt2pHDhg37tKGvt7Rm8Wlv0fr7TUVGRlbW7jdV/zkLFy5MTUtLy5Kk0aNHryotLY0p\nKipy+zIu/KM5+Z133nkfdu7c+aDkyW/v3r192uZuUV9zspOkp59++udXXXXV6926ddvfFveJhjUn\nv7///e8/nDZt2hu1v9zTtWvXA21zt6ivOdn17Nmz4JtvvomWpG+++Sa6S5cuX0dERFS1zR2jvrFj\nx74XGxtb0tjXW1qz+FRMNbTfVH5+fu8TPYe/kANDc/Kr74UXXpg9adKkd1rn7tCU5v639+abb065\n4YYbnpWat6UJWkdz8vvyyy8HFhcXx1188cX/GTVq1CcvvfTSjNa/UxyvOdnNmTNn3ubNm4f26tVr\n34gRIzY8+eSTt7T+naIlWlqz+PRGx839n7M5bs8p/qceGE4mh//85z8Xv/jiiz/54IMP2HU1ADQn\nu1tvvfUPGRkZ6S6XyxhjXMf/d4i205z8KisrI9euXXvW8uXLxx85cqTjeeed9+GYMWM+GjhwoLNv\ncoomNSe7Bx544O6kpKT1ubm5ydu3bx+QkpKSvWHDhhFRUVGHWuMe4ZuW1Cw+FVPN2W/q+Ofs3bu3\nT+/evfN9GRf+0dz9wjZu3HjmnDlz5i1ZsmRiU9OjaD3NyW7NmjVnX3311a9KnobYxYsXXxYZGVnJ\nNiZtrzn5xcfH7+nateuBDh06fNuhQ4dvx40b9+6GDRtGUEy1reZkt3LlyvPvueee30vSgAEDtvfv\n33/nF198ccaoUaM+ae37xclpcc3iSyNXZWVlxGmnnbZ9586dCeXl5e1O1ID+4YcfjqGBOXCO5uS3\na9euvgMGDNj24Ycfjmnr++U4uezqHzNnzsx84403rmzr++Zofn5btmwZNH78+GVVVVXhhw8f7jhs\n2LBPN2/ePKSt7z3Uj+Zkd9tttz1+33333WuMUWFhobt37957v/7667i2vncOz7Fz586E5jSgn0zN\n4tPMVGP7TT333HPXS9L111//3KRJk9555513Jp1++unbOnXqdDgzM3OWL2PCf5qT3/333/+/JSUl\nsbV9N5GRkZWrV68+t23vHM3Jrq3vEY1rTn6DBg36fOLEiUvOPPPMjWFhYTVz5syZN2TIkM/a+t5D\nXXOyu/vuux+YNWtW5ogRIzbU1NSEPfzww3fGxcUVt/W9Q7rmmmteWbFixUUHDhzoGh8fv+c3v/nN\nvZWVlZGSbzWLyxjalwAAAFrKp9/mAwAACHUUUwAAAD6gmAIAAPABxRQAAIAPKKYAAAB8QDEFAADg\ng/8PV9g/qPgzU1sAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 95 }, { "cell_type": "code", "collapsed": false, "input": [ "import os" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 76 }, { "cell_type": "code", "collapsed": false, "input": [ "plotpath = os.path.abspath(\"../../../plots/bayes/\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 77 }, { "cell_type": "code", "collapsed": false, "input": [ "savez(os.path.join(plotpath,\"rf.beta.npz\"),x,b1,b0)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 78 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading STRING\n", "\n", "STRING is pickled, we can load it and retreive the internal database to obtain the probabilities.\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pickle" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "sys.path.append(\"../../../opencast-bio/\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "import ocbio.extract" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [ "f = open(\"../../../string/human.Entrez.string.pickle\")\n", "stringdb = pickle.load(f)\n", "f.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 29 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading iRefIndex\n", "\n", "Similarly, we must do this for iRefIndex:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "f = open(\"../../../iRefIndex/human.iRefIndex.Entrez.1ofk.pickle\")\n", "irefdb = pickle.load(f)\n", "f.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fitting STRING beta distribution\n", "\n", "As was done above with our classifier's results, we must build a beta distribution for the results from STRING. This will involve using iRefIndex as class labels, as before." ] }, { "cell_type": "code", "collapsed": false, "input": [ "stringlabelled = {}\n", "for k in stringdb.featuredict:\n", " try:\n", " stringlabelled[max(irefdb[k])] += [float(stringdb[k][-1])/1000]\n", " except KeyError:\n", " stringlabelled[max(irefdb[k])] = [float(stringdb[k][-1])/1000]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "h=hist(stringlabelled['1'],bins=50,label='interaction')\n", "h=hist(stringlabelled['0'],bins=50,label='non-interaction')\n", "l=legend()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAmwAAAHACAYAAAAfozQtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VPW9//HPQNAqTciCBEgCR5IJGIhJKktQsVjK5pWA\nYlmqEDR4/UlBtNqCUEu0KmildStdNLKpgOIti0oIFaNcFVJpBBSFoDmQhICajUFln98fOLkQWU5m\nMvmeM9/X8/E4DzIzZ8583pmQ+eScz5xxeb1eAQAAgH21UF0AAAAAzo2GDQAAwOZo2AAAAGyOhg0A\nAMDmaNgAAABsjoYNAADA5s7ZsJWVlSVce+21b3fv3v2THj16fPz000/fJSJSXV0dPXDgwHXJyck7\nBw0aVFBbWxvpu8/s2bPvd7vdJd26dfusoKBgkO/6zZs3X5GamrrN7XaXTJ069Snf9YcPH75w9OjR\ny9xud0lmZubG3bt3d/bdtnDhwuzk5OSdycnJOxctWjS+aaMDAAA4hNfrPetSWVnZvri4ON3r9YrH\n4/lxcnLyju3bt1/2m9/85vHHHnvst16vV+bMmTNt2rRpc7xer3zyyScpaWlpHx05cqRVaWmpkZiY\nuOvEiRMur9crvXr1Ktq0aVNvr9crQ4cOfXPNmjVDvF6v/OUvf5l05513zvN6vbJ06dLRo0ePXur1\neqWqqiq6S5cun9fU1ETW1NRE+r4+V70sLCwsLCwsLKG4NGrl4cOHr1i3bt3Pu3bt+tm+fftivd6T\nTV3Xrl0/83q98uijj94/Z86cab71Bw8enP/BBx9k7t27t0O3bt0+9V2/ZMmSMXfcccfffOts3Lix\nj9frlaNHj4a1bdv2K6/XKy+//PLY//f//t9fffe54447/rZkyZIxpxUv4mVhYWFhYWFhccrib8Nm\neYbNNE2juLg4o0+fPpv2798fGxsbu19EJDY2dv/+/ftjRUT27t3bMT4+vtx3n/j4+PKKioq4htfH\nxcVVVFRUxImIVFRUxCUkJJSJiISFhR1r06ZNXVVVVczZttWwLtUdr4pl1qxZymsgN7nJTW5yk5vc\njVsCYalhO3jw4I9Hjhz52lNPPTU1PDzcc+ptLpfL63K5AqsCjWKapuoSlCC3XsitF3LrRdfcgThv\nw3b06NFWI0eOfG3cuHGLR4wYsULk5F61ffv2tRcRqays7NCuXbsvRU7uOSsrK0vw3be8vDw+Pj6+\nPC4urqK8vDy+4fW+++zZs6eTiMixY8fC6urq2sTExFQ13FZZWVnCqXvcAAAAdHHOhs3r9bpycnLy\nUlJStt99991P+q7PyspatXDhwmyRk+/k9DVyWVlZq5YuXTrmyJEjF5SWll5aUlLi7t27d1H79u33\nRUREHNi0aVMfr9frWrx48bjhw4evbLit5cuX3zRgwIC3REQGDRpUUFBQMKi2tjaypqYmat26dQMH\nDx68NljfCCeZMGGC6hKUILdeyK0XcutF19wBOdex1g0bNlztcrlOpKWlfZSenl6cnp5evGbNmiFV\nVVXRAwYM+Jfb7d45cODAglPfvfnII4/MSExM3NW1a9fP8vPzB/uu//DDD6/o0aPHtsTExF1Tpkx5\n2nf9oUOHLvzFL37xSlJSUkmfPn02lpaWGr7bXnjhhVuTkpJKkpKSShYsWJB9hmPBXgAAACeQAN50\n4PIGOASnksvl8jq5fn8VFhZK//79VZfR7MitF3Lrxcm5o6OjpaamRnUZsJGoqCiprq7+wfUul0u8\nXq/Ln22GBVwVAAAaq6mpCfgdgAgtLpdfPdm5t+nkHzJd97ABAOzj+70mqsuAjZztZyKQPWx8ligA\nAIDN0bA5UGFhoeoSlCC3XsitF11zA1Yxw+anqqoq2b59u6V1IyMjJTU1NcgVAQCAUMUMm59+fd+v\n5a8L/yoXRl947hW9It/u+VaOHDrSPIUBAJoVM2xoKBgzbOxh89PRY0fl0E8OyaErD517xeMiLWe3\nbJ6iAAC2EBERLR5P8E71ER4eJQcO/PC0EQ316NFD5s2bJ9dcc03QagmG8PBw2bZtmxiGoboU22CG\nzYF0nfUgt17IrZdQy32yWfMGbbHaDH788ceWmjXDMGT9+vWW8zWl/v37S15e3mnXeTwemrUGaNgA\nANBcIId1vf/36UN+PzbOj4bNgZx6NvBAkVsv5NaLrrmDzTAMeeuttyQ3N1dGjRol2dnZEhERIT16\n9JDNmzeLiMi4ceNkz549MmzYMAkPD5cnnnhCREQ2btwoV155pURFRUl6erq888479dvt37+//O53\nv5OrrrpKWrduLV988YXMnz9fUlJSJCIiQhITE+Uf//jHabWsXLlS0tPTpU2bNpKUlCRr166VmTNn\nyoYNG2Ty5MkSHh4ud911l4iItGjRQr744gsREamrq5Px48dLu3btxDAMeeSRR+obxAULFsjVV18t\nv/nNbyQ6Olq6dOki+fn5Qf++qkDDBgBAiDp179Xq1atl7NixUldXJ1lZWTJ58mQREVm8eLF06tRJ\nXn/9dfF4PHLfffdJRUWFXH/99fL73/9eampq5IknnpCRI0dKVVVV/fZefPFFef755+XgwYPSuXNn\niY2NlTfeeEMOHDgg8+fPl3vuuUeKi4tFRKSoqEiys7Nl7ty5UldXJ++++25989WvXz/5y1/+Ih6P\nR55++ukfZJgyZYp4PB4pLS2Vd955RxYtWiTz58+vv72oqEi6desmVVVV8tvf/lZycnKC9e1UiobN\ngUJt1sMqcuuF3HrRNXdzcblc0q9fPxkyZIi4XC655ZZbZMuWLWdd/8UXX5TrrrtOhgwZIiIiP//5\nz6Vnz57yxhtv1G9vwoQJctlll0mLFi0kLCxMrrvuOrn00ktFROSaa66RQYMGyYYNG0REJC8vT3Jy\ncmTAgAEiItKxY0fp2rVr/eOd7ZDq8ePHZdmyZTJ79mxp3bq1dO7cWe69915ZvHhx/TqdO3eWnJwc\ncblcMn78eKmsrJQvv/wygO+WPdGwAQCggdjY2PqvL774Yjl06JCcOHHijOvu3r1bXn31VYmKiqpf\n3nvvPdm3b1/9OgkJCafdZ82aNZKZmSkxMTESFRUlb775Zv0eufLycklMTDxrbWebY/v666/l6NGj\n0rlz5/rrOnXqJBUVFfWX27dvf1ouEZGDBw+e9bGcitN6OJCusx7k1gu59aJrbrto2DB16tRJxo0b\n94M5tLPd5/DhwzJy5Eh58cUXZfjw4dKyZUu54YYb6vecJSQkyK5duyw99qnatm0rrVq1EtM05bLL\nLhMRkT179kh8fLzlbKGCPWwAADSx8PAoEXEFbTm5fevO9y7O2NhY+fzzz+sv33LLLbJ69WopKCiQ\n48ePy6FDh6SwsPC0PVunbvPIkSNy5MgRadu2rbRo0ULWrFkjBQUF9bfn5OTI/PnzZf369XLixAmp\nqKiQHTt2nPGxT9WyZUsZNWqUzJw5Uw4ePCi7d++WP//5z3LLLbc0Kn8ooGFzIF1nPcitF3LrJdRy\nHzhQXX+6i2AsVk6a6+NyueqXhtf73H///fLwww9LVFSU/OlPf5L4+HhZuXKlPProo9KuXTvp1KmT\nzJ0797Qm7dT7h4eHy9NPPy2jRo2S6OhoWbJkiQwfPrz+9l69etW/ESEyMlL69+8ve/bsERGRqVOn\nyvLlyyU6OlruvvvuH9T/zDPPSOvWraVLly7Sr18/ufnmm+XWW289LdvZcoUSPprKT1PuniLPfvqs\nyJXnWfH7Tzo4dvRYkz12YWGhlocPyK0XcuvFybn5aCo0FIyPpqJh85PKhg0AYB80bGgoGA0bh0QB\nAABsjobNgUJt1sMqcuuF3HrRNTdgFQ0bAACAzTHD5idm2AAAIsyw4YeYYQMAANAQDZsD6TrrQW69\nkFsvuuYGrKJhAwAAsDlm2PzEDBsAQOTM80oRkRHiqfME7THD24TLgdoDQdt+Y4WHh8u2bdvEMAzV\npTTKnj17pHv37nLgwIEm/YSEYMyw8eHvAAA0MU+dRyQ3iNvPDV4z6A+Px3o9LVq0kF27dkmXLl2C\nWNGZGYYhL7zwgvzsZz8TkZMfct+Y2lXikKgD6TrrQW69kFsvuubWlb9Hx44dC+xolZPf0UvDBgBA\niDIMQ+bOnStpaWkSGRkpY8aMkcOHD4uIyHPPPSdut1tiYmJk+PDhUllZWX+/Fi1ayN///ndJTk6W\nqKgomTx58jkfp0WLFvLFF1+IiMiECRPkV7/6lVx//fUSEREhmZmZ9bddc801IiKSlpYm4eHh8uqr\nr4qIyOuvvy7p6ekSFRUlV111lWzbtu20DI8//rhcfvnlEh4eLsePH5c5c+ZIUlKSRERESPfu3WXF\nihWn1fPcc89JSkpK/e3FxcUybtw42bNnjwwbNkzCw8PliSeeENM0pUWLFnLixAkREdm7d69kZWVJ\nTEyMuN1uef755+u3mZubK6NGjZLs7GyJiIiQHj16yObNm/16XvxBw+ZATv2A5ECRWy/k1ouuuYPN\n5XLJq6++KmvXrpXS0lLZunWrLFiwQNavXy8zZsyQV199VSorK6Vz584yZsyY0+77xhtvyIcffihb\nt26VV155RdauXWv5cZctWya5ublSU1MjSUlJMnPmTBEReffdd0VEZOvWreLxeOQXv/iFFBcXS05O\njjz33HNSXV0td9xxh2RlZcnRo0frt7d06VJZs2aN1NbWSsuWLSUpKUn+93//Vw4cOCCzZs2SW265\nRfbv3y8iIq+++qo8+OCDsnjxYjlw4ICsWrVKYmJiZPHixdKpUyd5/fXXxePxyH333feDuseMGSOd\nOnWSyspKWb58ucyYMUPefvvt+ttXr14tY8eOlbq6OsnKyjpvI9uUaNgAAAhhd911l7Rv316ioqJk\n2LBh8tFHH8nLL78sOTk5kp6eLhdccIHMnj1bPvjgA9mzZ0/9/aZPny4RERGSkJAg1157rXz00UeW\nHs/lcsmNN94oPXv2lJYtW8rNN998zvv+4x//kDvuuEN69eolLpdLxo8fLxdeeKFs3Lixfnt33XWX\nxMXFyYUXXigiIjfddJO0b99eRERGjRolbrdbioqKRETk+eefl2nTpskVV1whIiKJiYnSqVOn89Zd\nVlYm77//vjz22GNywQUXSFpamkycOFEWLVpUv06/fv1kyJAh4nK55JZbbpEtW7ZY+p40BRo2B9J1\n1oPceiG3XnTN3Rx8jY2IyMUXXywHDx6UvXv3ntbEtG7dWmJiYqSiouKs9/vmm29ERKR79+4SHh4u\n4eHh8t57753xMWNjY+u/vuiii+TgwYNnrW/37t0yd+5ciYqKql/Ky8tl79699eskJCScdp9FixZJ\nRkZG/foff/yxfP311yIiUl5eLomJief8npzJ3r17JTo6Wlq3bl1/XadOnU77npya6+KLL5ZDhw7V\nH04NNt4lCgCAZjp27Ci7d++uv/zNN99IVVWVxMXFnfU+vmH9Tz75pElr6dSpk8ycOVNmzJhx1nVO\nPeXG7t275b//+79l/fr10rdvX3G5XJKRkVFfX0JCguzateu822moY8eOUl1dLQcPHpQf//jHInLy\ntB/x8fH+xGpyNGwOpOusB7n1Qm69hFru8DbhQT31RnibcL/u52tqxo4dK2PHjpVf/vKX0q1bN5kx\nY4ZkZmae9dBhY95Zeb51Y2Nj5fPPP68/rcftt98uN9xwg/z85z+XXr16ybfffiuFhYXy05/+tL5x\nOtU333wjLpdL2rZtKydOnJBFixbJxx9/XH/7xIkT5de//rVcffXVkpGRIZ9//rlccMEF0qlTp/rH\n9p3W41QJCQly5ZVXyv333y9PPPGE7NixQ1544QV5+eWXLWcPJg6JAgDQxA7UHhCv1xu0xd+T5rpc\nLnG5XDJgwAD5wx/+ICNHjpSOHTtKaWmpLF269LT1znS/c233XOueejk3N1eys7MlKipKli9fLldc\ncYU899xzMnnyZImOjha32y2LFi066+OlpKTIvffeK3379pX27dvLxx9/LFdffXX97TfddJPMnDlT\nfvnLX0pERITceOONUlNTIyIi999/vzz88MMSFRUlf/rTn35Q25IlS8Q0TenYsaPceOON8tBDD9U3\n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\nnnvudhGRF1988ZZNmzb1eeaZZ6b41nG5XPYsHgAA4Ay8Xq9fb+O27SFRK82Yv6EBAACcxLaHROPi\n4irKysoSfJfLysoS4uPjy1XWBAAAoIJtG7aePXt+WFJS4jZN0zhy5MgFy5YtG52VlbVKdV0AAADN\nzbaHRMPCwo49++yzkwcPHrz2+PHjLXNycvJ4hygAANCRbfewiYgMHTp0zY4dO7o+++yzkxcuXJjt\ndrtLHnvssWkN1/vss8+69e3b94Mf/ehHh+bOnXuvilqDIT8/f0i3bt0+O1vul1566ea0tLQtl19+\n+darrrrqva1bt16uos6mdr7cK1euHJ6WlrYlIyOj+Iorrti8fv36n6mos6mdL7fPv//9715hYWHH\n/ud//ufG5qwvWM6Xu7CwsH+bNm3qMjIyijMyMooffvjh36mos6lZeb4LCwv7Z2RkFPfo0ePj/v37\nFzZziUFxvtxPPPHEfb7nOjU1dVtYWNix2traSBW1NqXz5f7666/bDhkyJD89Pf2jHj16fLxgwYIJ\nCspscufLXVNTE3XDDTf8My0tbUufPn02ffLJJ91V1NmUbrvtthdiY2P3p6ambjvbOnfdddfTbre7\nJC0tbUtxcXGGpQ17vV5bL8eOHWuZmJi4q7S01Dhy5EirtLS0j7Zv337Zqet8+eWXl/z73//uOXPm\nzIefeOKJe1XX3Fy533///b61tbVtvF6vrFmzZkifPn02qq67OXIfPHiwte/rrVu3piYmJu5SXXdz\n5Patd+21167/r//6r9eXL18+UnXdzZH77bff7j9s2LBVqmtt7tw1NTWRKSkpn5SVlcV7vV756quv\n2qquuzlyn7qsXr36+gEDBvxLdd3NkXvWrFm506dPn+17rqOjo6uOHj0aprr2YOe+7777/vjQQw89\n4PV65bPPPusaCs/3u+++2+8///lPRo8ePbad6fY33njjuqFDh77p9Xpl48aNfay+dtt6D5uItfOx\nXXLJJV/17Nnzw1atWh1VVWdTs5K7b9++H7Rp06ZORKRPnz6bysvL49VU23Ss5G7duvU3vq8PHjz4\n47Zt237d/JU2LavnHXzmmWem3HTTTcsvueSSr1TU2dSs5vaG2DvCreR++eWXfzly5MjXfG+20unn\n3Ofll1/+5dixY5c0Z43BYCV3hw4dKg8cOBAhInLgwIGImJiYqrCwsGNqKm4aVnJ/+umnl1177bVv\ni4h07dp1h2maxldffXWJmoqbRr9+/TZERUXVnO32VatWZWVnZy8UOfnaXVtbG7l///7Y823X9g1b\nRUVFXEJCQpnvcnx8fHlFRUWcypqaQ2Nz5+Xl5Vx33XVvNk91wWM194oVK0Zcdtllnw4dOnTN008/\nfVfzVtn0rOSuqKiIW7ly5fA777zzryKhcR5CK7ldLpf3/fffvzItLW3Ldddd9+b27dtTmr/SpmUl\nd0lJibu6ujr62muvfbtnz54fLl68eFzzV9q0GvN77dtvv7147dq1g0eOHPla81UYHFZy33777c99\n8skn3Tt27Lg3LS1ty1NPPTW1+SttWlZyp6WlbfGNdxQVFfXevXt351DY+XAuZ/q+WMls2zcd+ITC\ni5I/GpP77bffvvaFF1647b333rsqmDU1B6u5R4wYsWLEiBErNmzY0G/cuHGLd+zY0TXYtQWTldx3\n3333k3PmzJnucrm8Xq/XFQp7nazk/slPfvKfsrKyhIsvvvjbNWvWDB0xYsSKnTt3JjdHfcFiJffR\no0db/ec///nJW2+9NeDbb7+9uG/fvh9kZmZudLvdJc1RYzA05vfa6tWrh1199dX/GxkZ6fhz4lvJ\n/eijj85IT0//qLCwsP/nn3+eOHDgwHVbtmxJCw8P9zRHjcFgJff06dPnTJ069SnfzGJGRkZxy5Yt\nG/Mx8o7U8Pe3le+V7Rs2Xc/HZjX31q1bL7/99tufy8/PH3KuXbBO0djnu1+/fhuOHTsWVlVVFRMT\nE1PVPFU2PSu5N2/efMWYMWOWipwcUF6zZs3QVq1aHXXy6W6s5D71BWvo0KFrJk2aNK+6ujo6Ojq6\nujlrbUpWcickJJS1bdv264suuui7iy666Ltrrrnm3S1btqQ5uWFrzP/vpUuXjgmFw6Ei1nK///77\nV86cOfMREZHExMTPL7300tIdO3Z07dmz54fNXW9Tsfr/+4UXXrjNd/nSSy8t7dKlyxfNWWdza/h9\nKS8vj4+Li6s47x1VD+edbzl69GhYly5dPi8tLTUOHz58wbmGVGfNmpUbKm86sJJ79+7dnRITE3d9\n8MEHmarrbc7cu3btSjxx4oTL6/XK5s2bf9KlS5fPVdfdHLlPXSZMmDD/tddeu1F13c2Re9++fbG+\n53vTpk29O3fubKquuzlyf/rpp90GDBjwr2PHjrX85ptvLu7Ro8e2Tz75JEV17cHO7fV6pba2tk10\ndHTVt99+e5Hqmpsr9z333POn3NzcWV7vyZ/5uLi48qqqqmjVtQc7d21tbZvDhw9f4PV65R//+Mft\n2dnZC1TX3RRLaWmpYeVNBx988EGm1TcdKA9lZXnzzTeHJicn70hMTNz16KOP3u/1euVvf/vbHX/7\n29/u8Hq9UllZ2T4+Pr4sIiKiLjIysiYhIWGPx+P5seq6g507Jyfn+ejo6Kr09PTi9PT04l69ehWp\nrrk5cj/22GO/7d69+8fp6enFV1999YaioqJeqmtujtynLqHSsFnJ/eyzz/6qe/fuH6elpX3Ut2/f\n90PlDxQrz/cf//jH+1JSUj7p0aPHtqeeeuou1TU3V+4FCxZkjx079mXVtTZn7q+++qrt9ddfv/ry\nyy/f0qNHj20vvfTSL1XX3By533///b7Jyck7unbt+tnIkSOX+8584ORlzJgxSzp06LC3VatWR+Lj\n48vy8vJua/gz/qtf/erZxMTEXZdffvmWzZs3/8TKdm374e8AAAA4yfbvEgUAANAdDRsAAIDN0bAB\nAADYHA0bAACAzdGwAQAA2BwNGwAAgM39f0A4cKJUWZFXAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "#regularisation samples\n", "posregsamp = scipy.stats.beta.rvs(1,1,size=10)\n", "negregsamp = scipy.stats.beta.rvs(1,1,size=10)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 85 }, { "cell_type": "code", "collapsed": false, "input": [ "stringlabelled['1'] = array(stringlabelled['1'])\n", "stringlabelled['0'] = array(stringlabelled['0'])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 58 }, { "cell_type": "code", "collapsed": false, "input": [ "N1 = len(stringlabelled['1'])\n", "N2 = len(stringlabelled['0'])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "s1idx = random_integers(0,N1,size=1000)\n", "s2idx = random_integers(0,N2,size=1000)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 86 }, { "cell_type": "code", "collapsed": false, "input": [ "stralpha_1,strbeta_1,_,_ = scipy.stats.beta.fit(hstack([stringlabelled['1'][s1idx],posregsamp]))\n", "stralpha_0,strbeta_0,_,_ = scipy.stats.beta.fit(hstack([stringlabelled['0'][s2idx],negregsamp]))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 87 }, { "cell_type": "code", "collapsed": false, "input": [ "b1 = scipy.stats.beta.pdf(x,stralpha_1,strbeta_1)\n", "b0 = scipy.stats.beta.pdf(x,stralpha_0,strbeta_0)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 111 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(x,b1,label=\"interaction\")\n", "plot(x,b0,label=\"non-interaction\")\n", "l=legend(loc=0)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n1tV/vdpatnOZBQCAt1X/W9TkY+bJLVtLJSUlWcOGDbNyc3OtgoICq3///tYLL7xgrV692urQoYO1\nadMmq7S01LrjjjusMWPG1DzPZrNZkyZNso4fP27l5ORYHTt2tFasWNHoODabzdqzZ49lWZaVnp5u\ntW/f3vr888+tiooK66abbrKmTZvW4GMty7I2btxoderUydqwYYPlcDiszMxMKykpySorK7Msy7J6\n9OhhpaamWgcPHrTOnDljWZZl/f3vf7dyc3Mty7Ksv/3tb1ZkZKSVl5dnWZZlLVmyxOrWrZv1xRdf\nWJZlWbt377b2799f8/NYvXp1zdj79u2zbDabVVlZaVmWZY0ePdr65S9/aZWWllqbN2+2OnbsaK1Z\ns8ayLMt6+OGHrfDwcGv58uWWw+Gw5syZYw0fPrzBn0djvxNnb3eu5nH2iU2+6NmJTvrrJGvp10sb\nnDQAAJ7UnELKV5KSkqy//OUvNce//vWvrZ///OfWzJkzrdmzZ9fcXlJSYoWFhdUUHDabzVq/fn3N\n/VOnTrXmz5/f6Di1i6OMjAxr1qxZNfe9//771oUXXtjgYy3Lsn7+859bDz74YJ3X69evn7Vu3bqa\n72Hx4sVNfp8pKSnWsmVVJ1QmTJhgPfvssw0+rqlCKicnxwoJCbFKSkpq7p8zZ46VkZFhWVZVITV+\n/Pia+3bs2GG1adOmwXE8UUhx1R7qoU/DbORnLrILLp07d67Zj4iIUElJiQ4fPqzExMSa2yMjI9W+\nfXsdOnSo0eedPHlSkjRw4EBFRUUpKipK69evb3DM+Pj4mv02bdqopKSk0fnt379fTz/9tGJjY2u2\ngwcP6vDhwzWPSUhIqPOcV199VampqTWP3759u/Lz8yVJBw8eVK9evZr8mTTk8OHDiouLU2RkZM1t\niYmJdX4mtb+viIgInTlzpmZZ0NNCPfniXLUHAEDzde3aVfv37685PnnypI4dO6Zu3bo1+hzrbC/y\njh073DqXxMREzZ07V7/5zW8afUztq+r279+vn/70p1qzZo1GjBghm82m1NTUmvklJCRo9+7d532d\nc3Xt2lUFBQUqKSlR27ZtJVW9PUL37t2d+bbcjqv2UA/vZWM28jMX2QWv6mLjxhtv1OLFi7VlyxaV\nlpbqN7/5jYYPH17nLFVDz2vJGI2Jj4/Xnj17ao5nzZqlF154QRs2bJBlWTp58qTee++9Rs9inTx5\n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\nS30wq7oqHZU1xVW5o7xOUeZKgVZ7/0zZGZVVlqnSUakKR4XKHeWqcFTU28orG7ndicc7LIdbCrKG\nHv/Ne98ouThZIbYQhdhDagq3evu2UIXYQ87/uBbuh9jOHju5b7fZg/osJH93BienC6kVK1ZMvPvu\nuxdWVlaG3HbbbS/Nnj37SXdODL5TVFTk6ynABf6SX4i96h/n8NBwX0/FrRyWo6Zwc6Uga+j2krAS\nXdz1YlU6KlVpVdaMc+5+maNMFRUVNY+rcFSc9znO7J/72ufbt2S5rSirvd+S4q/R+1v6+BbcX33b\nrkO7tOPoDqdeM5gLUNM5VUhVVlaG3H777c+vWrXq8m7duh26+OKLP588efKy/v37f+3uCQKAP7Hb\n7LKH2BUWEub2197debd+etFP3f663lJdZLqjKGvufnOKyer7yyrKWvT4lt6f+3Wu1v59bYtf02E5\nZLfZvVLsOfWabprDufc39zmtQlrV2fztimmnCqkNGzZc0rt3791JSUnZkjRt2rQ333nnnWsopAJD\ndna2r6cAF5CfuUzPrqbIlPuLTBNkfJahV375SoufZ1mWHJbDLcVcS+5vyXOqi1Bvz7H6zG51z2ZZ\nZVmd4qr6Ipma49BzjmtdRNO2Vdvv33uw1nsQxobHupS7U4XUoUOHuiUkJByoPu7evfvB//znP8Nq\nP4bTlGbLzMz09RTgAvIzF9mZjfw8r+Lsf6d0ytdTkeRkIWWz2Zq8JM/ZzncAAACTOLXQ2K1bt0MH\nDhxIqD4+cOBAQvfu3Q+6b1oAAAD+z6lCaujQoV98++23fbKzs5PKyspa/e1vf/vx5MmTl7l7cgAA\nAP7MqaW90NDQiueff/72H/3oR/+urKwMmTlz5iIazQEAQLBx+hrCK664YvmuXbv6Pf/887dnZmam\n9+nT59snn3xydkOPvfPOO5/t06fPt8nJyVs2bdqU6vx04U4rVqyYeOGFF+5sLLu//OUvNyUnJ28Z\nMmTI1pEjR67funXrEF/MEw07X37VPv/884tDQ0Mr/vnPf17nzfmhcc3JLisrKy01NXXToEGDtqel\npWV5eYpowvnyy8/P7zBx4sQVKSkpmwcNGrT9lVdeyfDBNNGAW2+99eX4+PgjgwcP3tbYY1pcs1iW\n5fRWUVER0qtXr9379u1LKisrC0tOTt781Vdf9a/9mPfee+/KK6644n3LsvTZZ58NGzZs2GeujMnm\nnq052X3yyScjioqKoi3L0vLlyyeSnf9szcmv+nFjx45dc9VVV/3rrbfeut7X82ZrXnaFhYUxAwYM\n2HHgwIHulmXpu+++6+DrebM1P7+HH3543v333/9EdXZxcXHHysvLQ309dzZL69atG71x48bUQYMG\nbWvofmdqFpfe1ar2+0mFhYWVV7+fVO3HLFu2bHJ6enqmJA0bNuw/RUVFMUeOHIl3ZVy4rjnZjRgx\n4tPo6OjjUlV2Bw8e7O6b2eJczclPkp577rk7brjhhrc6duz4nS/mifqak91f//rXn1x//fX/qL6I\np0OHDvm+mS3O1Zz8unTpknvixIl2knTixIl27du3PxYaGlrhmxmjttGjR38UGxtb2Nj9ztQsLhVS\nDb2f1KFDh7qd7zH8g+x7zcmutkWLFs288sor3/fO7HA+zf2z984771zzi1/84o/S+d+2BN7RnOy+\n/fbbPgUFBXFjx479cOjQoV+89tprM7w/UzSkOfnNmjXrxR07dgzs2rXr4eTk5C3/+7//e5f3Zwpn\nOFOzuPShxc39i9k6532l+Avd91qSwYcffjj25ZdfvnX9+vUjPTknNF9z8rv77rsXzp8//36bzWZZ\nlmU7988hfKM52ZWXl4dt3LjxB6tXrx536tSpiBEjRnw6fPjwz/r06fOtN+aIxjUnv9/97ne/SUlJ\n2ZyVlZW2Z8+eXuPHj/9gy5YtyVFRUcXemCNc09KaxaVCqjnvJ3XuYw4ePNi9W7duh1wZF65r7nuB\nbd26dcisWbNeXLFixcSmTofCu5qT35dffnnRtGnT3pSqml+XL19+RVhYWDlvVeJbzckuISHhQIcO\nHfLbtGlzuk2bNqfHjBmzbsuWLckUUr7XnPw++eSTS+fOnftbSerVq9eeCy64YN+uXbv6DR069Atv\nzxct41TN4krTVnl5eWjPnj337Nu3L6m0tLTV+ZrNP/300+E0LPvH1pzs9u/fn9irV6/dn3766XBf\nz5et5fnV3jIyMhb/4x//uM7X82ZrXnZff/31hePGjVtVUVERcvLkyYhBgwZt27FjxwBfz52tefnd\nc889z8ybN+9hy7KUl5cX361bt4PHjh2L8/Xc2aq2ffv2JTWn2by5NYtLZ6Qaez+pP/3pTz+TpJ/9\n7Gd/uvLKK99///33r+zdu/fuyMjIk4sXL77FlTHhHs3J7tFHH32osLAwtrrHJiwsrHzDhg2X+Hbm\nkJqXn6/niIY1J7sLL7xw58SJE1cMGTJkq91ud8yaNevFAQMGfOXruaN5+f3mN7/53S233LI4OTl5\ni8PhsP/+97//dVxcXIGv5w7pxhtvfGPt2rWX5efnd0hISDjwyCOPPFxeXh4mOV+z2CyLdiUAAABn\nuHTVHgAAQDCjkAIAAHAShRQAAICTKKQAAACcRCEFAADgJAopAAAAJ/1/dJlrEcA4T5kAAAAASUVO\nRK5CYII=\n", "text": [ "" ] } ], "prompt_number": 112 }, { "cell_type": "code", "collapsed": false, "input": [ "savez(os.path.join(plotpath,\"string.beta.npz\"),x,b1,b0)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 113 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Posterior probabilities\n", "\n", "Using these distributions we can find the posterior probabilities for each of the interactions in this edgelist:\n", "\n", "$$\n", "p(I=1|e,c;\\theta_{e},\\alpha,\\beta) = \\frac{p(I=1,e,c;\\theta_{e},\\alpha,\\beta)}{p(e,c;\\theta_{e},\\alpha,\\beta)} = \\frac{p(I=1)p(e|I=1;\\theta_{e})p(c|I=1;\\alpha,\\beta)}{p(e,c;\\theta_{e},\\alpha,\\beta)}\n", "$$\n", "\n", "Where we find the denominator by marginalising the joint:\n", "\n", "$$\n", "p(e,c;\\theta_{e},\\alpha,\\beta) = \\sum_{I} p(I,e,c;\\theta_{e},\\alpha,\\beta)\n", "$$\n", "\n", "Which requires using the distributions of:\n", "\n", "$$\n", "p(I=0) = Bernoulli(I=1;\\theta_{I}) = 1-\\theta_{I}\n", "$$\n", "\n", "$$\n", "p(e|I=0) = Bernoulli(e;\\theta_{e}) = \\theta_{e0}^{e}(1-\\theta_{e0})^{1-e}\n", "$$\n", "\n", "$$\n", "p(c|I=0) = Beta(c;\\alpha_{0},\\beta_{0}) = \\frac{1}{B(\\alpha_{0},\\beta_{0})} c^{\\alpha_{0}-1}(1-c)^{\\beta_{0}-1}\n", "$$\n", "\n", "In this case, as $e$ is always one (all examples are elements of the edgelist) $\\theta_{e0}$ is simply $1 - \\theta_{e}$.\n", "Therefore, we can solve for the posterior for arbitrary points:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def posterior(prior,logprobdict):\n", " \"\"\"Takes dictionary of class-conditional log probabilities and log prior\n", " produces the corresponding posterior probability\"\"\"\n", " #dictionary should have keys 0 and 1\n", " post = []\n", " for l1,l0 in zip(logprobdict[1],logprobdict[0]):\n", " numerator = sum(l1) + prior\n", " denominator = logaddexp(numerator,sum(l0))\n", " post.append(exp(numerator-denominator))\n", " return post" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "alpha = {0:alpha_0,1:alpha_1}\n", "beta = {0:beta_0,1:beta_1}" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "stralpha = {0:stralpha_0,1:stralpha_1}\n", "strbeta = {0:strbeta_0,1:strbeta_1}" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 40 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the below cell we will be explicitly defining various probabilities for the different data sources.\n", "The values used will be estimates, aiming to be conservative.\n", "For each database two different probabilties must be defined:\n", "\n", "* For class 1:\n", " * Probability that the database inclusion event occurs - true positive rate\n", " * Probability that it does not occur - false negative rate\n", "* For class 0:\n", " * Probability that the database inclusion event occurs - false positive rate\n", " * Probability that it does not occur - true negative rate\n", " \n", "This only equates to two probabilities as these probabilities are related within each class:\n", "\n", "$$\n", "TPR = 1 - FPR\n", "$$\n", "\n", "We can define these probabilities for each of these databases before we begin for iRefIndex and edgelist inclusion." ] }, { "cell_type": "code", "collapsed": false, "input": [ "irefprob = {'tpr':0.9,'tnr':0.5,'fpr':0.1,'fnr':0.5}\n", "edgelistprob = {'tpr':0.9,'tnr':0.5,'fpr':0.1,'fnr':0.5}" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 103 }, { "cell_type": "code", "collapsed": false, "input": [ "#making logprobdict from classifier, STRING and iRefIndex\n", "logprobdict = {}\n", "for cls in [0,1]:\n", " for l in interactions:\n", " pair = frozenset(l[:2])\n", " #rounding problems\n", " weight = float(l[2])*0.9 + 0.01\n", " pclass = scipy.stats.beta.logpdf(weight,alpha[cls],beta[cls])\n", " wstring = (float(stringdb[pair][-1])/1000)*0.9 + 0.09999\n", " pstring = scipy.stats.beta.logpdf(wstring,stralpha[cls],strbeta[cls])\n", " irefresponse = max(map(float,irefdb[pair]))\n", " if cls == 1:\n", " piref = log(irefresponse*irefprob['tpr'] + (1.0-irefresponse)*irefprob['fnr'])\n", " pedgelist = log(edgelistprob['tpr'])\n", " else:\n", " piref = log(irefresponse*irefprob['fpr'] + (1.0-irefresponse)*irefprob['tnr'])\n", " pedgelist = log(edgelistprob['fpr'])\n", " try:\n", " logprobdict[cls] += [sum([pclass,pstring,pedgelist,piref])]\n", " except KeyError:\n", " logprobdict[cls] = [sum([pclass,pstring,pedgelist,piref])]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 104 }, { "cell_type": "code", "collapsed": false, "input": [ "postweightings = posterior(1.0/600,logprobdict)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 105 }, { "cell_type": "code", "collapsed": false, "input": [ "h=hist(postweightings,bins=100)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 106 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quite a discrete set of weights, probably due to all these binary features we're using." ] }, { "cell_type": "code", "collapsed": false, "input": [ "!git annex unlock ../../../plots/bayes/postweightings.npz" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "unlock ../../../plots/bayes/postweightings.npz (copying...) ok\r\n" ] } ], "prompt_number": 122 }, { "cell_type": "code", "collapsed": false, "input": [ "savez(os.path.join(plotpath,\"postweightings.npz\"),postweightings)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 123 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Writing these weights\n", "\n", "We will now write these weights to a file so that the community detection code can be run." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import csv" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 107 }, { "cell_type": "code", "collapsed": false, "input": [ "!git annex unlock edgelist_update_weighted.txt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "unlock edgelist_update_weighted.txt (copying...) " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "ok\r\n" ] } ], "prompt_number": 109 }, { "cell_type": "code", "collapsed": false, "input": [ "f = open(\"edgelist_update_weighted.txt\",\"w\")\n", "c = csv.writer(f, delimiter=\"\\t\")\n", "for i,p in enumerate(interactions[:,:2]):\n", " c.writerow(list(p)+[postweightings[i]])\n", "f.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 110 } ], "metadata": {} } ] }