{
"cells": [
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import pylab\n",
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## load mapping summary CSVs and gather CSV"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"#sample_id='SRR606249'\n",
"#sample_id = 'p8808mo9'\n",
"sample_id = 'p8808mo11'\n",
"\n",
"\n",
"# load mapping CSVs\n",
"all_df = pd.read_csv(f'outputs/minimap/depth/{sample_id}.summary.csv')\n",
"left_df = pd.read_csv(f'outputs/leftover/depth/{sample_id}.summary.csv')\n",
"\n",
"# load gather CSV\n",
"gather_df = pd.read_csv(f'outputs/{sample_id}.gather.csv')\n",
"\n",
"# names!\n",
"names_df = pd.read_csv(f'{sample_id}.acc.urls.csv')\n",
"\n",
"# connect gather_df to all_df and left_df using 'genome_id'\n",
"def fix_name(x):\n",
" return \"_\".join(x.split('_')[:2]).split('.')[0]\n",
"\n",
"gather_df['genome_id'] = gather_df['name'].apply(fix_name)\n",
"names_df['genome_id'] = names_df['acc'].apply(fix_name)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# CTB bug FIXME\n",
"# this ensures that only rows that share genome_id are in all the dataframes\n",
"in_gather = set(gather_df.genome_id)\n",
"in_left = set(left_df.genome_id)\n",
"\n",
"in_both = in_left.intersection(in_gather)\n",
"\n",
"all_df = all_df[all_df.genome_id.isin(in_both)]\n",
"left_df = left_df[left_df.genome_id.isin(in_both)]\n",
"gather_df = gather_df[gather_df.genome_id.isin(in_both)]\n",
"names_df = names_df[names_df.genome_id.isin(in_both)]\n",
"\n",
"# reassign index now that we've maybe dropped rows\n",
"all_df.index = range(len(all_df))\n",
"left_df.index = range(len(left_df))\n",
"gather_df.index = range(len(gather_df))\n",
"names_df.index = range(len(names_df))\n",
"\n",
"assert len(all_df) == len(gather_df)\n",
"assert len(left_df) == len(gather_df)\n",
"assert len(names_df) == len(gather_df)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" acc | \n",
" genome_url | \n",
" assembly_report_url | \n",
" ncbi_tax_name | \n",
" genome_id | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" GCA_010669205.1 | \n",
" https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... | \n",
" https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... | \n",
" Blautia producta ATCC 27340 = DSM 2950 | \n",
" GCA_010669205 | \n",
"
\n",
" \n",
" 1 | \n",
" GCA_000433395.1 | \n",
" https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... | \n",
" https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... | \n",
" Clostridium hathewayi CAG:224 | \n",
" GCA_000433395 | \n",
"
\n",
" \n",
" 2 | \n",
" GCA_012980095.1 | \n",
" https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... | \n",
" https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... | \n",
" Escherichia coli | \n",
" GCA_012980095 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" acc genome_url \\\n",
"0 GCA_010669205.1 https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... \n",
"1 GCA_000433395.1 https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... \n",
"2 GCA_012980095.1 https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... \n",
"\n",
" assembly_report_url \\\n",
"0 https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... \n",
"1 https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... \n",
"2 https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/0... \n",
"\n",
" ncbi_tax_name genome_id \n",
"0 Blautia producta ATCC 27340 = DSM 2950 GCA_010669205 \n",
"1 Clostridium hathewayi CAG:224 GCA_000433395 \n",
"2 Escherichia coli GCA_012980095 "
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# re-sort left_df and all_df to match gather_df order, using matching genome_id column\n",
"all_df.set_index(\"genome_id\")\n",
"all_df.reindex(index=gather_df[\"genome_id\"])\n",
"all_df.reset_index()\n",
"\n",
"left_df.set_index(\"genome_id\")\n",
"left_df.reindex(index=gather_df[\"genome_id\"])\n",
"left_df.reset_index()\n",
"\n",
"left_df[\"mapped_bp\"] = (1 - left_df[\"percent missed\"]/100) * left_df[\"genome bp\"]\n",
"\n",
"names_df.set_index(\"genome_id\")\n",
"names_df.reindex(index=gather_df[\"genome_id\"])\n",
"names_df.reset_index()\n",
"\n",
"names_df[:3]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Unnamed: 0 | \n",
" genome bp | \n",
" missed | \n",
" percent missed | \n",
" coverage | \n",
" genome_id | \n",
" sample_id | \n",
" mapped_bp | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" GCA_010669205 | \n",
" 6197116 | \n",
" 485328 | \n",
" 7.831514 | \n",
" 25.055397 | \n",
" GCA_010669205 | \n",
" p8808mo11 | \n",
" 5711788.0 | \n",
"
\n",
" \n",
" 1 | \n",
" GCA_000433395 | \n",
" 5587080 | \n",
" 13274 | \n",
" 0.237584 | \n",
" 15.577709 | \n",
" GCA_000433395 | \n",
" p8808mo11 | \n",
" 5573806.0 | \n",
"
\n",
" \n",
" 2 | \n",
" GCA_012980095 | \n",
" 5179284 | \n",
" 101518 | \n",
" 1.960078 | \n",
" 48.870363 | \n",
" GCA_012980095 | \n",
" p8808mo11 | \n",
" 5077766.0 | \n",
"
\n",
" \n",
" 3 | \n",
" GCA_001405335 | \n",
" 5514222 | \n",
" 565988 | \n",
" 10.264150 | \n",
" 37.890901 | \n",
" GCA_001405335 | \n",
" p8808mo11 | \n",
" 4948234.0 | \n",
"
\n",
" \n",
" 4 | \n",
" GCA_000189615 | \n",
" 4916964 | \n",
" 361174 | \n",
" 7.345468 | \n",
" 18.913976 | \n",
" GCA_000189615 | \n",
" p8808mo11 | \n",
" 4555790.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Unnamed: 0 genome bp missed percent missed coverage genome_id \\\n",
"0 GCA_010669205 6197116 485328 7.831514 25.055397 GCA_010669205 \n",
"1 GCA_000433395 5587080 13274 0.237584 15.577709 GCA_000433395 \n",
"2 GCA_012980095 5179284 101518 1.960078 48.870363 GCA_012980095 \n",
"3 GCA_001405335 5514222 565988 10.264150 37.890901 GCA_001405335 \n",
"4 GCA_000189615 4916964 361174 7.345468 18.913976 GCA_000189615 \n",
"\n",
" sample_id mapped_bp \n",
"0 p8808mo11 5711788.0 \n",
"1 p8808mo11 5573806.0 \n",
"2 p8808mo11 5077766.0 \n",
"3 p8808mo11 4948234.0 \n",
"4 p8808mo11 4555790.0 "
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"left_df[:5]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" intersect_bp | \n",
" f_orig_query | \n",
" f_match | \n",
" f_unique_to_query | \n",
" f_unique_weighted | \n",
" average_abund | \n",
" median_abund | \n",
" std_abund | \n",
" name | \n",
" filename | \n",
" md5 | \n",
" f_match_orig | \n",
" unique_intersect_bp | \n",
" gather_result_rank | \n",
" remaining_bp | \n",
" genome_id | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 5634000 | \n",
" 0.019827 | \n",
" 0.917291 | \n",
" 0.019827 | \n",
" 0.033343 | \n",
" 17.335108 | \n",
" 15.0 | \n",
" 61.941587 | \n",
" GCA_010669205.1_ASM1066920v1_genomic.fna.gz | \n",
" all-gather-genomes.sbt.zip | \n",
" 698994c96972a3ff39d5abbef995fbd9 | \n",
" 0.917291 | \n",
" 5634000 | \n",
" 0 | \n",
" 278527000 | \n",
" GCA_010669205 | \n",
"
\n",
" \n",
" 1 | \n",
" 5510000 | \n",
" 0.019390 | \n",
" 0.996023 | \n",
" 0.019390 | \n",
" 0.018763 | \n",
" 9.974410 | \n",
" 9.0 | \n",
" 5.981056 | \n",
" GCA_000433395.1_MGS224_genomic.fna.gz | \n",
" all-gather-genomes.sbt.zip | \n",
" e1681d164e1343664cc157db62bef9ea | \n",
" 0.996023 | \n",
" 5510000 | \n",
" 1 | \n",
" 273017000 | \n",
" GCA_000433395 | \n",
"
\n",
" \n",
" 2 | \n",
" 5015000 | \n",
" 0.017648 | \n",
" 0.981601 | \n",
" 0.017648 | \n",
" 0.059578 | \n",
" 34.797807 | \n",
" 30.0 | \n",
" 45.273493 | \n",
" GCA_012980095.1_PDT000632230.1_genomic.fna.gz | \n",
" all-gather-genomes.sbt.zip | \n",
" bb4ad2a307756042bba9542f947e6593 | \n",
" 0.981601 | \n",
" 5015000 | \n",
" 2 | \n",
" 268002000 | \n",
" GCA_012980095 | \n",
"
\n",
" \n",
" 3 | \n",
" 4586000 | \n",
" 0.016139 | \n",
" 0.836494 | \n",
" 0.015987 | \n",
" 0.044380 | \n",
" 28.614572 | \n",
" 24.0 | \n",
" 37.731637 | \n",
" GCA_001405335.1_13470_2_84_genomic.fna.gz | \n",
" all-gather-genomes.sbt.zip | \n",
" fc9e495736d6619bad52fa69cede71dc | \n",
" 0.844412 | \n",
" 4543000 | \n",
" 3 | \n",
" 263459000 | \n",
" GCA_001405335 | \n",
"
\n",
" \n",
" 4 | \n",
" 4168000 | \n",
" 0.014668 | \n",
" 0.683347 | \n",
" 0.014513 | \n",
" 0.007188 | \n",
" 5.105238 | \n",
" 4.0 | \n",
" 23.697292 | \n",
" GCA_003434055.1_ASM343405v1_genomic.fna.gz | \n",
" all-gather-genomes.sbt.zip | \n",
" 420d475a10a0d7f2dd3f44da9d2fe498 | \n",
" 0.690638 | \n",
" 4124000 | \n",
" 4 | \n",
" 259335000 | \n",
" GCA_003434055 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" intersect_bp f_orig_query f_match f_unique_to_query f_unique_weighted \\\n",
"0 5634000 0.019827 0.917291 0.019827 0.033343 \n",
"1 5510000 0.019390 0.996023 0.019390 0.018763 \n",
"2 5015000 0.017648 0.981601 0.017648 0.059578 \n",
"3 4586000 0.016139 0.836494 0.015987 0.044380 \n",
"4 4168000 0.014668 0.683347 0.014513 0.007188 \n",
"\n",
" average_abund median_abund std_abund \\\n",
"0 17.335108 15.0 61.941587 \n",
"1 9.974410 9.0 5.981056 \n",
"2 34.797807 30.0 45.273493 \n",
"3 28.614572 24.0 37.731637 \n",
"4 5.105238 4.0 23.697292 \n",
"\n",
" name filename \\\n",
"0 GCA_010669205.1_ASM1066920v1_genomic.fna.gz all-gather-genomes.sbt.zip \n",
"1 GCA_000433395.1_MGS224_genomic.fna.gz all-gather-genomes.sbt.zip \n",
"2 GCA_012980095.1_PDT000632230.1_genomic.fna.gz all-gather-genomes.sbt.zip \n",
"3 GCA_001405335.1_13470_2_84_genomic.fna.gz all-gather-genomes.sbt.zip \n",
"4 GCA_003434055.1_ASM343405v1_genomic.fna.gz all-gather-genomes.sbt.zip \n",
"\n",
" md5 f_match_orig unique_intersect_bp \\\n",
"0 698994c96972a3ff39d5abbef995fbd9 0.917291 5634000 \n",
"1 e1681d164e1343664cc157db62bef9ea 0.996023 5510000 \n",
"2 bb4ad2a307756042bba9542f947e6593 0.981601 5015000 \n",
"3 fc9e495736d6619bad52fa69cede71dc 0.844412 4543000 \n",
"4 420d475a10a0d7f2dd3f44da9d2fe498 0.690638 4124000 \n",
"\n",
" gather_result_rank remaining_bp genome_id \n",
"0 0 278527000 GCA_010669205 \n",
"1 1 273017000 GCA_000433395 \n",
"2 2 268002000 GCA_012980095 \n",
"3 3 263459000 GCA_001405335 \n",
"4 4 259335000 GCA_003434055 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gather_df[:5]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"# subsample? take top 60...\n",
"\n",
"NUM=60\n",
"\n",
"left_df = left_df[:NUM]\n",
"all_df = all_df[:NUM]\n",
"gather_df = gather_df[:NUM]\n",
"names_df = names_df[:NUM]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## fig 1: examining leftover reads, in order of gather"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"