我使用“Hello world”ODE模拟模型(用相应的分子数替换浓度并将确定率转换为随机等价物)尝试了pythonpysb库中的run_ssa
。在
这是使用odesolve
方法获得的轨迹:
[(301.0, 180.0, 0.0, 0.0)
(269.7114893451928, 148.71148934519294, 31.288510654807023, 31.288510654807023)
(246.1336243593057, 125.13362435930587, 54.866375640694116, 54.866375640694116)
(227.7848590843455, 106.78485908434567, 73.21514091565433, 73.21514091565433)
(213.1444366774497, 92.1444366774498, 87.8555633225502, 87.8555633225502)...
看起来很合理。在
这就是run_ssa的回报:
^{pr2}$看起来不是以初始条件为起点,而是使用其中一个作为限制因素?第一个数组对我来说是时间。。。 根据描述,它应该像ODE模拟一样返回轨迹。。。在
从外观上看,odesolve调用python库来解决ODE,但run ssa调用BioNetGen建模语言。在
我尝试过直接使用BioNetGen实现Michaelis-Menten动力学的确定性和随机模型,它们看起来很好。在
所以,问题是:有人让它工作吗?有使用它的例子吗?
这样做的目的是测试这个库,我只需要知道是否有可能让它工作,以及是否有人成功地做到了这一点。在
这里是PySB作者/开发人员。在
看来问题出在我们身上(我在读了这篇文章后才发现)没有记录run-ssa函数的返回类型。这将得到补救。正如AliceNCL所提到的,run_ssa返回的输出是从BNG.gdat文件解析回来的。然而,返回的轨迹是不是随机的:.gdat文件包含模型中定义的唯一可观察到的轨迹:“LR”,配体-受体复合物。另一方面,.cdat文件包含模型中定义的所有物种的轨迹,编号为1、2、3。因此,按照目前的实现方式,如果有一个特定的物种你想得到SSA轨迹,你需要为它添加一个可观察的。在
另一方面,odesolve函数返回一个包含所有物种(索引为's0'、'\u s1'、''uu s2')和命名的可观测'LR'的重新排列。因此,有四个条目,最后两个条目是相同的:配体-受体复合物为“物种2”和命名为可观察的“LR”。在
如果您(或其他任何人)在使用该库时遇到任何其他问题,请通过电子邮件发送给PySB邮件列表(请参阅pysb.org网站)或者在GitHub上发布问题!我们只是偶尔检查堆栈溢出。在
无论如何,这里有一个有效的例子:
这将产生以下结果:http://imgur.com/xDNQDIL
谢谢,我最终确实意识到了它到底能做什么,并设法给出了一些有用的例子。但它花了一些挖掘代码和BNG文档:)。问题是文档示例中的odesolve实际上返回了所有的轨迹,并且您在绘制时选择了想要的轨迹,而不仅仅是可观察到的轨迹,这让我很困惑。 当然,这个工作实例的加入和对文档的更多解释,对研究工作无疑是一个很大的帮助! 另外,这是一个好的有用的图书馆
相关问题 更多 >
编程相关推荐