【发布时间】:2015-09-17 15:33:33
【问题描述】:
我想使用 JSON(或 XML)导出工具解析 R 中 Pubchem 中给定化合物的所有化学性质。
示例:ALPHA-IONONE,pubchem 化合物 ID 5282108
https://pubchem.ncbi.nlm.nih.gov/compound/5282108
library("rjson")
data <- rjson::fromJSON(file="https://pubchem.ncbi.nlm.nih.gov/rest/pug_view/data/compound/5282108/JSON/?response_type=display")
或
library("RJSONIO")
data <- RJSONIO::fromJSON("https://pubchem.ncbi.nlm.nih.gov/rest/pug_view/data/compound/5282108/JSON/?response_type=display")
会给我一个嵌套列表树,但是我如何从这个相当复杂的嵌套列表列表转到一个不错的数据框或数据框列表?
在这种情况下,我所追求的就是下面的一切
3.1 计算描述符
3.2 其他标识符
3.3 同义词
4.1 计算属性
在数据框的单行中,每个元素在单独的命名列中,每个元素有多个项目(例如多个同义词),并用“|”粘贴在一起作为分隔符。例如。在这种情况下类似于
pubchemid IUPAC_Name InChI InChI_Key Canonical SMILES Isomeric SMILES CAS EC Number Wikipedia MeSH Synonyms Depositor-Supplied Synonyms Molecular_Weight Molecular_Formula XLogP3 Hydrogen_Bond_Donor_Count ...
5282108 (E)-4-(2,6,6-trimethylcyclohex-2-en-1-yl)but-3-en-2-one InChI=1S/C13H20O/c1-10-6-5-9-13(3,4)12(10)8-7-11(2)14/h6-8,12H,5,9H2,1-4H3/b8-7+ ....
具有多个项目的字段,例如存款人提供的同义词可以用“|”粘贴在一起,例如值可能是 ALPHA-IONONE|Iraldeine|...
其次,我还要导入部分 4.2.2 Kovats 留存指数 作为数据框
pubchemid column_class kovats_ri
5282108 Standard non-polar 1413
5282108 Standard non-polar 1417
...
5282108 Semi-standard non-polar 1427
...
(第 4.3.1 节 GC-MS 本来也不错,但由于它只显示 3 个顶峰,所以现在有点没用,所以我会跳过它)
有人知道如何以优雅的方式实现这一目标吗?
PS 请注意,对于任何给定的查询,并非所有这些字段都必须存在。
二维结构和一些性质也可以从
和 3D 结构来自
数据也可以导出为 XML,使用
https://pubchem.ncbi.nlm.nih.gov/rest/pug_view/data/compound/5282108/XML/?response_type=display
如果这样会更容易
注意:也尝试使用 R 包 rpubchem,但似乎只导入了少量可用信息:
library("rpubchem")
get.cid(5282108)
CID IUPACName CanonicalSmile MolecularFormula MolecularWeight TotalFormalCharge XLogP HydrogenBondDonorCount HydrogenBondAcceptorCount HeavyAtomCount TPSA
2 5282108 (E)-4-(2,6,6-trimethylcyclohex-2-en-1-yl)but-3-en-2-one C13H20O 192.297300 0 3 0 1 14 17 5282108
【问题讨论】:
-
您能否更具体地说明“所有内容”的确切含义?另外,您对预期 data.frame 的解释对我来说不是很清楚。您可以尝试手动创建示例(部分)行吗?我还建议将“Kovats Retention Index”放在自己的段落中,因为这对您来说似乎不是硬性要求。
-
我做了一些澄清 - 希望现在更好?对于所有内容,我基本上是指为给定化合物提供的任何字段(这可能因化合物而异)......因此对于多个化合物,数据框仍然必须合并。
标签: json xml r xml-parsing pubchem