Welcome to SBMLtoODEjax!#
SBMLtoODEjax is a lightweight library that allows to automatically parse and convert SBML models into python models written end-to-end in JAX, a high-performance numerical computing library with automatic differentiation capabilities. SBMLtoODEjax is targeted at researchers that aim to incorporate SBML-specified ordinary differential equation (ODE) models into their python projects and machine learning pipelines, in order to perform efficient numerical simulation and optimization with only a few lines of code (by taking advantage of JAX’s core transformation features). For an overview of SBMLtoODEjax’s advantages and limitations, please check the 👀 Why use SBMLtoODEjax? section.
SBMLtoODEjax extends SBMLtoODEpy, a python library developed in 2019 for converting SBML files into python files written in Numpy/Scipy. The chosen conventions for the generated variables and modules are slightly different from the standard SBML conventions (used in the SBMLtoODEpy library) with the aim here to accommodate for more flexible manipulations while preserving JAX-like functional programming style. For more details on the structure/conventions of the generated files, please check the 🎨 Design Principles section.
SBMLtoODEjax can be installed via pip. See our Installation guide for further details.
pip install sbmltoodejax
Go have a look at our Numerical Simulation tutorial to learn how to load and simulate SBML models.
The SBMLtoODEjax project is licensed under the MIT license.
SBMLtoODEjax builds on:
SBMLtoODEpy’s parsing and conversion of SBML files, by Steve M. Ruggiero and Ashlee N. Ford
JAX’s composable transformations, by the Google team
Equinox’s module abstraction, by Patrick Kidger
BasiCO’s access the BioModels REST api, by the COPASI team
Our documentation was also inspired by the GPJax documentation, by Thomas Pinder and team.