3. MaxQuant搜库参数设置与优化

搜库参数这个东西,很多人觉得默认就行。我刚开始也这么想。

结果有一次跑完 PTXQC,一看质控图,鉴定数少得可怜。查了半天,才发现是可变修饰没写全。嗯,从那以后我每次建新项目,都会把参数表从头捋一遍。

核心参数:你真正需要关心的

MaxQuant 的 GUI 里参数很多,但真正影响结果的就那么几个。我个人习惯先搞定下面这四大块:

参数模块关键选项我的推荐值备注
酶切Digestion modeSpecific尽量不用 Semi-specific,假阳性率高
固定修饰Fixed modificationsCarbamidomethyl (C)默认就有,别删
可变修饰Variable modificationsOxidation (M), Acetyl (Protein N-term)再加一个 Deamidation (NQ) 看情况
FDRPSM FDR, Protein FDR0.01混样可以放宽到 0.05,但质控通常 0.01
如果你做的是大规模批次,记得把 “Match between runs” 打开。它能在不同样品间“借”鉴定,增加深度。但小心——跨批次不推荐用这个,后面我会讲。

可变修饰:多就是好吗?

很多人喜欢把能找到的可变修饰全都勾上,觉得这样鉴定越多越好。

我告诉你,这是大忌。

为什么?每多一个可变修饰,搜索空间指数级膨胀。运行时间翻倍不说,假阳性也会跟着飙。我曾经遇到过,一个 PXD 项目,把 15 种可变修饰全选,结果搜了三天还没完。最后只能杀掉重来。

我的经验:常规项目只保留 Oxidation (M) 和 Acetyl (Protein N-term)。如果研究糖基化,再单独加 HexNAc,但一定要限定肽段数量少的样品。

FDR 与肽段长度下限

FDR 默认 0.01 就够了,别为了数据好看就改到 0.001——除非你有大量重复,否则鉴定数会少得可怜。

肽段长度下限呢?Min. peptide length 我习惯设 7。太短的肽段打不出稳定的二级谱,质谱测不准;设太高又会丢掉小肽。7 是一个很稳的平衡点。

注意:如果你使用 PTXQC 做质控,它默认会把肽段长度大于 5 的视为有效。如果你的 Min. peptide length 设了 6,那没问题。但设成 8 或 9 时,PTXQC 的 “Peptide length” 分布图会出现左边一大截空白,会报警告。这不是你的样品有问题,是参数不一致。

Match between runs:用还是不用?

这个参数争议很大。说白了,它是利用保留时间对齐,把一组中某个样品鉴定到的肽段“转嫁”到没检测到的样品上。能增加 10%-20% 的鉴定数。

但坑在哪?如果批次间色谱条件波动大,对齐会出错。我见过一个案例:同一个项目的两个批次,中间液相色谱柱换了,保留时间漂了 2 分钟。Match between runs 一开,错配率飙升,QC 图惨不忍睹。

所以我的建议:

  • 单批次内:开,效果很好。
  • 跨批次:关掉。或者至少先跑一遍 PTXQC,看 retention time 漂移是否在 0.5 分钟以内。

参数优化:一个具体案例

我记得有一次做血浆蛋白组,样品降解很厉害。默认参数下,鉴定到的肽段有一大半带 Deamidation 修饰——这可是降解标志。质控图上 “Modification distribution” 那一栏全是橙色。

后来我把可变修饰里的 Deamidation (NQ) 去掉,重新跑一遍。鉴定数掉了 5%,但 QC 图全部变绿。这才算是一个 clean dataset。

所以优化参数不要只看鉴定数,要看 QC 指标。

如何批量传递参数给多个 MQ 任务?

MaxQuant 的图形界面没法批量改参数。手工改几十个 mqpar.xml 会疯掉。我写了一个小脚本,用 sed 处理:

# 批量替换 mqpar.xml 中的 FDR 为 0.01
for f in /path/to/projects/*/mqpar.xml; do
  sed -i 's/<fdr>.*<\/fdr>/<fdr>0.01<\/fdr>/g' "$f"
  sed -i 's/<varMods>.*<\/varMods>/<varMods>Oxidation (M),Acetyl (Protein N-term)<\/varMods>/g' "$f"
done

这样做的好处是保证所有批次参数完全一致。跑完 PTXQC 后,批次间差异才能真正反映实验本身的问题,而不是参数不同导致的。

核心原则:在整个批次或项目周期内,所有搜库参数不得变动。哪怕你觉得某个参数更好,也等下一个项目再用。否则质控图上的波动你没法解释。

一张图理清参数选择逻辑

下面这张 SVG 简单概括了我做参数决策的顺序。先定酶切和修饰,再调 FDR,然后决定是否开 Match between runs,最后批量统一。

MaxQuant 搜库参数决策流程 确定酶切模式(Specific) 固定修饰 + 可变修饰 FDR 设为 0.01 Match between runs 同一批次 → 开 跨批次 → 关 最后用脚本批量统一所有 mqpar.xml,确保参数一致

避坑指南

  • FDR 设太低不一定是好事。 我见过有人设 0.001,然后质控图鉴定数对比直方图左边断了,PTXQC 直接标红。
  • 固定修饰不要出现冲突。 比如同时选了 Carbamidomethyl (C) 和 Propionamide (C),那半胱氨酸到底修饰哪个?MQ 会报错或忽略其中一个。
  • 酶切效率检查。 跑完第一次,用 PTXQC 的 “Missed cleavages” 分布图确认。如果 2 个以上漏切率超过 20%,要考虑酶解问题,不是参数能挽救的。
  • 数据库选择。 别用 RefSeq 全库,太大。用 SwissProt 或 UniProt 的 reviewed 序列足够。

最后啰嗦一句:参数定好之后,用 git 管理你的 mqpar.xml 和运行记录。哪天质控图出异常,直接看历史版本:是参数改动了,还是样品本身出了问题。这样省心很多。