Abstract
Chemical Reaction Networks (CRNs) play a pivotal role in diverse fields such as systems biology, biochemistry, chemical engineering, and epidemiology. High-level modelling of CRNs enables various simulation approaches, including deterministic and stochastic methods. However, existing Python tools for CRN modelling typically wrap external C/C++ libraries for modelling and simulation, limiting their extensibility and integration with the broader Python ecosystem. In response, we developed Poincaré and SimBio, two novel Python packages for the definition and simulation of dynamical systems and CRNs. Poincaré serves as a foundation for dynamical system modelling, while SimBio extends this functionality to CRNs, including support for the Systems Biology Markup Language (SBML). Poincaré and SimBio are developed as pure Python packages enabling users to easily extend their simulation capabilities by writing new or leveraging other Python packages. Moreover, this does not compromise the performance, as code can be Just-In-Time compiled with Numba. Our benchmark tests using curated models from the BioModels repository, demonstrate that these tools may provide a potentially superior performance advantage, compared to other existing tools. Additionally, to ensure a user-friendly experience, our packages use standard typed modern Python syntax that provides a seamless integration with Integrated Development Environments (IDEs). Python-centric approach significantly enhances code analysis, error detection, and refactoring capabilities, positioning Poincaré and SimBio as valuable tools for the modelling community.
Publisher
Cold Spring Harbor Laboratory
Reference14 articles.
1. Bradbury, James , Roy Frostig , Peter Hawkins , Matthew James Johnson , Chris Leary , Dougal Maclaurin , George Necula , et al. 2018. “JAX: Composable Transformations of Python +NumPy Programs.”
2. Tellurium: An extensible python-based modeling environment for systems and synthetic biology
3. De Bonte, Erik , and Eric Traut . 2021. “PEP 681 – Data Class Transforms.” Python Enhancement Proposals. https://peps.python.org/pep-0681/.
4. Array programming with NumPy
5. BioNetGen 2.2: advances in rule-based modeling