原始文件准备:从命名到分组,一个都不能错

做蛋白质组学的人,谁没被“文件找不到、分组乱套、跑完MaxQuant才发现批次混了”折磨过?

我最早入行时,接过一个多批次的磷酸化组学项目。当时实验室的命名风格是“日期+人名+随机数字”,结果MaxQuant分组用了两天,最后发现某个批次文件重名覆盖了……嗯,从那以后我订了一套硬规则。

这一节,我就把这几条硬规则拆开讲。看似是“脏活”,但批次一致性好不好,80%取决于RAW文件怎么摆、怎么命名、怎么分组。

1. 命名规范——给RAW文件一个“身份证号”

一个好名字,不需要打开文件就知道:哪个项目、哪台质谱、第几批、什么样品、第几次重复。

我的推荐格式:

项目_日期_仪器_批次_样品类型_样品编号_重复序号.raw

举个例子:

字段示例值说明
项目CRC_exosome结直肠癌外泌体项目
日期20240528采集日期,8位数字
仪器QE_plusQ Exactive Plus
批次B02Batch 02,两位数字
样品类型ctrl对照组,用缩写
样品编号P012样品唯一ID
重复序号R03技术重复3

完整名称:

CRC_exosome_20240528_QE_plus_B02_ctrl_P012_R03.raw

为什么要加批次号?

我在一个多中心项目中遇到过:两家合作方用的命名几乎一样,只是质谱型号不同。结果MaxQuant的Experiment列里批号丢失,导致后续批次效应校正时根本无法追溯。改了两个月脚本……后来我们强制在文件名里塞进B01、B02,再没出问题。

避坑指南:

  • 文件名里绝不能用中文、空格、特殊符号(下划线可以,连字符建议只用单下划线)。
  • 日期统一用ISO格式:YYYYMMDD,不要写成2024-5-28或28/05/2024——排序会乱。
  • 重复序号建议两位数:R01、R02……这样字母排序和数字排序一致。

2. 文件夹组织——像整理衣柜一样整理RAW文件

我个人习惯分三层。

顶层:项目根目录

CRC_exosome/

第二层:按批次分

CRC_exosome/
  batch01/
  batch02/
  batch03/

第三层:每个批次内按日期/仪器区分(可选)

batch01/
  20240528_QE_plus/
  20240601_QE_plus/

当然,如果你的项目只有一个仪器,第二层直接放RAW文件就行,不必再套一层日期。但批次目录必须存在。

为什么?

因为MaxQuant的Raw file locations对话框是按文件夹加载的。如果你把所有批次的RAW文件塞在一个文件夹里,Experiment列只能靠解析文件名来区分批次——这本身就增加了出错概率。而且一旦你需要在后续步骤(如DIA-NN)中用Fraction或SampleID做批次区分,文件夹结构的优势就出来了:你只需要在参数配置里指定Raw data folder为批次父文件夹,MaxQuant会自动把子文件夹名当作分组标识。

小技巧:

在batch目录下放一个README.txt或batch_notes.txt,记录该批次的采集参数、工作日、湿度、色谱柱状态。有时候批次效应不是仪器漂移,而是那天下雨室温波动导致的。我在整理Eclipse数据时就靠这些备注锁定了原因。

3. 实验分组设计——MaxQuant的“group”不是给你随便起的

MaxQuant的分组逻辑其实很简单:每个RAW文件必须属于唯一一个Experiment组。而这个组,通常对应你的实验条件(control vs treatment, time point 0h vs 6h, tissue A vs B)。

但很多新手把Experiment直接设成文件名或批次号——这其实浪费了分组能力。正确的做法是:

  • Experiment: 只反映生物学变量,如“Ctrl_6h”、“Treated_6h”。
  • Fraction: 如果用了馏分分离,同一个样品的不同馏分填同一个Fraction值(如1,2,3……),让MaxQuant知道它们是同一份样品分出来的。
  • 批次: 通过文件夹单独组织,或写在文件名里,在后续分析阶段(如R/Python脚本)手动引入批次协变量。

我的经验:

我做了一个简单的“分组设计表”,每次都和实验记录一起保存。格式如下:

RawFileExperimentFractionBatchSampleID
CRC_B02_ctrl_P012_R01Ctrl1B02P012
CRC_B02_ctrl_P012_R02Ctrl1B02P012
CRC_B02_treat_P013_R01Treated1B02P013
CRC_B03_treat_P013_R01Treated1B03P013

这张表里,P013样品在B02和B03批次都出现了,这是为了评估批次效应特意做的“桥接样品”(bridge sample)。这种设计在MaxQuant里不需要特殊处理,但后续差异分析时,SampleID可以帮你做paired test或交叉验证。

注意: 同一份样品的多个技术重复,Experiment必须相同,否则MaxQuant会认为它们是不同样品,导致定量无法合并。

整体流程一张图

下面这张SVG把从“原始RAW文件”到“MaxQuant可读分组”的常规路线串了起来。你可以对照自己的项目检查每一步。

多批次RAW文件 -> MaxQuant准备流程 原始 RAW 文件 命名规范 项目_日期_仪器_批次 文件夹组织 项目/批次/RAW 实验分组设计表 Experiment / Fraction / Batch 加载到 MaxQuant 指定 RAW 文件夹 & 分组导入 批次一致性检查 PCA / 桥接样品评估 关键节点 • 命名影响 Experiment 解析 • 分组表是批次效应追溯的核心

我个人建议:在开始任何MaxQuant分析之前,把这张图贴在实验室白板上。每一条RAW文件从命名到加载,都走一遍这个流程。我发现只要把“分组设计表”提前做好,后面批次效应校正其实只需要一行代码。

最后分享一个实用脚本:

我习惯用Python自动生成分组表。假设你的RAWe命名规范固定,这个脚本可以省去人工填表的时间:

import os, re
from pathlib import Path

raw_dir = Path("CRC_exosome/batch02")
rows = []
for f in raw_dir.glob("*.raw"):
    # 文件名:项目_日期_仪器_批次_类型_ID_重复
    parts = f.stem.split('_')
    experiment = parts[4]  # 例如 'ctrl' 或 'treat'
    fraction = 1 if 'frac' not in f.stem else re.findall(r'frac(\d+)', f.stem)[0]
    batch = parts[3]
    sample = parts[5]
    rows.append(f.stem, experiment, fraction, batch, sample)

# 输出制表符分隔的表格,可直接粘贴到MaxQuant的experimentalDesignTemplate.txt
for r in rows:
    print(f"{r[0]}\t{r[1]}\t{r[2]}\t{r[3]}\t{r[4]}")

执行后会生成类似的内容:

CRC_B02_ctrl_P012_R01	Ctrl	1	B02	P012
CRC_B02_ctrl_P012_R02	Ctrl	1	B02	P012
CRC_B02_treat_P013_R01	Treated	1	B02	P013

把这张表复制到experimentalDesignTemplate.txt,MaxQuant就能正确理解你的分组了。

好了,这一节的内容就是这些。记住:数据准备越规范,你的分析越省心。下一次当你面对几十个RAW文件时,不妨按这套框架走一遍,我保证你会回来感谢现在的自己。