1介绍

代谢组学工作台(链接)主持一个代谢组学数据存储库。它包含超过1000个公开的研究包括原始数据、处理数据和代谢物/复合信息。

存储库搜索使用REST服务API。metabolomicsWorkbenchR包提供此服务的端点在R和提供功能来搜索数据库和数据集和代谢物信息导入等常用格式数据帧和SummarizedExperiment对象。

2安装

安装这个包输入:

如果(!requireNamespace (“BiocManager”,悄悄地= TRUE)) install.packages (“BiocManager”) BiocManager::安装(“metabolomicsWorkbenchR”)

对于旧版本,请参考适当的Bioconductor释放。

3运行一个查询

代谢组学工作台API有许多端点,可以用于查询多个不同的数据库。完整的API文档中提供的细节(链接)

metabolomicsWorkbenchR提供了API端点通过一个简单的接口do_query方法。四个输入是必需的:

  • 上下文——上下文决定了数据访问的类型从代谢组学工作台,如元数据或结果提交相关研究中,数据从代谢产物,基因/蛋白质和分析化学数据库以及其他服务与质谱和代谢物鉴定。有效的上下文是“研究”、“复合”,“refmet”、“基因”,“蛋白质”,“moverz”和“exactmass”。
  • input_item——输入项直接搜索到特定数据库的一部分。如果数据库是一个表,然后input_item是一个列的表,将寻找匹配的值。
  • input_value——中搜索的值命名input_item
  • output_item——输出返回的类型。通常一些数据表的形式,但有时一个文件(例如png、摩尔)。

通过结合不同的上下文,输入和输出各种信息可以返回项目。在第一个例子中,我们查询包含关键字的研究背景研究标题“糖尿病”,要求每个匹配研究的总结。

#搜索所有研究的标题里有“糖尿病”并返回一个总结df = do_query(上下文=‘研究’,input_item = study_title, input_value =“糖尿病”,output_item =“总结”)df (1:3, c (1、4))
# # 1 # # study_id研究所ST000057加州大学戴维斯# # 2 ST000075加州大学戴维斯# # 3 ST000091梅奥诊所

与研究结果是14 x12 data.frame标题、作者、描述等。

在下一个示例中我们查询为“regno”复合上下文标识符11和请求的所有可用信息匹配的化合物。

df = do_query(上下文=“复合”,input_item = regno, input_value = 11, output_item = compound_exact) df [1:3]
11 # # 1 # # regno公式exactmass C47H75N5O8 837.561565

我们也可以请求一个分子结构的图像:

img = do_query(上下文=“复合”,input_item = regno, input_value = 11, output_item = png) grid.raster (img)

有效的情况下,输入项目和输出可以列出使用的物品的名字功能:

#有效上下文名称(上下文)#上下文,input_item或output_item
# #[1]“研究”“化合物”“refmet”“基因”“蛋白质”“moverz”# # [7]“exactmass”

有效输入和输出一个上下文可以显示通过访问上下文对象的列表。有效的输入为一个特定的输出也可以通过访问显示输出条目对象的列表。使用metabolmicsWorkbenchR在后面的小节中详细的对象。此外,功能context_inputs,context_outputsinput_example提供了方便。

#“研究”的有效输入上下文context_inputs(“研究”)
# # [1]“study_id”“study_title”“学院”“last_name”# # [5]“analysis_id”“metabolite_id”

了解更多关于不同的上下文中可以找到在API文档(链接)

4特殊情况

metabolomicsWorkBenchR包括一些输出项目除了这些指定的API文档。这些特殊情况这里描述。

4.1input_item“忽略”

输入项是使用“研究”背景和“untarg_studies input_item”。API忽略input_item和input_value当使用这个查询,并返回一个列表的研究没有针对性的数据。

df = do_query(上下文=‘研究’,input_item =“忽略”,input_value =“忽略”,output_item = untarg_studies) df (1:3, 1:3)
# # 1 # # study_id analysis_id analysis_display ST000009 AN000023 LC / Electro-spray QTOF正离子模式# # 2 ST000009 AN000024 LC / Electro-spray QTOF负离子模式# # 3 ST000010 AN000025 LC / Electro-spray QTOF正离子模式

4.2output_item“compound_exact”、“protein_exact”和“gene_exact”

这些输出是指化合物、蛋白质和基因上下文API输出可用于精确匹配。这意味着只有input_value将返回精确匹配。这些输出将返回所有可用的输出字段。这些输出项中使用的所有API文档中指定的项目。

df = do_query(上下文=“复合”,input_item = regno, input_value = 11, output_item = compound_exact) df [1:3]
11 # # 1 # # regno公式exactmass C47H75N5O8 837.561565

4.3output_item“protein_partial”和“gene_partial”

这些输出指蛋白质和基因上下文API输出可用于部分匹配。这意味着所有记录与input_value部分匹配将被归还。这些输出将返回所有可用的输出字段。

df = do_query(上下文=“基因”,input_item = gene_name, input_value =乙酰辅酶a, output_item = gene_partial) df (1:3, 1:3)
# # 1 # # gene_name mgp_id gene_id乙酰辅酶a酰基转移酶1 MGP000015 30 # # 2乙酰辅酶a羧化酶αMGP000016 31 # # 3乙酰辅酶a羧化酶βMGP000017 32

4.4output_item“SummarizedExperiment”和“DatasetExperiment”

这个输出指的是研究背景和使用多个查询返回一个SummarizedExperiment study_id或analysis_id或DatasetExperiment对象。

SE = do_query(上下文=‘研究’,input_item = study_id, input_value = ST000001, output_item = ' SummarizedExperiment #或“DatasetExperiment”)
# #类:SummarizedExperiment # #暗淡:102 24 # #元数据(8):data_source study_id……描述subject_type # #化验(1):“# # rownames (102): ME000097 ME000096……构成了rowData名字ME000002 ME000001 # # (3): metabolite_name metabolite_id refmet_name # # colnames (24): LabF_115811 LabF_115816……LabF_115924 LabF_115929 # # colData名称(4):local_sample_id study_id Arabidopsis_Genotype # # Plant_Wounding_Treatment

4.5output_item“MultiAssayExperiment”

这个输出指的是研究背景和使用多个查询返回一个MultiAssayExperiment study_id对象。

美= do_query(上下文=‘研究’,input_item = study_id, input_value = ST000009, output_item = MultiAssayExperiment)美
上市# # # # MatchedAssayExperiment对象2实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度2:# # [1]AN000023: SummarizedExperiment 248行和114列# # [2]AN000024: SummarizedExperiment 172行和114列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件

4.6output_item“untarg_SummarizedExperiment”和“untarg_DatasetExperiment”

这个输出指的是研究背景和使用多个查询返回一个SummarizedExperiment analysis_id或DatasetExperiment没有针对性的对象数据。

SE = do_query(上下文=‘研究’,input_item = analysis_id, input_value = AN000023, output_item = ' untarg_SummarizedExperiment #或“untarg_DatasetExperiment”)
# #类:SummarizedExperiment # #暗淡:4481 114 # #元数据(2):data_source analysis_id # #化验(1):“# # rownames (4481): 584.27947 _3.47455 1467.60377 _3.4788……构成了rowData名称未知的未知UP0040 UP0038 # # # # (1): feature_id # # colnames (114): S00008880 S00008886……S00008913 S00008939 # # colData名称(4):AFTER_MEAL_TIME V2 POST_SURGERY_TIME V4

5S4类

大量的类中定义这个包和完整性下面描述。他们是用来实现访问API端点和出乎意料的,他们将被用作用户对象。的do_query函数使用字符串来访问这些对象和简化的预定义的实例查询。

5.1上下文

每个数据库都是称为“上下文”。这些上下文可以使用输入/输出对搜索搜索数据库进行匹配,返回结果。

metabolmicsWorkbenchR预定义列表称为上下文包含mw_context对象。这些对象定义哪些输入和输出为一个上下文是有效的选择。

所有有效的上下文的名称可以显示:

#列出所有上下文名称名称(上下文)
# #[1]“研究”“化合物”“refmet”“基因”“蛋白质”“moverz”# # [7]“exactmass”

可以获得一个特定的上下文信息使用的显示方法mw_context对象:

#有效的输入/输出列表”研究“上下文语境研究美元
# #一个代谢组学工作台“上下文”# # # #的名字:“研究”# # # #有效input_item名字:# # # #“study_id”“study_title”# #“研究所”# #”last_name“# #”analysis_id“# #”metabolite_id“# # # #有效output_item名字:# #“总结”# # # # # #“分析”“因素”“代谢物”# # # #“源”“mwtab”# #“物种”# #“疾病”# # # #“数据”“number_of_metabolites”# # # #“数据表”“untarg_studies“# #”untarg_factors“# #”untarg_data“# #”metabolite_info“# #”SummarizedExperiment“# #”untarg_SummarizedExperiment“# # # #“DatasetExperiment”“untarg_DatasetExperiment”

5.2输入/输出项

一旦决定的背景下搜索有效的输入和输出可以选择。所有输入和输出项已经预定义列表称为input_itemoutput_item

input_item列表包含mw_input_item对象指定有效使用正则表达式模式匹配的输入值。

#输入项“study_id”信息input_item study_id美元
# #一个代谢组学工作台”input_item“# # # #的名字:“study_id”# # # #精确模式匹配:# #”^圣[0 - 9]{6}$”部分模式匹配:# # # # # #”^ S (T [0 - 9] {0, 6}) ?$ " # # # #例子:# #“ST000001圣“# #

output_item列表包含mw_output_item对象指定有效的输入、预期收益字段(如果返回的是一个data.frame)和类型的输入匹配的支持。

#输出项的总结信息output_item总结美元
# #一个代谢组学工作台”output_item“# # # #的名字:“总结”# # # #的回报:# # # #“study_id study_title“# #”study_type“# #”研究所“# #”部门“# #”last_name“# #”first_name“# #”电子邮件“# # # #“电话”“submit_date“# #”study_summary“# #”subject_species“# # # #允许input_item名字:# # # #“study_id”“study_title”# #“研究所”# # # # # #“last_name”类型匹配的支持:“部分”

6会话信息

# # R版本4.1.0(2021-05-18)# #平台:x86_64-pc-linux-gnu(64位)# #下运行:Ubuntu 20.04.2 LTS # # # #矩阵产品:默认# #布拉斯特区:/home/biocbuild/bbs - 3.13 - bioc / R / lib / libRblas。所以# # LAPACK: /home/biocbuild/bbs - 3.13 - bioc / R / lib / libRlapack。# # # #语言环境:# # [1]LC_CTYPE = en_US。utf - 8 LC_NUMERIC = C # #[3]而= 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 = C LC_TELEPHONE = # # [11] LC_MEASUREMENT = en_US。utf - 8 LC_IDENTIFICATION = C附加基本包:# # # # # #[1]网格数据图形grDevices跑龙套数据集方法# # # # # #[8]基地其他附加包:# # [1]metabolomicsWorkbenchR_1.2.0 BiocStyle_2.20.0 # # # #通过加载一个名称空间(而不是附加):# # [1]Rcpp_1.0.6 highr_0.9 # # [3] bslib_0.2.5.1 compiler_4.1.0 # # [5] BiocManager_1.30.15 jquerylib_0.1.4 # # [7] GenomeInfoDb_1.28.0 XVector_0.32.0 # # [9] MatrixGenerics_1.4.0 bitops_1.0-7 # # [11] tools_4.1.0 zlibbioc_1.38.0 # # [13] digest_0.6.27 lattice_0.20-44 # # [15] jsonlite_1.7.2 evaluate_0.14 # # [17] png_0.1-7 rlang_0.4.11 # # [19] Matrix_1.3-3 DelayedArray_0.18.0 # # [21] magick_2.7.2 curl_4.3.1 # # [23] yaml_2.2.1 parallel_4.1.0 # # [25] xfun_0.23 GenomeInfoDbData_1.2.6 # # [27] httr_1.4.2 stringr_1.4.0 # # [29] knitr_1.33 S4Vectors_0.30.0 # # [31] sass_0.4.0 IRanges_2.26.0 # # [33] struct_1.4.0 stats4_4.1.0 # # [35] MultiAssayExperiment_1.18.0 data.table_1.14.0 # # [37] Biobase_2.52.0 R6_2.5.0 # # [39] ontologyIndex_2.7 rmarkdown_2.8 # # [41] bookdown_0.22 magrittr_2.0.1 # # [43] htmltools_0.5.1.1 matrixStats_0.58.0 # # [45] BiocGenerics_0.38.0 GenomicRanges_1.44.0 # # [47] SummarizedExperiment_1.22.0 stringi_1.6.2 # # [49] rcurl_1.98 - 1.3