宏基因组分类概述

宏基因组分类,说白了就是从一堆混杂的微生物 DNA 序列里搞清楚两件事——"都有谁"和"各占多少"。我最早接触这个方向时,导师丢给我一个肠道菌群的数据集,说"看看里面有什么"。那时候我对分类工具一知半解,跑了好几个软件,结果五花八门。嗯,就是从那次开始,我意识到理解分类策略本身比会敲命令重要得多。

这一章咱们先把宏基因组分类的底牌翻清楚:它要解决什么问题,主流策略有哪些,各自依赖什么数据库,以及怎么评价结果好不好。你把这些搞明白了,后面再对比 Kraken2 和 MetaPhlAn,心里就有谱了。

2.1 什么是宏基因组分类

宏基因组分类,本质上是一个"多标签识别"问题。你手里有一管环境样本(比如土壤、肠道内容物、海洋水样),提取了里面所有微生物的 DNA,测序后得到几千万条短片段(reads)。分类工具的任务就是:判断每一条 read 来自哪个物种,或者至少判断它属于哪个分类层级。

这和传统的纯培养鉴定完全不同。传统方法得先把菌分离出来,再一个个鉴定。宏基因组分类不用培养,直接测序,能检测到那些"养不出来"的微生物。我在一个深海沉积物项目里遇到过,用培养法只鉴定出 12 个属,用宏基因组分类直接干到 300 多个属——差距就是这么大。

分类结果通常有两种产出形式:

  • 定性:样本中存在哪些微生物物种
  • 定量:每个物种的相对丰度是多少

实际项目中,这两者缺一不可。你光知道有"大肠杆菌"不够,还得知道它占了 0.1% 还是 10%,这直接决定了它是不是优势菌。

核心要点:宏基因组分类的输出是一个"物种-丰度"矩阵,行是样本,列是物种,值是相对丰度。后续的多样性分析、差异比较、功能预测都基于这个矩阵。

2.2 分类学层级

生物分类学有个经典的层级结构:界、门、纲、目、科、属、种。宏基因组分类工具可以在不同层级上给出结果,但不同工具的分辨能力差别很大。

层级 英文 示例(人类肠道样本) 常见工具的分辨能力
界 Kingdom Bacteria 几乎所有工具都能到
门 Phylum Firmicutes 大部分工具可靠
纲 Class Clostridia 多数工具可达到
目 Order Clostridiales 需要一定覆盖度
科 Family Lachnospiraceae Kraken2 可达,MetaPhlAn 需标记基因覆盖
属 Genus Blautia 两类工具都能做到
种 Species Blautia obeum Kraken2 精度高,MetaPhlAn 依赖标记基因区分度

我个人习惯,在项目前期先用"门"和"属"两个层级看整体格局,后续做精细分析时再聚焦到"种"层级。你想想看,如果一开始就盯着种级别,很多低丰度物种会被噪声淹没,反而看不出群落的大框架。

2.3 两大分类策略

目前主流的宏基因组分类工具,按策略可以分为两大类。我把它们的核心逻辑和代表工具整理了一下:

对比维度 基于参考基因组(Kraken2 为代表) 基于标记基因(MetaPhlAn 为代表)
核心思路 将 reads 与完整参考基因组数据库进行 k-mer 匹配 只比对进化上保守的标记基因(如 16S rRNA、COG、特定单拷贝基因)
数据库规模 大(几十 GB ~ 几百 GB) 小(几 GB)
运行速度 快(k-mer 索引,直接查表) 较慢(需要比对到标记基因集)
内存占用 高(数据库常驻内存) 低(标记基因库小)
物种分辨率 可达株级别(如果参考基因组中有近缘株) 通常到种级别,部分到株级别
对未知物种的检测能力 较弱(依赖已知参考基因组) 相对较强(标记基因保守,能捕获部分未知物种)
定量准确性 受数据库覆盖度影响,可能高估近缘物种 标记基因拷贝数校正后,定量更稳健

我当年在一个口腔微生物项目里,同时用了这两类工具。Kraken2 跑得快,能检出很多低丰度物种;但 MetaPhlAn 的定量结果更稳定,批次间重复性更好。说白了,它俩不是替代关系,而是互补关系。

选型小建议:如果你需要快速筛查大量样本,或者样本中有大量未知微生物,优先考虑 Kraken2。如果你更关注定量准确性和跨样本可比性,MetaPhlAn 更合适。当然,两个都跑、取交集或并集,是很多资深分析师的"标准操作"。
宏基因组分类策略概览 宏基因组测序数据 质量控制与预处理 策略 Kraken2 基于参考基因组 MetaPhlAn 基于标记基因 物种分类与丰度 Kraken2 走 "粗匹配 + 大数据库" 路线,速度快但内存高;MetaPhlAn 走 "精匹配 + 小数据库" 路线,定量稳但速度稍慢。 两者在项目中通常搭配使用:Kraken2 做快速筛查,MetaPhlAn 做精细定量。

2.4 常用数据库

分类工具的背后,数据库是真正的"底牌"。不同工具依赖的数据库差异很大,选错了数据库版本,结果直接翻车。我曾经因为 NCBI 的 RefSeq 版本没对齐,导致同一个样本在不同批次里分类结果差了 30%——那是一次非常惨痛的教训。

以下是两类工具常用的数据库:

  • 基于参考基因组工具(Kraken2 等):
    • NCBI RefSeq(完整基因组,含细菌、古菌、病毒、真菌)
    • GTDB(基因组分类数据库,标准化程度高)
    • 自定义数据库(你可以把关注的目标物种基因组加进去)
  • 基于标记基因工具(MetaPhlAn 等):
    • MetaPhlAn 自带标记基因库(约 1.2 万个物种的特异性标记基因)
    • ChocoPhlAn(MetaPhlAn 3/4 使用的扩展标记基因集,含约 10 万个物种)
    • 自定义标记基因集(适用于特殊环境样本)
⚠️ 数据库版本对齐:同一个项目里,所有样本必须使用同一版本的数据库。更换数据库版本后,旧结果必须重新跑一遍。我见过最离谱的案例是:一篇文章里两个对比组的样本用了不同版本的 RefSeq,审稿人直接拒稿了。

2.5 评估指标

怎么判断一个分类结果靠不靠谱?我个人主要看四个指标:

指标 定义 在分类工具中的意义
精确率(Precision) 被正确分类的 reads 数 / 所有被分类的 reads 数 衡量分类结果中"假阳性"的多少
召回率(Recall) 被正确分类的 reads 数 / 所有应被分类的 reads 数 衡量工具"漏检"了多少物种
F1 分数 精确率和召回率的调和平均数 综合评价工具的分类能力
未分类率 未被分配到任何物种的 reads 比例 反映数据库覆盖度的不足

在实际项目中,还有一个更"工程化"的指标——运行时间与内存峰值。Kraken2 跑一个 2000 万 reads 的样本大概需要 2-3 分钟,但内存要吃掉 100 GB 以上。MetaPhlAn 跑同样数据需要 15-20 分钟,但内存只要 8 GB。你想想看,如果是 100 个样本的队列任务,这个差距就非常现实了。

我的经验法则:分类工具的"好"与"不好",不能只看精度。你得结合自己的数据量、计算资源、分析目的来综合判断。精度再高,跑不动或者跑不完,等于零。

2.6 实际项目中的选型考量

说了这么多,最后落地到实际项目里,到底选 Kraken2 还是 MetaPhlAn?我给你几个具体的场景参考:

  • 场景一:快速筛查
    你手上有 200 个环境样本,想先看看整体微生物组成。我会优先选 Kraken2,因为它快。在集群上开 40 个线程,一晚上跑完 200 个样本。MetaPhlAn 跑同样量级可能需要两到三天。
  • 场景二:临床诊断
    样本中病原体丰度可能很低,假阳性代价大。这时候我倾向用 MetaPhlAn,它的标记基因策略对低丰度物种的定量更保守,假阳性率更低。
  • 场景三:微生物组纵向研究
    要比较多个时间点的丰度变化,定量稳定性是关键。MetaPhlAn 的标记基因拷贝数校正做得好,跨样本可比性更强。我个人习惯用 MetaPhlAn 做纵向分析的主工具。
  • 场景四:发现新物种
    如果你研究的是深海热液、极端环境这类"已知物种覆盖率低"的样本,Kraken2 的参考基因组数据库可能遗漏很多。这时候可以试试 MetaPhlAn,它的标记基因更保守,能捕获部分未知物种的信号。
实用技巧:如果你做的是常规项目(肠道菌群、土壤、水体),我的建议是先跑 Kraken2 快速浏览整体格局,再针对感兴趣的物种用 MetaPhlAn 做精细定量。两个结果互相验证,分析结论更有说服力。

嗯,这一章把宏基因组分类的整体框架搭起来了。你理解了"分类到底在做什么"以及"两大策略的核心差异",后面看 Kraken2 和 MetaPhlAn 的具体输出、参数调优、结果对比,就不会被细节带偏。