跳转至

604 宏蛋白组分析流程(Metaproteomics)

一句话概述: 宏蛋白组直接检测微生物群落中实际翻译出来的蛋白质,是连接"基因表达"和"代谢功能"之间的关键桥梁,告诉你微生物"真正在生产什么"。


核心知识点速查表

知识点白话解释
宏蛋白组对环境样本中所有微生物的蛋白质进行质谱检测和定量分析
LC-MS/MS液相色谱-串联质谱,宏蛋白组的核心检测手段
DDA数据依赖型采集,质谱优先选择高丰度离子进行碎裂
DIA数据非依赖型采集,对所有离子无差别碎裂,覆盖更全
MetaLab专门为宏蛋白组设计的自动化分析平台(整合MaxQuant)
MaxQuant蛋白质组学通用搜索引擎,MetaLab的核心比对模块
蛋白数据库用于鉴定肽段的参考序列库,宏蛋白组需要构建超大的微生物蛋白库
LCA最低共同祖先算法,用共有肽段推断蛋白的物种来源
FDR假发现率,通常设为1%,控制错误鉴定的比例
metaExpertPro2024年新发表的宏蛋白组流程,支持DIA模式

一、宏蛋白组在多组学中的位置

白话解释:

DNA(宏基因组)  → "菜单上有什么菜"(功能潜力)
RNA(宏转录组)  → "厨师正在炒哪些菜"(正在表达的基因)
蛋白(宏蛋白组) → "桌上端出来了什么菜"(实际产出的蛋白) ← 最接近功能
代谢物(代谢组) → "客人吃了什么"(最终的代谢产物)

为什么蛋白组重要? - RNA≠蛋白:很多mRNA不一定翻译成蛋白,还受翻译后修饰影响 - 蛋白是实际执行功能的分子 - 蛋白更稳定,半衰期比RNA长得多


二、实验流程概览

样本采集 → 蛋白提取 → 酶解(胰蛋白酶) → 肽段纯化
    → LC-MS/MS质谱检测 → 数据库搜索 → 蛋白鉴定/定量
    → 物种分类 + 功能注释 → 差异分析

2.1 关键实验注意事项

========== 实验设计要点 ==========
1. 蛋白提取方法影响极大:推荐SDS裂解 + FASP超滤法
2. 酶解:胰蛋白酶(Trypsin),37°C过夜消化
3. 质谱平台:Orbitrap(Thermo)或timsTOF(Bruker)
4. 采集模式:DDA(传统)或DIA(2024趋势,覆盖更全)
5. 建议测序深度:每样本2h梯度,产生约2-5万张MS2谱图
6. 生物学重复:≥3个
7. 技术重复:建议2-3个(质谱重复性不如测序)

三、数据分析流程

3.1 数据库构建(最关键的步骤)

# ========== 步骤1:构建蛋白搜索数据库 ==========
# 宏蛋白组最大的挑战:数据库太大 → 搜索慢 + 假阳性高
# 解决策略:用匹配的宏基因组数据构建样本特异性数据库

# 策略1:从宏基因组组装结果预测蛋白(推荐)
# 假设已经有宏基因组的组装结果
prodigal \
    -i metagenome_assembly.fa \  # 输入:宏基因组组装的contigs
    -a predicted_proteins.faa \  # 输出:预测的蛋白序列(FASTA格式)
    -p meta \                    # 宏基因组模式
    -f gff                       # 输出GFF格式注释

# 去冗余(减小数据库大小)
cd-hit \
    -i predicted_proteins.faa \  # 输入:预测的蛋白
    -o proteins_nr.faa \         # 输出:去冗余后的蛋白
    -c 0.95 \                    # 95%序列一致性阈值
    -n 5 \                       # 词长
    -M 16000 \                   # 内存限制16G
    -T 16                        # 16个线程

echo "原始蛋白数:" && grep -c ">" predicted_proteins.faa  # 统计原始数量
echo "去冗余后:" && grep -c ">" proteins_nr.faa           # 统计去冗余后数量

# 策略2:使用公共数据库(无宏基因组数据时的备选)
# 下载IGC(肠道微生物基因组综合目录)
wget http://meta.genomics.cn/meta/dataTools  # IGC数据库下载页面
# 或使用UniRef50/90子集

# 策略3:MetaPep核心肽段数据库(2023发表,速度更快)
# MetaPep是预构建的肠道微生物核心肽段库
# 搜索速度比传统MAG搜索快数倍

# 添加污染物数据库(必须!)
cat proteins_nr.faa \                        # 微生物蛋白
    /db/contaminants/cRAP.fasta \            # 常见污染物蛋白(角蛋白、胰蛋白酶等)
    /db/human/human_proteome.fasta \         # 人类蛋白组(去宿主蛋白用)
    > search_database.fasta                  # 合并后的搜索数据库

echo "最终数据库蛋白数:" && grep -c ">" search_database.fasta

3.2 MetaLab自动化分析(推荐)

# ========== 步骤2:使用MetaLab进行自动化分析 ==========
# MetaLab是一站式宏蛋白组分析平台
# 内部调用MaxQuant做蛋白鉴定,整合物种分类和功能注释

# MetaLab工作流程:
# 1. 数据库构建(自动迭代搜索,生成样本特异性数据库)
# 2. 肽段鉴定和蛋白定量(调用MaxQuant)
# 3. 物种分类(LCA算法)
# 4. 功能注释(COG/KEGG/GO)

# MetaLab是GUI软件,主要通过图形界面操作:
# 1. 加载.raw质谱文件
# 2. 选择/上传蛋白数据库
# 3. 设置搜索参数
# 4. 点击"Run"开始分析

# MetaLab的关键参数设置参考:
# - 酶:Trypsin/P
# - 最大漏切:2
# - 固定修饰:Carbamidomethyl (C)  半胱氨酸烷基化
# - 可变修饰:Oxidation (M), Acetyl (Protein N-term)
# - 母离子质量容差:±20 ppm(first search),±4.5 ppm(main search)
# - 碎片离子质量容差:±0.5 Da(ion trap)或 ±20 ppm(Orbitrap)
# - FDR:1%(肽段和蛋白两个层面)

3.3 手动流程:MaxQuant + 下游分析

# ========== 如果不用MetaLab,可以手动用MaxQuant ==========

# MaxQuant也是GUI软件,命令行可以这样调用:
# (需要先在GUI中配置好参数并保存为mqpar.xml)
dotnet MaxQuantCmd.exe mqpar.xml  # 运行MaxQuant命令行模式

# MaxQuant核心输出文件:
# txt/proteinGroups.txt  — 蛋白组定量结果(最重要)
# txt/peptides.txt       — 肽段鉴定结果
# txt/evidence.txt       — 详细鉴定证据
# txt/msms.txt           — MS2谱图匹配

# 也可以用命令行工具替代MaxQuant:

# 用MSFragger(速度更快)
java -jar MSFragger.jar \
    --database search_database.fasta \     # 蛋白数据库
    --num_threads 16 \                     # 线程数
    *.mzML                                 # 输入:质谱数据(mzML格式)

# RAW文件转mzML格式
# 用ThermoRawFileParser(Linux可用)
ThermoRawFileParser \
    -i sample.raw \                        # 输入:Thermo RAW文件
    -o converted/ \                        # 输出目录
    -f 2                                   # 格式2=mzML

3.4 物种分类分析

# ========== 步骤3:基于鉴定的肽段做物种分类 ==========
import pandas as pd  # 导入pandas

# 读取MaxQuant的肽段鉴定结果
peptides = pd.read_csv("txt/peptides.txt", sep="\t")  # 读取肽段表

# MetaLab会自动做LCA(最低共同祖先)分类
# 手动实现LCA的思路:
# 1. 每个肽段可能匹配多个蛋白(多物种共有肽段)
# 2. 找到这些蛋白的最低共同祖先
# 3. 物种特异性肽段 → 直接分到该物种
# 4. 共有肽段 → 分到上一级分类(属/科/目...)

# 用Unipept做在线物种分类(基于胰蛋白酶肽段)
# https://unipept.ugent.be/
# 上传肽段列表,自动返回物种分类和功能注释

# 从proteinGroups.txt提取物种信息
proteins = pd.read_csv("txt/proteinGroups.txt", sep="\t")  # 读取蛋白组结果

# 过滤:去除污染物、反库命中、只有1个肽段的蛋白
proteins_clean = proteins[
    (proteins["Potential contaminant"] != "+") &   # 不是污染物
    (proteins["Reverse"] != "+") &                  # 不是反库(decoy)
    (proteins["Peptides"] >= 2)                     # 至少2个肽段
].copy()

print(f"过滤后蛋白组数: {len(proteins_clean)}")  # 打印过滤后的蛋白组数

# 提取LFQ强度(Label-Free Quantification)
lfq_cols = [c for c in proteins_clean.columns if c.startswith("LFQ intensity")]  # 找LFQ列
lfq_data = proteins_clean[lfq_cols]  # 提取LFQ数据
lfq_data.index = proteins_clean["Protein IDs"]  # 用蛋白ID作为索引

3.5 功能注释

# ========== 步骤4:功能注释 ==========

# 方法1:eggNOG-mapper注释(推荐,最全面)
emapper.py \
    -i identified_proteins.faa \     # 输入:鉴定到的蛋白序列
    -o eggnog_annotation \           # 输出前缀
    --cpu 16 \                       # CPU数
    -m diamond \                     # 比对方法
    --data_dir /db/eggnog/ \         # eggNOG数据库
    --go_evidence non-electronic \   # GO证据类型
    --tax_scope auto                 # 自动选择分类范围

# eggNOG-mapper输出中重要的列:
# COG_category — COG功能分类
# KEGG_ko      — KEGG直系同源基因编号
# KEGG_Pathway — KEGG通路
# GO_terms     — GO功能注释

# 方法2:InterProScan注释(更慢但更准确)
interproscan.sh \
    -i identified_proteins.faa \     # 输入蛋白序列
    -o interpro_results.tsv \        # 输出
    -f tsv \                         # TSV格式
    -cpu 16 \                        # CPU数
    -goterms \                       # 输出GO注释
    -pa                              # 输出通路注释

3.6 差异蛋白分析

# ========== 步骤5:差异蛋白分析 ==========
library(limma)    # 线性模型差异分析
library(ggplot2)  # 可视化

# 读取LFQ定量数据
protein_data <- read.delim("proteinGroups.txt",  # 读取MaxQuant蛋白组结果
                            sep = "\t")

# 提取LFQ强度列
lfq <- protein_data[, grep("^LFQ", colnames(protein_data))]  # 提取LFQ列
rownames(lfq) <- protein_data$Protein.IDs  # 蛋白ID作为行名

# 过滤:去除污染物和反库
keep <- protein_data$Potential.contaminant != "+" &  # 非污染物
        protein_data$Reverse != "+" &                 # 非反库
        protein_data$Peptides >= 2                    # 至少2个肽段
lfq <- lfq[keep, ]  # 应用过滤

# log2转换
lfq_log <- log2(lfq)  # log2转换

# 缺失值处理:用最小值填充(模拟检测限以下的低丰度蛋白)
min_val <- min(lfq_log[is.finite(as.matrix(lfq_log))], na.rm = TRUE)  # 找最小值
lfq_log[!is.finite(as.matrix(lfq_log))] <- min_val - 1  # NA和-Inf用最小值-1填充

# 设计矩阵
group <- factor(c(rep("Control", 5), rep("T2D", 5)))  # 分组
design <- model.matrix(~ 0 + group)  # 设计矩阵(无截距)
colnames(design) <- c("Control", "T2D")  # 列名

# limma差异分析
fit <- lmFit(lfq_log, design)  # 拟合线性模型

# 构建对比矩阵
contrast <- makeContrasts(T2D - Control,  # T2D vs Control
                          levels = design)
fit2 <- contrasts.fit(fit, contrast)  # 应用对比
fit2 <- eBayes(fit2)                  # 经验贝叶斯调节

# 提取结果
results <- topTable(fit2,        # 从拟合结果提取
                    number = Inf,  # 所有蛋白
                    sort.by = "p") # 按P值排序

# 筛选显著差异蛋白
sig_proteins <- results[results$adj.P.Val < 0.05 &  # 校正P值<0.05
                        abs(results$logFC) > 1, ]     # |log2FC|>1
cat("显著差异蛋白数:", nrow(sig_proteins), "\n")       # 打印数量

# 火山图
ggplot(results, aes(x = logFC, y = -log10(adj.P.Val))) +  # X=log2FC, Y=-log10P
  geom_point(aes(color = adj.P.Val < 0.05 & abs(logFC) > 1),  # 按显著性着色
             size = 1.5) +
  scale_color_manual(values = c("grey", "red")) +  # 灰色=不显著,红色=显著
  geom_hline(yintercept = -log10(0.05), linetype = "dashed") +  # P值阈值线
  geom_vline(xintercept = c(-1, 1), linetype = "dashed") +      # FC阈值线
  labs(title = "Metaproteomics: T2D vs Control",  # 标题
       x = "log2(Fold Change)",                    # X轴
       y = "-log10(adjusted P-value)") +           # Y轴
  theme_minimal()                                   # 简约主题

四、2024新工具:metaExpertPro(DIA模式)

# ========== metaExpertPro:支持DIA的宏蛋白组分析 ==========
# 2024年发表在Molecular & Cellular Proteomics
# 比MetaLab多鉴定约22%的肽段

# metaExpertPro工作流程:
# 1. 构建样本特异性谱图库(Spectral Library)
# 2. DIA数据解析(用DIA-NN)
# 3. 蛋白定量和物种分类
# 4. 功能注释

# DIA模式的优势:
# - 覆盖更全面(不像DDA会漏掉低丰度蛋白)
# - 定量更准确(减少缺失值)
# - 重复性更好

# 安装DIA-NN(metaExpertPro的核心引擎)
# 从GitHub下载:https://github.com/vdemichev/DiaNN

# DIA-NN运行示例
diann \
    --f sample.mzML \                          # 输入:DIA质谱数据
    --lib spectral_library.tsv \               # 谱图库
    --fasta search_database.fasta \            # 蛋白数据库
    --threads 16 \                             # 线程数
    --out results.tsv \                        # 输出结果
    --qvalue 0.01 \                            # FDR阈值1%
    --matrices                                 # 输出定量矩阵

常见报错与解决

报错原因解决方案
数据库搜索极慢(>24h)数据库太大(>10M蛋白)用CD-HIT去冗余到95%,或用MetaPep核心肽段库
鉴定蛋白数极少(<100)数据库与样本不匹配用匹配宏基因组构建样本特异性数据库
FDR过高数据库太大导致假阳性用迭代搜索策略(MetaLab自动处理)
LFQ缺失值太多低丰度蛋白在部分样本未检出用MinDet/MinProb/KNN方法填充
RAW文件无法打开Linux不支持Thermo RAW用ThermoRawFileParser转换为mzML
MaxQuant内存不足数据量太大分批搜索,或增加内存(建议≥64G)
物种分类不准共有肽段太多只用物种特异性肽段做分类

速查表

========== 宏蛋白组标准分析流程 ==========
RAW数据 → 格式转换(mzML) → 数据库构建(宏基因组预测蛋白)
    → 数据库搜索(MaxQuant/MSFragger) → 蛋白鉴定/定量
    → 物种分类(LCA) + 功能注释(eggNOG/KEGG)
    → 差异分析(limma) → 可视化

========== 核心工具 ==========
自动化平台:MetaLab(推荐)/ metaExpertPro(DIA模式)
搜索引擎  :MaxQuant / MSFragger / Comet
DIA分析   :DIA-NN / Spectronaut
格式转换  :ThermoRawFileParser / msconvert
蛋白注释  :eggNOG-mapper / InterProScan / Unipept
差异分析  :limma / Perseus / MSstats
物种分类  :Unipept / MetaLab内置LCA

========== 数据库选择 ==========
最推荐:宏基因组组装+Prodigal预测的蛋白(样本特异性)
备选1:IGC(肠道基因组综合目录,~10M基因)
备选2:UniRef50/90(通用蛋白数据库)
备选3:MetaPep(核心肽段库,速度快)
必加  :cRAP污染物数据库 + 人类蛋白组

========== DDA vs DIA ==========
DDA:传统方式,工具成熟(MaxQuant),适合已建立流程的实验室
DIA:2024趋势,覆盖更全,定量更准(DIA-NN),推荐新项目使用

面试高频问题

Q1:宏蛋白组最大的技术挑战是什么?

答: 最大的挑战是蛋白数据库太大

普通蛋白质组学用一个物种的蛋白组(~2万条蛋白),而宏蛋白组需要涵盖所有可能存在的微生物蛋白,数据库可能有几百万到上千万条蛋白。这导致: 1. 搜索极慢:时间从小时级变成天级 2. 假阳性高:数据库越大,随机匹配的概率越高,FDR控制困难 3. 灵敏度下降:正确匹配被大量噪声淹没

解决方案: - 迭代搜索:先用小数据库做初筛,再构建样本特异性数据库精细搜索(MetaLab的策略) - 匹配宏基因组:用同一样本的宏基因组数据预测蛋白,构建"定制数据库" - 核心肽段库:用MetaPep等预构建的核心肽段库,大幅减小搜索空间

Q2:LFQ(无标记定量)的原理是什么?

答: LFQ(Label-Free Quantification)不需要同位素标记,直接用质谱信号强度做定量: 1. MS1峰面积:提取每个肽段在MS1全扫描中的色谱峰,用峰面积代表丰度 2. MaxLFQ算法:通过"最小比值和"方法,把不同样本中的峰面积标准化到可比较的水平 3. 蛋白定量:用该蛋白所有肽段的LFQ值汇总得到蛋白水平的定量

优点:不需要额外实验步骤,样本间可比性好 缺点:缺失值多(低丰度蛋白可能在部分样本中检测不到)

Q3:宏蛋白组的物种分类是怎么做的?

答: 宏蛋白组用LCA(最低共同祖先)算法做物种分类:

  1. 将鉴定到的肽段序列比对到蛋白数据库
  2. 每个肽段可能匹配多个物种的蛋白
  3. 如果一个肽段只在一个物种中出现 → 物种特异性肽段,直接分到该物种
  4. 如果一个肽段在多个物种中出现 → 共有肽段,分到这些物种的最低共同祖先(比如都是拟杆菌属的,就分到"拟杆菌属")

关键工具:Unipept(在线工具,输入肽段序列自动返回物种分类和功能注释)

Q4:DDA和DIA采集模式有什么区别?宏蛋白组推荐哪种?

答: - DDA:每次扫描先做MS1全扫描,然后选择Top-N高丰度离子做MS2碎裂。低丰度蛋白可能被忽略 - DIA:把整个质量范围分成多个窗口,每个窗口内的所有离子都做MS2碎裂。覆盖更全面

对宏蛋白组来说: - DDA:工具成熟(MaxQuant、MetaLab),文献多,适合入门 - DIA:缺失值少、定量更准、覆盖更全,2024年新工具metaExpertPro已支持DIA

建议:新项目优先考虑DIA模式。

Q5:宏蛋白组和宏转录组的数据有什么互补关系?

答: - 宏转录组告诉你"哪些基因正在转录"(mRNA水平) - 宏蛋白组告诉你"哪些蛋白实际被翻译出来"(蛋白水平) - 两者结合可以发现转录后调控现象:某些基因mRNA高表达但蛋白质水平低,说明存在翻译抑制或蛋白降解

理想的多组学设计是:宏基因组 + 宏转录组 + 宏蛋白组 + 代谢组,从"潜力 → 表达 → 产出 → 代谢"四个层面全面理解微生物群落。