跳转到主要内容

生物电组织模拟引擎(BETSE)是一个用于生命科学中二维计算多物理问题(包括(电)扩散、(电)渗透、电泳、电压门控离子通道、基因调控网络和生化反应网络)的离散外微分计算模拟器。

项目描述

BETSE (BioElectric Tissue Simulation Engine) 是一个开源的跨平台离散外微分几何模拟器,用于生命科学领域中的2D计算多物理场问题 —— 包括 电扩散电渗趋电性电压门控离子通道基因调控网络生化反应网络(例如,新陈代谢)。

BETSE 使用纯 Python 3 实现并具有可移植性,通过 GitHub Actions × tox × pytest × Codecov 进行持续的压力测试,并按照 BSD 2-clause 许可证 进行许可分发。


安装

BETSE 可以使用以下任一方式通用安装:

  • [推荐] pip,标准的 Python 包管理器

    pip install betse
  • Anaconda,第三方 Python 包管理器

    conda config --add channels conda-forge
    conda install betse

请参阅我们的安装说明,包括 Linux、macOSWindows 的最佳实践,基于 Git 的开发,以及基于 Docker 的容器化Docker

用法

BETSE 安装了 betse 命令,这是一个面向高级用户的底层命令行界面 (CLI)。

BETSEE 安装了 betsee 命令,这是一个面向所有用户的图形用户界面 (GUI),无论是否有先前的经验或对命令行的熟悉程度。

子命令

betse 命令接受许多 子命令(即传递的参数指示要执行的操作)。

尝试

try 子命令在当前目录中创建默认模拟并运行此模拟的所有必需和可选阶段。

betse -v try

此子命令通常作为一个初始的 烟雾测试 运行,以验证 BETSE 是否正确安装并按预期运行。具体来说,此子命令

  • 使用 -v 选项启用详细输出,简化意外错误报告。

  • 在当前目录中创建一个 sample_sim/ 子目录,提供该版本的 BETSE 的默认模拟。这包括由这些文件引用的所有配置文件和资源。

  • 运行此模拟的所有模拟阶段(例如,种子,初始化)。

完成后,您可以安全地

  • 删除此子目录。

  • 将此子目录重命名(例如,到 my_sim/)作为后续模拟的基础。

  • 保留此子目录不变。

种子,初始化和模拟

“种子”、“初始化”和“模拟”子命令分别只运行传入模拟的种子、初始化和模拟阶段。而高级的“try”子命令可以方便地运行所有模拟阶段,但通常情况下,仅运行一个阶段更为可取——尤其是在进行计算成本较高的模拟实验时。

基于 CLI 的典型工作流程按照以下顺序调用这些子命令

  1. 在当前目录的新 my_sim/ 子目录中创建默认的模拟配置。

    betse config my_sim/sim_config.yml
  2. [可选] 使用 您喜欢的文本编辑器 编辑新创建的 my_sim/sim_config.yml 文件。

  3. 从该配置创建(即生成)一个伪随机细胞簇。

    betse seed my_sim/sim_config.yml
  4. [可选] 从此种子导出所有启用的图表、动画和逗号分隔值(CSV)文件。

    betse plot seed my_sim/sim_config.yml
  5. 初始化(即计算种子簇的稳态浓度)。

    betse init my_sim/sim_config.yml
  6. [可选] 从此初始化导出所有启用的图表、动画和逗号分隔值(CSV)文件。

    betse plot init my_sim/sim_config.yml
  7. 模拟此初始化后的簇。

    betse sim my_sim/sim_config.yml
  8. [可选] 从此模拟导出所有启用的图表、动画和逗号分隔值(CSV)文件。

    betse plot sim my_sim/sim_config.yml

选项

BETSE 除了上述概述之外,还提供了一系列命令行选项和子命令。独立的 betsebetse --help 命令如下所述描述这些选项和子命令:

usage: betse [-h] [-v] [-V] [--log-file LOG_FILENAME]
             [--log-level {all,debug,info,warning,error,critical,none}]
             [--profile-type {none,call,size}]
             [--profile-file PROFILE_FILENAME]
             [--matplotlib-backend MATPLOTLIB_BACKEND_NAME] [--headless]
             {config,seed,init,sim,sim-grn,plot,info,try} ...

The BioElectric Tissue Simulation Engine (BETSE) is a discrete exterior
calculus simulator for 2D computational multiphysics problems in the life
sciences -- including (electro)diffusion, (electro)osmosis, galvanotaxis,
voltage-gated ion channels, gene regulatory networks, and biochemical reaction
networks.

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         print and log all messages verbosely
  -V, --version         print program version and exit
  --log-file LOG_FILENAME
                        file to log to (defaults to
                        minimum level of messages to log to "--log-file"
                        (defaults to "info") [overridden by "--verbose"]
  --profile-type {none,call,size}
                        type of profiling to perform (defaults to "none"):
                        * "none", disabling profiling
                        * "call", profiling callables (functions, methods)
                        * "size", profiling object sizes (requires "pympler")
  --profile-file PROFILE_FILENAME
                        file to profile to unless "--profile-type=none"
                        (defaults to "/home/leycec/.betse/betse.prof")
  --matplotlib-backend MATPLOTLIB_BACKEND_NAME
                        name of matplotlib backend to use (see: "betse info")
  --headless            enable headless mode (display no plots or animations)
                        [forces "--matplotlib-backend=agg"]

subcommands:
Exactly one of the following subcommands must be passed:

  {config,seed,init,sim,sim-grn,plot,info,try}
    config              create a default config file for BETSE simulations
    seed                seed a new cell cluster for a config file
    init                initialize a seeded cell cluster for a config file
    sim                 simulate an initialized cell cluster for a config file
    sim-grn             simulate a gene regulatory network for a config file
    plot                plot an initialized or simulated simulation
    info                print metadata synopsizing BETSE and current system
    try                 create, init, simulate, and plot a sample simulation

subcommand help:

For help with a specific subcommand, pass the "-h" or "--help" option to that
subcommand. For example, for help with the "config" subcommand, run:

    betse config --help

文档

BETSE 还提供优化了离线阅读的外部文档——包括解释性示例、示例图表和大量的截图。

教程

BETSE 提供了一系列动手教程材料,包括用于运行关键已发布模拟的模拟文件,以及一个 开发者教程,展示如何在外部代码项目中加载和使用 BETSE 模块、方法和模拟。

科学

BETSE 在二维细胞集体(由间隙连接网络连接)中模拟生物真实的电化学现象。为了预测生物电模式和它们的时空动态,BETSE

  • 模拟 离子通道间隙连接 活动。

  • 追踪离子浓度和净离子电荷的变化。

  • 计算内源性电压和电流。

  • 接受以人类可读、注释良好的配置文件形式提供的模拟参数、变量和选项,这些配置文件是 YAML 格式的。

  • 将模拟结果导出为多种输出格式,包括

    • 出版物质量的

      • 由开源绘图可视化行业标准 Matplotlib 驱动的图表、图表和动画。

      • 由开源绘图可视化行业标准 Graphviz 驱动的 有向图(即网络)。

    • 由各种流行的开源视频编码器之一(包括 FFmpegLibavMEncoder)驱动的互联网友好的压缩视频。

    • 可后处理的表格数据(例如,逗号分隔值(CSV))。

  • 导入定义形状的掩码图像

    • 细胞簇。

    • 定位离子通道活动的细胞簇区域,通常表示相邻组织的不同类型。

为了将简单概念组装成复杂模拟,BETSE提供了一套丰富可配置、高度可扩展的生物工具集,包括

离子

模拟可以启用涉及生物电信号的主要离子的任意组合——包括

离子通道

模拟中的单个细胞可以启用电压门控离子通道的任意组合,每个通道都实现霍奇金-赫克斯利(HH)形式化,参数来源于可靠的知识系统(例如,Channelpedia)。明确支持的通道类型包括

用户定义的常数参数化的自定义离子通道可以以相同的方式简单地定义(例如,通过一个YAML格式的配置文件)。

离子泵和交换器

为了对细胞动力学进行细粒度控制,也可以选择性地启用显著的离子泵和交换器——包括

用户定义的常数参数化的自定义离子泵和交换器可以以相同的方式简单地定义(例如,通过一个YAML格式的配置文件)。

细胞外空间

细胞通过嵌入在细胞外环境中的电压敏感缝隙连接形成相互连接的细胞内网络,并由细胞簇外围的紧密连接维持。模拟此环境可以探索细胞之间的局部场电位跨膜电位电突触耦合

生物网络

在细胞和线粒体水平上模拟基因调控生化反应网络支持对其他难以处理的生物过程的深入空间分析。代谢、疾病、衰老以及其他与准大数据相关的遗传表观遗传现象都可以是BETSE全面研究的目标。

为了将这些强大的控制系统与生物电信号集成,基因产物和类似生化物质与活性调节的相互作用完全集成到基因产物离子通道离子泵缝隙连接中。

验证

BETSE是一款经过同行评审的软件,持续接受基于证据的审查。模拟输出可重复地与实验观察同步,包括膜通透性静息电位、离子浓度和类似的实际生物物理量。已经证明,对于单细胞膜状态和环境离子浓度的扰动等已知案例,可以预测结果。

引用

BETSE在我们的介绍性论文中有正式描述。利用BETSE的第三方论文、学位论文和其他文献应理想地引用以下内容

Alexis PietakMichael Levin,2016. 利用生物电组织模拟引擎(BETSE)探索指导生理信号。 (补充材料). [1] 生物工程与生物技术前沿4(55). https://doi.org/10.3389/fbioe.2016.00055

随后扩展BETSE架构的论文包括额外理论、实验结果和比较指标,例如

联系

如需联系本文的主要开发者,BETSE代码库的首席开发者以及上述所有论文的第一或第二作者皮塔克博士(Dr. Pietak),请通过皮塔克博士的个人电子邮件账户([2])发送信件。

  • 用户名: alexis {dot} pietak

  • 主机名: gmail {dot} com

如需报告BETSE软件的问题(例如,错误、崩溃或其他意外行为)或请求BETSE的新功能,请考虑向我们的问题跟踪器提交新问题。提前感谢;只有通过慷慨的用户贡献,您的用户体验才能持续改进。

作者

BETSE由一群作者贡献者提供——没有他们,这个项目将在计算上变得贫乏,在生物学上不匹配,并且无法使用。

谢谢大家。

资助

BETSE目前作为一个志愿者开源项目独立融资。之前的资金来源包括(按时间顺序):

  1. 在2015年至2019年的五年期间,BETSE荣幸地与保罗·艾伦发现中心合作,该中心位于塔夫茨大学,并获得了保罗·艾伦发现中心奖,该奖项由保罗·G·艾伦前沿集团提供。

许可证

BETSE是开源软件,根据许可的BSD 2条款许可发布。

本项目页面显著展示的标志是一个扁平的Noun Project图标,名为“牛”,由Maxim Kulikov发布,在CC BY 3.0许可证下,兼容BSD许可证,并友好发布

另请参阅

面向潜在用户

  • 安装,详细介绍了BETSE的安装,包括详尽的平台特定说明。

面向潜在贡献者

  • 开发,详细介绍了BETSE代码库的开发——包括理念、工作流程等。

  • 测试,详细介绍了BETSE代码库的测试——包括持续集成、手动测试等。

  • 冻结,详细介绍了将BETSE代码库转换为可分发的平台特定可执行二进制文件的过程。

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源代码分发

betse-1.4.1.tar.gz (2.6 MB 查看哈希值)

上传时间 源代码

构建分发

betse-1.4.1-py3-none-any.whl (1.9 MB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面