如何使用 libsbml 读取 sbml 文件的属性

How to read attributes for a sbml file with libsbml

我有一个来自 Reactome 的 sbml 模型,您可以从 https://reactome.org/content/detail/R-HSA-156581 下载它并单击 sbml。对于 <reaction>,其中一些具有 <listOfModifiers> 的属性,我正在尝试使用 libsbml 或 cobrapy 来实现。

我的代码读取了 sbml 文件,但是如何获取 <listOfModifiers> 的属性?

sbml_test_file = "./R-HSA-156581.sbml"

# Using the libSBML python API
# http://model.caltech.edu/software/libsbml/5.18.0/docs/formatted/python-api/libsbml-python-reading-files.html
reader = libsbml.SBMLReader()
document = reader.readSBML(sbml_test_file)
model = document.getModel()

libsbml API 旨在直接模仿 SBML 本身的结构。所以,一旦你有了模型,你就会从模型中得到反应,一旦你有反应,你就会得到反应的修饰符:

    import libsbml
    
    sbml_test_file = "R-HSA-156581.sbml"
    reader = libsbml.SBMLReader()
    document = reader.readSBML(sbml_test_file)
    model = document.getModel()
    for r in range(model.getNumReactions()):
        rxn = model.getReaction(r)
        for m in range(rxn.getNumModifiers()):
            mod = rxn.getModifier(m)
            print(mod.getId(), "in reaction", rxn.getId())