前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >宏基因组binning:MetaBAT

宏基因组binning:MetaBAT

作者头像
SYSU星空
发布2022-05-05 14:01:44
1.3K0
发布2022-05-05 14:01:44
举报

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微生态与微进化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档