动态montecarlo/Gillespie算法的Python包

动态montecarlo/Gillespie算法的Python包,python,statistics,bioinformatics,modeling,montecarlo,Python,Statistics,Bioinformatics,Modeling,Montecarlo,我正在研究一个描述蛋白质的模型。分子可能处于少数状态,从一种状态到另一种状态的转变由含有转变速率的矩阵描述。模型可以解析为一组常微分方程组,给出了很好的数值结果(从邻接矩阵->转移率矩阵->Kolmogorow正演方程->数值积分开始)。然而,为了得到过程的随机性,我想使用蒙特卡罗方法。据我所知,Gillespie算法就是为此而设计的。对于这类任务,您有推荐的软件包吗?您可以尝试使用random模块,自己执行蒙特卡罗模拟,对初始邻接矩阵中的值使用随机浮点。只需确保在矩阵可接受范围内随机选择一个数

我正在研究一个描述蛋白质的模型。分子可能处于少数状态,从一种状态到另一种状态的转变由含有转变速率的矩阵描述。模型可以解析为一组常微分方程组,给出了很好的数值结果(从邻接矩阵->转移率矩阵->Kolmogorow正演方程->数值积分开始)。然而,为了得到过程的随机性,我想使用蒙特卡罗方法。据我所知,Gillespie算法就是为此而设计的。对于这类任务,您有推荐的软件包吗?

您可以尝试使用
random
模块,自己执行蒙特卡罗模拟,对初始邻接矩阵中的值使用随机浮点。只需确保在矩阵可接受范围内随机选择一个数字


要在模拟过程中进行迭代,请使用
for
while
循环,具体取决于要运行的模拟次数。

除了使用@PeterWang建议的
随机
模块并自己创建矩阵外,您还可以使用
numpy
模块,该模块还提供随机采样。通过这种方式,您可以创建任意矩阵维度的随机数。特别是对于您的进一步任务,使用Matrix
numpy
模块可能是一个很好的解决方案


有关更多详细信息,请参见

嗨,欢迎来到SO。这是一个非常具体的问题,实际上与编程本身无关。谷歌搜索结果页面上关于
Gillespie算法的第三个结果提供了一些提示:如果您想知道如何在Python中播种随机数,请使用
numpy.random
random