{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "- I wanted to recreate Figure 1 of \"Insights from 20 years of bacterial genome sequencing\" https://link.springer.com/article/10.1007%2Fs10142-015-0433-4\n", "- I downloaded the release date of prokaryote genomes from here: https://www.ncbi.nlm.nih.gov/genome/browse/#!/prokaryotes/\n", " - To here: group/jeff-law/figs/igacat/2020-01-gbcb/ann-stats/2020-01-17-prokaryotes.csv" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import seaborn as sns\n", "# make this the default for now\n", "sns.set_style('darkgrid')" ] }, { "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", "
#Organism NameOrganism GroupsSize(Mb)CDSRelease DateGenBank FTPRefSeq FTP
0Campylobacter jejuni subsp. jejuni NCTC 11168 ...Bacteria;Proteobacteria;delta/epsilon subdivis...1.6414815722001-09-27ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000...ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000...
1Pseudomonas fluorescens F113Bacteria;Proteobacteria;Gammaproteobacteria6.8458359892011-12-09ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000...ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000...
2Xanthomonas campestris pv. campestris str. ATC...Bacteria;Proteobacteria;Gammaproteobacteria5.0761941792001-11-28ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000...ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000...
3Salmonella enterica subsp. enterica serovar Ty...Bacteria;Proteobacteria;Gammaproteobacteria5.1337144732001-11-07ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000...ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000...
4Yersinia pestis CO92Bacteria;Proteobacteria;Gammaproteobacteria4.8298639792001-10-15ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000...ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000...
\n", "
" ], "text/plain": [ " #Organism Name \\\n", "0 Campylobacter jejuni subsp. jejuni NCTC 11168 ... \n", "1 Pseudomonas fluorescens F113 \n", "2 Xanthomonas campestris pv. campestris str. ATC... \n", "3 Salmonella enterica subsp. enterica serovar Ty... \n", "4 Yersinia pestis CO92 \n", "\n", " Organism Groups Size(Mb) CDS \\\n", "0 Bacteria;Proteobacteria;delta/epsilon subdivis... 1.64148 1572 \n", "1 Bacteria;Proteobacteria;Gammaproteobacteria 6.84583 5989 \n", "2 Bacteria;Proteobacteria;Gammaproteobacteria 5.07619 4179 \n", "3 Bacteria;Proteobacteria;Gammaproteobacteria 5.13371 4473 \n", "4 Bacteria;Proteobacteria;Gammaproteobacteria 4.82986 3979 \n", "\n", " Release Date GenBank FTP \\\n", "0 2001-09-27 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000... \n", "1 2011-12-09 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000... \n", "2 2001-11-28 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000... \n", "3 2001-11-07 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000... \n", "4 2001-10-15 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000... \n", "\n", " RefSeq FTP \n", "0 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000... \n", "1 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000... \n", "2 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000... \n", "3 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000... \n", "4 ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000... " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv(\"/home/jeffl/Sync/lab/svnrepo/group/jeff-law/figs/igacat/2020-01-gbcb/ann-stats/prokaryotes.csv\")\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 2001-09-27\n", "1 2011-12-09\n", "2 2001-11-28\n", "3 2001-11-07\n", "4 2001-10-15\n", "Name: Release Date, dtype: datetime64[ns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dates = pd.to_datetime(df['Release Date'])\n", "dates.head()" ] }, { "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": [ "dates.dt.year.hist()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# group together anything before 2004\n", "dates[dates < pd.Timestamp('2004-01-01')] = pd.Timestamp('2004-01-01')" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/jeffl/Sync/lab/svnrepo/group/jeff-law/figs/igacat/2020-01-gbcb/ann-stats/num-prok-genomes-seq.pdf\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.set_context(\"talk\")\n", "ax = dates.dt.year.hist(bins=dates.dt.year.nunique())\n", "ax.get_yaxis().set_major_formatter(\n", " matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))\n", "ylabel = \"# Prokaryotic Genomes\"\n", "xlabel = \"Year\"\n", "# ax.set_xlabel(xlabel, fontsize=axis_fontsize, weight=\"bold\")\n", "# ax.set_ylabel(ylabel, fontsize=axis_fontsize, weight=\"bold\")\n", "ax.set_xlabel(xlabel, weight=\"bold\")\n", "ax.set_ylabel(ylabel, weight=\"bold\")\n", "\n", "out_file = \"/home/jeffl/Sync/lab/svnrepo/group/jeff-law/figs/igacat/2020-01-gbcb/ann-stats/num-prok-genomes-seq.pdf\"\n", "print(out_file)\n", "plt.savefig(out_file, bbox_inches=\"tight\")" ] } ], "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.8" } }, "nbformat": 4, "nbformat_minor": 2 }