基于reads比对注释的物种binning可以获得宏基因组微生物群落的物种组成信息,但无法获得组成物种的基因组。要获得这些基因组数据,还需要基于不同基因组的特征对拼接的contigs进行binning。目前基于contigs binning的方法使用非常广泛,也已经开发了多种软件,其中最高引用次数的两款为MaxBin和MetaBAT。这两款软件均支持使用多样本拼接的contigs来提高binning的成功率,也即根据contigs在多个library中丰度的相关性(co-abundance pattern)来进行聚类。
宏基因组分析Pipeline
测序数据的解析:Fastq与FastQC
测序数据的质控:Trimmomatic!
宏基因组reads筛选:去除宿主序列
测序数据的组装:常用软件工具
宏基因组多样品的混合组装
Contigs与genes丰度计算
免组装宏基因组群落分析
GraPhlAn物种谱可视化
宏基因组编码基因预测
宏基因组bins质量评估
宏基因组binning: Metabat
更新中……
MetaBAT(https://bitbucket.org/berkeleylab/metabat)是基于contigs丰度和四联核苷酸频率(tetranucleotide frequency,TNF)进行binning的软件,其原理是在不同微生物的DNA中,短的寡核苷酸序列并不是均一的分布的,这些寡核苷酸频率呈现出物种特异性的概率模型,相近物种的DNA序列一般都会拥有相似寡核苷酸概率的模型。在binning分析中MetaBAT首先计算每个contig的TNF,然后计算每个contig的丰度,接下来根据这两个信息计算contigs两两之间的距离矩阵,并通过迭代进行聚类[1]。
MetaBAT使用修改的k-medoids聚类算法进行迭代binning。MetaBAT首先会选取具有最大覆盖率的序列作为种子序列(seed contig),将其作为初始的中心点(medoid),然后根据设定的距离阈值(cutoff distance),直到其他所有contigs与种子序列的距离均大于此值,然后在剩余的contigs中选择一个contig作为第二个medoid,重复上一步,将这两个medoid所引入的contigs作为一个bin。以上步骤为一次迭代,不断迭代获得所有的bins,其余的序列作为free contigs,假如样本量大于设定值,根据丰度相关性将free contigs再次引入bins来提高敏感度(sensitivity)。
与其初始版本相比,更新版本MetaBAT 2能够根据数据确定最佳的参数,在大多数情况下其参数默认值都非常可靠,然而当样本容量很大、序列组装质量很好时MetaBAT 1可能会胜过MetaBAT 2。实际情况往往是复杂多变的,MetaBAT 1可调参数更多,与其把MetaBAT 2看成MetaBAT 1的升级版本,倒不如看成其简化版本,因此这里以MetaBAT 1的使用为例进行介绍。
MetaBAT 1的基本参数如下所示:
代码语言:javascript复制-i,--inFile:必需参数,fasta格式的contigs文件
-o,--outFile:必需参数,结果bin文件的文件名前缀,默认为fasta格式,除非设置了-l参数
-a,--abdFile:contigs丰度文件,包含碱基覆盖率的均值和方差,可以使用内置的jgi_summarize_bam_contig_depths命令计算
--cvExt:使用其他方法产生的没有方差的覆盖率文件
-p,--pairFile:含有paired reads比对信息的文件,用来提高灵敏度,一共有三列,第一列contigs名称,第二列配对的contigs名称,第三列平均覆盖率
--p1:对种子序列引入contigs的概率阈值,也即引入的序列和seed contigs属于一个基因组的可能性的最低值,介于0到100之间,该值会影响bins的数目与精确度,其值越小,bins数目越小,敏感度越高,精确度越差
--p2:对第二个中心引入contigs的概率阈值,最好设置的和p1接近
--minProb:一条contigs属于一个bin的可能性的最低值(综合两次中心划分的结果),该值决定了binning的敏感度,最好设置>= 75
--minBinned:已经bin的序列占该基因组推断大小的比例(相当于基因组完整度),该值会影响精确度,应该设置<= 50
--verysensitive:更高的敏感度,尤其是在简单群落中,就相当于以下参数设置:--p1 90 --p2 85 --pB 20 --minProb 75 --minBinned 20 --minCorr 90
--sensitive:较好的敏感度(默认值),就相当于以下参数设置:--p1 90 --p2 90 --pB 20 --minProb 80 --minBinned 40 --minCorr 92
--specific:较好的精确度,当多样品binning时可以使用,就相当于以下参数设置:--p1 90 --p2 90 --pB 30 --minProb 80 --minBinned 40 --minCorr 96
--veryspecific:更高的精确度,对于短序列不使用丰度相关性聚类,就相当于以下参数设置:--p1 90 --p2 90 --pB 40 --minProb 80 --minBinned 40
--superspecific:最好的精确度,相当于以下参数设置:--p1 95 --p2 90 --pB 50 --minProb 80 --minBinned 20
--minCorr:使用多样品丰度相关性聚类时皮尔森相关性阈值,应该设置>=90来减少污染
--minSamples:当使用contig多样本co-abundance pattern进行聚类时包含该contig的最小的样本容量,默认为10
-x,--minCV:计算丰度距离矩阵时最低的contig单个文库覆盖率,低于此阈值的contigs被舍弃,默认为1
--minCVSum:计算丰度距离矩阵时最低的contig多个文库覆盖率之和,低于此阈值的contigs被舍弃,默认为2
-s,--minClsSize:bin的最小减基数,低于此阈值的bins不会在结果中输出,默认为200000也即约200K,如果需要保留质粒和病毒需设置较低size
-m,--minContig:contigs最小减基数,低于此阈值的contigs在bining之前舍去,默认为2500,此参数应该大于1500,最好大于2500,如果多样品且样品数目大于等于--minSamples设定的值,大于1000的序列都会被保存
--minContigByCorr:用于计算多样本丰度相关性的contigs最短长度,默认为1000,只有样品数目大于等于--minSamples设定的值时有效,如果--minContigByCorr设定的值大于--minContig则失效
-t,--numThreads:程序运行使用的核数,默认使用所有核
--minShared:arg (=50) Percentage cutoff for merging fuzzy contigs
-l,--onlyLabel:在每个bin文件中只列出contigs名称而不列出其序列
-V,--maxVarRatio:忽略方差/均值超过此阈值的contigs,默认为0
--saveTNF:保存contigs的TNF 矩阵数据
--saveDistance:保存contigs之间的距离矩阵
--saveCls:保存矩阵格式的聚类结果
--unbinned:输出在binning中舍弃的contigs序列
-B,--B:整体binning时自助抽样的次数,建议设置>=20,默认0(失效)
--pB:自助抽样时共有成分的比例,默认为50,其值越高精确度越高
--keep:保留中间过程文件
-d,--debug:调试信息输出
-v,--verbose:备份信息输出
使用MetaBAT 1进行binning,首先使用bam文件计算contigs覆盖度(也即深度depth),结果如下所示:
代码语言:javascript复制jgi_summarize_bam_contig_depths --outputDepth contig.depth.txt spades.contig.reads.sorted.bam
假如是多样品混合拼接,则可以在命令后添加不同样品的多个bam文件,不同bam文件使用空格隔开,如下所示:
代码语言:javascript复制jgi_summarize_bam_contig_depths <options> sortedBam1 [ sortedBam2 ...]
关于bam文件的生成可参考往期文章Contigs与Gene丰度计算。
分析结果如下所示:
其中第一列为contigs名字,第二列为contig长度,第三列为总平均覆盖率,第四列为特定的bam文件的平均覆盖率,第五列为特定的bam文件的覆盖率方差,这里只有一个样品、一个文库,也只有一个bam文件,若是多样品拼接,则会有对应的文库的覆盖率及方差。接下来进行binning,如下所示:
代码语言:javascript复制nohup metabat1 -i new.spades.contig.fasta -a contig.depth.txt -o twk --sensitive -t 20 -v > log.txt &
运行结束后,就会产生一系列的用数字区分的fasta文件,即分装后的bins文件。
参考文献:
[1] Kang D D, Froula J, Egan R, et al. MetaBAT, anefficient tool for accurately reconstructing single genomes from complexmicrobial communities[J]. Peerj, 2015, 3(8): e1165.
END