gpt4 book ai didi

r - 如何用 R 包 xml 解析 xml/sbml?

转载 作者:数据小太阳 更新时间:2023-10-29 02:03:57 27 4
gpt4 key购买 nike

我正在尝试从下面的 sbml/xml 文件中解析信息

https://dl.dropboxusercontent.com/u/10712588/file.xml

来自这段代码

http://search.bioconductor.jp/codes/11172

看来我可以正常导入文件了

doc <- xmlTreeParse(filename,ignoreBlanks = TRUE) 

但我无法恢复节点属性

atrr <- xpathApply(doc, "//species[@id]", xmlGetAttr, "id")

xpathApply(doc, "//species", function(n) xmlValue(n[[2]]))

文件的一个节点如下...

<species id="M_10fthf_m" initialConcentration="1" constant="false" hasOnly
SubstanceUnits="false" name="10-formyltetrahydrofolate(2-)" metaid="_metaM_10fth
f_m" boundaryCondition="false" sboTerm="SBO:0000247" compartment="m">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>FORMULA: C20H21N7O7</p>
<p>CHARGE: -2</p>
<p>INCHI: InChI=1S/C20H23N7O7/c21-20-25-16-15(18(32)26-20)23-11(7-22
-16)8-27(9-28)12-3-1-10(2-4-12)17(31)24-13(19(33)34)5-6-14(29)30/h1-4,9,11,13,23
H,5-8H2,(H,24,31)(H,29,30)(H,33,34)(H4,21,22,25,26,32)/p-2/t11-,13+/m1/s1</p>
<p>HEPATONET_1.0_ABBREVIATION: HC00212</p>
<p>EHMN_ABBREVIATION: C00234</p>
</body>
</notes>
<annotation>
...

我想检索物种节点内的所有信息,有人知道该怎么做吗?

最佳答案

存在一个 SBML 解析库 libSBML (http://sbml.org/Software/libSBML)。

这包括到 R 的绑定(bind),允许使用类似于以下的代码直接在 R 中访问 SBML 对象

document  = readSBML(filename);

errors = SBMLErrorLog_getNumFailsWithSeverity(
SBMLDocument_getErrorLog(document),
enumToInteger("LIBSBML_SEV_ERROR", "_XMLErrorSeverity_t")
);


if (errors > 0) {
cat("Encountered the following SBML errors:\n");
SBMLDocument_printErrors(document);
q(status=1);
}

model = SBMLDocument_getModel(document);

if (is.null(model)) {
cat("No model present.\n");
q(status=1);
}

species = Model_getSpecies(model, index_of_species);

id = Species_getId(species);
conc = Species_getInitialConcentration(species)

每个可能的属性都有一个 Species_get(NameOfAttribute) 函数;连同 Species_isSet(NameOfAttribute); Species_set(NameOfAttribute) 和 Species_unset(NameOfAttribute)。

API 类似于与任何 SBML 元素交互。

libSBML 版本包括 R 安装程序,可从

http://sourceforge.net/projects/sbml/files/libsbml/5.8.0/stable

导航到您选择的操作系统和架构的 R_interface 子目录。

libSBML 的源代码分发包含一个 examples/r 目录,其中包含许多在 R 环境中使用 libSBML 与 SBML 交互的示例。

关于r - 如何用 R 包 xml 解析 xml/sbml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16327822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com