We introduce ppsim, a software package for efficiently simulating population protocols, a widely-studied subclass of chemical reaction networks (CRNs) in which all reactions have two reactants and two products. Each step in the dynamics involves picking a uniform random pair from a population of $n$ molecules to collide and have a (potentially null) reaction. In a recent breakthrough, Berenbrink, Hammer, Kaaser, Meyer, Penschuck, and Tran [ESA 2020] discovered a population protocol simulation algorithm quadratically faster than the naive algorithm, simulating $\Theta(\sqrt{n})$ reactions in *constant* time, while preserving the *exact* stochastic dynamics. ppsim implements this algorithm, with a tightly optimized Cython implementation that can exactly simulate hundreds of billions of reactions in seconds. It dynamically switches to the CRN Gillespie algorithm for efficiency gains when the number of applicable reactions in a configuration becomes small. As a Python library, ppsim also includes many useful tools for data visualization in Jupyter notebooks, allowing robust visualization of time dynamics such as histogram plots at time snapshots and averaging repeated trials. Finally, we give a framework that takes any CRN with only bimolecular (2 reactant, 2 product) or unimolecular (1 reactant, 1 product) reactions, with arbitrary rate constants, and compiles it into a continuous-time population protocol. This lets ppsim exactly sample from the chemical master equation (unlike approximate heuristics such as tau-leaping or LNA), while achieving asymptotic gains in running time. In linked Jupyter notebooks, we demonstrate the efficacy of the tool on some protocols of interest in molecular programming, including the approximate majority CRN and CRN models of DNA strand displacement reactions.


翻译:我们引入了 ppsim, 这是高效模拟人口协议的软件包, 一个广泛研究的化学反应网络小类( CRN), 其中所有反应都有两个反应和两个产品。 动态的每个步骤都涉及从一个以美元为单位的分子群中取出一个统一的随机配对, 以相撞并产生一个( 可能无效) 反应。 在最近的突破中, Berenbrink、 Hammer、 Kaaser、 Meyer、 Penschuck 和 Tran [ES 2020] 发现了一个人口协议模拟算法, 速度比天真的算法要快得多, 在 * constatant* 时间里模拟 $@theta( sqrt{n})$, 在 *constaltarant * 时间里, 同时保存 * exactral etal mologyalalal modealalalalalal livestical livestical 。 在配置中, 将CRystemal motional motional motional motional motional motional 和 motion motionals motionals, mas max 也能够在任何动态中展示中展示一个动态中展示,,, 使Cryal 。

0
下载
关闭预览

相关内容

Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。
Linux导论,Introduction to Linux,96页ppt
专知会员服务
75+阅读 · 2020年7月26日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
143+阅读 · 2019年10月12日
强化学习最新教程,17页pdf
专知会员服务
167+阅读 · 2019年10月11日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
Github项目推荐 | pikepdf - Python的PDF读写库
AI研习社
9+阅读 · 2019年3月29日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
时序数据异常检测工具/数据集大列表
极市平台
65+阅读 · 2019年2月23日
【TED】什么让我们生病
英语演讲视频每日一推
7+阅读 · 2019年1月23日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
R文本分类之RTextTools
R语言中文社区
4+阅读 · 2018年1月17日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Arxiv
0+阅读 · 2021年6月28日
Arxiv
0+阅读 · 2021年6月28日
Arxiv
0+阅读 · 2021年6月28日
VIP会员
相关资讯
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
Github项目推荐 | pikepdf - Python的PDF读写库
AI研习社
9+阅读 · 2019年3月29日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
时序数据异常检测工具/数据集大列表
极市平台
65+阅读 · 2019年2月23日
【TED】什么让我们生病
英语演讲视频每日一推
7+阅读 · 2019年1月23日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
R文本分类之RTextTools
R语言中文社区
4+阅读 · 2018年1月17日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员