When modeling complex, hierarchical, and time-dynamic systems, such as biological systems, good computational tools are essential. Current tools, while powerful, often lack comprehensive frameworks for modular model composition, hierarchical system building, and time-dependent input handling, particularly within the Python ecosystem. We present SUND (Simulation Using Nonlinear Dynamic models), a Python toolbox designed to address these challenges. SUND provides a unified framework for defining, combining, and simulating multi-level time-dynamic systems. The toolbox enables users to define models with interconnectable inputs and outputs, facilitating the construction of complex systems from simpler, reusable components. It supports time-dependent functions and piecewise constant inputs, enabling intuitive simulation of various experimental conditions such as multiple dosing schemes. We demonstrate the toolbox's capabilities through simulation of a multi-level human glucose-insulin system model, showcasing its flexibility in handling multiple temporal scales, and levels of biological detail. SUND is open-source, easily extensible, and available at PyPI (https://pypi.org/project/sund/) and at Gitlab (https://gitlab.liu.se/ISBgroup/projects/sund/).
academic- 论文ID: 2510.13932
- 标题: SUND: simulation using nonlinear dynamic models - a toolbox for simulating multi-level, time-dynamic systems in a modular way
- 作者: Henrik Podéus, Gustav Magnusson, Sasan Keshmiri, Kajsa Tunedal, Nicolas Sundqvist, William Lövfors, Gunnar Cedersund
- 分类: q-bio.QM (Quantitative Methods)
- 发表时间: October 17, 2025 (arXiv预印本)
- 论文链接: https://arxiv.org/abs/2510.13932
本文提出了SUND (Simulation Using Nonlinear Dynamic models),一个专为模拟多层次、时间动态系统而设计的Python工具箱。SUND解决了当前工具在模块化模型组合、分层系统构建和时间相关输入处理方面的不足,特别是在Python生态系统中的缺陷。该工具箱提供统一框架用于定义、组合和模拟多层次时间动态系统,支持具有可互连输入输出的模型定义,促进从简单可重用组件构建复杂系统。工具箱支持时间相关函数和分段常数输入,能够直观地模拟各种实验条件。
复杂的分层时间动态系统(特别是生物系统)的数学建模需要强大的计算工具。当前工具虽然功能强大,但在以下方面存在局限性:
- 模块化模型组合:缺乏全面的框架支持模块化模型构建
- 分层系统构建:难以处理多层次的系统架构
- 时间相关输入处理:在处理时变输入方面能力不足
- Python生态系统支持:Python环境中缺乏综合性解决方案
生物系统本质上是时间动态的,通常基于常微分方程(ODEs)或微分代数方程(DAEs)进行建模。这些系统的复杂性使得仿真实现和相关模型分析变得具有挑战性。现有工具如SciPy、AMICI、CellML等虽然提供了强大功能,但没有单一工具能同时满足所有需求。
作者识别出Python生态系统中缺乏同时满足以下五个需求的工具:
- 具有输入/输出连接性的模块化模型组合
- 在不同容器中创建多个模型实例
- 灵活的时间相关输入规范
- 直接定义ODE/DAE方程系统的模型
- 作为免费开源Python包的实现
- 开发了SUND工具箱:首个在Python生态系统中同时满足模块化建模、容器化实例管理、时间相关输入处理等多项需求的综合性工具
- 实现了模块化设计架构:支持将复杂的数百个ODE的平面模型分解为可管理的互连组件
- 提供了灵活的输入输出连接系统:通过映射功能实现不同命名约定模型的无缝集成
- 集成了自动时间单位转换:支持从纳秒到年的不同时间尺度模型的无缝组合
- 开源发布:基于MIT许可证的开源工具,可通过PyPI和GitLab获取
SUND旨在提供一个统一框架,用于定义、组合和模拟多层次时间动态系统。输入包括ODE/DAE方程系统、时间相关函数和模型参数;输出为时间序列仿真结果。约束条件包括数值稳定性和模块间兼容性。
SUND采用面向对象设计,结合Python和C++组件:
- 模型对象 (Model Objects)
- 包含用户在文本文件或多行字符串中定义的数学公式
- 使用类似SBToolbox的语法进行模型表述
- 编译并安装为Python模块,可用于各种实验条件的仿真
- 支持用户定义的模型输入和输出,实现模块化设计
- 活动对象 (Activity Objects)
- 用于生成模型输入的对象
- 支持时间相关函数:分段常数、分段线性、三次样条函数以及常数
- 支持内部输入/输出名称与外部名称之间的映射
- 便于组合具有不同命名约定的模型
- 仿真对象 (Simulation Objects)
- 结合模型和活动对象创建仿真实例
- 可在不同时间间隔内执行,支持各种时间步长和数值求解器设置
- 生成模型仿真结果
- Python用户界面:提供易用性
- C++核心计算:确保高效计算并直接与SUNDIALS求解器接口
- SUNDIALS集成:利用SUNDIALS数值求解器套件求解ODE和DAE系统
- NumPy支持:用于数值操作
- Setuptools编译:用于C++编译
- 模块化组合能力
- 将复杂的平面模型分解为可管理的互连组件
- 提高可维护性并促进模型重用和协作开发
- 智能输入输出映射
- 支持不同命名约定模型的无缝集成
- 提供默认输入值机制,增强系统鲁棒性
- 自动时间单位转换
- 支持跨越纳秒到年的不同时间尺度
- 各组件可指定独立时间单位,仿真时自动转换
- 容器化模型管理
- 支持模型实例分配到不同容器
- 便于模型重用和隔离
- 适用于基于生理学的药代动力学(PBPK)建模
- 非平滑输入处理
- 自动在不连续点重新初始化数值积分
- 减轻用户跟踪不连续性的负担
论文通过一个综合的多层次人类葡萄糖-胰岛素系统模型来验证工具箱能力,该模型基于Herrgårdh等人的研究,整合了来自Dalla Man等、Hall等、Brännmark等多个研究组的组件。
- 多时间尺度:从细胞过程(秒到分钟)到生理适应(天到年)
- 多生物层次:从细胞信号传导到全身葡萄糖调节
- 模块化结构:展示如何将原本的平面模型结构分解为互连的模块化组件
- 在线文档提供详细示例:https://isbgroup.eu/sund-toolbox/
- 包含可执行演示,展示处理不同来源、不同复杂性和时间尺度模型的能力
- 支持复杂实验协议定义,如给药方案、进餐模式等时变扰动
通过葡萄糖-胰岛素系统模型成功验证了以下能力:
- 模块化组合:成功将复杂的多层次模型分解为互连的模块化组件
- 时间尺度处理:有效处理不同生物层次的多时间尺度问题
- 输入输出连接:实现了不同子模块间的无缝数据传递
- 容器化管理:展示了模型实例在不同容器中的有效管理
- 数值稳定性:通过SUNDIALS求解器确保高质量数值解
- 计算效率:C++核心实现提供高效计算性能
- 用户友好性:Python界面提供直观的使用体验
图1B展示的葡萄糖-胰岛素系统模型包含:
- 不同时间尺度的两个绘制特征
- 来自不同子模块的输出
- 多个生物层次的集成过程
论文详细比较了多个现有工具:
- SciPy:提供基础数值计算能力
- AMICI:专注于大型ODE模型的高性能敏感性分析
- CellML:标准化的模型描述语言
- SBToolbox:MATLAB平台的系统生物学工具箱
- COPASI:复杂路径仿真器
- CellDesigner:生化网络建模工具
- Tellurium:可扩展的Python建模环境
SUND相比现有工具的主要优势:
- 在Python生态系统中提供完整的模块化建模解决方案
- 同时满足五个关键需求(模块化、容器化、时间处理、直接ODE定义、开源)
- 特别适合多尺度生物建模应用
SUND成功填补了Python生态系统中模块化仿真工具的空白,特别适用于复杂时间动态系统的建模,尤其是生物系统。工具箱的模块化设计理念解决了当前Python仿真工具的重要缺陷。
作者诚实地指出了SUND的局限性:
- 参数估计功能:工具箱内部不提供参数估计或Hessian近似算法
- 单位转换限制:仅支持时间单位的自动转换,不支持非时间单位转换
- 图形界面缺失:当前版本缺乏图形用户界面
论文提出了明确的发展方向:
- 扩展单位转换能力:支持更多类型的单位自动转换
- 敏感性方程求解:集成敏感性方程求解方法以估计Hessian
- 图形用户界面:开发模型构建和可视化的图形界面
- 外部工具集成:与SciPy优化模块等外部工具的更好集成
- 实用价值高:解决了生物建模领域的实际需求,填补了Python生态系统的重要空白
- 技术设计合理:面向对象设计、Python/C++混合架构、模块化理念都体现了良好的软件工程实践
- 开源贡献:基于MIT许可证的开源发布,有利于社区发展
- 文档完善:提供详细的在线文档和示例代码
- 验证充分:通过复杂的生物系统模型验证了工具箱的各项功能
- 创新性有限:主要是工程实现和集成创新,算法层面的原创性贡献较少
- 评估不够全面:缺乏与其他工具的定量性能比较
- 应用范围验证:仅通过一个生物系统案例验证,应用广度有待进一步证明
- 用户体验:缺乏图形界面可能限制非编程用户的使用
- 学术价值:为计算生物学和系统建模领域提供了有价值的工具
- 实用价值:可直接应用于药物开发、生理学研究等领域
- 社区贡献:开源性质有助于形成用户社区和促进工具发展
- 可复现性:提供完整的代码和文档,支持研究的可复现性
- 多尺度生物建模:特别适合需要整合不同时间尺度和生物层次的建模任务
- 药物开发:支持PBPK建模和给药方案优化
- 系统生物学研究:适用于复杂生物网络的动态仿真
- 教育应用:模块化设计便于教学和学习
- 协作研究:模块化和标准化接口便于团队协作
论文引用了8个主要的相关工具和框架,以及6个生物建模相关的研究工作,体现了作者对领域现状的全面了解和对相关工作的充分调研。特别值得注意的是对SUNDIALS数值求解器套件和NumPy等基础工具的依赖,体现了在成熟技术基础上的创新发展思路。
总体评价:这是一篇高质量的工具论文,解决了生物建模领域的实际需求。虽然算法创新性有限,但工程实现价值很高,对推动该领域的工具发展具有积极意义。开源发布和完善文档进一步增强了其实用价值和影响力。