CompoundDb 1.1.6
作者:约翰内斯·雷纳
修改: 2022-05-30 14:08:00
编译: 2022年9月18日星期日16:08:12
化合物注释和信息可以从各种来源检索,包括HMDB,LipidMaps或ChEBI.的CompoundDb
包提供了从这些来源提取代谢组学/脂质组学实验中(色谱)峰注释相关数据的功能,并将其存储为通用格式(即CompDb
对象/数据库)。这个小插图描述了如何这样CompDb
可以用包内部测试文件创建对象,这些文件表示来自某些注释资源的数据子集。
表示复合注释的R对象是CompDb
对象。每个对象(分别是它的数据库)应该包含并提供来自单一源(例如HMDB或LipidMaps)的注释,但也可以创建跨源数据库。
CompDb
数据库CompDb
数据库可以从现有的数据资源中创建,如人类代谢组数据库(HMDB),方法是导入所有数据构建通过按顺序向数据库添加数据和信息。本节首先说明如何从现有资源加载数据以创建CompDb
数据库的最后一小节如何为空CompDb
是否可以按顺序手动填充注释数据2.4.
的CompoundDb
包提供compound_tbl_sdf
和compound_tbl_lipidblast
函数从SDF(结构数据文件)格式的文件中提取相关的复合注释或从LipidBlast (http://mona.fiehnlab.ucdavis.edu/downloads).CompoundDb
允许处理SDF文件从:
但是请注意,也可以手动定义这样一个表并使用它来创建数据库。本节中提供了一个简单的例子CompDb
从自定义输入2.2的帮助页createCompDb
了解更多细节。
CompDb
来自HMDB数据下面我们使用compound_tbl_sdf
从表示HMDB数据库非常小的子集的SDF文件中提取复合注释。要为完整的HMDB生成数据库,我们必须下载structures.sdf文件包含所有代谢物,并加载该文件。
##找到文件hmdb_file <- system.file("sdf/HMDB_sub.sdf.gz", package = "CompoundDb") ##提取数据cmps <- compound_tbl_sdf(hmdb_file)
该函数默认返回a (data.frame
当量)宠物猫
(从tidyverse的宠物猫
包)。
通过
## # A tibble: 9 × 8 ## compound_id name inchi inchi…¹formula exact…²synon…³smiles ## ## 1 HMDB0000001 1- methylhistidine InCh…BRMWTN…C7H11N…169。 " 1,3-二氨基丙烷InCh…XFNJVJ…C3H10N2 74.1 "NCCC…## 3 HMDB0000005 2-酮丁酸InCh…TYEYBO…C4H6O3 102。2-羟基丁酸InCh…AFENDN…C4H8O3; "CCC(…## 5 HMDB0000010 2-甲氧基叶素酮英寸…WHEUWN…C19H24… "[H][…## 6 HMDB0000011 (R)-3-羟基丁酸…InCh…WHBMMW…C4H8O3 104.] "C[C@... ## 7 HMDB0000012脱氧尿苷InCh…MXHRCP…C9H12N…n -甲基色胺InCh…NCIKQJ…C11H14…“5,6-反式维生素D3英寸…## 9 h27h44o; "CC(C…## #…变量名缩写)¹inchikey,²exactmass,³同义词
的宠物猫
包含列
compound_id
:化合物的特定资源ID。可以是整数
或者一个字符
.的名字
:化合物的名称,多为通用名或通用名。inchi
:化合物的印数。inchikey
: INCHI键。公式
:该化合物的化学式。exactmass
:化合物(单同位素)质量。同义词
:一个列表
该化合物的别名/同义词。微笑
:大院的微笑。为了创建一个简单的复合数据库,我们可以传递这个宠物猫
的附加必需的元数据信息createCompDb
函数。在本例中,我们还想将MS/MS谱数据添加到数据库中。因此,我们从从HMDB下载的相应xml文件中加载一些化合物的MS/MS谱。为此,我们将文件所在文件夹的路径传递给msms_spectra_hmdb
函数。该函数根据文件名称识别包含MS/MS谱的xml文件,并加载各自的谱数据。因此,文件夹也可以包含其他文件,但是不应该重命名HMDB中的xml文件,否则函数将无法识别它们。还要注意,目前只支持来自HMDB的MS/MS谱xml文件(每个谱一个xml文件);可以从HMDB下载hmdb_all_spectra.zip文件。
找到xml_path <- system. xml文件所在的文件夹。file("xml", package = "CompoundDb") spctra <- msms_spectra_hmdb(xml_path)
同样在这里,光谱信息可以通过粘附到预期的结构来手动提供data.frame
(见createCompDb ?
详情)。
最后,我们必须为资源创建元数据。的元数据信息CompDb
资源是至关重要的,因为它定义了注释的来源及其版本。因此,用户应该仔细定义这些信息。下面我们使用make_metadata
Helper函数来创建data.frame
在预期的格式。有机体应以以下格式提供。“Hsapiens”
供人类或“Mmusculus”
对于鼠标,即大写首字母,后面跟着不带空格的小写字符。
metad <- make_metadata(source = "HMDB", url = "http://www.hmdb.ca", source_version = "4.0", source_date = "2017-09",有机体= "Hsapiens")
准备好所有必需的数据后,我们为HMDB子集创建SQLite数据库。与路径
我们指定要保存数据库的目录的路径。默认为当前工作目录,但在本例中,我们将数据库保存到一个临时文件夹中。
db_file <- createCompDb(cmps, metadata = metad, msms_spectra = spctra, path = tempdir())
的变量db_file
现在是SQLite数据库的文件名。我们可以将这个文件名传递给CompDb
函数来获取CompDb
作为数据库接口的对象。
cmpdb <- CompDb(db_file) cmpdb
##类:CompDb ##数据来源:HMDB ##版本:4.0 ##生物:Hsapiens ##化合物计数:9 ## MS/MS光谱计数:4
为了从数据库中提取所有化合物,我们可以使用化合物
函数。的参数列
允许选择要返回的数据库列。支持任何数据库表的任何列。要获得可用数据库表及其列的概述,请使用表
函数可以使用:
表(cmpdb)
[6] "exactmass" "smiles" ## ## $msms_spectrum ## [1] "original_spectrum_id" "compound_id" "polarity" ## [4] "collision_energy" "predicted" "splash" ## [7] "instrument_type" "instrument" "precursor_mz" ## [10] "spectrum_id" "msms_mz_range_min" "msms_mz_range_max" ## ## $msms_spectrum_peak ## b[1] "spectrum_id" "mz" "intensity" "peak_id" ## ## $synonym ## [1] "compound_id" "synonym"
中所选的列化合物表格
化合物(cmpdb, columns = c("name", "formula", "exactmass"))
1 (R)-3-羟基丁酸C4H8O3 104.0473 ## 2 1-甲基组氨酸C7H11N3O2 169.0851 ## 4 2-羟基丁酸C4H8O3 104.0473 ## 5 2-酮丁酸C4H6O3 102.0317 ## 6 2-甲氧基叶酮C19H24O3 300.1725 ## 7 5,6-反式维生素D3 C27H44O 384.3392 ## 8脱氧尿苷C9H12N2O5 228.0746 ## 9 n -甲基色胺C11H14N2 174.1157
类似地,我们可以使用光谱
函数从数据库中提取频谱数据。该函数默认返回a光谱
对象的光谱软件包与所有光谱元数据可用光谱变量.
库(光谱)sps <-光谱(cmpdb) sps . txt
## MSn数据(谱)在MsBackendCompDb后端4个谱:## msLevel precursorMz极性## <整数> <数字> <整数> ## 1 NA NA 1 ## 2 NA NA 1 ## 3 NA NA 1 ## 4 NA NA 0 ##…32个变量/列。##使用“spectraVariables”列出所有的变量。##数据来源:HMDB ##版本:4.0 ##生物:Hsapiens
可用的光谱变量为光谱
对象可以使用spectraVariables
:
spectraVariables (sps)
[13]“precursorCharge”“collisionEnergy”##[15]“isolationWindowLowerMz”“isolationWindowUpperMz”“compound_id”##[19]“name”“inchi”##[21]“inchikey”“formula”##[23]“exactmass”“smiles”##[25]“original_spectrum_id”“predicted”##[27]“splash”##[5]“dataStorage”“dataOrigin”##[9]“polarity”“precScanNum”##[11]“precursorIntensity”##[13]“precursorCharge”“collisionEnergy”##[15]“isolationWindowLowerMz”“isolationWindowTargetMz”## b[17]“isolationWindowUpperMz”“compound_id”##[23]“exactmass”“smiles”"instrument_type" ## [29] "instrument" "spectrum_id" ## [31] "msms_mz_range_min" "msms_mz_range_max" ##[33] "同义词"
单独的光谱变量可以访问美元
接线员:
sps collisionEnergy美元
## [1] 10 25 na 20
实际的m/z和强度值mz
而且强度
:
mz (sps)
##数字列表长度4 ##[[1]]109.2 124.2 124.5 170.16 170.52 ##[[2]]83.1 96.12 97.14 109.14 124.08 125.1 170.16 ##[[3]]44.1 57.9 61.4 71.2 73.8 78.3 78.8…142.9 144.1 157.6 158 175.2 193.2 ##[[4]] 111.0815386 249.2587746 273.2587746…367.3006394 - 383.3319396
mz(sps)[[2]]
## [1] 83.10 96.12 97.14 109.14 124.08 125.10 170.16
请注意,也可以检索特定的光谱,例如,对于所提供的化合物,或添加化合物注释光谱
对象。下面我们使用筛选器表达式~ compound_id == "HMDB0000001"
只得到指定化合物的质谱。此外,我们要求“名称”
而且“inchikey”
化合物的。
sps <- spectrum (cmpdb, filter = ~ compound_id == "HMDB0000001", columns = c(tables(cmpdb)$msms_spectrum, "name", "inchikey")
## MSn数据(谱)在MsBackendCompDb后端2个谱:## msLevel precursorMz极性## <整数> <数字> <整数> ## 1 NA NA 1 ## 2 NA NA 1 ##…32个变量/列。##使用“spectraVariables”列出所有的变量。##数据来源:HMDB ##版本:4.0 ##生物:Hsapiens
可用的光谱变量:
spectraVariables (sps)
[13]“precursorCharge”“collisionEnergy”##[15]“isolationWindowLowerMz”“isolationWindowUpperMz”“compound_id”##[19]“name”“inchi”##[21]“inchikey”“formula”##[23]“exactmass”“smiles”##[25]“original_spectrum_id”“predicted”##[27]“splash”##[5]“dataStorage”“dataOrigin”##[9]“polarity”“precScanNum”##[11]“precursorIntensity”##[13]“precursorCharge”“collisionEnergy”##[15]“isolationWindowLowerMz”“isolationWindowTargetMz”## b[17]“isolationWindowUpperMz”“compound_id”##[23]“exactmass”“smiles”"instrument_type" ## [29] "instrument" "spectrum_id" ## [31] "msms_mz_range_min" "msms_mz_range_max" ##[33] "同义词"
化合物的名称和INCHI键也因此被添加为光谱变量:
sps inchikey美元
## [1] " brmwtnujhumwms-lurjtmiesa-n " " brmwtnujhumwms-lurjtmiesa-n "
共享或存档所创建的文件CompDb
数据库,我们也可以创建一个包含注释的专用R包。使可重复的研究,每个CompDb
包应在其文件名中包含原始数据源的版本(该文件名默认从资源的元数据中提取)。下面我们创建一个CompDb
包从生成的数据库文件。我们必须向函数提供的附加信息是包的创建者/维护者及其版本。
createCompDbPackage(db_file, version = "0.0.1", author = "J Rainer", path = tempdir(), maintainer = "Johannes Rainer ")
##在/tmp/RtmpeEqdcQ/CompDb.Hsapiens.HMDB.4.0目录下创建包
这个函数创建了一个文件夹(在我们的例子中是一个临时目录),可以用来构建和安装R CMD构建
而且R CMD安装
.
还应特别注意放在许可证上的可以通过的包许可证
参数。包的许可证以及如何以及是否可以分发包还取决于原始资源的许可证。
CompDb
从自定义数据一个CompDb
数据库也可以创建自定义,手动定义的注释。为了说明这一点,我们创建下面的第一个data.frame
使用一些任意的复合注释。根据createCompDb ?
帮助页,数据帧需要有列“compound_id”
,“名称”
,“inchi”
,“inchikey”
,“公式”
,“exactmass”
,“同义词”
.所有列,除了“compound_id”
也可以包含缺失的值。还可以定义其他列。下面我们将创建一个data.frame
使用一些复合注释以及附加列。请注意,本例中的所有注释仅用于演示目的,绝不是真正的.此外,我们不为列提供任何信息“inchi”
,“inchikey”
而且“公式”
将这些的所有值设置为NA
.
cmps <- data.frame(compound_id = c("CP_0001", "CP_0002", "CP_0003", "CP_0004"), name = c("A", "B", " c ", "D"), inchi = NA_character_, inchikey = NA_character_, formula = NA_character_, exactmass = c(123.4, 234.5, 345.6, 456.7), compound_group = c("G01", "G02", "G01", "G03"))
接下来我们加入also同义词对于每种化合物。该列支持每行有多个值。
cmps < - $同义词列表(c(“a”、“AA”、“aaa”),c (), c(“c”、“c”),(d))
我们还需要定义元数据对于我们的数据库,我们用make_metadata
函数。有了这些信息,我们已经可以创建一个初步的CompDb
仅包含复合注释的数据库。因此,我们创造了低于我们习惯的东西CompDb
数据库在临时目录中。属性手动指定数据库的名称dbFile
参数——如果未提供,则将基于元数据
参数。在实际情况中,路径
而且dbFile
应该换成更有意义的东西。
metad <- make_metadata(source = "手动定义的",url = "", source_version = "1.0.0", source_date = "2022-03-01", organism = NA_character_) db_file <- createCompDb(cmps, metadata = metad, path = tempdir(), dbFile = "CompDb.test.sqlite")
方法加载这个玩具数据库CompDb
函数提供数据库文件的完整路径。注意,我们通过指定以读写模式加载数据库flags = RSQLite::SQLITE_RW
-默认为CompDb
将以只读模式加载数据库,从而确保数据库中的数据不会被泄露。然而,在我们的例子中,我们希望稍后向这个数据库添加更多信息,因此我们以读写模式加载它。
cdb <- CompDb(db_file, flags = RSQLite::SQLITE_RW
##类:CompDb ##数据源:手动定义##版本:1.0.0 ##生物:NA ##复合计数:4
方法从数据库中检索注释复合
函数。
化合物(国开行)
## name inchi inchikey公式exactmass compound_group ## 1 A 123.4 G01 ## 2 B 234.5 G02 ## 3 C 345.6 G01 ## 4 D 456.7 G03
或者也可以搜索和过滤注释。
复合(cdb, filter = ~ name %in% c("B", "A"))
## name inchi inchikey公式exactmass compound_group ## 1 A 123.4 G01 ## 2 B 234.5 G02
接下来我们还想将MS2光谱数据添加到数据库中。这可以直接在createCompDb
带参数调用msms_spectra
,或使用insertSpectra
函数,允许将MS2光谱数据添加到现有的CompDb
哪些可以作为a提供光谱
对象。我们因此在下面手动创建一个光谱
具有任意MS2光谱的物体-或者,光谱
可以从各种输入源导入,包括MGF或MSP文件,例如MsBackendMgf或MsBackendMsp包。
#'定义基本光谱变量df <- DataFrame(msLevel = 2L, presormz = c(124.4, 124.4, 235.5)) #'为每个光谱添加m/z和强度信息df$mz <- list(c(3,20,59.1), c(2,10,30,59.1), c(100,206,321.1)) df$intensity <- list(c(10,13,45), c(5,8,9,43), c(10,20,400)) #'创建光谱对象sps <- spectra (df)
的光谱
对象还需要有一个变量(列)“compound_id”
它提供了光谱与数据库中现有化合物相关联的信息。
化合物(国开行“compound_id”)
## compound_id ## 1 CP_0001 ## 2 CP_0002 ## 3 CP_0003 # 4 CP_0004
sps compound_id < - c(“CP_0001”、“CP_0001”,“CP_0002”)
我们还可以在光谱中添加额外的信息,比如仪器。
sps$instrument <- "AB Sciex TripleTOF 5600+"
现在我们可以把这些光谱加到我们现有的玩具上CompDb
.参数列
允许指定光谱变量应该存储到数据库中。
cdb <- insertSpectra(cdb, spectra = sps, columns = c("compound_id", "msLevel", "precursorMz", "instrument")
##类:CompDb ##数据源:手动定义##版本:1.0.0 ##有机体:NA ##化合物计数:4 ## MS/MS谱计数:3 ##
我们现在有了这样一个CompDb
数据库与复合注释和3 MS2谱。例如,我们还可以检索该化合物的MS2光谱一个从数据库中获取:
谱(cdb, filter = ~ name == "A")
## MSn数据(谱)在MsBackendCompDb后端2个谱:## msLevel precursorMz极性## <整数> <数字> <整数> ## 12 124.4 NA ## 2 2 124.4 NA ##…31个变量/列。##使用“spectraVariables”列出所有的变量。##数据源:手动定义##版本:1.0.0 ##生物体:NA
CompDb
来自MoNA数据MoNa (Massbank of North America)提供了一个大的SDF文件,其中包含了所有的光谱,可用于创建一个CompDb
具有化合物信息和质谱。但是请注意,MoNa是由光谱组织的,化合物的注释是不一致和归一化的。来自同一化合物的光谱可以有自己的化合物识别和数据,例如,它们的化学公式、确切质量的精度或其他领域可能不同。
方法导入复合注释,这与上面的示例类似compound_tbl_sdf
功能,同时可以导入频谱数据msms_spectra_mona
.在下面的例子中,我们使用howeverimport_mona_sdf
它包装了两个函数,从SDF文件中读取复合数据和光谱数据,而无需导入两次文件。作为一个例子,我们使用了一个MoNa SDF文件中的一个小子集,它只包含7个光谱。
mona_sub <- system.file("sdf/MoNa_export-All_Spectra_sub.sdf.gz", package = "CompoundDb") mona_data <- import_mona_sdf(mona_sub)
##警告:MoNa数据目前无法规范化,因此复合表##包含高度冗余的数据。
结果是列表
每个化合物和光谱信息都有一个数据框架。这些可以传递给createCompDb
函数来创建数据库(参见下面)。
metad <- make_metadata(source = "MoNa", url = "http://mona.fiehnlab.ucdavis.edu/", source_version = "2018.11", source_date = "2018-11", organism = "Unspecified") mona_db_file <- createCompDb(mona_data$compound, metadata = metad, msms_spectra = mona_data$msms_spectrum, path = tempdir())
我们现在可以加载和使用这个数据库,例如通过如下所示提取所有化合物。
mona <- CompDb(mona_db_file) compound (mona)
# #名Sulfachlorpyridazine # # 1 # # 2 Sulfaclozine磺胺二甲嘧啶# # 3 # # 4磺胺甲嘧啶# # 5磺胺甲嘧啶# # 1 # # inchi inchi = 1 s / C10H9ClN4O2S c11-9-5-6-10提升(14-13-9)(16、17)8-3-1-7 (12)8-3-1-7 / h1-6H 12 h2 (H, 14、15)# # 2 inchi = 1 s / C10H9ClN4O2S c11-9-5-13-6-10盖帽)15日(16、17)8-3-1-7 (12)8-3-1-7 / h1-6H 12 h2 (H, 14、15)# # 3 inchi = 1 s / C12H14N4O2S c1-8-7-9(2) 15-12()是每天奋斗16 - 19(17、18)11-5-3-10 (13)11-5-3-10 / h3-7H 13 h2, 1-2H3, (H, 14、15、16)# # 4InChI = 1 s / C12H14N4O2S c1-8-7-9(2) 15-12()是每天奋斗16 - 19(17、18)11-5-3-10 (13)11-5-3-10 / h3-7H 13 h2, 1-2H3, (H, 14、15、16)# # 5 InChI = 1 s / C12H14N4O2S c1-8-7-9(2) 15-12()是每天奋斗16 - 19(17、18)11-5-3-10 (13)11-5-3-10 / h3-7H 13 h2, 1-2H3, (H, 14、15、16)# # inchikey公式exactmass微笑# # 1 XOXHILFPRYWFOD-UHFFFAOYSA-N C10H9ClN4O2S 284.0135 < NA > # # 2 QKLPUVXBJHRFQZ-UHFFFAOYSA-N C10H9ClN4O2S 284.0135 < NA > # # 3 ASWVTGNCAZCNNR-UHFFFAOYSA-N C12H14N4O2S 278.0837 < NA > # # 4 ASWVTGNCAZCNNR-UHFFFAOYSA-N C12H14N4O2S 278.0837 < NA > # # 5Aswvtgncazcnnr-uhfffaoysa-n c12h14n42s 278.0837 < na >
如本节引言所述复合
信息包含冗余信息,表基本上每个频谱有一行。关于如何减少ms_compound表中的冗余的反馈非常受欢迎。
CompDb
通过按顺序填充数据作为从现有资源创建完整数据库的替代方法,也可以创建空数据库CompDb
数据库和按顺序用数据填充。例如,这可以用于创建实验室专用注释库,其中包含在特定LC-MS设置下测量的纯标准物的化合物、离子和片段光谱。下面我们创建一个空CompDb
数据库提供数据库的文件名。在本例中,我们将数据库存储到一个临时文件中,但在实际用例中,应该使用有意义的文件名和文件路径。
dbfile <- tempfile() mydb <- emptyCompDb(dbfile) mydb
##类:compdb# #数据源:NA ##版本:NA ##有机体:NA ##复合计数:0
接下来,我们定义一些想要添加到数据库中的第一个复合注释。对于复合注释,字段“compound_id”
(化合物的任意编号),“名称”
(复合名称),“inchi”
,“inchikey”
,“公式”
(化学式)和“exactmass”
(单同位素质量)是预期的,但是,除了“compound_id”
,它们也可能包含缺失的值或被完全省略。下面我们定义一个data.frame
属性将此注释添加到数据库中insertCompound
函数。
cmp <- data.frame(compound_id = c("1", "2"), name = c("Caffeine", "Glucose"), formula = c("C8H10N4O2", "C6H12O6"), exactmass = c(194.080375584, 180.063388116)) mydb <- insertCompound(mydb, cmp) mydb .frame(compound_id = c("1", "2"
##类:compdb# #数据源:NA ##版本:NA ##有机体:NA ##复合计数:2
接下来我们为化合物添加片段谱。例如,这些可以代表为化合物的纯标准物测量的MS2光谱,并且可以从xcms
结果对象或其他源。下面我们从这个包中分发的MGF文件中加载一些咖啡因的片段光谱。我们使用MsBackendMgf包将该数据导入到光谱
对象。
library(MsBackendMgf) caf_ms2 <- spectrum (system. mgf)文件(“mgf”、“咖啡因。mgf", package = "CompoundDb"), source = MsBackendMgf()) caf_ms2
## MSn数据(谱)在MsBackendMgf后端2个谱:## msLevel rtime scanIndex ## <整数> <数字> <整数> ## 1 2 NA NA ## 2 2 NA NA ##…25个变量/列。
我们可以评估导入数据中哪些谱变量是可用的。
spectraVariables (caf_ms2)
[1]“msLevel”“rtime”##[3]“tionnum”“scanIndex”##[5]“dataStorage”“dataOrigin”##[7]“centroided”“smoothed”##[7]“polarity”“precScanNum”##[11]“precursorMz”“precursorIntensity”##[13]“precursorCharge”“collisionEnergy”##[15]“isolationWindowLowerMz”“isolationWindowTargetMz”##[17]“isolationWindowUpperMz”“TITLE”##[19]“original_spectrum_id”“compound_id”##[23]“splash”“spectrum_id”##[25]“msms_mz_range_min”“msms_mz_range_max”
caf_ms2 rtime美元
##[1]呐呐
有许多可用的变量,但大多数变量,如例如保留时间,或未定义,因为此信息未在MGF文件中提供。为了将这些片段光谱与我们刚刚添加到数据库中的咖啡因化合物相关联,我们需要为它们分配化合物的ID(在我们的例子中“1”
).
Caf_ms2 $compound_id <- "1"
然后,我们可以将光谱添加到数据库使用insertSpectra
函数。与参数列
我们指定哪些光谱变量是我们真正想要存储在数据库中的。
mydb <- insertSpectra(mydb, caf_ms2, columns = c("compound_id", "msLevel", "splash", "precursorMz", "collisionEnergy")
##类:CompDb ##数据源:NA ##版本:NA ##有机体:NA ##化合物计数:2 ## MS/MS谱计数:2
因此,我们现在在数据库中有2个化合物和2个片段光谱:
化合物(mydb)
咖啡因 C8H10N4O2 194.0804 2葡萄糖 C6H12O6 180.0634
sps <- spectrum (mydb) sps$name
##[1]“咖啡因”
与insertCommpound
而且insertSpectra
进一步的化合物和片段谱可以添加到数据库中。注意,这两个函数还支持添加其他列(字段或变量)到数据库。作为一个例子,下面我们定义了一个带有任意附加列的化合物,并使用参数将其添加到数据库中addColumns = TRUE
.
cmps <- data.frame(compound_id = "3", name = "X003", formula = "C5H2P3O", extra_field = "人造化合物")mydb <- insertCompound(mydb, cmps, addColumns = TRUE)化合物(mydb)
咖啡因 C8H10N4O2 194.0804 ## 2葡萄糖 C6H12O6 180.0634 ## 3 X003 C5H2P3O NA人造化合物
附加列现在可以在数据库中使用。中的现有项CompDb
也可以使用deleteCompound
或deleteSpectra
功能。两者都需要删除化合物(或光谱)的id作为额外输入。下面我们从数据库中提取化合物的id和名称。
化合物(mydb, columns = c("compound_id", "name"))
1 1咖啡因2 2葡萄糖3 3 X003
现在我们可以删除化合物了“X003”
与deleteCompound
以及化合物的ID。
mydb <- deleteCompound(mydb, ids = "3")
咖啡因 C8H10N4O2 194.0804 ## 2葡萄糖 C6H12O6 180.0634
请注意,删除具有相关光谱(或离子)的化合物将导致错误,因此不可能从数据库中删除咖啡因,因为它也包含该化合物的MS2光谱。使用参数递归= TRUE
在deleteCompound
调用将允许删除化合物和所有与之相关的光谱(和/或离子)。下面我们删除咖啡因和相关的MS2光谱,留给我们一个CompDb
只有一个化合物,没有更多的MS2光谱。
mydb <- deleteCompound(mydb, ids = "1", recursive = TRUE) compound (mydb)
葡萄糖 C6H12O6 180.0634
光谱(mydb)
MSn数据(谱)与0谱在MsBackendCompDb后端:
注意,这些函数还可以用于向任意对象中添加或删除注释CompDb
数据库,只要是数据库可写(即数据库通过指定flags = RSQLite::SQLITE_RW
的附加参数CompDb
调用来加载数据库)。
## R版本4.2.1(2022-06-23)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.16-bioc/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_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基础包:## [1]stats4 stats graphics grDevices utils datasets methods ##[8]基础## ##其他附加包:## [1]MsBackendMgf_1.5.0 RSQLite_2.2.17 Spectra_1.7.2 ## [4] ProtGenerics_1.29.0 BiocParallel_1.31.12 CompoundDb_1.1.6 ## [7] S4Vectors_0.35.4 BiocGenerics_0.43.4 AnnotationFilter_1.21.0 ## [10] BiocStyle_2.25.0 ## ##通过命名空间加载(且未附加):## [7] MetaboCoreUtils_1.5.2 BiocManager_1.30.18 blob_1.2.3 ## [10] GenomeInfoDbData_1.2.8 yaml_2.3.5 pillar_1.8.1 ## [13] glue_1.6.2 digest_0.6.29 genome icranges_1 .49.1 ## [19] pkgconfig_2.0.3 bookdown_0.29 zlibbioc_1.43.0 ## [22] purrr_0.3.4 scales_1.2.1 tibble_3.1.8 ## [25] generics_0.1.3 IRanges_2.31.2 ggplot2_3.3.6 ## [28] DT_0.25[40] lifecycle_1.0.2 string_1 .4.1 munsell_0.5.0 ## [43] cluster_2.1.4 compiler_4.2.1 rlang_1.0.5 grid_4.2.1 ## [49] RCurl_1.98-1.8 rsvg_2.3.1 rjson_0.2.21 ## [52] MsCoreUtils_1.9.1 htmlwidgets_1.5.4 bitops_1.0-7 ## [58] base64enc_0.1- 1- rmarkdown_2.16 gtable_0.3.1 ## [58] codetools_0.2-18DBI_1.1.3 R6_2.5.1 ## [61] gridExtra_2.3 knitr_1.40 dplyr_1.0.10 ## [64] fastmap_1.1.0 bit_4.0.4 utf8_1.2.2 ## [67] clue_0.3-61 stringi_1.7.8 parallel_4.2.1 ## [70] Rcpp_1.0.9 vctrs_0.4.1 png_0.1-7 ## [73] dbplyr_2.2.1 tidyselect_1.1.2 xfun_0.33 ## [76] ChemmineR_3.49.2