宏基因组代谢通路重建:MinPath/Pathway Tools/KEGG Mapper¶
一句话概述¶
代谢通路重建就是根据基因注释结果,推测微生物群落能干什么"化学活儿"——能分解什么、合成什么、消化什么,把零散的基因功能串成完整的代谢"生产线"。
核心知识点表格¶
| 知识点 | 说明 |
|---|---|
| 代谢通路 | 一系列连续的酶促反应组成的"生产线",完成特定的生化功能 |
| MinPath | 用最简约原则估计代谢通路,避免高估功能多样性 |
| KEGG Mapper | 基于KEGG数据库的在线通路映射工具 |
| Pathway Tools | 基于MetaCyc数据库的通路推断工具,通路覆盖最广 |
| HUMAnN3 | 整合了MinPath的宏基因组功能分析流水线 |
| MetaPathPredict | 2024年新工具,用机器学习预测不完整基因组的代谢模块 |
白话解释¶
想象一个汽车工厂的流水线: - 原材料(底物)→ 工位1加工 → 工位2加工 → ... → 成品(产物) - 每个工位就是一个酶(由一个基因编码) - 一整条流水线就是一条代谢通路
宏基因组测序告诉我们:群落里有哪些"工位"(基因/酶)。代谢通路重建就是要弄清楚:这些工位能不能连成完整的流水线?
难点在于: - 测序可能没测到某些基因(流水线上少了几个工位) - 一个酶可能参与多条通路(一个工位可能在多条流水线上) - 直接把检测到的酶映射到通路会高估功能("天真映射"问题)
工具详解¶
第一步:基因功能注释(前置步骤)¶
在做通路重建之前,需要先对基因做功能注释:
# 方法1:用eggNOG-mapper注释KO号
emapper.py \
-i predicted_proteins.faa \ # 输入预测的蛋白序列
--output eggnog_out \ # 输出前缀
-m diamond \ # 使用DIAMOND比对
--cpu 16 # 线程数
# 方法2:用KofamScan注释KO号(更准确)
exec_annotation \
-f detail-tsv \ # 输出详细格式
-o kofam_results.tsv \ # 输出文件
predicted_proteins.faa \ # 输入蛋白序列
--cpu 16 # 线程数
# 方法3:用HUMAnN3一站式分析(内置MinPath)
humann \
--input sample_R1.fastq.gz \ # 输入测序reads
--output humann_out/ \ # 输出目录
--threads 16 # 线程数
MinPath:最简约通路推断¶
白话解释: MinPath的哲学是"能少不多"。如果检测到一些酶,它不会把所有可能包含这些酶的通路都算进去,而是找出能解释所有检测到的酶的最少通路集合。就像侦探推理时遵循"奥卡姆剃刀"原则——最简单的解释往往是对的。
为什么要用MinPath? - 直接映射(naïve mapping)会高估:40%以上的通路可能是假阳性 - MinPath的结果更保守但更可靠
# 安装MinPath
git clone https://github.com/mgtools/MinPath.git # 克隆仓库
cd MinPath
# 准备输入文件(KO号列表,每行一个)
# 格式示例:
# K00001
# K00002
# K00003
# 运行MinPath(基于KEGG)
python MinPath.py \
-ko ko_list.txt \ # 输入KO号列表
-report minpath_report.txt \ # 输出通路报告
-details minpath_details.txt # 输出详细信息
# 运行MinPath(基于MetaCyc)
python MinPath.py \
-ec ec_list.txt \ # 输入EC号列表
-report minpath_metacyc_report.txt \
-details minpath_metacyc_details.txt \
-map ec2rxn \ # EC号到反应的映射
-map rxn2pwy # 反应到通路的映射
MinPath结果解读:
# minpath_report.txt 示例:
# path 00010 naive 1 minpath 1 fam0 10 fam-found 8 name Glycolysis
# path 00020 naive 1 minpath 1 fam0 8 fam-found 6 name TCA cycle
# path 00030 naive 1 minpath 0 fam0 7 fam-found 2 name PPP
#
# naive 1/0 = 天真映射是否预测存在
# minpath 1/0 = MinPath是否预测存在
# fam0 = 该通路总共需要多少基因家族
# fam-found = 实际检测到多少基因家族
KEGG Mapper Reconstruct:在线通路映射¶
白话解释: KEGG Mapper是最常用的通路可视化工具。你把KO号列表上传,它帮你画出彩色的通路图,有的酶存在(标绿),有的不存在(留白),一目了然。
# KEGG Mapper主要是在线工具
# 网址:https://www.genome.jp/kegg/mapper/reconstruct.html
# 准备输入文件(KO号列表)
# 从eggNOG-mapper结果中提取KO号
awk -F'\t' '$12 != "" {print $12}' eggnog_out.emapper.annotations \
| tr ',' '\n' \ # 将逗号分隔的KO号拆成每行一个
| sort -u \ # 去重排序
> ko_list_for_kegg.txt # 输出KO号列表
# 也可以用KEGG API进行自动化查询(需要KEGG订阅)
# 免费替代方案:用KEGG模块完整度脚本
python3 << 'EOF'
# 用KO号计算KEGG模块完整度
import re
# 读取KO号列表
with open("ko_list_for_kegg.txt") as f:
kos = set(line.strip() for line in f) # 读取所有KO号
print(f"检测到 {len(kos)} 个KO号") # 打印检测到的KO号数量
# KEGG模块定义示例(实际使用时从KEGG下载完整定义)
modules = {
"M00001": { # 糖酵解模块
"name": "Glycolysis (Embden-Meyerhof pathway)",
"kos": ["K00844","K00845","K01810","K00850","K01623","K01624",
"K00134","K00927","K01689","K00873"]
},
"M00002": { # TCA循环模块
"name": "TCA cycle",
"kos": ["K01647","K01681","K00031","K00164","K00658","K01902",
"K00234","K01676","K00024"]
}
}
# 计算每个模块的完整度
for mid, info in modules.items():
found = len(set(info["kos"]) & kos) # 找到的KO数量
total = len(info["kos"]) # 总共需要的KO数量
completeness = found / total * 100 # 计算完整度百分比
status = "完整" if completeness >= 75 else "不完整" # 判断状态
print(f"{mid} {info['name']}: {found}/{total} ({completeness:.1f}%) - {status}")
EOF
Pathway Tools + MetaCyc¶
白话解释: Pathway Tools是基于MetaCyc数据库的通路推断工具。MetaCyc收录了2969条代谢通路,比KEGG的400条模块多得多,覆盖面更广。但它的学习曲线更陡。
# Pathway Tools安装(需要注册获得许可证)
# 下载地址:https://bioinformatics.ai.sri.com/ptools/
# 通常通过MetaPathways流水线使用Pathway Tools
# 安装MetaPathways
git clone https://github.com/hallamlab/MetaPathways.git # 克隆仓库
# 或者使用Pathway Tools的命令行模式
pathway-tools \
-patho \ # 运行PathoLogic推断
-input predicted_genes.gbk \ # 输入GenBank格式注释文件
-no-ce-blast # 不运行额外的BLAST比较
HUMAnN3:一站式宏基因组功能分析¶
白话解释: HUMAnN3把基因注释和通路重建整合在一起,内部自动调用MinPath。输入reads文件,输出三个表:基因家族丰度、通路丰度、通路覆盖度。
# 安装HUMAnN3
conda install -c bioconda humann # 安装humann
# 下载数据库
humann_databases --download chocophlan full /path/to/db \ # 下载核酸数据库
--update-config yes
humann_databases --download uniref uniref90_diamond /path/to/db \ # 下载蛋白数据库
--update-config yes
# 运行HUMAnN3
humann \
--input sample_R1.fastq.gz \ # 输入质控后的reads
--output humann_out/ \ # 输出目录
--threads 16 \ # 线程数
--metaphlan-options "--bowtie2db /path/to/metaphlan_db" # MetaPhlAn数据库路径
# 输出文件说明:
# sample_genefamilies.tsv — 基因家族丰度表
# sample_pathabundance.tsv — 通路丰度表(包含MinPath筛选)
# sample_pathcoverage.tsv — 通路覆盖度表
# 合并多个样本的结果
humann_join_tables \
--input humann_out/ \ # 输入目录
--output merged_pathabundance.tsv \ # 合并的通路丰度表
--file_name pathabundance # 合并哪种类型的表
# 按分类层级汇总
humann_regroup_table \
--input merged_pathabundance.tsv \ # 输入文件
--output regrouped.tsv \ # 输出文件
--groups uniref90_ko # 按KO号重新分组
MetaPathPredict:新一代ML工具(2024年发表)¶
白话解释: MetaPathPredict用机器学习预测不完整基因组(如MAG)中的完整代谢模块。它比MinPath更擅长处理缺失数据的情况。
# 安装MetaPathPredict
pip install MetaPathPredict # 安装
# 运行预测
metapathpredict predict \
--input ko_matrix.tsv \ # 输入KO号矩阵(基因组×KO号)
--output predictions.tsv # 输出预测结果
常见报错与解决¶
| 报错 | 原因 | 解决方案 |
|---|---|---|
HUMAnN3 metaphlan database not found | MetaPhlAn数据库未下载 | metaphlan --install --bowtie2db /path/to/db |
| HUMAnN3运行极慢 | reads太多或数据库未本地化 | 先过滤host reads,确保数据库在本地SSD |
MinPath报cannot find mapping file | 路径不对 | 检查MinPath安装路径下的data目录 |
| KEGG Mapper上传限制 | 免费版有文件大小限制 | 分批上传或使用KofamScan本地注释 |
HUMAnN3输出全是UNMAPPED | reads质量太差或数据库不匹配 | 检查reads质量,确保下载了完整数据库 |
速查表¶
# 工具选择指南
快速初步分析 → KEGG Mapper在线上传
标准宏基因组分析 → HUMAnN3(内置MinPath)
MAG代谢分析 → KofamScan注释 + MinPath推断
最广通路覆盖 → Pathway Tools + MetaCyc
不完整基因组 → MetaPathPredict(2024年新工具)
# 数据库对比
KEGG: ~400个代谢模块,23,000+条通路图,需订阅
MetaCyc: 2,969条代谢通路,17,412个反应,免费
UniRef: HUMAnN3使用的蛋白数据库
# 通路完整度判断
> 75% KO检测到 → 通路可能完整
50-75% → 通路可能存在但不完整
< 50% → 通路可能不存在
# HUMAnN3输出文件
*_genefamilies.tsv — 基因家族丰度(RPK)
*_pathabundance.tsv — 通路丰度(RPK)
*_pathcoverage.tsv — 通路覆盖度(0-1)
面试高频问题¶
Q1:什么是代谢通路重建?为什么要做?
A:代谢通路重建是根据检测到的基因/酶,推断微生物群落具有哪些代谢功能(如糖酵解、氨基酸合成等)。做这个分析可以从"谁在那里"深入到"谁在做什么",理解微生物群落的功能潜力。
Q2:MinPath和直接映射(naïve mapping)有什么区别?
A:直接映射把检测到的每个酶都映射到所有包含它的通路,会严重高估功能多样性(约40%是假阳性)。MinPath使用最简约原则,找出能解释所有检测到酶的最少通路集合,结果更可靠。
Q3:KEGG和MetaCyc有什么区别?你会选哪个?
A:KEGG有约400个代谢模块,MetaCyc有约2969条通路,MetaCyc覆盖面更广(7.4倍)。KEGG的优势是图形化展示好、使用广泛。如果做初步分析用KEGG,深入研究用MetaCyc。
Q4:HUMAnN3的分析流程是什么?
A:输入质控后的reads → MetaPhlAn做物种分类 → 构建物种特异性数据库 → 对reads做功能注释 → MinPath推断通路 → 输出基因家族丰度、通路丰度和通路覆盖度三个表。
Q5:如何判断一条代谢通路是否真正存在?
A:需要综合判断:①通路完整度(关键酶是否都检测到);②MinPath是否预测存在;③通路覆盖度(HUMAnN3的pathcoverage值)。一般通路完整度>75%且关键的限速酶存在,才较有把握认为通路功能存在。