Gillespie算法的Python简单实现(实例)

本文介绍了Gillespie算法的基本概念,通过Python实现了一个模拟mRNA翻译为蛋白质过程的实例,详细阐述了代码实现的各个部分,并分析了计算结果与参数的关系,展示了拟合图像。
摘要由CSDN通过智能技术生成

Gillespie算法的Python简单实现(实例)


前言

一位化院的朋友的期末作业,寻求帮助,因此了解学习了一下gillespie算法,并简单实现了该算法,实例化了mRNA翻译蛋白质的过程。


一、Gillespie是什么?

个人理解,Gillespie算法是一种将连续的化学反应转换为离散步骤模拟的算法。

二、题目

在这里插入图片描述
在这里插入图片描述
简单来说就是利用Gillespie算法拟合mRNA翻译为氨基酸链的过程,并带入多组参量计算氨基酸链生成速度。

三、代码

本文代码部分段来自python简单实现gillespie模拟

1.引入库

代码如下:

import numpy as np
from scipy.special import comb  # 科学计算
import matplotlib.pyplot as plt  # 绘图

2.类定义

封装了反应类和系统类,主要来源上述链接文章:

class Reaction:  # 封装的类,代表每一个化学反应
    def __init__(self, rate=0., num_lefts=None, num_rights=None):
        self.rate = rate  # 反应速率
        assert len(num_lefts) == len(num_rights)
        self.num_lefts = np.array(num_lefts)  # 反应前各个反应物的数目
        self.num_rights = np.array(num_rights)  # 反应后各个反应物的数目
        self.num_diff = self.num_rights - self.num_lefts  # 改变数

    def combine(self, n, s):  # 算组合数
        return np.prod(comb(n, s))

    def propensity(self, n):  # 算反应倾向函数
        return self.rate * self.combine(n, self.num_lefts)


class System:  # 封装的类,代表多个化学反应构成的系统
    def __init__(self, num_elements):
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值