宏基因组binning:MetaBAT

2022-05-05 14:01:44 浏览数 (2)

基于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

0 人点赞