{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# gathergrams - display gather results" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import pylab\n", "import numpy\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
intersect_bpf_orig_queryf_matchf_unique_to_queryf_unique_weightedaverage_abundmedian_abundstd_abundnamefilenamemd5f_match_origunique_intersect_bpgather_result_rankremaining_bp
093230000.0248850.9772540.0248850.0086496.8318146.05.847358GCA_000013645all-gather-genomes.sbt.zipee9cb05018009af43429e83e7d502a0a0.97725493230000365320000
172880000.0194530.9990400.0194530.02351723.76303518.029.637611GCA_000009705all-gather-genomes.sbt.zip264cfdad44548ad96c4a24b6a514a8770.99904072880001358032000
270390000.0187890.9998580.0187890.08956293.70024292.027.877040GCA_000196115all-gather-genomes.sbt.zip7141c3fbf206734950d13cadba0bf46c0.99985870390002350993000
366040000.0176270.9996970.0176270.01462116.30405816.06.636986GCA_000018565all-gather-genomes.sbt.zip5165e0f27ae96c8a78da00c2d30a8e360.99969766040003344389000
\n", "
" ], "text/plain": [ " intersect_bp f_orig_query f_match f_unique_to_query f_unique_weighted \\\n", "0 9323000 0.024885 0.977254 0.024885 0.008649 \n", "1 7288000 0.019453 0.999040 0.019453 0.023517 \n", "2 7039000 0.018789 0.999858 0.018789 0.089562 \n", "3 6604000 0.017627 0.999697 0.017627 0.014621 \n", "\n", " average_abund median_abund std_abund name \\\n", "0 6.831814 6.0 5.847358 GCA_000013645 \n", "1 23.763035 18.0 29.637611 GCA_000009705 \n", "2 93.700242 92.0 27.877040 GCA_000196115 \n", "3 16.304058 16.0 6.636986 GCA_000018565 \n", "\n", " filename md5 f_match_orig \\\n", "0 all-gather-genomes.sbt.zip ee9cb05018009af43429e83e7d502a0a 0.977254 \n", "1 all-gather-genomes.sbt.zip 264cfdad44548ad96c4a24b6a514a877 0.999040 \n", "2 all-gather-genomes.sbt.zip 7141c3fbf206734950d13cadba0bf46c 0.999858 \n", "3 all-gather-genomes.sbt.zip 5165e0f27ae96c8a78da00c2d30a8e36 0.999697 \n", "\n", " unique_intersect_bp gather_result_rank remaining_bp \n", "0 9323000 0 365320000 \n", "1 7288000 1 358032000 \n", "2 7039000 2 350993000 \n", "3 6604000 3 344389000 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_id = 'SRR606249'\n", "df = pd.read_csv(f'outputs/{sample_id}.gather.csv')\n", "\n", "def fix_name(x):\n", " return \"_\".join(x.split('_')[:2]).split('.')[0]\n", "\n", "df['name'] = df['name'].apply(fix_name)\n", "df[:4]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Figure 1: gathergram" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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F37suL6Df7Dwz/U+t0hT8O6779bq80s/2ugDb1jov/vn+z7whoW+9KON9Y5h8+bN7u6+Y8cO79evn2/atMnd3Q899FDfuDE4/3777VfpuE8++cSzsrJ85cqV7u5+5pln+t/+9jd39/A53N1/+ctf+uzZs93dPS8vz4uKitzd/ZtvvnF393vvvde7d+/uW7Zs8ZKSEu/atauvW7fON27c6N/73vd827Zt7u4+c+ZM//Wvf+2bN2/23r17e1lZWdR5Il111VV++eWXh19//fXXleoUq94rVqzwsWPHho8rP3enTp18586dleL+6U9/Wul55HXeffddHz9+vJeWlrq7+3/+53/6fffd5xs2bPAuXbr4V1995bt27fLhw4dHHV/u+uuv91tuuSX8evz48T537lx3d7/nnnv81FNPrfGYH/7wh37GGWf43r17/Z133vGePXu6e/Dz69evn7u7T5kyxefNm+fu7rt27fIdO3ZEnfPzzz/3Qw891Ddv3uylpaV+zDHHhOM999xz/eWXX3Z3988++8z79OkTjmPYsGG+c+dO37hxox9wwAFeWlrqK1as8Ly8PN+2bZtv3brV+/bt62+99Vb492n16tW+d+9eHzRokF944YVeVlbmTz75ZLiu11xzTfj37JtvvvFevXqFf0cixfq3BazwKnJixnVx914zCyiNKsuhNCg//kfJCUokgw3v2YHJQ7sye9FHTB19WFR3d13Nnj2bJ554AoD169fz4YcfcuCBB8Z1bPfu3SkoKADgyCOP5NNPPwVgzZo1/OpXv2LLli1s27aNE044AYARI0ZwwQUXcNZZZzFp0qTwecaMGUNubtAT0LdvXz777DO2bNnCu+++y4gRIwAoLS1l2LBhtGvXjlatWnHxxRdz8sknM378+EpxPf/88zz00EPh1/vvv39c9T788MP5+OOPueyyyzj55JMZN24cAPn5+Zx//vlMnDiRiRMnxvW9gaDr+80332TIkCEAlJSUcNBBB7F8+XJGjRpFx47Bvg1nn302a9eurfF8r776KvPnzwfgBz/4QVRvQ3UmTpxIs2bN6Nu3L19++WWl94cNG8ZNN91EUVERkyZNolevXlHvv/766xx77LEccMABAJx55pnheJ9//nnefffd8Ge//fZbtm7dCsDJJ59My5YtadmyJQcddBBffvklr7zyCqeddhr77bcf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OWXKFJ8xY4a7u7/wwgs+YMCAGo+paltG933bfN56663+m9/8xt3d9+zZ499++23UOUtKSqJiPeecc8J1qmp7xqp+Zp9//nl4K8zdu3f7cccd50888YS7uwO+YMECd3efOHGiH3/88V5aWuqrVq0K1/Wuu+7yG2+80d3dd+7c6UceeWQ4rsbU5LebFJFGlKDd41J1y8gRI0ZwxRVXcP755zNp0iQ6dw424TnqqKPo0aMHAOeeey6vvPIKrVq1inmdDz74gE6dOoW3e2zXrl3c35fXXnuNkSNH0r17d4DwVovVeeWVV8IbSYwePZrNmzdTXFwc/r5UJda2jOX1BRgyZAgXXXQRu3fvZuLEieGfV7n333+fHj16hGM999xzufvuu4Gqt2eE2D+zzZs3R22Fef755/PSSy8xceJEsrOzOfHEEwHo378/LVu2pEWLFpW2g1y9ejWPPfYYEGxM8uGHH4ZjS1VK0CJSd7mdQ93bMcrrIVW3jJw+fTonn3wyCxYs4Oijj+b5558HKm+xaGZVXmf16tV13tbRa9iysqpjKornHLG+d5FGjhzJSy+9xLPPPssPfvADrrzyyqgNLWJdN/K9WNszLl++vNbbQbZo0SJcn+q2g/z9738f/oMuXWgMWkTqbsx10KLCnrstcoLyBEj2lpGFhYX079+fq6++msGDB/P+++8DQWL/5JNPKCsr4+GHH+aYY46p8jp9+vRhw4YNvPHGG+E6VUx+VRk2bBhLlizhk08+AYKtIiuquLXjyJEjw9+rxYsX06FDh0qt9rpsB/nZZ59x0EEHcckll/CjH/2It956K+r9Pn368PHHH4dbseVj21D77RmHDh3KkiVL2LRpE3v37uXBBx/k2GOPjTvWE044gT/+8Y/s3r0bgLVr17J9+/a4j08WtaBFpO7KZ2s30izu8i0jDz30UPr37x9OKldeeSUffvgh7s6YMWMYMGBAlXsAR24ZuWvXLgB+85vf0LZtW0499VR27tyJu8fcMvL222/nxRdfJCsri759+/L973+fV199lWHDhjF9+nTefvvt8ISxZs2axbxO7969efjhh7nssssoKSkhJycn3BKvSceOHbn77ruZNGkSZWVlHHTQQTz33HNRnznuuOOYOXMmBQUFXHPNNcyYMYMLL7yQ/Px8WrduzX333VfpvBWPicfixYu55ZZbaNGiBW3atOGvf/1r1Ps5OTn84Q9/4MQTT6RDhw4cddRR4feuvfZafvazn5Gfn4+7061bN5555pkqr9WpUyduvvlmjjvuONydk046iVNPPTWuOAEuvvhiPv30UwYNGoS707FjR5588sm4j0+WjNtuUkTqR9tN1s7ixYu59dZbq00wTVX5dpDuzk9/+lN69erFtGnTkh1W0tR2u0l1cYuISEL86U9/oqCggH79+lFcXMyll16a7JDSilrQIhJFLWiRxFALWkREJAMoQYtIJanUsyaSCeryb0oJWkSitGrVis2bNytJizQQd2fz5s20atWqVsfpNisRidK5c2eKiorYuHFjskMRyRitWrWKWoktHkrQIhKlRYsWKb8EokhToC5uERGRFKQELSIikoKUoEVERFKQErSIiEgKUoIWERFJQUrQIiIiKUgJWkREJAUpQYuIiKQgJWgREZEUpAQtIiKSgpSgRUREUpAStIiISApSghYREUlBCU3QZjbNzN4xszVm9qCZ1W4zTBERkSYqYQnazA4BpgKD3T0PyALOSdT1REREMkmiu7ibAzlm1hxoDWxI8PVEREQyQsIStLt/DtwKrAO+AIrdfWGiriciIpJJEtnFvT9wKtAdOBjYz8wmx/jcj81shZmt2LhxY6LCERERSSuJ7OIeC3zi7hvdfTcwHxhe8UPufre7D3b3wR07dkxgOCIiIukjkQl6HXC0mbU2MwPGAO8l8HoiIiIZI5Fj0MuBx4C3gLdD17o7UdcTERHJJM0TeXJ3vx64PpHXEBERyURaSUxERCQFKUGLiIikICVoERGRFKQELSIikoKUoEVERFKQErSIiEgKUoIWERFJQUrQIiIiKUgJWkREJAUpQYuIiKQgJWgREZEUpAQtIiKSgpSgRUREUpAStIiISApSghYREUlBCd0POlXMWVLI6NLF9F4zC4qLILcza/OmsSh7FD85tmeywxMREamkSbSgR5cupsvS6VC8HnAoXk+XpdMZXbo42aGJiIjE1CQSdO81s8ihNKosh9KgRS0iIpKCmkSCprioduUiIiJJ1jQSdG7n2pWLiIgkWZNI0GvzplFCdlRZCdmszZuWpIhERESq1yQS9KLsUawfMRNyuwAGuV1YP2Imi7JHJTs0ERGRmMzdkx1D2ODBg33FihXJDkNERKRRmNmb7j441ntN4j7oWHRvtIiIpLIm0cUd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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pylab.figure(num=None, figsize=(8, 6))\n", "\n", "pylab.plot(df.index, df.intersect_bp / 1e6, 'x', label='all hashes classified to this genome')\n", "pylab.plot(df.index, df.unique_intersect_bp / 1e6, 'o', label='hashes specific to this genome')\n", "#pylab.plot(df.index, df.remaining_bp / 1e6, '-', label='unclassified bp remaining')\n", "\n", "pylab.xlabel('genome gather rank')\n", "pylab.ylabel('num hashes (millions)')\n", "pylab.legend(loc='upper right')\n", "pylab.title('hu-s1 gather x genbank')\n", "\n", "pylab.savefig(f'/tmp/gathergram-{sample_id}.pdf')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python (myenv)", "language": "python", "name": "myenv" }, "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.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }