ppsim:一个高效模拟与可视化群体协议的软件包
数据结构与算法
2021-07-05 v2 分子网络
摘要
我们介绍 ppsim,一个高效模拟群体协议的软件包,群体协议是化学反网络(CRN)中广泛研究的一个子类,其中所有反应均有两个反应物和两个产物。动力学中的每一步都涉及从 个分子的群体中均匀随机选取一对分子发生碰撞并发生(可能为空)反应。在近期的一项突破中,Berenbrink、Hammer、Kaaser、Meyer、Penschuck 和 Tran [ESA 2020] 发现了一种比朴素算法快二次方的群体协议模拟算法,能在*常数*时间内(与 无关,但时间随物种数缩放)模拟 次反应,同时保留*精确*随机动力学。ppsim 实现了该算法,采用紧密优化的 Cython 实现,可在数秒内精确模拟数千亿次反应。当某构型中适用反应数变少时,它会动态切换至 CRN Gillespie 算法以提升效率。作为一个 Python 库,ppsim 还包含许多在 Jupyter notebook 中用于数据可视化的实用工具,支持对时间动力学进行稳健可视化,如时间快照的直方图以及重复试验的平均。最后,我们给出一个框架,可将任意仅含双分子(2 反应物、2 产物)或单分子(1 反应物、1 产物)反应且具任意速率常数的 CRN,编译为连续时间群体协议。这使得 ppsim 能精确采样化学主方程(不同于 tau-leaping 或 LNA 等近似启发式方法),同时获得运行时间的渐近增益。在关联的 Jupyter notebook 中,我们在分子编程中若干受关注的协议上展示了该工具的有效性,包括近似多数 CRN 与 DNA 链置换反应的 CRN 模型。
引用
@article{arxiv.2105.04702,
title = {ppsim: A software package for efficiently simulating and visualizing population protocols},
author = {David Doty and Eric Severson},
journal= {arXiv preprint arXiv:2105.04702},
year = {2021}
}