導(dǎo)讀
-
宏基因組分箱(Binning)是將宏基因組測序得到的混合了不同生物的序列或序列組裝得到的contigs按物種分開歸類的過程,類似下圖[1]卖宠。傳統(tǒng)的單物種全基因組序列都是經(jīng)純培養(yǎng)之后巍杈,再進行全基因組de novo測序才獲得的,但是環(huán)境中存在著大量的不可培養(yǎng)微生物扛伍,宏基因組分箱技術(shù)有助于獲得不可培養(yǎng)微生物的全基因組序列筷畦,獲得新物種的基因組序列和功能,預(yù)測未知物種的培養(yǎng)方法等等刺洒。
一鳖宾、分箱工具盤點
- 早在2011年,science上的一篇文章就用了宏基因組Binning技術(shù)對來自牛瘤胃的樣本進行了宏基因組測序研究逆航。該研究從268 Gbp的宏基因數(shù)據(jù)中成功Binning出了15個不能培養(yǎng)的微生物的全基因組序列(可見分箱對數(shù)據(jù)量要求很大)鼎文。從那以后,宏基因組Binning技術(shù)開始被更多的人關(guān)注和重視纸泡,也逐漸出現(xiàn)了很多宏基因組Binning工具漂问。查了一些文獻(xiàn)和資料,我羅列了一下近幾年的分箱工具女揭,引用量僅供參考(google學(xué)術(shù)蚤假,2019.8.29)。
分箱工具 | 發(fā)表雜志 | 發(fā)表時間 | 引用量 |
---|---|---|---|
ProxiMeta | Genome Biology | 2019 | 1 |
MetaBAT2 | PeerJ | 2019 | 4 |
MetaWRAP | Microbiome | 2018 | 14 |
DAS Tool | Nature Microbiology | 2018 | 59 |
Binning_refiner | Bioinformatics | 2017 | 13 |
COCACOLA | Bioinformatics | 2017 | 56 |
CoMet | BMC Bioinformatics | 2017 | 4 |
MetaBAT | PeerJ | 2015 | 465 |
MaxBin 2.0 | Bioinformatics | 2015 | 211 |
VizBin | Microbiome | 2015 | 110 |
Anvi’o | PeerJ | 2015 | 279 |
CONCOCT | Nature Methods | 2014 | 429 |
GroopM | PeerJ | 2014 | 188 |
MetaCluster 5.0 | Bioinformatics | 2012 | 115 |
PhyloPythiaS | Plos One | 2012 | 99 |
二吧兔、分箱工具比較
- 2017年Nature Methods上一篇文章對宏基因組數(shù)據(jù)處理各個過程中的軟件進行了評估[ Critical Assessment of Metagenome Interpretation-a benchmark of metagenomics software ]磷仰。從文章的分析結(jié)果來看,不同的方法各有優(yōu)缺(下圖)境蔼,MaxBin2可能是相對較好的一個分箱軟件灶平。
-
比較結(jié)果:
- 加利福利亞大學(xué)在通過整合多個算法設(shè)計出了新的Binning軟件DAS tool并在2018年發(fā)表在Nature Microbiology上 [ Recovery of genomes from metagenomes via a dereplication, aggregation and scoring strategy ]。集合了多個算法的DAS tool各項Binning指數(shù)要明顯優(yōu)于CONCOCT箍土,MaxBin 2逢享,MetaBAT等方法,比較分析結(jié)果如下:
-
比較結(jié)果:
- 同年吴藻,Microbiome上發(fā)表了另一個整合了多個工具的分箱分析流程MetaWRAP [MetaWRAP—a flexible pipeline for genome-resolved metagenomic data analysis. Microbiome]瞒爬。
MetaWRAP流程不僅納入了最流行的MetaBAT、CONCOCT和MaxBin2分箱方法沟堡,還整合了質(zhì)控侧但、拼接、分箱航罗、提煉禀横、評估、注釋等多種功能粥血。MetaWRAP可以解決分箱分析中可能遇到的絕大多數(shù)問題柏锄,而且比較分析發(fā)現(xiàn)綜合多個工具的MetaWRAP分箱法不僅比單個工具分箱效果好,也比同樣是綜合多個算法的DAS tool分箱法效果好立莉,比較分析結(jié)果如下:
-
比較結(jié)果:
三蜓耻、分箱實戰(zhàn)
- MetaWRAP集合的算法和工具很全很多茫舶,但是也很慢,有條件的話可以自己嘗試使用MetaWRAP刹淌。[Extensive Unexplored Human Microbiome Diversity Revealed by Over 150,000 Genomes from Metagenomes Spanning Age, Geography, and Lifestyle. Cell. 2019]這篇文章提到饶氏,MetaBAT2在單樣本分箱中表現(xiàn)最佳,也在Metawrap文章中表現(xiàn)不錯有勾。Metawrap看似有前途疹启,但是存在兩個缺點:1)沒有獨立驗證;2)計算成本高蔼卡『把拢考慮到時間,下面只以MetaBAT2為例簡介分箱工作流程。
1. 準(zhǔn)備
下面是需要的軟件和數(shù)據(jù):
MetaBAT2分箱工具地址:
https://bitbucket.org/berkeleylab/metabat/src/master/
CheckM分箱質(zhì)檢地址:
https://github.com/Ecogenomics/CheckM/wikiMetaBAT2測試數(shù)據(jù)地址:
https://portal.nersc.gov/dna/RD/Metagenome_RD/MetaBAT/Software/Mockup/
- 下載得到已經(jīng)組裝好的contigs文件assembly.fa和兩個樣本的bam文件荤懂。
2. 統(tǒng)計contig深度
jgi_summarize_bam_contig_depths --outputDepth depth_var.txt *.bam
-
統(tǒng)計結(jié)果:
結(jié)果說明:
第一列:contigName
第二列:contigLen
第三列:totalAvgDepth
第四列:library1.sorted.bam
第五列:library1.sorted.bam-var
第六列:library2.sorted.bam
第七列:library2.sorted.bam-var
3. 分箱(4線程茁裙,21秒)
time metabat2 -t 4 -i assembly.fa -a depth_var.txt -o metabat2/bin –v
-
分箱結(jié)果:
4. 分箱評估 (4線程,32分鐘)
time checkm lineage_wf -f metabat2/checkm.txt -t 4 -x fa metabat2/ metabat2/checkm/
## 評估結(jié)果保存在checkm.txt文件中节仿。
5. 評估結(jié)果:
- 提取ID晤锥,Taxonomy,Completeness廊宪,Contamination信息:
grep 'bin' checkm.txt | sed 's/^ //' | awk '{print $1,$2,$13,$14}' | sed 's/\ /\t/g'| sed 's/\./\t/' | sort -n -k 2 | sed 's/\t/./' > test.txt
## 從checkm.txt提取
-
提取結(jié)果:
第一列:Bin Id
第二列:Marker lineage
第三列:Completeness
第四列:Contamination
結(jié)束語
到此就完成了兩個樣本的宏基因組分箱和分箱評估工作矾瘾。這只是宏基因組分箱的簡介,更全更詳細(xì)的分箱分析可以參考MetaWRAP分析流程箭启。
MetaWRAP分析流程地址:
https://github.com/bxlab/metaWRAP/blob/master/Usage_tutorial.md
metawrap concoct報錯
/public/home/zzumgg03/huty/softwares/miniconda3/envs/metawrap-env/bin/concoct_coverage_table.py:48: FutureWarning: read_table is deprecated, use read_csv instead, passing sep='\t'.
df = pd.read_table(fh, header=None)
Traceback (most recent call last):
File "/public/home/zzumgg03/huty/softwares/miniconda3/envs/metawrap-env/bin/concoct_coverage_table.py", line 77, in <module>
generate_input_table(args.bedfile, args.bamfiles, samplenames=samplenames)
File "/public/home/zzumgg03/huty/softwares/miniconda3/envs/metawrap-env/bin/concoct_coverage_table.py", line 52, in generate_input_table
avg_coverage_depth.to_csv(sys.stdout, index_label='contig', sep='\t', float_format='%.3f')
File "/public/home/zzumgg03/huty/softwares/miniconda3/envs/metawrap-env/lib/python2.7/site-packages/pandas/core/generic.py", line 3007, in to_csv
from pandas.io.formats.csvs import CSVFormatter
ImportError: cannot import name CSVFormatter
參考: