software

MetaBAT 2 少输出一个 bin,目标菌就没了吗?分清片段门槛、聚类结果和输出大小

作者:发布于 2026-11-15约 10 分钟阅读
少一个 bin,数据去了哪里?。最短片段与最小输出箱,分两轮改变。箱门槛 20 万,长片段参与,仅甲箱写出。箱门槛 10 万,同样长片段,乙箱 133 kb。允许 2 kb 片段,箱门槛 10 万,两箱成员改变。

宏基因组分箱结束后,输出目录只有一个基因组箱,但分类分析显示样本里还有另一种优势成员。这时不能直接把缺少的那个文件解释成目标不存在。一个片段可能太短,没有进入分箱,也可能进入了计算却没有获得稳定归属,还可能与同来源片段形成了较小的集合,最后因输出大小门槛而没有成为文件。这几种情况都会让最终目录看起来“少了序列”,应该逐步追查。我们用八十七条已知来源的片段和四列设计深度,实际跑了三次 MetaBAT 2,观察两个门槛分别在什么地方改变结果。

先理解分箱究竟利用什么信息

MetaBAT 2 结合序列组成与不同样本中的覆盖信息,把可能同来源的片段聚在一起。组成信息可以帮助区分长期演化形成的序列特征,覆盖信息则利用同一成员在各样本中往往一起变化的规律。假设甲菌在前后两个样本多,中间样本少,来自甲菌的不同片段可能具有相似的变化方向。若另一成员呈相反趋势,多个样本就提供了可区分的线索。只有一个样本时仍可以运行,但少了这部分跨样本变化信息,结果取决于当前组成和深度能否区分候选片段。MetaBAT 2 原始研究 · 作者项目说明

这些规律存在例外。相近菌株可能有相似的序列组成和几乎相同的丰度变化,质粒拷贝数可能偏离宿主染色体,重复区域的回贴深度也会异常。因此,一个片段被分进某个箱首先给出了可继续核验的归属假设。后续还应检查基因标记、分类一致性、覆盖异常以及与其他片段的连接。理解输入信息的来源,有助于判断哪类错误可以靠补样本改善,哪类需要长读长或更有辨别力的序列证据。

少一个 bin,数据去了哪里?。最短片段与最小输出箱,分两轮改变。箱门槛 20 万,长片段参与,仅甲箱写出。箱门槛 10 万,同样长片段,乙箱 133 kb。允许 2 kb 片段,箱门槛 10 万,两箱成员改变。
最短片段与最小输出箱,分两轮改变

实跑经验 · 用两种来源和四列深度分别改变门槛

安装运行的是 Ubuntu 打包的 MetaBAT 2.15,包版本为 2.15-4。该构建的帮助头部把版本显示为带有构建占位标记的形式,因此复现记录同时保存包版本与完整帮助输出。输入由固定种子生成。甲来源有四十六条七千碱基长片段与十条两千碱基短片段,乙来源有二十一条长片段与十条短片段,总计八十七条、五十万九千碱基。甲乙的设计碱基组成不同,四个样本中的设计深度方向也不同,各片段加入少量数值扰动,以便观察算法确实区分了哪一些记录。

这份深度文件直接按软件要求写入均值与方差列,没有从比对文件估计真实测序覆盖。每个样本有一对数值列,先均值后方差,首列片段标识与 FASTA 一致。演示中的方差固定为二,只是输入参数。我们没有将它解释成某个真实文库的离散程度。人工设计的组成和深度让对照容易重跑,也意味着不能用这两组的分离效果估算自然群落的准确率。输入生成与三轮调用脚本

python3 107-metabat2/run.py "$(command -v metabat2)" work107
# 默认大小门槛这一轮,另用新输出目录核对
mkdir -p verify107
metabat2 -i work107/contigs.fa -a work107/depth.tsv \
  -o verify107/bin -m 2500 -s 200000 -t 2 \
  --seed 317 --noAdd --unbinned

三轮固定随机种子、线程数和关闭附加回收步骤的设置。第一轮的最短片段为两千五百碱基,最小输出箱为二十万碱基。第二轮只把最小输出箱改为十万。第三轮保留十万的箱门槛,再把最短片段改为一千五百。明确关闭附加回收,可以使这次对照集中在参与聚类的片段和输出门槛。实际项目使用其他附加选项时,应重新检查其对小片段归属的影响。

条件 甲来源写入的长片段、短片段 乙来源写入的长片段、短片段 写出的箱大小
最短 2,500,箱至少 200,000 45、0 0、0 315,000
最短 2,500,箱至少 100,000 45、0 19、0 315,000 和 133,000
最短 1,500,箱至少 100,000 46、9 21、7 340,000 和 161,000

每个输出箱都按原始片段标识核对成员,并分别统计甲乙来源。三轮实际写出的箱均没有混合两种设计来源。这里的“没有混合”只针对我们事先知道的模拟标签,还不能代表真实基因组完整度。甲来源共有三十四万二千碱基,第三轮写出三十四万,少的是一个两千碱基短片段。乙来源原有十六万七千碱基,写出十六万一千,少了三个短片段。把未写入集合的原始标识留下,就能明确复核遗漏究竟发生在哪些记录上。

为什么降低箱大小后,乙来源就出现了

第一轮的最短片段门槛意味着两种来源的短片段都没有进入这次主要聚类范围。即使乙来源所有二十一条长片段都聚在一起,也只有十四万七千碱基,低于二十万的输出要求。第二轮将输出门槛降到十万后,看到一个含十九条乙长片段、总长十三万三千的箱,甲箱仍是原先四十五条长片段。因此,在这份输入上,最终没有乙文件的现象受到输出门槛的直接影响。只看输出文件数,无法判断该来源在输入中有没有数据。

还应注意第二轮仍漏了两条乙长片段。降低输出大小没有把所有乙序列自动找回来,也没有改变这两条与其他记录之间可利用的相似性。若为了凑齐期待的基因组大小,手工把所有未分配片段加进箱,会引入尚未经过核验的归属。更可靠的做法是把这两条与已有乙箱分别比较组成、各样本覆盖和独立分类依据,记录支持一致的证据及冲突,再决定是否作为候选补充。对于真实数据,给这类补充保留单独的成员表,后续容易回退和复核。

第三轮允许两千碱基片段进入,两个箱都发生了变化。除了吸收部分短片段,原先未写出的甲乙长片段也进入了相应箱。这个结果提示,改变输入到图中的节点集合时,结果可能影响已有长片段的归属。不能把第三轮当作“第二轮原样保留再拼上几个短片段”。比较两轮应按片段标识做交集、新增、移出和跨箱转移四种统计。对真正发生跨箱转移的片段,后续的基因或通路归属可能也随之改变,应优先复核。

覆盖表在进入软件前应该怎样检查

第一项检查是标识集合。分别导出 FASTA 的首字段和覆盖表首列,统计各自的记录数、重复数以及彼此独有的标识。名称在某次清洗中增加了后缀,可能使原本同一条序列无法匹配。对过长描述行,确认生成深度的工具与分箱工具究竟取整行还是第一个字段。将这一步写成输入验收,可以避免一份看起来列数齐全的表实际缺少很多对应片段。修复名称后也需要重建映射关系,确保一条旧记录只对应预期的新序列。

第二项检查是列的语义。标准覆盖汇总格式中的样本均值和方差成对出现,方差并不等于标准差,也不能随手放入另一种丰度单位。其他工具生成的纯均值表要遵循对应格式及软件选项,实际安装版帮助中提供的外部覆盖模式值得核对。某个样本在一条片段上为零,应先确认是确实没有回贴读段,还是列对应错误或该样本根本没有参与映射。零值在聚类中提供了信息,自动用很小的正数填满所有空白会改变这种信息。

第三项检查是所有样本是否对齐到同一份序列。联合组装之后,应将各样本自己的读段映射到相同的最终片段集合,再生成深度表。若每个样本使用自己的独立组装,恰好都出现类似的片段编号,不能仅凭编号将深度横向拼起来。它们可能代表完全不同的序列。比较样本间丰度变化之前,要先建立一套共同的序列坐标与片段身份。记录所用 FASTA 的校验值,会让以后替换组装版本时更容易发现覆盖表是否仍对应旧输入。

回贴时还应检查不同样本的处理是否一致。只保留唯一比对和允许多个位置分配,可能使重复区的深度出现完全不同的形状。去除重复读段、限制比对质量或忽略片段两端,也会改变某些片段的统计值。若每个样本用了一套过滤,聚类看到的变化可能包含流程差异。把回贴程序版本、主要过滤规则和深度汇总方式统一记录,可以在一个异常片段上追溯到实际被计入的读段。

判断“更好”也需要固定目标。恢复更多已知来源片段,增加完整标记覆盖,减少混入其他来源,三者可能同时改善,也可能发生取舍。因此试参记录应同时放入成员数量和独立质量指标。看到箱数增加时,先看新箱含有多少独立信息、是否与原有箱重复,再决定它是否给研究增加了新的对象。

“未分箱”需要保留哪些内容

最少保留三个集合,短于当前参与门槛的输入片段,进入范围但没有写入任何箱的片段,以及每个输出箱的成员。实际软件提供的未分箱文件应与原始输入核对范围,不能假定其中必定包括被所有早期过滤排除的序列。本次脚本直接从八十七条输入出发,减去所有写出箱的成员,因此表里的未写入数量有一个明确分母。这个做法便于在不同参数下比较,也方便回答某个带有目标基因的片段为什么消失。

对于一个小箱,先看它是否只是某个较大来源残留的局部片段,或是否含有足够独立证据支持另一个来源。总长很小可能来自低丰度成员、质粒、病毒,也可能来自不稳定分组。仅靠长度无法把它命名为完整微生物基因组。若准备提交基因组相关结论,需要进一步评估保守标记覆盖、重复标记、分类一致性及覆盖异常。如果目标是寻找某个功能基因,则可保留经过核验的小箱作为候选,同时把功能序列与宿主归属各自的可信程度写清。

做多个参数对照时,箱的数字编号往往会重新排列。应以成员重叠或稳定的序列集合识别同一候选来源,避免把第一轮一号箱与第二轮一号箱机械当作同一个对象。一个简单办法是计算每对箱共有的碱基量及其占两边的比例,再标记明显拆分和合并。这样后续比较完整度、分类和功能时,变化能够落到真实成员集合上,文件排序的改变就不会被误写成生物学变化。

这次实验最终留下的结论有明确范围。放宽输出箱门槛使原先无法写出的乙来源集合出现,进一步允许短片段参与又改变了两个箱的成员。每一步都能从输入标识、命令和成员表复核。将这个顺序用在项目中,可以先排除输入身份和输出过滤的影响,再讨论算法是否缺少区分两个来源的有效信息,也让“没有文件”变成一个有证据可追的技术问题。

需要在完整队列中重复回贴、分箱和成员复核时,可凭小批量对照结果与云生信生物分析服务器团队安排分析环境。

把知识用于当前任务

下一步可以直接开始分析

按研究目标查找在线工具、课程、计算资源或完整分析服务。

按目标找方案仍有疑问,联系客服 ↗