吉列斯比式生物化学模拟的蟒蛇界面

gillespy2的Python项目详细描述


gillespy2是一个用于生化系统随机模拟的python包。它提供了一种面向对象的方法来创建生物系统的数学模型,以及对这些模型进行时间模拟的各种方法。这些方法包括:gillespie直接法(ssa),几种不同的随机模拟方法,包括:tau跳跃法和数值积分法。颂歌。解算器支持多种用户环境,具有优化的C++代码, Cython ,和< HeRF="HTTPS://NuPy.Org"Re="NoFoLoLy"> NUMPY 。gillespy2还支持sbml

请注册为用户,以便我们在寻求资金支持开发时能够证明Gillespy2有许多用户。gillespy2是stochs项目的一部分。

pypipypi-licensepypi-python version

目录

安装

GilleSpy2可以使用不同的方法安装在您的计算机上,如下所述。

使用pypi

在Linux、MacOS和Windows操作系统上,您应该能够使用pip安装Gillespy2。如果您没有pip包或不确定,请首先在终端命令行解释器中运行以下命令:

sudo python3 -m ensurepip

然后,要从python包存储库安装gillespy2,请运行以下命令:

python3 -m pip install gillespy2 --user --upgrade

使用源代码存储库

作为从pypi获得它的替代方法,您可以指示pip直接从github存储库安装gillespy2:

python3 -m pip install git+https@github.com:GillesPy2/GillesPy2.git --user --upgrade

作为最后的选择,您可以首先使用g将github存储库中gillespy2源代码树的副本克隆到本地计算机磁盘,然后使用该副本安装gillespy2:

git clone --recursive https@github.com:GillesPy2/GillesPy2.git
cd GillesPy2
python3 -m pip install  .  --user --upgrade

用法

Gillespy2提供了简单的面向对象抽象,用于定义生化系统的模型,并使用有效的随机模拟算法模拟该模型。使用GilleSpy2的基本步骤是:

  1. 创建一个包含分子种类、参数和反应的gillespy2.model(或从sbml文件导入)
  2. 调用模型的.run()方法。
  3. < > >

    可以使用关键字参数自定义run()方法,以选择不同的解算器、随机种子、数据返回类型等。有关如何使用Gillespy2的更多详细示例,请参阅子目录中包含的"入门"示例中的"jupyter笔记本"。

    举例说明GilleSpy2的使用

    二聚是一些分子物种的两个分子(在这种情况下称为"单体"–简称为"m")聚集在一起形成新分子(称为"d")的过程,但这样做的方式是可逆的,这意味着组合结构也可以衰变或分解回"M"。一个简单的二聚化过程模型将其表示为两个反应:一个"m"分子与另一个"m"分子反应形成一个新分子("d")的反应,另一个"d"分子分裂成两个"m"分子的反应。在生化反应方面,它看起来是这样的(其中kckd分别代表二聚体生成和解离的速率常数;m代表"m"的分子数;d是"d"的分子数:

    __kc
    2米 ___kd

    在gillespy2中,模型被表示为具有父类模型的对象。模型的组成部分,如反应、分子种类和特性,如模拟的时间跨度,都在子类定义中定义。下面的python代码使用gillespy2的工具表示我们的二聚模型:

    classDimerization(gillespy2.Model):def__init__(self,parameter_values=None):# First call the gillespy2.Model initializer.gillespy2.Model.__init__(self,name='Dimerization')# Define parameters for the rates of creation and dissociation.k_c=gillespy2.Parameter(name='k_c',expression=0.005)k_d=gillespy2.Parameter(name='k_d',expression=0.08)self.add_parameter([k_c,k_d])# Define variables for the molecular species representing M and D.m=gillespy2.Species(name='monomer',initial_value=30)d=gillespy2.Species(name='dimer',initial_value=0)self.add_species([m,d])# The list of reactants and products for a Reaction object are each a# Python dictionary in which the dictionary keys are Species objects# and the values are stoichiometries of the species in the reaction.r_c=gillespy2.Reaction(name="r_creation",rate=k_c,reactants={m:2},products={d:1})r_d=gillespy2.Reaction(name="r_dissociation",rate=k_d,reactants={d:1},products={m:2})self.add_reaction([r_c,r_d])# Set the timespan for the simulation.self.timespan(numpy.linspace(0,100,101))

    根据上面的类定义,可以通过首先实例化类对象,然后在对象上调用run()方法来模拟模型。以下代码将运行模型10次以生成10个样本轨迹:

    model=Dimerization()results=model.run(number_of_trajectories=10)

    然后将结果存储在单个轨迹的类results对象中,或者存储在多个轨迹的类集成对象中。可以使用matplotlib使用plot()或在plotly(脱机)中使用plotplotly()绘制结果/集合。有关其他绘图选项,如从所选物种绘图或统计绘图,请参见文档。

    results.plot()

    或者,results对象继承python内置的userdict用于单轨迹,而userlist用于多轨迹。可以使用任何绘图库(如matplot lib)轻松绘制结果,如下所示:

    forindexinrange(0,10):trajectory=results[index]plt.plot(trajectory['time'],trajectory['monomer'],'r')plt.plot(trajectory['time'],trajectory['dimer'],'b')

    加上一些national python matplotlib命令用于创建图形标签等,我们最终得到了这样一个图:

    < imgsrc="https://warehouse-camo.cmh1.psfhosted.org/1C4FA45A22749494F679CAC4B183EEED7D5347FACF3B/6874747470733A322222222F27272727267676767677475627562757572636F6E74747474747474747070707373322F6F6E7427747474707474747470747474732F6F6F6E74742774747474747474747474747474747475627575627575757575727265727272636F6F6E746E74746E746E746E746E742E74622E74626C69622E706型e67"width="500px" />

    获取帮助

    gillespy2的联机文档提供了有关使用该软件的更多详细信息。如果您发现GilleSpy2或文档有任何问题,请使用此存储库的GitHub问题跟踪程序报告。您也可以直接与Brian Drwert联系,提出问题和建议。

    贡献

    我们将很高兴得到您的帮助和参与,与加强吉莱斯皮2!请遵循contribution.md中描述的指导原则。

    许可证

    Gillespy2是根据GNU通用公共许可版本3授权的。有关详细信息,请参见文件许可证

    作者和历史

    新的开发主要发生在开发分支中。新版本放在master分支中。

    <表><广告>主分支开发分支 覆盖范围< /广告><正文>构建状态构建状态覆盖范围

    致谢

    这项工作由美国国立卫生研究院(NIH)NIBIB第2R01EB014877-04A1号奖资助。

    GielsPy2使用了大量的开源软件包,如果没有这些软件包,用我们现有的资源开发这个软件实际上是不可能的。我们想承认这笔债务。按字母顺序排列的包裹是:

    • jupyter–用于创建包含代码、可视化和叙述性文本的文档的Web应用程序
    • libsbml–用于读取、写入和操作sbml内容的库
    • lxml–一个用于python的xml解析库
    • matplotlib–python 2d绘图库
    • numpy–使用python进行科学计算的基本包
    • scipy–基于python的数学、科学和工程开源软件生态系统

    最后,我们感谢加州大学圣巴巴拉分校提供的机构资源。乌普萨拉大学和加州理工学院。 < div > γ γ γ

    标签:

  4. the
  5. 方法
  6. name
  7. 模型
  8. 界面
  9. 蟒蛇
  10. 分子
  11. 生物化学
  12. 欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


热门话题
java检查整数是0还是检查变量是null更好?   java Android Kotlin(初学者)使用File(),并从ACTION\u GET\u内容返回Uri   java JavaFx在“内部场景”和根场景之间切换   spring将XMLBean配置转换为java配置   java JPA HIBERNATE映射列两次(embeddedID和POJO)   c#单态模式模型在什么情况下适用?   java请求。getRemoteUser在特定时间后返回null?   spring boot中PUT api控制器的java my单元测试用例失败   java在字符串中互换地解析和替换值   java Android JNI在应用程序中检测到错误:调用JNI GetMethodID时出现挂起异常   JavaSpringDataMongo:使用非简单键持久化映射   爪哇玻璃鱼连接被拒绝   java如何在用户注册时发送特定电子邮件id的自动回复?   Java列表:实例化时和之后的赋值之间的差异