第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(人类蛋白质组学组织-蛋白质组学标准倡议)制定的开放标准。它把质谱数据分成了两部分:
- 控制词汇表(CV):用标准化术语描述仪器参数
- 二进制数据:实际的质谱图,用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还大两倍……后来学乖了,压缩是必须的。
转换最佳实践
转换不是简单的格式替换。你需要注意几个关键点:
- 保留全部谱图:不要因为要减少文件体积就去掉低质量谱图,MaxQuant有自己的过滤逻辑
- 选择正确的压缩:mzML支持多种压缩算法,建议用zlib,平衡速度和体积
- 确认峰值信息:有些转换工具默认不做峰识别,你需要明确指定
我曾经用msconvert把一个四极杆Orbitrap的DIA数据转成mzML,然后试图用另一个软件读取。结果发现所有碎片离子的电荷信息都丢了。查了半天才发现,是msconvert的版本问题。后来升级到最新版才解决。所以,一定要用最新版本的转换工具。
谁来画一下数据流?
我的一些习惯
说实话,做了这么多年蛋白质组学,我对数据格式的态度就一个字——稳。
我个人习惯是:只要合作方用的是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文件