MaxQuant工作流程概览
做质谱数据分析,很多人上来就点“Run”。
嗯,这样跑是能出结果,但结果质量嘛……我不敢打包票。
我一直认为,搞懂MaxQuant的工作流程,比学会点按钮重要得多。
你只有知道软件背后在做什么,才能理解每条参数为什么这么设,FDR为什么能控制住。
这一章,我带大家把流程拆开看看。
2.1 原始数据文件与实验设计
整个流程的起点,是质谱仪生成的原始文件。
我看过不少新手,直接把十几个 .raw 文件丢进去就跑。然后对着结果文件夹发愣——哪个样本对应哪个组?
我个人习惯是,在准备数据的同时就写好 experimentalDesignTemplate.txt。
这个文件决定了 MaxQuant 怎么分组、怎么比对,尤其影响 later 的 LFQ 定量。
日期_条件_生物学重复_技术重复.raw比如
20240901_Treatment_R1_Run1.raw。这样在参数表里一眼就能看清楚分组。
实验设计表说白了就是两列:一列文件名(不含 .raw),一列实验组名。
组名可以写 Control、Treatment_1h 等等,最好别用编号 1、2、3,不然分析完对照着表查半天。
2.2 参数配置组(XML 配置文件)
MaxQuant 把参数保存在 mqpar.xml 里。你可以在界面里配置,也可以用脚本生成。
我经常讲:「所有 FDR 相关的内容,都在这个文件里」。
下面是 mqpar.xml 中和 FDR 直接相关的几个参数段——
<?xml version="1.0" encoding="utf-8"?>
<MaxQuantParams xmlns="...>
<!-- 酶切参数 -->
<Digestion>
<Enzyme>Trypsin/P</Enzyme>
<MaxMissedCleavages>2</MaxMissedCleavages>
</Digestion>
<!-- FDR 三级阈值 -->
<Fdr>
<PsmFdr>0.01</PsmFdr>
<PeptideFdr>0.01</PeptideFdr>
<ProteinFdr>0.01</ProteinFdr>
</Fdr>
<!-- 诱饵库开关 -->
<Decoy>
<DecoyMode>R</DecoyMode>
<DecoyFraction>0.01</DecoyFraction>
</Decoy>
</MaxQuantParams>
嗯,这里要特别注意:FDR 是三级独立的——PSM、肽段、蛋白各有一个阈值。
多数情况下我都设为 0.01(1%)。但有些项目如果蛋白鉴定数太少,可以考虑适当放宽到 0.05,但不能超过 0.1。
DecoyMode 从 R(反向序列)改成了 R 之外的选项,结果诱饵分布直接崩掉,FDR 估计完全不准。后来排查了两天才发现——诱饵模式选错了。
2.3 肽段鉴定:从二级谱图到 PSM
这一块是 MaxQuant 的核心引擎 Andromeda 的活。
说白了,就是把二级碎片质谱图和你准备的蛋白数据库做匹配,算出一个匹配得分(Score)。
匹配完之后,每个谱图可能对应多个候选肽段,但只有得分最高的那个被保留为 PSM(肽段谱图匹配)。
那怎么判断这个 PSM 靠不靠谱呢?——就是 FDR 登场的地方了。
常规流程里,MaxQuant 做了这么几步:
- 一级图谱提取: 算出每个肽段的母离子质荷比和保留时间
- 二级碎片解析: 把二级碎片做成峰列表,和理论碎片做比对
- Score 计算: 基于 Andromeda 的匹配逻辑生成 Score 和 Delta Score
- 假阳性评估: 通过诱饵库匹配数,反推真实匹配的 FDR
我个人习惯在检查结果时,先看 msms.txt 里的 Score 分布。
如果诱饵匹配的 Score 和目标库的 Score 有明显重叠区,说明样本质量或参数可能有问题。
2.4 蛋白推断(Protein Inference)
鉴定完肽段后,你要把肽段「拼」回蛋白。
这个步骤叫蛋白推断。MaxQuant 用的是一个很聪明的原则——奥卡姆剃刀(Occam's razor)。
什么奥卡姆剃刀?
想象一下:你有两个肽段,一个只出现在蛋白 A 里,另一个同时在蛋白 A 和 B 里。MaxQuant 会优先认为,这两个肽段都来自蛋白 A。蛋白 B 如果没有独有肽段支持,会被归入“蛋白组(Protein Group)”,而不是独立鉴定。
你想想看,这里的大坑是什么?
——如果蛋白 A 被 FDR 过滤掉了,同时丢失的还有共享肽段的信息,可能导致蛋白 B 也被误判。
2.5 结果文件一瞥
MaxQuant 会生成一整套结果文件。每一份都有它在流程中的特定角色。
| 文件 | 内容 | FDR 相关字段 |
|---|---|---|
| msms.txt | 所有二级谱图的匹配信息 | Score, Delta Score, PEP |
| evidence.txt | 每条肽段的定量与鉴定证据 | PEP, q-value |
| peptides.txt | 汇总每条肽段的多文件统计 | Peptide PEP, Peptide q-value |
| proteinGroups.txt | 蛋白组的鉴定与定量结果 | Protein PEP, Protein q-value, Score |
| summary.txt | 每轮鉴定的整体统计 | 鉴定总数、FDR 实际值 |
我在项目中见过不下50次,有人只盯着 proteinGroups.txt 看,完全不检查 msms.txt 或 summary.txt。
结果发文章前才发现,整体 PSM 层面的 FDR 已经超过 5% 了。
记住:FDR 是三级瀑布。一级失守,后面全部失守。
打开 summary.txt,看第 2 列
Peptide IDs 和 Protein IDs 的数字。然后看最后一列
FDR,如果这个值大于你设置的阈值(比如 1%),说明这轮跑失败了。我刚用 MaxQuant 时就在这栽过跟头——FDR 栏显示 3.8%,我还以为自动修正了。其实没修正,它只是如实汇报你看着办。
2.6 一个小结思维导图
到这,你应该能理解:MaxQuant 不是一个简单的搜库软件,它是一套完整的质谱数据分析流水线。
从原始文件到蛋白列表,中间经过酶切、匹配、打分、FDR 控制、蛋白推断、定量整合,每一步都牵一发动全身。
我个人最深的体会是:你控制 FDR 的位置越多,最后结果的可靠性就越高。
如果只在蛋白层面设一个 0.01,前面 PSM 和肽段层面的 FDR 都放开,那蛋白层面的 0.01 其实是一个假象——因为你已经放进来太多错误的肽段了。