生物电组织模拟引擎(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、macOS 和 Windows 的最佳实践,基于 Git 的开发,以及基于 Docker 的容器化Docker。
用法
BETSE 安装了 betse 命令,这是一个面向高级用户的底层命令行界面 (CLI)。
BETSEE 安装了 betsee 命令,这是一个面向所有用户的图形用户界面 (GUI),无论是否有先前的经验或对命令行的熟悉程度。
子命令
betse 命令接受许多 子命令(即传递的参数指示要执行的操作)。
尝试
try 子命令在当前目录中创建默认模拟并运行此模拟的所有必需和可选阶段。
betse -v try
此子命令通常作为一个初始的 烟雾测试 运行,以验证 BETSE 是否正确安装并按预期运行。具体来说,此子命令
使用 -v 选项启用详细输出,简化意外错误报告。
在当前目录中创建一个 sample_sim/ 子目录,提供该版本的 BETSE 的默认模拟。这包括由这些文件引用的所有配置文件和资源。
运行此模拟的所有模拟阶段(例如,种子,初始化)。
完成后,您可以安全地
删除此子目录。
将此子目录重命名(例如,到 my_sim/)作为后续模拟的基础。
保留此子目录不变。
种子,初始化和模拟
“种子”、“初始化”和“模拟”子命令分别只运行传入模拟的种子、初始化和模拟阶段。而高级的“try”子命令可以方便地运行所有模拟阶段,但通常情况下,仅运行一个阶段更为可取——尤其是在进行计算成本较高的模拟实验时。
基于 CLI 的典型工作流程按照以下顺序调用这些子命令
在当前目录的新 my_sim/ 子目录中创建默认的模拟配置。
betse config my_sim/sim_config.yml
[可选] 使用 您喜欢的文本编辑器 编辑新创建的 my_sim/sim_config.yml 文件。
从该配置创建(即生成)一个伪随机细胞簇。
betse seed my_sim/sim_config.yml
[可选] 从此种子导出所有启用的图表、动画和逗号分隔值(CSV)文件。
betse plot seed my_sim/sim_config.yml
初始化(即计算种子簇的稳态浓度)。
betse init my_sim/sim_config.yml
[可选] 从此初始化导出所有启用的图表、动画和逗号分隔值(CSV)文件。
betse plot init my_sim/sim_config.yml
模拟此初始化后的簇。
betse sim my_sim/sim_config.yml
[可选] 从此模拟导出所有启用的图表、动画和逗号分隔值(CSV)文件。
betse plot sim my_sim/sim_config.yml
选项
BETSE 除了上述概述之外,还提供了一系列命令行选项和子命令。独立的 betse 和 betse --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 1.0 文档。(PDF 格式;75 页。)
官方 BETSE 0.4 文档。(PDF 格式;72 页。)
官方 BETSE 0.3 文档。(PDF 格式;77 页。)
教程
BETSE 提供了一系列动手教程材料,包括用于运行关键已发布模拟的模拟文件,以及一个 开发者教程,展示如何在外部代码项目中加载和使用 BETSE 模块、方法和模拟。
官方 BETSE 教程模拟包。(YAML 格式。)
官方 BETSE 开发者教程。(Jupyter Notebook 格式。)
科学
BETSE 在二维细胞集体(由间隙连接网络连接)中模拟生物真实的电化学现象。为了预测生物电模式和它们的时空动态,BETSE
追踪离子浓度和净离子电荷的变化。
计算内源性电压和电流。
接受以人类可读、注释良好的配置文件形式提供的模拟参数、变量和选项,这些配置文件是 YAML 格式的。
将模拟结果导出为多种输出格式,包括
出版物质量的
由开源绘图可视化行业标准 Matplotlib 驱动的图表、图表和动画。
由开源绘图可视化行业标准 Graphviz 驱动的 有向图(即网络)。
可后处理的表格数据(例如,逗号分隔值(CSV))。
导入定义形状的掩码图像
细胞簇。
定位离子通道活动的细胞簇区域,通常表示相邻组织的不同类型。
为了将简单概念组装成复杂模拟,BETSE提供了一套丰富可配置、高度可扩展的生物工具集,包括
离子
模拟可以启用涉及生物电信号的主要离子的任意组合——包括
离子通道
模拟中的单个细胞可以启用电压门控离子通道的任意组合,每个通道都实现霍奇金-赫克斯利(HH)形式化,参数来源于可靠的知识系统(例如,Channelpedia)。明确支持的通道类型包括
L型钙,T型钙,和 P/Q-type Ca。
用户定义的常数参数化的自定义离子通道可以以相同的方式简单地定义(例如,通过一个YAML格式的配置文件)。
离子泵和交换器
为了对细胞动力学进行细粒度控制,也可以选择性地启用显著的离子泵和交换器——包括
用户定义的常数参数化的自定义离子泵和交换器可以以相同的方式简单地定义(例如,通过一个YAML格式的配置文件)。
细胞外空间
细胞通过嵌入在细胞外环境中的电压敏感缝隙连接形成相互连接的细胞内网络,并由细胞簇外围的紧密连接维持。模拟此环境可以探索细胞之间的局部场电位、跨膜电位和电突触耦合。
生物网络
在细胞和线粒体水平上模拟基因调控和生化反应网络支持对其他难以处理的生物过程的深入空间分析。代谢、疾病、衰老以及其他与准大数据相关的遗传和表观遗传现象都可以是BETSE全面研究的目标。
为了将这些强大的控制系统与生物电信号集成,基因产物和类似生化物质与活性调节的相互作用完全集成到基因产物、离子通道、离子泵和缝隙连接中。
验证
BETSE是一款经过同行评审的软件,持续接受基于证据的审查。模拟输出可重复地与实验观察同步,包括膜通透性、静息电位、离子浓度和类似的实际生物物理量。已经证明,对于单细胞膜状态和环境离子浓度的扰动等已知案例,可以预测结果。
大范围细胞伤口部位的生物电信号。
引用
BETSE在我们的介绍性论文中有正式描述。利用BETSE的第三方论文、学位论文和其他文献应理想地引用以下内容
Alexis Pietak 和 Michael Levin,2016. 利用生物电组织模拟引擎(BETSE)探索指导生理信号。 (补充材料). [1] 生物工程与生物技术前沿,4(55). https://doi.org/10.3389/fbioe.2016.00055
随后扩展BETSE架构的论文包括额外理论、实验结果和比较指标,例如
Alexis Pietak 和 Michael Levin,2017. 生物电基因和反应网络:图案调节中遗传、生化和生物电动力学计算建模。 (补充材料). [1] 皇家学会接口杂志,14(134),p.20170425. https://doi.org/10.1098/rsif.2017.0425
Vaibhav P. Pai,Alexis Pietak,Valerie Willocq,Bin Ye,Nian-Qing Shi,和 Michael Levin,2018. HCN2通过执行内源性电压前模式来挽救脑缺陷。 (补充材料). [1] 自然通讯,9(1),p.998. https://doi.org/10.1038/s41467-018-03334-5
Javier Cervera,Alexis Pietak,Michael Levin,和 Salvador Mafe,2018. 由缝隙连接调节的多细胞域中的生物电耦合:一种概念方法。 生物电化学,128,pp.45—61. https://doi.org/10.1016/j.bioelechem.2018.04.013
亚历克斯·皮塔克(Alexis Pietak)和迈克尔·莱文(Michael Levin),2018年。 发育和再生过程中位置信息的生物电控制:概念和计算进展的综述。 生物物理与分子生物学进展。 https://doi.org/10.1016/j.pbiomolbio.2018.03.008
亚历克斯·皮塔克(Alexis Pietak),约哈娜·比绍夫(Johanna Bischof),约书亚·拉帕姆(Joshua LaPalme),森吉·morokuma(Junji Morokuma)和迈克尔·莱文(Michael Levin),2019年。 再生扁形动物身体计划轴的神经控制。 PLOS 计算生物学。 https://doi.org/10.1371/journal.pcbi.1006904
联系
如需联系本文的主要开发者,BETSE代码库的首席开发者以及上述所有论文的第一或第二作者皮塔克博士(Dr. Pietak),请通过皮塔克博士的个人电子邮件账户([2])发送信件。
用户名: alexis {dot} pietak
主机名: gmail {dot} com
如需报告BETSE软件的问题(例如,错误、崩溃或其他意外行为)或请求BETSE的新功能,请考虑向我们的问题跟踪器提交新问题。提前感谢;只有通过慷慨的用户贡献,您的用户体验才能持续改进。
为了防止皮塔克博士的电子邮件地址被自动化收集,该地址已被有意混淆。通过以下方式重建原始地址:
将{dot}子字符串替换为点(.)字符。
使用@字符连接用户名和主机名字符串。
资助
BETSE目前作为一个志愿者开源项目独立融资。之前的资金来源包括(按时间顺序):
在2015年至2019年的五年期间,BETSE荣幸地与保罗·艾伦发现中心合作,该中心位于塔夫茨大学,并获得了保罗·艾伦发现中心奖,该奖项由保罗·G·艾伦前沿集团提供。
许可证
BETSE是开源软件,根据许可的BSD 2条款许可发布。
本项目页面显著展示的标志是一个扁平的Noun Project图标,名为“牛”,由Maxim Kulikov发布,在CC BY 3.0许可证下,兼容BSD许可证,并友好发布。
另请参阅
面向潜在用户
安装,详细介绍了BETSE的安装,包括详尽的平台特定说明。
面向潜在贡献者
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
betse-1.4.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 79da8b9a4ceac3a164e7ce0047a3aa5be07a86c56c0de37e8f33d5c27026cec8 |
|
MD5 | dc25b776ce0e256b23717e5912152645 |
|
BLAKE2b-256 | 421267e2f0b58d19945a8235575d6aafeb2c4b51c37fbda5a8fde29ff206c6f8 |
betse-1.4.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c673741a826c86e9e9d3a644324ae9fb7ef9a0444d05183573a74a2f541bdd46 |
|
MD5 | 958ecfb92fc0fa80869ceea50bbbe4fe |
|
BLAKE2b-256 | c2c6bd010a7215b7bc58cf1a12e055db1f0299c16d4c55cd9e8042176b5451d8 |