{ "metadata": { "name": "", "signature": "sha256:f11711f38fbbed7cb8cfa1a375d8014b3df45dd7fa4f1e7ae5356ab8c9ec1ad4" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Looking at Qi method\n", "\n", "In the repository from the Qi experiment there is a file which it appears is used to extract the features:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "cd 1gene-expression/" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/home/gavin/Documents/MRes/YeastPPI-shared-08/1gene-expression\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "ls" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\u001b[0m\u001b[40m\u001b[m\u001b[00mall_expression_fixed_s4_csv.txt\u001b[0m \u001b[40m\u001b[m\u001b[00mget_gene_expression_summary.pl\u001b[0m\r\n", "\u001b[40m\u001b[m\u001b[00mexpressionYanjunSplit.txt\u001b[0m \u001b[40m\u001b[m\u001b[00mYeastGeneListOrfGeneName-106_pval_v9.0.txt\u001b[0m\r\n", "\u001b[40m\u001b[m\u001b[00mget_gene_expression.pl\u001b[0m\r\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using pandas to read in the large csv." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import pandas as pd\n", "d = pd.read_csv(\"all_expression_fixed_s4_csv.txt\", header=None)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "d.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
012345678910111213141516171819
0 100.0000 100.0000 100.0000-0.2863-0.3406-0.4024-0.1797 0.1388-0.1517-0.0726-0.1706-0.2401 0.0215-0.7169 0.5261-0.1176-2.9434-2.0589 0.0000-0.3896...
1 100.0000 100.0000 100.0000-0.4344-0.3649 0.5499-0.2179 0.4916 0.8639 0.2618-0.3876-0.2067-0.3094-0.5649 0.7748 0.0370 0.6041-0.1203 0.0893 0.3771...
2 -0.0291 0.0847 -0.2109 0.2265-0.1345-0.2375-0.2146 0.2833-0.2026 0.1966-0.2074-0.3692-0.4525-1.1016 0.3369 0.5370-0.6215-0.8890 0.2863-1.9523...
3 0.0827 0.0108 0.0683 0.1243 0.1467 0.1110-0.2683 0.5898 0.1953 0.3242-0.3806-0.0268-0.2718-0.3720 0.4636 0.6041 0.3103-0.2688 0.4540-0.5361...
4 0.0321 0.1661 -0.2645 0.0976 0.0257 0.1097-0.1205 0.4751 0.0000 0.5008 0.0014-0.0493-0.0870-0.2985 0.9411 0.1865-2.0000-1.7859 0.6666-0.2265...
\n", "

5 rows \u00d7 501 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ " 0 1 2 3 4 5 6 7 \\\n", "0 100.0000 100.0000 100.0000 -0.2863 -0.3406 -0.4024 -0.1797 0.1388 \n", "1 100.0000 100.0000 100.0000 -0.4344 -0.3649 0.5499 -0.2179 0.4916 \n", "2 -0.0291 0.0847 -0.2109 0.2265 -0.1345 -0.2375 -0.2146 0.2833 \n", "3 0.0827 0.0108 0.0683 0.1243 0.1467 0.1110 -0.2683 0.5898 \n", "4 0.0321 0.1661 -0.2645 0.0976 0.0257 0.1097 -0.1205 0.4751 \n", "\n", " 8 9 10 11 12 13 14 15 16 \\\n", "0 -0.1517 -0.0726 -0.1706 -0.2401 0.0215 -0.7169 0.5261 -0.1176 -2.9434 \n", "1 0.8639 0.2618 -0.3876 -0.2067 -0.3094 -0.5649 0.7748 0.0370 0.6041 \n", "2 -0.2026 0.1966 -0.2074 -0.3692 -0.4525 -1.1016 0.3369 0.5370 -0.6215 \n", "3 0.1953 0.3242 -0.3806 -0.0268 -0.2718 -0.3720 0.4636 0.6041 0.3103 \n", "4 0.0000 0.5008 0.0014 -0.0493 -0.0870 -0.2985 0.9411 0.1865 -2.0000 \n", "\n", " 17 18 19 \n", "0 -2.0589 0.0000 -0.3896 ... \n", "1 -0.1203 0.0893 0.3771 ... \n", "2 -0.8890 0.2863 -1.9523 ... \n", "3 -0.2688 0.4540 -0.5361 ... \n", "4 -1.7859 0.6666 -0.2265 ... \n", "\n", "[5 rows x 501 columns]" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "d.shape" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "(6270, 501)" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "So maybe every row corresponds to a protein in the YeastGeneList file?\n", "Then, the two files should have the same number of columns." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%bash\n", "wc -l YeastGeneListOrfGeneName-106_pval_v9.0.txt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "6270 YeastGeneListOrfGeneName-106_pval_v9.0.txt\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ok, so that's actually possible then. So are each of these gene expression profiles then? Varying expression levels over time. Trying plotting one of them to see if it looks like a timebase plot of some value:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot(d.iloc[1,:])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nGjtWqbIy+fvjj1vP7/Tkk0plZyu1erVSu3YpVVOj1DPPKBUYqNRLLyn14otK/f73SlVVyfR1dUrV\n13f8+k77TkZpAAAIE0lEQVSeVOqbb1rfX1OjVGVlx/N3pKbGu+nOnVPq2LHmv7/8UqmBA5V6/vnW\n0x4/rtSqVfKaneurrs7zOtbD228r9e67nfPcTnV1HU/zxRdKvfVW89+u+8qCBUqNHNnyvqNHPT9P\nYWHr+6qqlOrVS56/okLuO3RInm/+fPk4/+OP5f5Tp5S6cMHzc7e1/7b32Lp18vwvvij797vvKhUa\nqtTEiUo1NCh19mz7z9uWt95SqqhIfq+tbXt9GOH8eaVKS5W67z6lfvxjpQIClLrsMs/HR2OjUlu3\nynp2t3Kl7I/vv6+9LVVVSn31lfz+6afNuZWf33I6T8f/pUtKPfaYUjt2KPXJJ9q2iyt/Y7tTKv36\n+noMHz4cW7duxcCBAzF+/HisWbMGI0aMaJrGZrP5d7bS6MwZecvocBi+aEPU1ko3A0eINMaJE9IF\n4y4rSyrcoqKW/dx6OXtWKtIFC5qfv7ZW3g306aP/8rrS8eNyccS4cdLdkpbW1S3qWv5mZ6eEPgBs\n2rQJ8+fPR0NDA+6991488cQTLRfcRaFPZIT6eumSGD68q1tCPU23Df0OF8zQJyLymb/ZyU4AIiIL\nYegTEVkIQ5+IyEIY+kREFsLQJyKyEIY+EZGFMPSJiCyEoU9EZCEMfSIiC2HoExFZCEOfiMhCGPpE\nRBbC0CcishCGPhGRhTD0iYgshKFPRGQhDH0iIgth6BMRWQhDn4jIQhj6REQWwtAnIrIQhj4RkYVo\nDv3HH38cI0aMQExMDKZPn46ampqmx9LT0xEREYGoqChs3rxZl4YSEZH/NId+QkICDhw4gM8//xyR\nkZFIT08HAOTn52PdunXIz89HTk4OHnzwQTQ2NurW4J4oLy+vq5vQbXBdNOO6aMZ1oR/Noe9wOBAQ\nILNPmDABxcXFAIANGzZg5syZCAoKQlhYGIYNG4a9e/fq09oeijt0M66LZlwXzbgu9KNLn/7KlSsx\ndepUAMCJEycQGhra9FhoaChKSkr0WAwREfkpsL0HHQ4HysrKWt2flpaGadOmAQCWLFmCXr16Ydas\nWW0+j81m87OZRESkC+WHVatWqeuvv16dP3++6b709HSVnp7e9PeUKVPU7t27W80bHh6uAPDGG2+8\n8ebDLTw83J/YVjallIIGOTk5ePTRR7F9+3Z8//vfb7o/Pz8fs2bNwt69e1FSUoLJkyfjq6++YrVP\nRNQNtNu9055f/OIXqKurg8PhAABMnDgRy5cvR3R0NJKTkxEdHY3AwEAsX76cgU9E1E1orvSJiMh8\nuuQbuTk5OYiKikJERASee+65rmiCoebOnQu73Y7Ro0c33VdZWQmHw4HIyEgkJCSgurq66bGe/OW2\noqIi3HLLLRg5ciRGjRqFV155BYA118eFCxcwYcIEjBkzBtHR0XjiiScAWHNdAEBDQwNiY2ObLhKx\n6noICwvDNddcg9jYWIwfPx6AzuvCr08ENKivr1fh4eGqsLBQ1dXVqZiYGJWfn290Mwz197//Xe3b\nt0+NGjWq6b7HH39cPffcc0oppTIyMtSvf/1rpZRSBw4cUDExMaqurk4VFhaq8PBw1dDQ0CXt7gyl\npaXqs88+U0opdebMGRUZGany8/Mtuz5qa2uVUkpdunRJTZgwQe3YscOy6+LFF19Us2bNUtOmTVNK\nWfcYCQsLU6dOnWpxn57rwvDQ37lzp5oyZUrT3+5X+/RUhYWFLUJ/+PDhqqysTCklQTh8+HCllFJp\naWkqIyOjabopU6aoXbt2GdtYA91+++1qy5Ytll8ftbW1auzYseof//iHJddFUVGRio+PV9u2bVO3\n3XabUsq6x0hYWJiqqKhocZ+e68Lw7p2SkhIMHjy46W+rfnmrvLwcdrsdAGC321FeXg7AWl9uO3bs\nGD777DNMmDDBsuujsbERY8aMgd1ub+r2suK6ePjhh7F06dKmb/kD1j1GbDYbJk+ejLFjx+L1118H\noO+60Hz1jla8kqc1m83W7nrpievs7NmzmDFjBl5++WX07t27xWNWWh8BAQHYv38/ampqMGXKFHz4\n4YctHrfCuvjggw8QHByM2NjYNodbsMJ6cProo48wYMAAnDx5Eg6HA1FRUS0e93ddGF7pDxo0CEVF\nRU1/FxUVtThTWYXdbm/6tnNpaSmCg4MBtF4/xcXFGDRoUJe0sbNcunQJM2bMwOzZs5GUlATA2usD\nAPr06YMf/ehH+PTTTy23Lnbu3Ins7GxcddVVmDlzJrZt24bZs2dbbj04DRgwAABw5ZVX4o477sDe\nvXt1XReGh/7YsWNx+PBhHDt2DHV1dVi3bh0SExONbkaXS0xMRGZmJgAgMzOzKfwSExOxdu1a1NXV\nobCwEIcPH276BL8nUErh3nvvRXR0NObPn990vxXXR0VFRdNVGOfPn8eWLVsQGxtruXWRlpaGoqIi\nFBYWYu3atbj11lvx5ptvWm49AMC5c+dw5swZAEBtbS02b96M0aNH67su9P0IwjsbN25UkZGRKjw8\nXKWlpXVFEwx19913qwEDBqigoCAVGhqqVq5cqU6dOqXi4+NVRESEcjgcqqqqqmn6JUuWqPDwcDV8\n+HCVk5PThS3X344dO5TNZlMxMTFqzJgxasyYMWrTpk2WXB9ffPGFio2NVTExMWr06NHq+eefV0op\nS64Lp7y8vKard6y4Ho4ePapiYmJUTEyMGjlyZFM+6rku+OUsIiIL4b9LJCKyEIY+EZGFMPSJiCyE\noU9EZCEMfSIiC2HoExFZCEOfiMhCGPpERBby/7/tSGfnwvKjAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Strange, what's going on with those occasional 100s or 110s?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "drow1 = d.iloc[1,:]\n", "drow1[drow1>60]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "0 100\n", "1 100\n", "2 100\n", "73 100\n", "235 100\n", "237 100\n", "240 100\n", "243 100\n", "244 100\n", "245 100\n", "246 100\n", "252 100\n", "253 100\n", "446 110\n", "447 110\n", "448 110\n", "461 110\n", "468 110\n", "469 110\n", "484 110\n", "Name: 1, dtype: float64" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "What happens if we plot without those?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot(drow1[drow1<60])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": true, "input": [ "h= hist(drow1[drow1<60].values, bins=50)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nCHQAMASBDgCGINABwBAEOiyJNd0w97QD9mD63NuSZfrcWPuK53252/mai+8xMJ8xfS6mLVpPHMDc\nw5OiuC01RlBH6+0DmEsIdNwWbVoAghuYL+bFkEu0P/tjXXyLftFuAUMIBrDymQBMl/BAb2xsVFFR\nkZYtW6aXX345IfscHLyssd7jxNfY8vjaSDejLMd8YuUzAZguoYE+Ojqq3/3ud2psbFR7e7sOHTqk\ns2fPJvIQ3xF9Otj5IWB3ATMk8vsSq/ccCARmr7w5jnNxB+ciPgkdQ29tbdXSpUuVn58vSfr1r3+t\nY8eOqbi4+K5t//GPOjU1Ncd5xOjTwc6Psd+AJLfNNcyEyO9LrCl6A4GA3G73zJU0j3Au7uBcxCeh\ngd7b26u8vLzx33Nzc/XZZ59Nqe3rrx9UIJApqfQ7a1oTVyBsFu1OmjRJN7Vnz56o6xJ1jEjuvXeR\nrl4dmLQ8PT0z4hBOtO2ttokmkfuCPaK9h9LMvI8JDfTpDHWkpaXo+98/pdTUryYsv3mzW9evT7cy\nzA2x7qR5UVJNlHXx3H0T6xjxfbnHnXH6qW1vtc1s7Av2iPYejq1L/PuY0EDPyclRd3f3+O/d3d3K\nzc2dsE1BQYHF4I/WJta+4m1jx772RFluZV/TWW73vvZo4rmYzr7irzf6ZzLy8tifYSttJrrz18r0\n9zXfRf7LbT6x8rmbrKCg4O5HSuSj/yMjI/rRj36kEydOaMmSJXrkkUd06NChKY2hAwCmJ6E99NTU\nVL3xxhv6+c9/rtHRUT311FOEOQDMklmfnAsAMDNseVL0hRdeUHFxsVasWKENGzboypUrdpRhq5l4\nAGs+6u7uVnl5uUpKSrR8+XK99tprdpdku9HRUZWVlamystLuUmwVCoW0adMmFRcXy+VyqaWlxe6S\nbOPz+VRSUqLS0lJVV1frxo0bEbezJdArKip05swZnTx5UoWFhfL5fHaUYZvZfwBr7kpLS9Mrr7yi\nM2fOqKWlRX/5y1+S9lx8a9++fXK5XEl14TOSZ555RuvWrdPZs2d16tSppB2+7erq0ptvvqm2tjad\nPn1ao6OjOnz4cMRtbQl0j8ejlJSxQ69evVo9PT12lGGb/38AKy0tbfwBrGSUnZ2tlStXSpIWLlyo\n4uJiXbp0yeaq7NPT06OGhgZt27YtqeeUv3Lliv71r39p69atksauz9133302V2WP9PR0paWlaWho\nSCMjIxoaGlJOTk7EbW2fnOvtt9/WunXr7C5jVkV6AKu3t9fGiuaGrq4uffHFF1q9erXdpdjmueee\n0969e8c7PMmqs7NT999/v7Zs2aJVq1bp6aef1tDQkN1l2SIzM1PPP/+8HnjgAS1ZskQZGRl67LHH\nIm47Y58aj8ej0tLSSa/33ntvfJuXXnpJCxYsUHV19UyVMScl+5/SkVy7dk2bNm3Svn37tHDhQrvL\nscX777+vxYsXq6ysLKl759LYLdBtbW3avn272tradM8998jv99tdli3Onz+vV199VV1dXbp06ZKu\nXbumv//97xG3nbH50I8fPx5z/cGDB9XQ0KATJ07MVAlz1lQewEomN2/e1MaNG/XEE09o/fr1dpdj\nm08//VT19fVqaGjQN998o6tXr+rJJ5/U3/72N7tLm3W5ubnKzc3Vww8/LEnatGlT0gb6559/rp/8\n5CfKysqSJG3YsEGffvqpHn/88Unb2vJ3XWNjo/bu3atjx47pe9/7nh0l2Oqhhx7Sf/7zH3V1dWl4\neFhHjhzRL3/5S7vLskU4HNZTTz0ll8ulZ5991u5ybPXHP/5R3d3d6uzs1OHDh/Wzn/0sKcNcGru2\nkpeXp46ODklSU1OTSkpKbK7KHkVFRWppadH169cVDofV1NQkl8sVcVtbvrHo97//vYaHh+XxeCRJ\na9as0f79++0oxRY8gHXHJ598onfffVcPPvigysrKJI3dovWLX/zC5srsl+xDc6+//roef/xxDQ8P\nq6CgQAcOHLC7JFusWLFCTz75pB566CGlpKRo1apV+u1vfxtxWx4sAgBDJPeldAAwCIEOAIYg0AHA\nEAQ6ABiCQAcAQxDoAGAIAh0ADEGgA4Ah/geMKFDc8GebugAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks more like a real signal, surely those numbers above must be artefacts or something?\n", "\n", "Maybe the perl script will tell us something about them?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%load get_gene_expression.pl" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "%%perl\n", "######################################################################3\n", "#\n", "# copyright @ Yanjun Qi , qyj@cs.cmu.edu\n", "# Please cite: \n", "# Y. Qi, Z. Bar-Joseph, J. Klein-Seetharaman, \"Evaluation of different biological data and computational classification methods for use in protein interaction prediction\", PROTEINS: Structure, Function, and Bioinformatics. 63(3):490-500. 2006\n", "# Y. Qi, J. Klein-Seetharaman, Z. Bar-Joseph, \"A mixture of feature experts approach for protein-protein interaction prediction\", BMC Bioinformatics 8 (S10):S6, 2007 \n", "# Y. Qi, J. Klein-Seetharaman, Z. Bar-Joseph, \u0093Random Forest Similarity for Protein-Protein Interaction Prediction from Multiple source\u0094, Pacific Symposium on Biocomputing 10: (PSB 2005) Jan. 2005. \n", "# \n", "######################################################################3\n", "\n", "\n", "# Program to get gene expression (abundance) for protein pair list \n", "# Based on the gene expression data given by Ziv published by \n", "# Computational discovery of gene modules and regulatory networks. \n", "# Nature Biotechnology, 21(11) pp. 1337-42, 2003 \n", "# \n", "# perl get_gene_expression.pl ./lists/Science03PPI.sublist.txt YeastGeneListOrfGeneName-106_pval_v9.0.txt all_expression_fixed_s4_csv.txt expressionYanjunSplit.txt 0.7 ./lists/Science03PPI.sublist.genexp\n", "#\n", "# Note: \n", "# - in the protein pair list file, \n", "# - for each protein pair, we have a flag representing the class label: \"1\" means postive pair, \"0\" means random pairs\n", "#\"\tThe input pair list file format: ORF1 ORF2 Flag\n", "#\t\t\t( flag is either 0 rand or 1 postive)\n", "#\"\tThe out put file format: 20 gene expression features separated by \",\", the last one is the class flag\n", "\n", "\n", "#use strict; \n", "\n", "die \"Usage: command yeast_pr_pair_file_name yeast_name_list gene_expression_file expression_split_file percent_miss out_file_name\\n\" if scalar(@ARGV) < 5;\n", "\n", "my ($pr_pair_file, $gene_list_file, $gene_expression_file, $expression_split_file, $percent_miss, $out_file_name) = @ARGV;\n", "\n", "\n", "\n", "#--------------------- read in the gene name list file -------------------------------\n", "\n", "open(GENLIST, $gene_list_file) || die(\" Can not open file(\\\"$gene_list_file\\\").\\n\"); \n", "my ( %gene_name ); \n", "\n", "%gene_name = (); \n", "\n", "$indexnum = 0; \n", "while ()\t\n", "{\n", "\tchomp $_;\n", "\tchop $_; \n", "\tnext if /^#/;\t\t\t#ignore comments\n", "\tnext if /^$/; \t\t\t#ignore blank lines\n", "\t\n", "\tmy @cur_per_line = (); \n", "\t@cur_per_line = split('\\t', $_);\n", "\n", "\t$indexnum = $indexnum + 1; \t\n", "\t$gene_name{\"$cur_per_line[0]\"} = $indexnum; \n", "}\n", "close(GENLIST);\n", "\n", "\n", "\n", "#--------------------- read in the gene expression file -------------------------------\n", "\n", "open(GEN, $gene_expression_file) || die(\" Can not open file(\\\"$gene_expression_file\\\").\\n\"); \n", "my ( %gene_exp, $indexnum ); \n", "\n", "%gene_exp = (); \n", "$indexnum = 0; \n", "while ()\t\n", "{\n", "\tchomp $_;\n", "\tchop $_; \n", "\tnext if /^#/;\t\t\t#ignore comments\n", "\tnext if /^$/; \t\t\t#ignore blank lines\n", "\t\n", "\tmy @cur_per_line = (); \n", "\t@cur_per_line = split(',', $_);\n", "\t$indexnum = $indexnum + 1; \n", "\t$gene_exp{$indexnum} = \\@cur_per_line; \n", "}\n", "close(GEN);\n", "\n", "\n", "\n", "#--------------------- read in the gene expression list split file -------------------------------\n", "\n", "my @splitlist = (); \n", "open(LIST, $expression_split_file) || die(\" Can not open file(\\\"$expression_split_file\\\").\\n\"); \n", "while ()\t\n", "{\n", "\tchomp $_; \n", "\tnext if /^#/;\t\t\t#ignore comments\n", "\tnext if /^$/; \t\t\t#ignore blank lines\n", "\t\t\n", "\tmy $curline = substr($_, 0, -1);\n", "\tpush(@splitlist, $curline); ; \n", "}\n", "close(LIST); \n", "\n", "\n", "\n", "#--------------------- Begin to generate ~20 gene expression feature -------------------------------\n", "\n", "open(INT, $pr_pair_file) || die(\" Can not open file(\\\"$pr_pair_file\\\").\\n\"); \n", "open(OUT, \"> $out_file_name\") || die(\" Can not open file(\\\"$out_file_name\\\").\\n\");\n", "\n", "my $count = 0; \n", "my $feaCount = 0; \n", "\n", "my ( $orfs1, $orfs2, $orf1, $orf2, @exp1, @exp2, $flag); \n", "while ()\t\n", "{\n", "\tchomp $_; \n", "\tnext if /^#/;\t\t\t#ignore comments\n", "\tnext if /^$/; \t\t\t#ignore blank lines\n", "\n", "\t($orfs1, $orfs2, $flag) = split('\\s', $_);\n", "\n", "\t$orf1 = $gene_name{\"$orfs1\"} ; \n", "\t$orf2 = $gene_name{\"$orfs2\"} ; \n", "\n", "\tif (( ! (defined $orf1) )||( ! (defined $orf2 )) )\n", "\t{\n", "\t\tfor($feaCount = 0 ; $feaCount <= $#splitlist ; $feaCount++)\n", "\t\t{\tprint OUT \"-100,\"; }\n", "\t\tprint OUT \"$flag\\n\"; \n", "\t}\n", "\telse {\n", "\t\t$exp1 = $gene_exp{$orf1};\n", "\t\t$exp2 = $gene_exp{$orf2};\n", "\t\n", "\t\tfor($feaCount = 0 ; $feaCount < $#splitlist ; $feaCount++)\n", "\t\t{\n", "\t\t\tmy $start = $splitlist[$feaCount] - 1; \n", "\t\t\tmy $endi = $splitlist[$feaCount + 1 ] - 1; \n", "\t\t\t\n", "\t\t\tmy @expf1 = (); \n", "\t\t\tmy @expf2 = (); \n", "\t\t\tmy $j=0; \n", "\t\t\tfor($j = $start ; $j < $endi ; $j++)\n", "\t\t\t{\n", "\t\t\t\tpush(@expf1, $exp1->[$j]); \n", "\t\t\t\tpush(@expf2, $exp2->[$j]); \n", "\t\t\t}\n", "\t\t\t\n", "\t\t\tmy $temp = &pearsoncc(\\@expf1, \\@expf2, $percent_miss); \n", "\t\t\tprint OUT \"$temp,\"; \n", "\t\t}\n", "\t\tmy $start = $splitlist[$#splitlist] - 1; \n", "\t\tmy $endi = scalar @$exp2 - 1; \n", "\n", "\t\tmy @expf1 = (); \n", "\t\tmy @expf2 = (); \n", "\t\tmy $j=0; \n", "\t\tfor($j = $start ; $j < $endi ; $j++)\n", "\t\t{\n", "\t\t\tpush(@expf1, $exp1->[$j]); \n", "\t\t\tpush(@expf2, $exp2->[$j]); \n", "\t\t}\n", "\n", "\t\tmy $temp = &pearsoncc(\\@expf1, \\@expf2, $percent_miss); \n", "\t\tprint OUT \"$temp,$flag\\n\"; \n", "\t}\n", "\t\n", "\t$count = $count + 1;\n", "\t\n", "\tif ( $count % 5000 == 0)\n", "\t\t{print \"$count \";} \n", "}\n", "print \"\\n\\n ==> $count pairs !\"; \n", "\n", "close(INT);\t\t\t\t\t\n", "close(OUT);\n", "\n", "\n", "# ==================================================================================\n", "# here we define the subroutine to get pearson correlation coefficients\n", "\n", "\n", "sub pearsoncc \n", "{\n", " my(@a) = @{$_[0]};\n", " my(@b) = @{$_[1]};\n", " my($percent) = $_[2];\n", "\n", " my $i = 0; \n", " my $revalue = 0; \n", " \n", " my @af = (); \n", " my @bf = (); \n", " \n", " for($i = 0 ; $i <= $#a ; $i ++)\n", " {\n", "\tif (( $a[$i] < 90 ) && ( $b[$i] < 90))\n", "\t{\n", "\t\tpush(@af, $a[$i]); \n", "\t\tpush(@bf, $b[$i]);\n", "\t}\t\n", " }\n", " \n", " my $n = $#af + 1; \n", " if (( $#af < $#a * ( 1- $percent )) || ($n <= 1))\n", " { \n", " \t$revalue = -100;\n", " } \n", " else \n", " {\n", "\t \tmy $sum_xy = 0; \n", " \t\tmy $sum_x = 0; \n", "\t\tmy $sum_x2 = 0; \t\n", " \t\tmy $sum_y = 0; \n", " \t\tmy $sum_y2 = 0; \n", " \t\n", " \t\tfor($i = 0 ; $i <= $#af ; $i ++)\n", " \t\t{\n", " \t\t\t$sum_xy = $sum_xy + $af[$i] * $bf[$i] ; \n", " \t\t\t$sum_x = $sum_x + $af[$i] ; \n", "\t\t\t$sum_x2 = $sum_x2 + $af[$i] * $af[$i] ;\n", " \t\t\t$sum_y = $sum_y + $bf[$i] ;\n", " \t\t\t$sum_y2 = $sum_y2 + $bf[$i] * $bf[$i]; \n", " \t\t}\n", "\t\tmy $up = $sum_xy - $sum_x * $sum_y / $n ; \n", " \tmy $low = ($sum_x2 - ($sum_x * $sum_x)/$n)*( $sum_y2 - ($sum_y * $sum_y)/$n); \t\n", " \t\t$revalue = $up/sqrt($low + 0.00001); \n", " } \n", " return($revalue); \n", "}\n" ], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }