第2章:质谱数据格式介绍(raw、mzML等)

做蛋白质组学定量,第一步就是跟数据格式打交道。你从质谱仪上采集下来的原始数据,往往带着厂商特定的“方言”。如果你不懂这些方言,MaxQuant根本没法开展工作。这一章我们就来聊聊这些格式——它们长什么样,为什么存在,以及如何让MaxQuant听懂它们。

为什么不能只用一种格式?

坦白讲,我也希望质谱界能统一成一种格式。但现实是,Thermo Fisher、Bruker、SCIEX这些厂商都有自己的“私房菜”。
我刚开始做蛋白质组学那会儿,被raw文件坑过好几次。后来才明白,这不是厂商故意为难你,而是各家仪器在硬件和采集逻辑上差异太大。

举个最简单的例子:Thermo的Orbitrap用的是“傅里叶变换”做质量分析,数据存储方式天然就和Q-TOF不同。你把两种仪器数据塞进同一个格式,必然要丢失信息。

所以,我们今天面对的局面是:

  • 原始格式:厂商专有,包含完整仪器信息
  • 开放格式:社区制定,便于数据交换和长期保存
  • 过渡格式:为了方便后续处理,需要转换

Thermo .raw 格式——绕不开的老大哥

在MaxQuant的世界里,Thermo .raw是当之无愧的主角。原因很简单:MaxQuant本来就是为Thermo仪器设计的。

这个格式是二进制的,封闭的。你用记事本打开它,看到的全是乱码。我曾经为了解析一个raw文件里的扫描参数,折腾了整整两天——后来发现人家有官方SDK,直接调用就行。

核心要点:

.raw文件存储了质谱仪采集的完整原始信号,包括每个扫描的质荷比、强度、保留时间、离子注入时间、AGC目标值等等。MaxQuant直接读取这个格式,不需要任何转换。

但它的缺点也很明显:

  • 厂商锁定:只有Thermo的软件能完整解析
  • 版本依赖:不同版本Thermo软件生成的raw文件,有时兼容性有问题
  • 体积大:一个4小时DIA实验,raw文件轻松上10GB
小心版本陷阱:

我记得有一次,合作方给了我一批raw文件,是Thermo Xcalibur 4.0生成的。我的机器上装的是Xcalibur 3.1,结果MaxQuant直接报错“未找到数据源”。后来我更新了Thermo的底层驱动程序才解决。如果你要处理别人的raw文件,最好先问清楚他们用的软件版本。

mzML —— 社区公认的桥梁

如果你不是Thermo用户,或者你想把自己的数据分享给同行,.raw格式就不太友好了。这时候mzML登场。

mzML是HUPO-PSI(人类蛋白质组学组织-蛋白质组学标准倡议)制定的开放标准。它把质谱数据分成了两部分:

  1. 控制词汇表(CV):用标准化术语描述仪器参数
  2. 二进制数据:实际的质谱图,用base64编码后存放

为什么要这么搞?就是为了可扩展性。你想想看,如果每种仪器参数都写死在格式里,新仪器一出来格式就得改。用CV术语,只需要增加术语条目就行。

个人建议:

如果你在做多平台比较研究(比如Thermo vs. Bruker),我强烈建议把数据统一转成mzML。这样下游分析不管用什么软件,至少数据格式是一致的。我自己做的一项大规模临床研究,就是全部转mzML后再处理的,省了很多麻烦。

其他格式一览

格式 类型 主要用途 MaxQuant支持
.raw Thermo专有 Thermo仪器原始数据 原生支持
.mzML 开放标准 跨平台、长期保存 需转换为.raw或.mgf
.mzXML 开放标准 mzML的前身 已不推荐使用
.mgf 简单文本 谱图列表格式 仅用于搜库
.d Bruker专有 Bruker仪器原始数据 不支持
.wiff SCIEX专有 SCIEX仪器原始数据 不支持

从这张表你能看出来,MaxQuant对非Thermo用户其实不太友好。Bruker的数据要用MaxQuant,得先转成mzML,再用其他工具转成MaxQuant能读的形式。步骤多了,出错的概率自然就大了。

格式转换工具——必要的“翻译官”

既然格式不统一,就得靠工具来翻译。我用过最顺手的几个工具:

  • msconvert(ProteoWizard套装):最主流的转换工具,支持raw→mzML、mzXML、mgf等
  • ThermoRawFileParser:专门把Thermo raw转换为mzML,速度比msconvert快
  • jPOST Converter:把mzML转回raw(在MaxQuant语境下很少用)

msconvert的典型用法是这样的:

msconvert input.raw --mzML --zlib --filter "peakPicking true 1-" -o output_dir

这行命令的意思是:把input.raw转换成mzML格式,用zlib压缩,同时做峰识别(peak picking)。
我刚开始用的时候,经常忘了加--zlib参数,结果mzML文件比raw还大两倍……后来学乖了,压缩是必须的。

转换最佳实践

转换不是简单的格式替换。你需要注意几个关键点:

  1. 保留全部谱图:不要因为要减少文件体积就去掉低质量谱图,MaxQuant有自己的过滤逻辑
  2. 选择正确的压缩:mzML支持多种压缩算法,建议用zlib,平衡速度和体积
  3. 确认峰值信息:有些转换工具默认不做峰识别,你需要明确指定
一个坑:

我曾经用msconvert把一个四极杆Orbitrap的DIA数据转成mzML,然后试图用另一个软件读取。结果发现所有碎片离子的电荷信息都丢了。查了半天才发现,是msconvert的版本问题。后来升级到最新版才解决。所以,一定要用最新版本的转换工具。

谁来画一下数据流?

质谱数据格式转换与MaxQuant工作流 质谱数据格式转换与MaxQuant工作流 Thermo 质谱仪 Orbitrap / Q Exactive 其他厂商仪器 Bruker / SCIEX .raw 文件 专有二进制格式 .d / .wiff 等 厂商专属格式 转换工具 msconvert / TRFP mzML 文件 开放标准格式 MaxQuant 直接读取.raw 说明: MaxQuant 原生支持 Thermo .raw 格式。其他厂商数据需先转为 mzML, 再通过转换工具(如 ThermoRawFileParser)转为 .raw 才能使用。

我的一些习惯

说实话,做了这么多年蛋白质组学,我对数据格式的态度就一个字——稳。

我个人习惯是:只要合作方用的是Thermo仪器,我就直接用.raw,不转mzML。因为转格式就意味着多一步、多一次出错的可能。但如果我要把数据上传到公共数据库(比如PRIDE、MassIVE),那就必须转成mzML——这是规矩。

还有一个细节:永远保留一份原始.raw文件。不管你怎么转换、怎么处理,原始数据是根基。我曾经见过有人把原始数据删了,只留mzML,结果下游分析发现mzML的峰识别参数设错了,想重来却发现无处下手——教训啊。

常见问题与避坑

  • 问:我只有mzML文件,能用MaxQuant吗?
    答:不能直接读。你需要先转成.raw。但说实话,这个来回转换可能会引入artifact。建议直接用原始.raw。
  • 问:msconvert和ThermoRawFileParser,哪个好?
    答:我个人的经验是,ThermoRawFileParser更快,尤其在批量转换时。但msconvert参数更丰富,能做更多预处理。看你需求。
  • 问:Bruker的.d文件能转成MaxQuant能读的格式吗?
    答:可以,但很麻烦。你要先转成mzML,再用其他工具转成.raw。过程复杂,容易出错。如果不是必须用MaxQuant,我建议Bruker用户考虑其他软件,比如FragPipe。
本章核心记忆点:
  • MaxQuant原生只读Thermo .raw
  • mzML是开放格式,适合跨平台和长期保存
  • 转换工具首选msconvert或ThermoRawFileParser
  • 永远保留原始.raw文件