MsBackendMsp
作者字体:诺伊曼·斯特芬[法国]https://orcid.org/0000-0002-7899-7192),约翰内斯·雷纳[aut, cre] (https://orcid.org/0000-0002-6977-7147), Michael Witting [ctb] (https://orcid.org/0000-0002-1462-4426
编译: 2022年4月26日星期二17:02:25

1简介

光谱软件包为处理质谱(MS)数据提供了一个中央基础设施。该包支持不同的可互换使用后端从各种来源(如mzML文件)导入MS数据。的MsBackendMsp包增加了对NIST MSP格式文件的支持,这些文件经常用于共享谱库,因此增强了小型复合注释工作流使用光谱而且MetaboAnnotation(Rainer et al. 2022).这个小插图说明了的用法MsBackendMsp包以及如何使用它以MSP文件格式导入和导出数据。

2安装

要安装此包,请开始R并输入:

如果(!install.packages("BiocManager") BiocManager::install("MsBackendMsp")

这将安装这个包和所有最终丢失的依赖项。

3.从MSP文件导入MS/MS数据

MSP文件格式允许存储MS/MS谱(质量峰值的m/z和强度)以及每个谱的附加注释。因此,单个MSP文件可以包含单个或多个谱。下面我们加载这个包并定义与这个包一起分发的MSP文件的文件名。

library(MsBackendMsp) nist <- system. php文件(“extdata”、“spectrum2。msp", package = "MsBackendMsp")

接下来,我们将数据导入到光谱对象通过在构造函数中指定后端类,该类可用于读取数据(在本例中为aMsBackendMsp).

sp <- spectrum (nist, source = MsBackendMsp())
开始从1个文件导入数据…完成

有了这些,我们现在可以完全访问所有导入的光谱变量,可以用spectraVariables函数。

spectraVariables (sp)
## [1] "msLevel" "rtime" ## [3] " attachtionnum " "scanIndex" ## [5] "dataStorage" "dataOrigin" ## [7] "centroided" "smoothed" ## [9] "polarity" "precScanNum" ## [11] "precursorMz" "precursorIntensity" ## [13] "precursorCharge" "collisionEnergy" ## [15] "isolationWindowLowerMz" "isolationWindowTargetMz" # [17] "isolationWindowUpperMz" "name" ## [19] "add " "instrument" "smiles" ## [23] "inchikey" inchi" ## [25] "formula" "PUBCHEMID" ## [27] "SOURCE" "COMMENT" ## [29]“Num.Peaks”

除了默认的光谱变量,如msLevelrtimeprecursorMz,我们也有额外的光谱变量,如的名字加合物它们是来自MSP文件的附加数据字段。

sp msLevel美元
## [1] 2
sp美元的名字
# #[1]“3-Hydroxy-3 - (2 - (2-hydroxyphenyl) 2-oxoethyl) 1, 3-dihydro-2H-indol-2-one“# #[2]”5 - (4-Ethoxybenzylidene) 2 - (4-morpholinyl) 1, 3-thiazol-4(5小时)——“
sp美元加合物
"[m + h]+" "[m + h]+"

然而,NIST文件格式只是松散定义和多种多样的口味(或方言)存在,它们定义自己的数据字段或为字段使用不同的名称。的MsBackendMsp通过定义和提供MSP数据字段和谱变量之间的不同映射,支持从所有MSP格式变体导入/导出数据。还可以使用用户定义的映射,这使得从任何MSP类型导入都成为可能。MSP数据字段和谱变量(即光谱对象)返回spectraVariableMapping函数。

spectraVariableMapping (MsBackendMsp ())
#名称接入公式inchikey加成##“name”“DB#”“formula”“inchikey”“PRECURSORTYPE”##精确质量rtime预制件加成微笑##“exactmass”“RETENTIONTIME”“precursorMz”“PRECURSORTYPE”“smiles”## inchi极性仪器##“inchi”“IONMODE”“仪器”

它们的名字字符向量表示谱变量名,向量的值表示MSP数据字段。注意,默认情况下,所有没有提供映射的数据字段也会被导入(字段名被用作光谱变量名)。

这种默认映射适用于NIST或MS-DIAL等其他工具中的MSP文件。北美大众银行蒙纳但是,使用稍微不同的格式。下面我们读取来自MoNA的MSP文件的前6行。

莫娜< -系统。文件(“extdata”、“minimona。msp", package = "MsBackendMsp") head(readLines(mona))
##[1] "名称:Ritonavir" ## [2] "Synon: $:00in-source" ## [3] "DB#: MoNA000010" ## [4] "InChIKey: NCDNCNXCDXHOMX-XGKFQTDJSA-N" ##[5] "仪器类型:Waters Synapt G2" ##[6] "公式:C37H48N6O5S2"

NIST MSP文件的前6行:

头(readline (nist))
# #[1]”名称:3-Hydroxy-3 - (2 - (2-hydroxyphenyl) 2-oxoethyl) 1, 3-dihydro-2H-indol-2-one“# #[2]“PRECURSORMZ: 284.0917 # #”[3]“PRECURSORTYPE: [M + H] + # #[4]“INSTRUMENTTYPE: /离子阱”# #[5]“仪器:热Finnigan LCQ十“# #[6]“娜微笑:”

具有MoNA风格的MSP文件使用稍微不同的字段名,它们也不全是大写的,并且还定义了额外的字段。虽然使用上面使用的默认变量映射可以导入MoNA风味的MSP文件,但是大多数光谱变量不会正确地映射到结果中各自的光谱变量光谱物体(例如前驱体m/z在预期的光谱变量下是不可用的precursorMz美元).

spectraVariableMapping但是也提供了具有MoNA风格的MSP文件的映射。

spectraVariableMapping (MsBackendMsp(),“蒙娜丽莎”)
##名称同义词接入##“名称”“Synon”“DB#”## inchikey添加precursormz# #“inchikey”“Precursor_type”“precursorMz”##极性公式exactmass ##“Ion_mode”“formula”“exactmass”## collision_energy_text msLevel ##“Collision_energy”“Spectrum_type”

在数据导入中使用此映射将确保正确地映射字段。

sp_mona <- Spectra(mona, source = MsBackendMsp(), mapping = spectraVariableMapping(MsBackendMsp(), "mona"))
开始从1个文件导入数据…完成
sp_mona precursorMz美元
## [1] na 189.1603 265.1188 265.1188 263.1031 263.1031 229.1552 312.1302 ## [9] 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 525.4990 539.5146 539.5146 539.5146 539.5146 539.5146 539.5146 539.5146 539.5146 539.5146 539.5146 539.5146 539.5146 539.5146 539.5146

注意,除了预定义的变量映射之外,还可以使用映射参数,从而支持从MSP文件导入高度定制的格式。

某个频谱的多个值在MSP文件中表示为重复的字段。的MsBackendMsp还支持此类数据的导入。例如,MoNA MSP文件使用多个“Synon”字段以列出化合物的所有同义词。下面我们为我们的两个光谱提取这样的值光谱对象从蒙娜丽莎。

sp_mona 29:30美元的同义词
# # # #[1]([1])“美元:00一”“美元:05年30 v CID”# #[3]“美元:07 In-Silico-Spectrum”“美元:00将 " ## ## [[ 2]] # #[1]“美元:00一”“美元:05年30 v CID”# #[3]“美元:07 In-Silico-Spectrum”“美元:00将”

除了从MSP文件导入数据外,MsBackendMsp也可以出口光谱到MSP格式的文件。下面我们以出口为例光谱将数据从MoNA转移到一个临时文件,使用默认的NIST MSP格式。

tmpf <- tempfile() export(sp_mona, backend = MsBackendMsp(), file = tmpf, mapping = spectraVariableMapping(MsBackendMsp())) head(readLines(tmpf))
## [1] "NAME: Ritonavir" ## [2] "msLevel: MS2" ## [3] "synonym: $:00in-source" ## [4] "DB#: MoNA000010" ## [5] "INCHIKEY: NCDNCNXCDXHOMX-XGKFQTDJSA-N" ##[6] "仪表类型:Waters Synapt G2"

或出口光谱将NIST MSP格式的数据转换为具有MoNA风味的MSP文件。

tmpf <- tempfile() export(sp, backend = MsBackendMsp(), file = tmpf, mapping = spectraVariableMapping(MsBackendMsp(), "mona")) head(readLines(tmpf))
##[1] "名称:3-羟基-3-(2-(2-羟基苯基)-2-氧基)-1,3-二氢- 2h -吲哚-2- 1 " ## [2]"Spectrum_type: MS2" ## [3] "Ion_mode: Positive" ## [4] "PrecursorMZ: 284.0917" ## [5] "Precursor_type: [M+H]+" ## [6] "INSTRUMENTTYPE: IT/离子trap"

因此,这也可以用于在不同风格的MSP文件之间进行转换。

4会话信息

sessionInfo ()
## R版本4.2.0 RC (22-04-21 r82226) ##平台:x86_64-pc-linux-gnu(64位)##运行在:Ubuntu 20.04.4 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bio /R/lib/libRblas. ##因此## LAPACK: /home/biocbuild/bbs-3.16-bio /R/lib/libRlapack。因此## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# [3] LC_TIME=en_GB LC_COLLATE= c# [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# [9] LC_ADDRESS=C LC_TELEPHONE= c# [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats4 stats graphics grDevices utils datasets methods ## [8] base ## ##其他附加的包:## [1]MsBackendMsp_1.1.0 Spectra_1.7.0 ProtGenerics_1.29.0 ## [4] BiocParallel_1.31.0 S4Vectors_0.35.0 biocgenerics_0.0.3.0 ## [7] BiocStyle_2.25.0 ## ##通过命名空间加载(并没有附加):## [1] cluster_2.1.3 knitr_1.38 magrittr_2.0.3 ## [4] MASS_7.3-57 MsCoreUtils_1.9.0 IRanges_2.31.0 ## [7] clue_0.3-60 R6_2.5.1 rlang_1.0.2 ## [10] fastmap_1.1.0 stringgr_1 .4.0 tools_4.2.0 ## [13] parallel_4.2.0 xfun_0.30 clis_3.0 ## [13] jquerylib_0.1.4 htmltools_0.5.2 yaml_2.3.5 ## [19] digest_0.6.29 bookdown_0.26 BiocManager_1.30.17 ## [25] rmarkdown_2.14 stringi_1.7.6 compiler_4.2.0 ## [28] bslib_0.3.1 jsonlite_1.8.0

参考文献

Rainer, Johannes, Andrea Vicini, Liesa Salzer, Jan Stanstrup, Josep M. Badia, Steffen Neumann, Michael A. Stravs等人。2022。R.代谢组学数据注释的模块化和可扩展生态系统代谢物12(2): 173。https://doi.org/10.3390/metabo12020173