1介绍

在这个描述,我们将专注于创建一个新的biodb领域内使用现有的连接器。biodb字段定义为所有数据库连接器。它们的定义什么类型的数据可能被设置在里面biodb条目对象。因为它们是由所有连接器,共享他们需要没有任何引用定义一个特定的数据库。然而他们中的许多都与一个特定的科学或技术领域(遗传学、代谢组学、质谱,…)。

就像一个类型定义一个条目字段。的定义是在顶级完成的biodb,因此它与任何特定的连接器。包括:定义一个名称、描述一个类(整数、双重性格、逻辑)、基数(单值或向量),允许的值的列表,一个类(组类似领域的“质量”),等等。

为特定的连接器,当创建一个条目对象在内存中,包含的值的文件从数据库和解析获得运行为了提取这些值并影响有关biodb输入字段内biodb条目对象。因此,解析的价值biodb每个连接器输入字段都是不同的,而biodb输入字段使用几种不同的连接器。

没有biodb连接器使用所有可用的biodb输入字段。然而它可以发生一个连接器没有实现一些可用的解析数据在数据库中。原因是,在大多数情况下,可用数据的数量,和它的多样性,在一个单一入口需要过量的编码。因此,我们常常限制我们的发展到可用数据的一个子集,我们感兴趣的。

当一个特定的数据从数据库中不存在相应的条目biodb连接器,这意味着没有解析为它写在连接器。此外,它也可能意味着没有biodb输入字段定义处理特定类型的数据。幸运的是,biodb提供了一种正确的动态,在您的代码,这个不足,创建一个新的biodb如果需要输入字段并创建相应的解析的数据连接器。

遵循随后解释为了学习如何定义一个新的解析连接器的一个值,并将其分配给现有的输入字段,以及如何定义一个新输入字段

首先,我们实例化包:

mybiodb < - biodb: BiodbMain美元新()
# #信息(04:00:38.970)加载定义从包biodb 1.2.2版本。

1.1定义一个新的字段的解析

与创建一个新的领域之前,我们将看到不同的方法解析现有的价值biodb场不是由一个连接器。两个连接器案件将被用作例子:ChebiExConn连接器的定义创建一个新的连接器。装饰图案和CompCsvFileConn连接器的biodb包中。

1.1.1定义一个解析表达式为远程数据库连接器(ChebiExConn)

ChebiExConn类实现的一个示例连接器ChEBI(黑斯廷斯et al . 2012年)远程数据库。看到小插图创建一个新的连接器。创建的连接器。

我们动态地加载此连接器的定义里面biodb的解释创建一个新的连接器。装饰图案:

chebiexDefFile < -系统。文件(“extdata”、“chebi_ex。yml”,包=“biodb”)connClass <- system.file("extdata", "ChebiExConn.R", package='biodb') entryClass <- system.file("extdata", "ChebiExEntry.R", package='biodb') source(connClass) source(entryClass) mybiodb$loadDefinitions(chebiexDefFile)

对于我们的演示我们将假设这个连接器已经由其他人,和我们没有访问实现代码。

我们创建这个数据库连接器:

康涅狄格州< - mybiodb getFactory美元()美元createConn (“chebi.ex”)

并获得一个条目:

entryIds < - c (' 17001 ', ' 40304 ', ' 64679 ') entriesDf < - mybiodb entriesToDataframe美元(康涅狄格州getEntry美元(entryIds))

在表中可以看到1

表1: 从数据库ChebiEx一些条目
收取价值成为不可见这不是从数据库文件中解析。
加入 公式 inchi inchikey molecular.mass monoisotopic.mass 的名字 微笑 chebi.ex.id
17001年 C9H13N5O4 InChI = 1 s / C9H13N5O4 c10-9-13-7-5(8(18)的战绩12胜(1-11-7)6(17)4(16)男童/ h4, 6日15-17H, 1-2H2, (h4、10、11、13、14、18) / t4 -, 6 + m1 / s1 YQIFAMYNGGOTFB-XINAWCOVSA-N 255.2308 255.0967 7,8-dihydroneopterin Nc1nc2NCC (= Nc2c (= O) (nH) 1) [C@H] (O) [C@H] (O)有限公司 17001年
40304年 C10H13N5O5 InChI = 1 s / C10H13N5O5 c11-9-13-7-6(8(18)的战绩)成员(19)15(7)共5-1-3 (17)4 (- 18)/ h3-5 16-17H, 1-2H2, (H、12、19) (H3、11、13、14、18) / t3 -, 4 + 5 + / mo / s1 HCAJQHYUCKICQH-VPENINKCSA-N 283.2407 283.0917 8-hydroxy-2的脱氧鸟苷 Nc1nc2n ([C@H] 3 c [C@H] (O) [C@@H] (CO) O3) c (O) nc2c (= O) (nH) 1 40304年
64679年 C9H18NO11P InChI = 1 s / C9H18NO11P c10-3 (8 (15) 16) 2-19-22 (17、18) 2-19-22 (14) 6 (13) 5 (12) 4 (1 - 11) 20-9 / h3-7, 9日11-14H, 1 - 2, 10 h2 (H、15、16) (H, 17、18) / t3 - 4 + 5 + 6 - 7 - 9 + / mo / s1 JTBRVTASGISCGJ-RHNOWPELSA-N 347.2131 347.0618 (O) - alpha-D-mannose-1-phosphoryl -L-serine N [C@@H](警察(O) (= O) O (C@H) 1 O [C@H] (CO) [C@@H] (O) [C@H] (O) [C@@H] 1 O) C = O (O) 64679年

你会发现没有电荷分子表中提到的,虽然存在内部ChEBI数据库。让我们选择一个条目:

id < - entryIds [[1]] id
# # [1]“17001”

并得到这个条目的ChEBI网页:

康涅狄格州getEntryPageUrl美元(id)
# # 17001 # #“https://www.ebi.ac.uk/chebi/searchId.do?chebiId=17001”

这个页面上(https://www.ebi.ac.uk/chebi/searchId.do?chebiId=17001)检查确实是由ChEBI电荷信息(净电荷0)。在整合这些数据biodb条目,我们需要从ChEBI返回的文件中提取它。当被问及一个条目在它的web服务接口,ChEBI返回一个XML文件biodb存储在缓存中。在连接器通过调用下面的方法,你可以得到的路径biodb缓存文件:

康涅狄格州getCacheFile美元(id)
# # [1]“/ home / biocbuild / .cache / R / biodb / chebi.ex-0c5076ac2a43d16dbce503a44b09f649/17001.xml”

如果你看一看这个文件与你最喜欢的编辑器,您将看到以下文本:

<电荷> 0 < /收费>

这个XML标记,它存储电荷的价值。从XML提取值,biodb使用XPath查询语言。在XPath语言,表达/ / chebi:电荷内部的价值负责标记的地方(/ /在树结构的XML)。看到XPath教程介绍XPath。我们需要给这个XPath表达biodb的实例,并解释输入字段提取的值必须受到影响。这是通过定义一个小YAML文件:

chargeParsingDefFile < -系统。文件(“extdata”、“chebi_ex_charge_parsing。yml”,包=“biodb”)

其内容是:

数据库:chebi。例:解析。expr:电荷:/ / chebi:电荷

在这个文件中,我们定义一个新的内部的解析表达式parsing.expr部分chebi.ex数据库连接器。解析表达式的定义包含两个值:目标biodb输入字段(负责)和XPath表达式(/ / chebi:电荷)。

现在我们只需要加载这个新的定义:

mybiodb loadDefinitions美元(chargeParsingDefFile)

删除现有的连接器:

mybiodb getFactory美元()美元deleteConn(康涅狄格州)
# #信息[04:00:41.468]chebi连接器”。前女友”删除。

重新创建连接器并重新加载相同的条目:

康涅狄格州< - mybiodb getFactory美元()美元createConn (chebi.ex) entriesDf < - mybiodb entriesToDataframe美元(康涅狄格州getEntry美元(entryIds))

你可以看到在2电荷是现在显示为每一个条目。

表2: 从数据库ChebiEx一些条目
以来的电荷值现在是可见的,解析表达式添加到连接器。
加入 公式 inchi inchikey molecular.mass monoisotopic.mass 的名字 微笑 负责 chebi.ex.id
17001年 C9H13N5O4 InChI = 1 s / C9H13N5O4 c10-9-13-7-5(8(18)的战绩12胜(1-11-7)6(17)4(16)男童/ h4, 6日15-17H, 1-2H2, (h4、10、11、13、14、18) / t4 -, 6 + m1 / s1 YQIFAMYNGGOTFB-XINAWCOVSA-N 255.2308 255.0967 7,8-dihydroneopterin Nc1nc2NCC (= Nc2c (= O) (nH) 1) [C@H] (O) [C@H] (O)有限公司 0 17001年
40304年 C10H13N5O5 InChI = 1 s / C10H13N5O5 c11-9-13-7-6(8(18)的战绩)成员(19)15(7)共5-1-3 (17)4 (- 18)/ h3-5 16-17H, 1-2H2, (H、12、19) (H3、11、13、14、18) / t3 -, 4 + 5 + / mo / s1 HCAJQHYUCKICQH-VPENINKCSA-N 283.2407 283.0917 8-hydroxy-2的脱氧鸟苷 Nc1nc2n ([C@H] 3 c [C@H] (O) [C@@H] (CO) O3) c (O) nc2c (= O) (nH) 1 0 40304年
64679年 C9H18NO11P InChI = 1 s / C9H18NO11P c10-3 (8 (15) 16) 2-19-22 (17、18) 2-19-22 (14) 6 (13) 5 (12) 4 (1 - 11) 20-9 / h3-7, 9日11-14H, 1 - 2, 10 h2 (H、15、16) (H, 17、18) / t3 - 4 + 5 + 6 - 7 - 9 + / mo / s1 JTBRVTASGISCGJ-RHNOWPELSA-N 347.2131 347.0618 (O) - alpha-D-mannose-1-phosphoryl -L-serine N [C@@H](警察(O) (= O) O (C@H) 1 O [C@H] (CO) [C@@H] (O) [C@H] (O) [C@@H] 1 O) C = O (O) 0 64679年

1.1.2定义一个解析表达式为本地数据库连接器(CompCsvFileConn)

CompCsvFileConn类实现一个连接器的本地CSV文件数据库化合物,作为解释里面的装饰图案

。数据库存储在一个CSV文件,数据解析是非常简单的。它包含在每个关联biodb输入字段的列名称。默认情况下biodb将定义为每一个条目关联字段的名字是用于一个列。列的名字不是现有的名字biodb输入字段并不相关,因此你无法访问他们的价值观biodb

如果你想访问这些值,定义手动关联,使用setField ()方法。

在我们的示例中,我们使用一个从数据库提取ChEBI作为输入CSV数据库文件:

fileUrl < -系统。文件(“extdata”、“chebi_extract_with_unknown_column。tsv”,包=“biodb”)

见表3这个文件的内容。


表3: 复合数据库文件的第一行。
加入 elecCharge 公式 monoisotopic.mass molecular.mass kegg.compound.id 的名字 微笑
1018年 0 C2H8AsNO3 168.97201 169.012 C07279 2-Aminoethylarsonate NCC[是](O) (O) = O
1390年 0 C8H8O2 136.05243 136.148 C06224 3,4-Dihydroxystyrene cc1O Oc1ccc (C = C)
1456年 0 C3H9NO2 91.06333 91.109 C06057 3-aminopropane-1,可 数控(C@H) (O)有限公司
1549年 0 C3H5O3R 89.02387 89.070 C03834 3-hydroxymonocarboxylic酸 OC ([*]) CC (O) = O
1894年 0 C5H11NO 101.08406 101.147 C10974 4-Methylaminobutanal CNCCCC = O
1932年 0 C6H6NR 92.05002 92.119 C03084 4-Substituted苯胺 Nc1ccc cc1 ([*])

在此文件中,列名elecCharge将不相关的吗biodb输入字段。事实上,biodb输入字段的电荷分子负责,而不是elecCharge。让我们确认。

我们首先创建连接器CSV文件:

康涅狄格州< - mybiodb getFactory美元()美元createConn (“comp.csv。文件的url = fileUrl)

并获得一些条目的内容:

entriesDf < - mybiodb entriesToDataframe美元(康涅狄格州getEntry美元(康涅狄格州getEntryIds美元()))
# #信息(04:00:41.943)加载文件数据库“/ tmp / Rtmp34YpfQ / Rinst83bf361683209 / biodb / extdata / chebi_extract_with_unknown_column.tsv”。# #警告[04:00:41.946]列“elecCharge”不匹配任何biodb字段。
# #警告警告(列\ % s \“不匹配任何biodb领域。”,colname): # #列“elecCharge”不匹配任何biodb字段。

见表4为这个条目的内容。正如您可以看到的,没有负责场上市。


表4: 一些从化合物数据库条目。
加入 公式 monoisotopic.mass molecular.mass kegg.compound.id 的名字 微笑 comp.csv.file.id
1018年 C2H8AsNO3 168.97201 169.012 C07279 2-Aminoethylarsonate NCC[是](O) (O) = O 1018年
1390年 C8H8O2 136.05243 136.148 C06224 3,4-Dihydroxystyrene cc1O Oc1ccc (C = C) 1390年
1456年 C3H9NO2 91.06333 91.109 C06057 3-aminopropane-1,可 数控(C@H) (O)有限公司 1456年
1549年 C3H5O3R 89.02387 89.070 C03834 3-hydroxymonocarboxylic酸 OC ([*]) CC (O) = O 1549年
1894年 C5H11NO 101.08406 101.147 C10974 4-Methylaminobutanal CNCCCC = O 1894年
1932年 C6H6NR 92.05002 92.119 C03084 4-Substituted苯胺 Nc1ccc cc1 ([*]) 1932年

现在我们所说的方法来定义新协会:

康涅狄格州setField美元(“充电”,“elecCharge”)

第一个参数的名称biodb输入字段,第二列的名称在CSV文件

新列时将解析条目。但是之前我们必须从内存中删除所有条目:

康涅狄格州deleteAllEntriesFromVolatileCache美元()

然后再重新加载相同的条目:

entries2Df < - mybiodb entriesToDataframe美元(康涅狄格州getEntry美元(康涅狄格州getEntryIds美元()))

见表5为这个条目的内容。一个新的数据帧列存在,命名负责

表5: 一些从化合物数据库条目
他们现在显示新解析“充电”字段。
加入 公式 monoisotopic.mass molecular.mass kegg.compound.id 的名字 微笑 负责 comp.csv.file.id
1018年 C2H8AsNO3 168.97201 169.012 C07279 2-Aminoethylarsonate NCC[是](O) (O) = O 0 1018年
1390年 C8H8O2 136.05243 136.148 C06224 3,4-Dihydroxystyrene cc1O Oc1ccc (C = C) 0 1390年
1456年 C3H9NO2 91.06333 91.109 C06057 3-aminopropane-1,可 数控(C@H) (O)有限公司 0 1456年
1549年 C3H5O3R 89.02387 89.070 C03834 3-hydroxymonocarboxylic酸 OC ([*]) CC (O) = O 0 1549年
1894年 C5H11NO 101.08406 101.147 C10974 4-Methylaminobutanal CNCCCC = O 0 1894年
1932年 C6H6NR 92.05002 92.119 C03084 4-Substituted苯胺 Nc1ccc cc1 ([*]) 0 1932年

1.2创建一个新的领域和解析它的价值

有时候你不需要解析设置一个现有的一些价值biodb场,但你需要的值不符合任何定义biodb字段。在这种情况下,您需要定义一个新领域除了定义你的解析。

在本文中我们将使用的ChebiExConn连接器的例子创建一个新的连接器。装饰图案。

在ChEBI数据库中,每个条目(即。:分子)得分(恒星)反映管理地位。在当前这个领域不存在ChebiExConn连接器的例子。让我们看到,通过展示一些条目的内容:

康涅狄格州< - mybiodb getFactory美元()美元getConn (chebi.ex) entryIds < - c (' 17001 ', ' 40304 ', ' 64679 ') entriesDf < - mybiodb entriesToDataframe美元(康涅狄格州getEntry美元(entryIds))

见表6

表6: 从数据库ChebiEx一些条目
没有字段显示一个条目的数量的恒星。
加入 公式 inchi inchikey molecular.mass monoisotopic.mass 的名字 微笑 负责 chebi.ex.id
17001年 C9H13N5O4 InChI = 1 s / C9H13N5O4 c10-9-13-7-5(8(18)的战绩12胜(1-11-7)6(17)4(16)男童/ h4, 6日15-17H, 1-2H2, (h4、10、11、13、14、18) / t4 -, 6 + m1 / s1 YQIFAMYNGGOTFB-XINAWCOVSA-N 255.2308 255.0967 7,8-dihydroneopterin Nc1nc2NCC (= Nc2c (= O) (nH) 1) [C@H] (O) [C@H] (O)有限公司 0 17001年
40304年 C10H13N5O5 InChI = 1 s / C10H13N5O5 c11-9-13-7-6(8(18)的战绩)成员(19)15(7)共5-1-3 (17)4 (- 18)/ h3-5 16-17H, 1-2H2, (H、12、19) (H3、11、13、14、18) / t3 -, 4 + 5 + / mo / s1 HCAJQHYUCKICQH-VPENINKCSA-N 283.2407 283.0917 8-hydroxy-2的脱氧鸟苷 Nc1nc2n ([C@H] 3 c [C@H] (O) [C@@H] (CO) O3) c (O) nc2c (= O) (nH) 1 0 40304年
64679年 C9H18NO11P InChI = 1 s / C9H18NO11P c10-3 (8 (15) 16) 2-19-22 (17、18) 2-19-22 (14) 6 (13) 5 (12) 4 (1 - 11) 20-9 / h3-7, 9日11-14H, 1 - 2, 10 h2 (H、15、16) (H, 17、18) / t3 - 4 + 5 + 6 - 7 - 9 + / mo / s1 JTBRVTASGISCGJ-RHNOWPELSA-N 347.2131 347.0618 (O) - alpha-D-mannose-1-phosphoryl -L-serine N [C@@H](警察(O) (= O) O (C@H) 1 O [C@H] (CO) [C@@H] (O) [C@H] (O) [C@@H] 1 O) C = O (O) 0 64679年

在返回的XML条目内容ChEBI服务器,存储在该领域entityStar元素如下所示:

< entityStar > 3 < / entityStar >

你可以直接检查的XML内容内的一个条目,如前所述。

我们得到这个数字的恒星定义新领域及其解析表达式内部YAML文件如下:

nStarsDefFile < -系统。文件(“extdata”、“chebi_ex_stars_field。yml”,包=“biodb”)

这是它的内容:

数据库:chebi。例:解析。expr: n_stars: / / chebi:返回/ chebi: entityStar领域:n_stars:描述:chebi例子明星指标。类:整数

你已经知道如何定义YAML文件内的解析表达式XPath表达式的值比电荷的一段时间,但原理是相同的。

什么是新的,是吗字段节中,我们定义了新领域。字段的名称(n_stars)是用作内部的一个关键部分。然后几个键是用来定义,见表7这些密钥的描述。


表7: 不同的密钥用于定义一个字段。
关键 描述
别名 其他可能的名称字段。
描述 的描述字段。
R类。之一整数,字符,,逻辑
类型 一个名字的一组相关领域。现有的是的名字质量,但你可以创建你的拥有。
基数。要么一个(单值)或许多(向量)。
case.insensitive 如果真正的价值是不区分大小写。
forbids.duplicates 如果真正的基数是许多,没有重复的值将被接受。
lower.case 如果真正的,该值将小写。
allowed.values 如果这个向量不是空的,那么只有这个向量中列出的值将被允许。

我们现在可以加载新的定义:

mybiodb loadDefinitions美元(nStarsDefFile)

删除现有的连接器:

mybiodb getFactory美元()美元deleteConn(康涅狄格州)
# #信息[04:00:44.226]chebi连接器”。前女友”删除。

重新创建连接器并重新加载相同的条目:

康涅狄格州< - mybiodb getFactory美元()美元createConn (chebi.ex) entriesDf < - mybiodb entriesToDataframe美元(康涅狄格州getEntry美元(entryIds))

见表8。现在一个列命名n_stars表明恒星的数量为每一个条目的数据帧。

表8: 从数据库ChebiEx一些条目
现在有一种n_stars没有磁场,表明一个条目的数量的恒星。
加入 公式 inchi inchikey molecular.mass monoisotopic.mass 的名字 微笑 负责 n.stars chebi.ex.id
17001年 C9H13N5O4 InChI = 1 s / C9H13N5O4 c10-9-13-7-5(8(18)的战绩12胜(1-11-7)6(17)4(16)男童/ h4, 6日15-17H, 1-2H2, (h4、10、11、13、14、18) / t4 -, 6 + m1 / s1 YQIFAMYNGGOTFB-XINAWCOVSA-N 255.2308 255.0967 7,8-dihydroneopterin Nc1nc2NCC (= Nc2c (= O) (nH) 1) [C@H] (O) [C@H] (O)有限公司 0 3 17001年
40304年 C10H13N5O5 InChI = 1 s / C10H13N5O5 c11-9-13-7-6(8(18)的战绩)成员(19)15(7)共5-1-3 (17)4 (- 18)/ h3-5 16-17H, 1-2H2, (H、12、19) (H3、11、13、14、18) / t3 -, 4 + 5 + / mo / s1 HCAJQHYUCKICQH-VPENINKCSA-N 283.2407 283.0917 8-hydroxy-2的脱氧鸟苷 Nc1nc2n ([C@H] 3 c [C@H] (O) [C@@H] (CO) O3) c (O) nc2c (= O) (nH) 1 0 3 40304年
64679年 C9H18NO11P InChI = 1 s / C9H18NO11P c10-3 (8 (15) 16) 2-19-22 (17、18) 2-19-22 (14) 6 (13) 5 (12) 4 (1 - 11) 20-9 / h3-7, 9日11-14H, 1 - 2, 10 h2 (H、15、16) (H, 17、18) / t3 - 4 + 5 + 6 - 7 - 9 + / mo / s1 JTBRVTASGISCGJ-RHNOWPELSA-N 347.2131 347.0618 (O) - alpha-D-mannose-1-phosphoryl -L-serine N [C@@H](警察(O) (= O) O (C@H) 1 O [C@H] (CO) [C@@H] (O) [C@H] (O) [C@@H] 1 O) C = O (O) 0 3 64679年

2关闭biodb实例

不要忘记终止biodb实例一旦你完成它:

mybiodb终止美元()
# #信息[04:00:44.604]关闭BiodbMain实例…# #信息[04:00:44.606]comp.csv连接器”。文件”删除。# #信息[04:00:44.607]chebi连接器”。前女友”删除。

3会话信息

sessionInfo ()
# # R版本4.1.2(2021-11-01)# #平台:x86_64-pc-linux-gnu(64位)# #下运行:Ubuntu 20.04.3 LTS # # # #矩阵产品:默认# #布拉斯特区:/home/biocbuild/bbs - 3.14 - bioc / R / lib / libRblas。所以# # LAPACK: /home/biocbuild/bbs - 3.14 - 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跑龙套数据集方法基础# # # #其他附加包:# # [1]biodb_1.2.2 BiocStyle_2.22.0 # # # #通过加载一个名称空间(而不是附加):# # [1]progress_1.2.2 tidyselect_1.1.1 xfun_0.28 # # [4] bslib_0.3.1 purrr_0.3.4 vctrs_0.3.8 # # [7] generics_0.1.1 htmltools_0.5.2 BiocFileCache_2.2.0 # # [10] yaml_2.2.1 utf8_1.2.2 blob_1.2.2 # # [13] xml_3.99 - 0.8 rlang_0.4.12 jquerylib_0.1.4 # # [16] pillar_1.6.4 withr_2.4.3 glue_1.5.1 # # [19] DBI_1.1.1 rappdirs_0.3.3 bit64_4.0.5 # # [22] dbplyr_2.1.1 lifecycle_1.0.1 plyr_1.8.6 # # [25] stringr_1.4.0 memoise_2.0.1 evaluate_0.14 # # [28] knitr_1.36 fastmap_1.1.0 curl_4.3.2 # # [31] fansi_0.5.0 highr_0.9 Rcpp_1.0.7 # # [34] openssl_1.4.5 filelock_1.0.2 BiocManager_1.30.16 # # [37] cachem_1.0.6 jsonlite_1.7.2 bit_4.0.4 # # [40] hms_1.1.1 chk_0.7.0 askpass_1.1 # # [43] digest_0.6.29 stringi_1.7.6 bookdown_0.24 # # [46] dplyr_1.0.7 bitops_1.0-7 tools_4.1.2 # # [49] magrittr_2.0.1 sass_0.4.0 rcurl_1.98 - 1.5 # # [52] RSQLite_2.2.9 tibble_3.1.6 crayon_1.4.2 # # [55] pkgconfig_2.0.3 ellipsis_0.3.2 prettyunits_1.1.1 # # [58] assertthat_0.2.1 rmarkdown_2.11 httr_1.4.2 # # [61] lgr_0.4.3 R6_2.5.1 compiler_4.1.2

引用

黑斯廷斯,珍娜·波拉•马托斯,阿德里亚诺德克,马库斯埃尼斯,Bhavana Harsha,帕迪甘蓝、Venkatesh Muthukrishnan,等。2012。“ChEBI参考数据库和本体相关生物化学:2013年增强。”核酸的研究41 (D1): D456-D463。https://doi.org/10.1093/nar/gks1146