Skip to content

Installation

sbmlsim requires python >= 3.13 and is available from pypi. It is tested on Linux, macOS and Windows. The simulations run on libroadrunner, which ships binary wheels for all three platforms, so no compiler is needed.

With uv

uv is the recommended way to install the package. In a project it is added as a dependency, which resolves and locks it together with the rest of the environment:

uv add sbmlsim

Into an existing virtual environment it is installed through the pip interface of uv:

uv venv --python 3.14
uv pip install sbmlsim

With pip

pip install sbmlsim

Development version

The current state of the develop branch is installed directly from GitHub:

uv add "sbmlsim @ git+https://github.com/matthiaskoenig/sbmlsim.git@develop"

or, with pip,

pip install git+https://github.com/matthiaskoenig/sbmlsim.git@develop

To work on the repository itself, with the test and documentation tooling, see Development.

Dependencies

sbmlsim builds on the packages of the COMBINE ecosystem and the scientific python stack. They are installed with it:

package used for
libroadrunner simulation of the SBML models
sbmlutils, python-libsbml reading, validating and changing SBML models
pymetadata, python-libsedml, python-libnuml COMBINE archives, SED-ML and NuML
numpy, pandas, xarray, scipy, sympy numerics, data and results
pint units and unit conversions
petab, SALib parameter fitting problems and global sensitivity analysis
matplotlib, seaborn, jinja2 plots and reports

Logging

sbmlsim does not configure logging. It logs to loggers below the sbmlsim logger and leaves handlers, levels and formatting to the application, so the messages of the package stay under your control:

import logging

logging.basicConfig(level=logging.INFO)
logging.getLogger("sbmlsim").setLevel(logging.WARNING)

For scripts and interactive work the rich output of the package can be turned on explicitly:

from sbmlsim import log

log.enable_rich_logging()