我想使用 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 Retention Index 作为数据框导入
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 package 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