用户名
UID
Email
密码
记住
立即注册
找回密码
只需一步,快速开始
微信扫一扫,快速登录
开启辅助访问
收藏本站
快捷导航
门户
Portal
社区
资讯
会议
市场
产品
问答
数据
专题
帮助
签到
每日签到
企业联盟
人才基地
独立实验室
产业园区
投资机构
检验科
招标动态
供给发布
同行交流
悬赏任务
共享资源
VIP资源
百科词条
互动话题
导读
动态
广播
淘贴
法规政策
市场营销
创业投资
会议信息
企业新闻
新品介绍
体系交流
注册交流
临床交流
同行交流
技术杂谈
检验杂谈
今日桔说
共享资源
VIP专区
企业联盟
投资机构
产业园区
业务合作
投稿通道
升级会员
联系我们
搜索
搜索
本版
文章
帖子
用户
小桔灯网
»
社区
›
C、IVD技术区
›
质谱技术
›
质谱数据文件解析(一)—mzML格式
图文播报
2025庆【网站十二周
2024庆中秋、迎国庆
2024庆【网站十一周
2023庆【网站十周年
2022庆【网站九周年
2021庆中秋、迎国庆
返回列表
查看:
4891
|
回复:
0
[分享]
质谱数据文件解析(一)—mzML格式
[复制链接]
病理医师
病理医师
当前离线
金桔
金币
威望
贡献
回帖
0
精华
在线时间
小时
雷达卡
发表于 2025-3-12 17:33
|
显示全部楼层
|
阅读模式
登陆有奖并可浏览互动!
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
一、Introduction
在
蛋白质组学
研究中,样品的蛋白质成分与含量的检测主要通过
质谱仪
来测定。具体的过程就是把大的蛋白质分子“掐断”成小的氨基酸离子条,然后质谱仪就可以测得很多的这些小离子的质荷比(m/z)形成实验谱图,再将实验谱图与现有的库谱图比对就可以确认实验谱图代表的蛋白质种类是不是库谱图对应的蛋白质,从而实现样品蛋白质成分鉴定。可见,这种方法是由小见大,从微知著的间接思路,这就叫做“button-to-top”,从下往上递推。(
希望以后可以直接鉴定蛋白质而不需要打碎,省去这么多弯弯绕。
)
二、mzML的前世
在上述过程中,质谱仪的输出数据格式是各个设备商各搞一套,而且外人无法获取解析。这样的数据江湖混战受伤的是整个业界呀。于是在2003-2005年,业界大佬Human Proteome Organization(
HUPO
) Proteomics Standards Initiative(
PSI
) 提出了
mzData
格式,这样各个设备商数据就有了统一标准。mzData的格式为了兼顾各种设备、技术路线的可能性,框架设计包含了很大的灵活性,最后发现灵活性太强,需要不断更新设计框架。下面是一个mzData文件:
<?xml version="1.0" encoding="UTF-8"?>
<mzData version="1.05" accessionNumber="psi-ms:12345" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<description>
<admin>
</admin>
<instrument>
</instrument>
<dataProcessing>
</dataProcessing>
</description>
<spectrumList count="1227">
<spectrum id="20">
<spectrumDesc>
<spectrumSettings>
<acqSpecification spectrumType="discrete" methodOfCombination="sum" count="1">
<acquisition acqNumber="20"/>
</acqSpecification>
<spectrumInstrument msLevel="2" mzRangeStart="110.000000" mzRangeStop="905.000000">
<cvParam cvLabel="psi" accession="PSI:1000036" name="ScanMode" value="MassScan"/>
<cvParam cvLabel="psi" accession="PSI:1000037" name="Polarity" value="positive"/>
<cvParam cvLabel="psi" accession="PSI:1000038" name="TimeInMinutes" value="5.944667"/>
<cvParam cvLabel="psi" accession="PSI:1000035" name="PeakProcessing" value="continuous"/>
<cvParam cvLabel="tmo" accession="TMO:1000001" name="Filter" value="+ c d Full ms2 445.35@cid35.00 [ 110.00-905.00]"/>
</spectrumInstrument>
</spectrumSettings>
<precursorList count = "1">
<precursor msLevel="2" spectrumRef="19">
<ionSelection>
<cvParam cvLabel="psi" accession="PSI:1000040" name="MassToChargeRatio" value="445.346680"/>
<cvParam cvLabel="psi" accession="PSI:1000041" name="ChargeState" value="2"/>
<cvParam cvLabel="psi" accession="PSI:1000041" name="ChargeState" value="3"/>
</ionSelection>
<activation>
<cvParam cvLabel="psi" accession="PSI:1000044" name="Method" value="CID"/>
<cvParam cvLabel="psi" accession="PSI:1000045" name="CollisionEnergy" value="35.00"/>
</activation>
</precursor>
</precursorList>
</spectrumDesc>
<mzArrayBinary>
<data precision="64" endian="little" length="43">AAAAwNfia0AAAACApoJ</data>
</mzArrayBinary>
<intenArrayBinary>
<data precision="64" endian="little" length="43">AAAAAAD+p0AAAAAAAKy=</data>
</intenArrayBinary>
</spectrum>
</spectrumList>
</mzData>另一个大佬Institute for Systems Biology (
ISB
) 则提出了
mzXML
格式,它的特点就是简单固定,缺点就是不够灵活。下面是一个mzXML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<mzXML xmlns="http://sashimi.sourceforge.net/schema_revision/mzXML_3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://sashimi.sourceforge.net/schema_revision/mzXML_3.0 http://sashimi.sourceforge.net/schema_revision/mzXML_3.0/mzXML_idx_3.0.xsd" >
<msRun scanCount="9181" startTime="PT480.065S" endTime="PT6598.78S" >
<parentFile fileName="R1_RG59_B4_1.RAW" fileType="RAWData" fileSha1="8710fc9a36c249bc85b5a4ce560b03d5aac319cc" />
<msInstrument>
</msInstrument>
<dataProcessing centroided="1" >
</dataProcessing>
<scan num="1"
msLevel="1"
peaksCount="221"
polarity="+"
scanType="Full"
filterLine="FTMS + p NSI Full ms [375.00-2000.00]"
retentionTime="PT480.065S"
lowMz="376.83"
highMz="1979.57"
basePeakMz="1125.3"
basePeakIntensity="10168"
totIonCurrent="175256" >
<peaks precision="32"
byteOrder="network"
pairOrder="m/z-int" >Q7xqSEOoVlVDvPXgQ+TplEO89x==</peaks>
</scan>
</msRun>
<index name="scan">
<offset id="1" >1085</offset>
</index>
</indexOffset>124914</indexOffset>
</mzXML>相比较而言是不是就觉得mzXML很清爽啊。
总之,有人开始嫌弃mzData太灵活,mzXML太死板。
三、mzML今生
2010年,
ISB
又提出了
mzML
格式,以期解决上述问题,使得框架灵活与稳定能够兼顾。它主要采取的手段包括三把斧头:
各种属性、参数基本都囊括进一个叫做
控制字典
的东西中去,想增添属性、参数先从字典里面找找。在mzML文件中就可以通过引用字典中的id来表示该属性。
控制字典
的一个属性定义如下所示:
[Term]
id: MS:0000000
name: Proteomics Standards Initiative Mass Spectrometry Vocabularies
def: "Proteomics Standards Initiative Mass Spectrometry Vocabularies." [PSI:MS]
语义检查。确保基本相同的属性、参数不被多个变量控制。
开发mzML兼容的工具链,使得用户愿意从其他数据格式转换过来。
现在,mzML格式已经更新到1.1版本了。再加上这三把斧头,mzML格式能够应付一个十年就有希望了。
四、mzML详解
整体框架
1. 在
<mzML>
标签下,前面有很多的字段来说明样品制备、设备参数、使用软件、数据处理过程等等,并说明控制字典的引用来源
2. 质谱数据记录标签
<run>
里面的
<spectrum>
,每一个
<spectrum>
里包含的质荷比与离子强度就是真正的一帧质谱数据。
3.
<run>
可能还包含
<chromatogram>
(optinal),它是表示对确定质荷比离子丰度随时间变化的数据,即色谱峰,一般没有使用该字段。
4. 在
<mzML>
结束后,还会有
<spectrum>
和
<chromatogram>
的标签块来索引每一个spetrum在整个文件中的索引地址。
5. 最后,有索引块的起始地址。
一级质谱详解
<spectrum index="100" id="sample=1 period=1 cycle=2 experiment=1" defaultArrayLength="76665">
<cvParam cvRef="MS" accession="MS:1000511" name="ms level" value="1"/>
<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>
<cvParam cvRef="MS" accession="MS:1000130" name="positive scan" value=""/>
<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value=""/>
<cvParam cvRef="MS" accession="MS:1000505" name="base peak intensity" value="66617.0" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>
<cvParam cvRef="MS" accession="MS:1000504" name="base peak m/z" value="497.27801529955" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="1.677707e06" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>
<cvParam cvRef="MS" accession="MS:1000796" name="spectrum title" value="weissto_i170508_005-SWLYPB125.101.101. File:"weissto_i170508_005.wiff", NativeID:"sample=1 period=1 cycle=2 experiment=1""/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination" value=""/>
<scan>
<cvParam cvRef="MS" accession="MS:1000016" name="scan start time" value="0.059933333333" unitCvRef="UO" unitAccession="UO:0000031" unitName="minute"/>
<cvParam cvRef="MS" accession="MS:1000616" name="preset scan configuration" value="1"/>
<scanWindowList count="1">
<scanWindow>
<cvParam cvRef="MS" accession="MS:1000501" name="scan window lower limit" value="360.0" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<cvParam cvRef="MS" accession="MS:1000500" name="scan window upper limit" value="1460.0" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
</scanWindow>
</scanWindowList>
</scan>
</scanList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="608780">
<cvParam cvRef="MS" accession="MS:1000523" name="64-bit float" value=""/>
<cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
<cvParam cvRef="MS" accession="MS:1000514" name="m/z array" value="" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<binary>eJwc2nc8ltVbdhu......=</binary>
</binaryDataArray>
<binaryDataArray encodedLength="60096">
<cvParam cvRef="MS" accession="MS:1000523" name="64-bit float" value=""/>
<cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
<cvParam cvRef="MS" accession="MS:1000515" name="intensity array" value="" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>
<binary>eJzsvUadfaettrrr......=</binary>
</binaryDataArray>
</binaryDataArrayList>
</spectrum>
index 是数字编号,一般是从0开始,zero-based,这个与 mzXML 不同。id是自定义,在swath方法中可以用第x样品x个MS1的第x个MS2命名。defaultArrayLength表示默认情况下的二进制数据长度。
ms level表明本次扫描是MS1还是MS2。
base peak intensity,查表知该属性表示该次质谱的最高强度。
base peak m/z,查表知改属性表示最高强度对应的m/z。
scan start time,表示retension time.(
待确定
),注意其后跟随的时间单位是minute还是second。
scan window lower/upper limit,质谱仪扫描窗口的范围,注意与swath方法的子窗口范围相区分。
64-bit float,表示压缩数据来源是64位
zlib,表示压缩方法
m/z array和intensity array就是最主要数据。
二级质谱详解
<spectrum index="101" id="sample=1 period=1 cycle=2 experiment=2" defaultArrayLength="164">
<cvParam cvRef="MS" accession="MS:1000511" name="ms level" value="2"/>
<cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>
<cvParam cvRef="MS" accession="MS:1000130" name="positive scan" value=""/>
<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value=""/>
<cvParam cvRef="MS" accession="MS:1000505" name="base peak intensity" value="84.0" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>
<cvParam cvRef="MS" accession="MS:1000504" name="base peak m/z" value="214.982951835982" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<cvParam cvRef="MS" accession="MS:1000285" name="total ion current" value="2202.0" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>
<cvParam cvRef="MS" accession="MS:1000796" name="spectrum title" value="weissto_i170508_005-SWLYPB125.102.102. File:"weissto_i170508_005.wiff", NativeID:"sample=1 period=1 cycle=2 experiment=2""/>
<scanList count="1">
<cvParam cvRef="MS" accession="MS:1000795" name="no combination" value=""/>
<scan>
<cvParam cvRef="MS" accession="MS:1000016" name="scan start time" value="0.060883333333" unitCvRef="UO" unitAccession="UO:0000031" unitName="minute"/>
<cvParam cvRef="MS" accession="MS:1000616" name="preset scan configuration" value="2"/>
<scanWindowList count="1">
<scanWindow>
<cvParam cvRef="MS" accession="MS:1000501" name="scan window lower limit" value="50.0" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<cvParam cvRef="MS" accession="MS:1000500" name="scan window upper limit" value="2000.0" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
</scanWindow>
</scanWindowList>
</scan>
</scanList>
<precursorList count="1">
<precursor>
<isolationWindow>
<cvParam cvRef="MS" accession="MS:1000827" name="isolation window target m/z" value="403.0" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<cvParam cvRef="MS" accession="MS:1000828" name="isolation window lower offset" value="3.5" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<cvParam cvRef="MS" accession="MS:1000829" name="isolation window upper offset" value="3.5" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
</isolationWindow>
<selectedIonList count="1">
<selectedIon>
<cvParam cvRef="MS" accession="MS:1000744" name="selected ion m/z" value="403.0" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
</selectedIon>
</selectedIonList>
<activation>
<cvParam cvRef="MS" accession="MS:1000422" name="beam-type collision-induced dissociation" value=""/>
</activation>
</precursor>
</precursorList>
<binaryDataArrayList count="2">
<binaryDataArray encodedLength="1500">
<cvParam cvRef="MS" accession="MS:1000523" name="64-bit float" value=""/>
<cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
<cvParam cvRef="MS" accession="MS:1000514" name="m/z array" value="" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
<binary>eJwNxXswFAgcB/......=</binary>
</binaryDataArray>
<binaryDataArray encodedLength="80">
<cvParam cvRef="MS" accession="MS:1000523" name="64-bit float" value=""/>
<cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
<cvParam cvRef="MS" accession="MS:1000515" name="intensity array" value="" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>
<binary>eJxjYAABJwcGrI......=</binary>
</binaryDataArray>
</binaryDataArrayList>
</spectrum>(只描述与MS1不同的标签)
scan window lower/upper limit,该范围一般大于MS1指定的扫描范围。(
待确认
)
在标签中,"isolation window target m/z"和"isolation window lower/upper offset"就表示了该次MS2的子窗口大小。从这个子窗口的大小和整的需要的扫描窗口大小,可以计算一次MS1最大对应(1460-360)/(3.5+3.5)≈157次,同时由于子窗口的大小是变化的,越靠近MS1的边界子窗口设置越大,因此,实际MS2的次数小于该最大值,为100次左右
在标签中,“selected ion m/z”与“isolation window target m/z”一致。(
那这个标签有什么意义?
)
五、后记
mzData完成了它的历史使命,已经被官方抛弃了,让我们为它曾经做过的贡献致敬!
mzXML和mzML还在广泛使用中。。。
期待更合适的数据格式能够用于表示庞大的质谱结果,比如RDF(resource description framework)等。
六、参考文献
Eric W. Deutsch. Mass Spectrometer Output File Format mzML. In Current Protocols in Protein Science (p. 25.0.1-25.0.2). Hoboken, NJ, USA: John Wiley & Sons, Inc.
https://doi.org/10.1002/0471140864.ps2500s60
(全文大量引用该文,不再额外标出)
原文地址:https://zhuanlan.zhihu.com/p/40783833
楼主热帖
小桔灯网业务合作须知!
如何注册小桔灯网VIP会员?
破局 | 巨头们正在剥离IVD
[
同行交流
]
禁止进口的旧仪器有哪些?
[
免疫仪器
]
瑞派宠物医生:穿越宠物眼科“手术禁区”,争分夺秒镌刻生命印记
[
血球仪器
]
女生主动起来会有多主动?
[
血球仪器
]
超详细解读——免疫组化实验,建议收藏!
[
免疫组化技术
]
医学检验技术专业研究生毕业后去医院好还是IVD行业好?
[
同行交流
]
体系审核中经常会遇到的问题和应对策略
[
NMPA体系考核
]
第11批国采来袭!75个品种大清单曝光,这些药价要“跳水”了?11批国采启动前,清单泄露?集采6年回头看:谁哭了?谁笑了?
[
同行交流
]
回复
使用道具
举报
提升卡
返回列表
发表回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
关闭
官方推荐
/3
【扫描左侧二维码关注微信】参与交流!
网站定期开展行业相关话题互动交流活动!对认真参与讨论的桔友将有金桔奖励!欢迎参与。
查看 »
IVD业界薪资调查(月薪/税前)
长期活动,投票后可见结果!看看咱们这个行业个人的前景如何。请热爱行业的桔友们积极参与!
查看 »
小桔灯网视频号开通了!
扫描二维码,关注视频号!
查看 »
返回顶部
快速回复
返回列表
客服中心
搜索
官方QQ群
洽谈合作
关注微信
微信扫一扫关注本站公众号
个人中心
个人中心
登录或注册
业务合作
-
投稿通道
-
友链申请
-
手机版
-
联系我们
-
免责声明
-
返回首页
Copyright © 2008-2024
小桔灯网
(https://www.iivd.net) 版权所有 All Rights Reserved.
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
Powered by
Discuz!
X3.5 技术支持:
宇翼科技
浙ICP备18026348号-2
浙公网安备33010802005999号
快速回复
返回顶部
返回列表