4. 第4章
MaxQuant 的图形界面,说实话,第一次打开时你可能会懵。按钮多、标签页乱,还有个让人头疼的 mqpar.xml。别急,这一章我来帮你捋清楚——界面哪里是干活的核心,配置文件里哪些节点绝对不能动错。
我个人习惯先看全局,再抠细节。MaxQuant 的界面主要分两大块:左侧的 参数面板 和右侧的 结果预览。但真正改参数的地方,其实都在一个 XML 文件里——mqpar.xml。这个文件里藏了所有定量结果的"命门"。
4.1 界面布局:三块关键区域
你打开 MaxQuant 主窗口(无论 1.x 还是 2.x),上方是菜单栏和工具栏,中间就是你最常用的三个模块:
- Raw 文件列表:拖入你的 .raw 文件,程序会自动列出实验分组。记得检查一下 Group 分配,我遇到过一个人把条件 A 和条件 B 的 raw 文件放反了,跑了两天结果全废。
- 参数设置按钮:点击它会弹出窗口,但最后所有修改都会写入一个
mqpar.xml。千万不要在这个窗口里手动输入 XML 标签,容易崩。 - 启动按钮(Run):点它就开始干活了。但强烈建议在点之前先点一下 "Check" 按钮,它会检查 xml 的合规性。
4.2 参数配置文件 mqpar.xml 的结构
mqpar.xml 本质上是个树状文档。根节点是 <MaxQuantConfig>,下面挂着一堆子节点。我当年刚开始用的时候,最怕的就是一个节点写错嵌套关系,然后程序直接闪退。记住一句话:所有标签必须成对出现,属性值必须用双引号。
我整理了一份典型的结构表格,你可以对照着改:
| 节点路径 | 作用 | 常见坑 |
|---|---|---|
<globalParams> |
全局参数:仪器类型、酶切规则、固定修饰、肽段长度范围 | 仪器类型如果写错(比如 Orbitrap 写成 QTOF),匹配窗口会偏差很大 |
<groupParams> |
分组特异性参数:每个实验组的匹配时间窗口、m/z 容差 | 不同组的时间窗口不能相差太大,否则跨组定量会错乱 |
<modificationSequences> |
可变修饰和固定修饰:比如 Oxidation (M), Acetyl (Protein N-term) | 修饰命名必须严格与 MaxQuant 内置库一致,我曾在 Oxidation 后面加了个空格,结果跑了两次才发现 |
<tables> |
输出表格配置:是否输出 evidence.txt、peptides.txt 等 | 如果这里漏配了,结果文件夹里会少文件,你找半天都找不到原因 |
<fastaFiles> |
蛋白质序列数据库路径 | 路径不能有中文或空格!我曾经因为路径叫 "database v2.fasta" 导致程序解析失败 |
你想想看,如果只是改参数,我建议直接复制一份别人的 mqpar.xml 然后逐节点改,比从头新建窗口快三倍。
4.3 参数配置文件的树状结构速览
下面这张图我画了好多遍,你拿去对照自己的 xml 文件看,一目了然:
这张图我画得比较细,你拿自己项目里的 mqpar.xml 对照着看,基本每一条都有对应的节点。注意 fastaFiles 节点里可以写多个 <FastaFileInfo>,但顺序不要乱改——MaxQuant 会按照你放的第一个 fasta 文件作为主数据库。
4.4 避坑指南:我亲手踩过的三个雷
我曾经把
mqpar.xml 从 Windows 拷贝到 Linux 服务器上跑,结果程序直接报 "Parse error"。查了半天发现是文件头缺了 <?xml version="1.0" encoding="utf-8"?>。往后我每次新建项目都从官方模板复制,绝不用记事本手动创建。
MaxQuant 的
<fastaFilePath> 节点里,路径分隔符必须用正斜杠 /,或者用双反斜杠 \\。我之前偷懒写了一个反斜杠 \,结果 raw 文件读到了,fasta 永远找不到。这问题藏得特别深,我废了一天排查。
groupParams 里如果定义了 firstSearchTolerance,它会覆盖 globalParams 里同名参数。我见过有人全局设了 20 ppm,分组里又设了 10 ppm,以为取最小值,实际上 MaxQuant 只认分组里的值。你要是想统一全实验组参数,最好把 groupParams 节点删掉,只保留全局节点。
4.5 怎么快速定位参数?
每次改参数都要翻几百行的 xml,太烦了。我的做法是:用 Ctrl+F(查找) 直接搜关键词。比如想改酶切位点,搜 <enzyme>。想改输出表格,搜 <outputFolder>。下面我列几个最常用的搜索关键词:
<instrument>—— 仪器类型(Orbitrap / QTOF / Ion Trap)<firstSearchTolerance>—— 初搜容差(单位 ppm)<mainSearchTolerance>—— 主搜容差(单位 ppm)<numberOfThreads>—— 线程数,我告诉你要根据 CPU 核数来设,别贪多,否则内存会爆<minPeptideLength>—— 肽段最短长度,默认 7,我一般设 5 或 6,可以回收更多匹配
一个实战小经验:当你要大批量处理多个实验时,最好写个 Python 脚本批量修改 mqpar.xml 里的参数。我记得有个项目要做 200 个样品的定量比较,手动打开 200 次参数窗口会疯掉。最后我写了个脚本,用 lxml 解析 XML,改完直接批量跑。效率翻了几十倍。
4.6 本章总结
界面布局就那么回事——看懂 mqpar.xml 的结构比记住按钮位置重要十倍。你以后调参数改配置,直接编辑 XML 文件是最快的,前提是别改错节点名和路径。我建议你每次改完 xml 后,用 Check 按钮 验证一下再跑程序,这个习惯能省下大把无意义的等待时间。