{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 3: Search engines and PSM filtering" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this example we are going to parse the output of several search engines and see what we can do with it using **pyteomics**. We are going to need all of the extra dependencies of **pyteomics**: **lxml**, **numpy**, **matplotlib** and **pandas**.\n", "\n", "The files used in this example can be downloaded from http://pubdata.theorchromo.ru/pyteomics_filtering_example/. The directory contains output files from several search engines: X!Tandem, MS Amanda, Morpheus, MS-GF+. All search engines were fed the same spectra. The results do not serve for performance comparison of these search engines, but for illustration of data handling with **pyteomics**.\n", "\n", "The data set was kindly provided by Simion Kreimer at Northeastern University in Boston.\n", "\n", "Let's start with setting up the imports:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab --no-import-all inline\n", "import seaborn as sb # makes the plots look nicer just by sitting there. Optional.\n", "from pyteomics import tandem, pepxml, mzid, auxiliary as aux, pylab_aux as pa\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's read an X!Tandem file using `tandem.read()` and build a histogram of retention times for identified spectra. Then, let's do the same for spectra passing the 1% FDR threshold, by using `tandem.filter()`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\njF8sqdra2ztK/VypyudUvQb6haPP0+AR0QJcCSzJzK/0WD+xx2ZvBe4rlhcC746I0RFxGDADuHNA\nrZIkSTv0p2f9GuB9wK8j4p5i3bnAKRFxFLVT3A8CHwHIzCURcR2wBNgGfCwzez0NLkmSdq/PsM7M\nn7LrHvjNvewzF5hbR7skSVLBiTwkSao4w1qSpIozrCVJqjjDWpKkijOsJUmqOMNakqSKM6wlSao4\nw1qSpIozrCVJqjjDWpKkijOsJUmqOMNakqSKM6wlSao4w1qSpIozrCVJqjjDWpKkijOsJUmqOMNa\nkqSKM6wlSao4w1qSpIozrCVJqjjDWpKkijOsJUmqOMNakqSKM6wlSaq4vfvaICKmAlcBE4Bu4PLM\nvCwixgMLgGnAUuBdmflYsc85wGlAJ/CpzFw0NM2XJKn59adnvRU4IzNfALwS+HhEHAmcDdySmUcA\ntxWviYiZwMnATOAE4OsRYQ9ekqRB6jNEM/ORzFxcLHcA9wOTgdnAvGKzecBbiuWTgPmZuTUzlwIP\nALNKbrckSSPGgHq8EXEo8FLgF8DBmbm6eGs1cHCxPAlY0WO3FdTCXZIkDUKf16y3i4hW4N+BOZm5\nISJ2vJeZ3RHR3cvuvb1HW9vY/jaj0pqhjirUsG5d63A3QVJJxo9vLf1zpQqfU3tav8I6IvahFtTf\nycwbitWrI+K5mflIREwE1hTrVwJTe+w+pVi3W2vXbhhYqyuorW1sw9dRlRra2zuGuwmSStLe3lHq\n50pVPqfqNdAvHH2eBo+IFuBKYElmfqXHWwuBU4vlU4Ebeqx/d0SMjojDgBnAnQNqlSRJ2qE/PevX\nAO8Dfh0R9xTrzgG+BFwXEadTPLoFkJlLIuI6YAmwDfhYZvZ6GlySJO1en2GdmT9l9z3w43ezz1xg\nbh3tkiRJBZ9/liSp4gxrSZIqzrCWJKniDGtJkirOsJYkqeIMa0mSKs6wliSp4gxrSZIqzrCWJKni\nDGtJkirOsJYkqeIMa0mSKs6wliSp4gxrSZIqzrCWJKniDGtJkirOsJYkqeIMa0mSKs6wliSp4gxr\nSZIqzrCWJKniDGtJkirOsJYkqeIMa0mSKs6wliSp4vbua4OI+BZwIrAmM19UrDsP+BCwttjs3My8\nuXjvHOA0oBP4VGYuGoJ2S5I0YvQZ1sC3ga8CV/VY1w1ckpmX9NwwImYCJwMzgcnArRFxRGZ2ldRe\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "with tandem.read('example.t.xml') as tf:\n", " h = pylab.hist([psm['rt'] / 60 for psm in tf], bins=25, label='All IDs')\n", "with tandem.filter('example.t.xml', fdr=0.01, full_output=False) as ftf:\n", " pylab.hist([psm['rt'] / 60 for psm in ftf], bins=h[1], label='1% FDR')\n", "pylab.xlabel('RT, min')\n", "pylab.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `filter()` functions can be used in the same way as `read()` functions (as a context manager). That is done by specifying `full_output=False`. The benefit of this is lower memory usage when parsing XML files. The downside, however, is that parsing occurs twice, affecting the execution time. That's why the default behavior of `filter()` is simply to return an array of PSMs:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 14.9 s, sys: 90 ms, total: 15 s\n", "Wall time: 15 s\n" ] } ], "source": [ "%%time\n", "ftf = tandem.filter('example.t.xml', fdr=0.01)\n", "rts = [psm['rt'] / 60 for psm in ftf]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 24.4 s, sys: 20 ms, total: 24.4 s\n", "Wall time: 24.4 s\n" ] } ], "source": [ "%%time\n", "with tandem.filter('example.t.xml', fdr=0.01, full_output=False) as ftf:\n", " rts = [psm['rt'] / 60 for psm in ftf]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another way would be to build a `pandas.DataFrame` object and access its columns. This enables you to write concise and efficient code. The `tandem` and `pepxml` modules define the functions `DataFrame()` and `filter_df()`, analogous to `read()` and `filter()`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 14.9 s, sys: 16.7 ms, total: 14.9 s\n", "Wall time: 14.9 s\n" ] } ], "source": [ "%%time\n", "ftf = tandem.filter_df('example.t.xml', fdr=0.01)\n", "rts = ftf['rt']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A function closely related to `filter()`, `qvalues()`, calculates q-values for all PSMs in a set. `filter()` uses it internally to determine where to set the threshold." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "q1 = pepxml.qvalues('example.pep.xml', read_schema=False,\n", " key=lambda x: x['search_hit'][0]['search_score']['Morpheus Score'], reverse=True)\n", "q2 = tandem.qvalues('example.t.xml')\n", "\n", "pa.plot_qvalue_curve(q1['q'], label='Morpheus')\n", "pa.plot_qvalue_curve(q2['q'], label='X!Tandem')\n", "pylab.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `mzid` module also provides `qvalues()` and `filter()` functions." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n/h+oGoiGzndq8QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "msgf = mzid.filter('example.mzid', retrieve_refs=True,\n", " key=lambda x: x['SpectrumIdentificationItem'][0]['MS-GF:EValue'], fdr=0.01)\n", "pylab.hist([psm['SpectrumIdentificationItem'][0]['chargeState'] for psm in msgf], bins=np.arange(5), align='left')\n", "pylab.xticks(np.linspace(0, 4, 5))\n", "pylab.xlabel('charge state')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`pyteomics.auxiliary` provides generic functions `qvalues()` and `filter()` that you can use on any objects representing PSMs. They accept iterables of PSMs (lists, iterators, arrays, DataFrames).\n", "\n", "The q-values are calculated using standard target-decoy approach or using posterior error probabilities, if they are provided. With TDA, you need to provide a way to determine the score of a PSM, and whether it is decoy or not. You can do that by passing a function or an array of values. With structured arrays and DataFrames, however, you can simply provide a column / field label. Let's see how easy it is to use `filter()` on the output of Morpheus and MS Amanda using `pandas`." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# read the files into DataFrames\n", "morpheus = pd.read_table('example.PSMs.tsv')\n", "amanda = pd.read_table('example_output.csv', skiprows=1)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# filter the Morpheus DataFrame\n", "morph_filt = aux.filter(morpheus, fdr=0.01, key='Morpheus Score', reverse=True, is_decoy='Decoy?')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# do some analysis\n", "morph_filt.plot(x='Retention Time (minutes)', y='Precursor Mass (Da)', kind='scatter')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# MS Amanda files don't have a \"decoy\" column, so let's create one and then use it\n", "amanda['isDecoy'] = amanda['Protein Accessions'].str.split(';').apply(\n", " lambda x: all(p.startswith('DECOY') for p in x))\n", "amanda_filt = aux.filter(amanda[amanda['Rank'] == 1], key='Weighted Probability', is_decoy='isDecoy', fdr=0.01)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wasn't that easy? It is also efficient, because we don't need to parse XML, and the calculations are vectorized by `pandas`.\n", "\n", "Now we have our filtered DataFrames. We can do something using the awesome `pandas` functionality. For example, let's convert these filtered PSM lists to peptide lists." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "amanda_pep = amanda_filt.sort('Weighted Probability').groupby('Sequence').first()\n", "morph_pep = morph_filt.sort('Q-Value (%)').groupby('Base Peptide Sequence').first()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's it! Now, why don't we look at peptides present in both lists? Peace of cake for `pandas`, too:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "inter = amanda_pep.join(morph_pep, how='inner', lsuffix='[amanda]', rsuffix='[morpheus]')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`inter` is now a DataFrame with all information from both tables (and that's a lot)." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "inter.plot('Amanda Score', 'Morpheus Score', kind='hexbin', gridsize=10, sharex=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will conclude this example with a reminder that if you have a piece of software that reports posterior error probabilities (PEPs), `qvalues()` and `filter()` can use them instead of relying on TDA. The usage is similar: you just provide a `pep` parameter instead of `is_decoy`. `key` is not needed in this case, too. Complete information about possible parameters can be found in the API docs." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 1 }