将sbml公式翻译成cod程序

2024-05-18 05:51:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我是sbml的新手,我真的很困惑。你知道吗

我想和龙格库塔一起解一首颂歌。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>

这应该描述反应dP/dt=Rp*p

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

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

Product = evaluate_sbml_formula(formula,value_of_reactant)

我阅读了sbml文档,但没有找到它。你知道吗

你有什么建议吗? 谢谢


Tags: 文件ciidfalserpsbmlspeciesconstant
2条回答

sbml片段有点不寻常。反应物和产物都是P,因此反应是P->;P。这意味着P的变化率为零,即

dp/dt=0

在这种情况下,利率定律是什么并不重要。你知道吗

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

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

我希望这有帮助

相关问题 更多 >