python - 如何将 SBML 公式转换为程序代码?

标签 python c++ xml sbml

我是 sbml 的新手,我真的很困惑。

我想用 Runge Kutta 求解 ODE。 ODE 存储在 SBML 文件中。 该文件的一部分如下所示

<listOfReactions>
  <reaction id="growth_P" reversible="false" fast="false">
    <listOfReactants>
      <speciesReference species="P" constant="false"/>
    </listOfReactants>
    <listOfProducts>
      <speciesReference species="P" constant="false"/>
    </listOfProducts>
    <kineticLaw>
      <math xmlns="http://www.w3.org/1998/Math/MathML">
        <apply>
          <times/>
          <ci> Rp </ci>
          <ci> P </ci>
        </apply>
      </math>
      <listOfLocalParameters>
        <localParameter id="Rp" value="1" units="per_second"/>
      </listOfLocalParameters>
    </kineticLaw>
  </reaction>
....
</listOfReactions>

这应该描述 react dP/dt = Rp*P

我的问题来了。我不知道如何将 sbml 公式转换为我的程序可以处理的公式(python/C++,无论什么)

所以最好的选择是像这样的函数

Product = evaluate_sbml_formula(formula,value_of_reactant)

我阅读了 sbml 文档,但没有找到它。

你有什么建议吗? 谢谢

最佳答案

如果没有看到整个 SBML 文件,就很难构造一组 ODE 来求解。在我的 python 类(class) ( 1 ) 中,我使用 libSBML(作为 pypi/anaconda 包提供)用 python 解决 SBML 文件。这里有一个文件的链接,该文件将 SBML 转换为 ODE,然后用 scipy 求解:

https://www.dropbox.com/s/2bfpiausejp0gd0/convert_reactions.py?dl=0

希望对你有帮助

关于python - 如何将 SBML 公式转换为程序代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41938120/

相关文章:

python - 如何打印lda主题模型和每个主题的词云

c++ - CheckRemoteDebuggerPresent 在 MingW 中不存在

java - 简单的 : Element 'id' is already used

xml - PowerShell-V5 Invoke-Webrequest 添加 2 个 header 授权 header 和接受 header

java - 如何从 XML 文件创建对象图?

Visual Studio Code 中的 Python 异步/线程调试

python - 在 dictionary.values() 列表与集合中查找的时间复杂度

python - 检查某些文本是否仅由某些模式组成

c++ - QGraphicsScene::clear 不会改变 sceneRect

c++ - 有没有办法让用户输入来定义 Visual Studio 中的数组大小?