Skip to main content

libRoadRunner: A simulation and analysis library for SBML

Project description

libRoadRunner

GitHub version Build Status Documentation Status PyPI version

Licence PyPI - Downloads Funding Funding

Summary

libRoadRunner is a C/C++ library that supports simulation of SBML based models. It uses LLVM to generate extremely high performance code and is the fastest SBML-based simulator currently available (ref). Its main purpose is for use as a reusable library that can be hosted by other applications, particularly on large compute clusters for doing parameter optimization where performance is critical. It also has a set of python bindings that allow it to be easily used from python.

We provide C/C++, Python and Julia bindings.

Documentation

Full Documentation

Local Documentation (May be used if above link is failing.)

C API Documention

Installation

Binaries for Windows, MacOS (including universal binaries for the M1 processor), and Linux

Python wheels are available at the above binaries link, and can also be installed via pip:

pip install libroadrunner

Google Colab

libroadrunner can be used entirely in a browser using Google Colab. Ideally, it will work with the following steps (updated May 2023)

  1. run a cell with !apt-get install libncurses5
  2. run a cell with !pip install libroadrunner
  3. (Vert important) Restart the runtime (From the menu: 'Runtime / Restart runtime')
  4. Test by running import roadrunner

The Python version behind Colab is reasonably stable but can change. This issue to changes in how colab handles packages. we try to keep abreast of changes at colab.

Example Python usage

Once installed in Python (using pip or using the wheels directly), the following simple example script should demonstrate the basics of a roadrunner simulation:

import roadrunner
rr = roadrunner.RoadRunner("https://www.ebi.ac.uk/biomodels/model/download/BIOMD0000000010.2?filename=BIOMD0000000010_url.xml")
results = rr.simulate(0, 2000, 200)
rr.plot()
print(results)

This simple script downloads BioModels 10 (the Kholodenko model of MAPK oscillation) and runs a simulation for 2000 seconds, storing the results in results. If your system is set up to display figures, it will display a plot of the simulation, then print the numerical values obtained.

Dependencies

All libRoadRunner binaries are self-contained, and should include all libraries it depends on. When building libRoadRunner from source, its dependencies may either be downloaded en masse from the libroadrunner-deps repository, may be obtained directly from their respective sources, or the libraries may be installed directly on your operating system. Compilation requires a C++17 compiler.

The one exception to the above is that the libRoadRunner binaries depend on the 'ncurses' library on linux.

Copyright

Copyright 2013-2022

E. T. Somogyi 1, J. K. Medley 3, M. T. Karlsson 2, M. Swat 1, M. Galdzicki 3, K. Choi 3, W. Copeland 3, L. Smith 3, C. Welsh 3 and H. M. Sauro 3

  1. Biocomplexity Institute, Indiana University, Simon Hall MSB1, Bloomington, IN 47405
  2. Dune Scientific, 10522 Lake City Way NE, #302 Seattle WA
  3. Department of Bioengineering, University of Washington, Seattle, WA, 98195

The current (2021-present) developer is Lucian Smith.

Contributing

Contributors may submit pull requests at any time, and are asked to follow some general contribution guidelines. Bug requests and feature suggestions are also welcomed on the issues page.

libRoadRunner supports the following features:

  • Time Dependent Simulation (with optional conservation law reduction) using CVODE
  • Supports SBML Level 2 to 3 but currently excludes algebraic rules and delay differential equations
  • Uses latest libSBML distribution
  • Defaults to LLVM code generation on the backend, resulting is very fast simulation times
  • Optional generation of model C code and linking at run-time
  • Add plugins, distribution comes with Levenberg-Marquardt optimizer plugin
  • Compute steady state
  • Metabolic Control Analysis
  • Frequency Domain Analysis
  • Access to:
    • Eigenvalues and Eigenvectors
    • Jacobian, full and reduced
    • Structural Matrices of the stoichiometry matrix

Availability

RoadRunner is licensed for free as an open source programmatic library for use in other applications and as a standalone command line driven application. Its C++ API, C API, and Python APIs have comprehensive documentation. On Windows, OS X, and Linux binary files can be downloaded from the Releases page, and the Python bindings can additionally be downloaded via pip.

Docker images

Currently we have a manylinux2014 build docker image. The base provides the environment you need to be able to build roadrunner yourself on manylinux2014 (centos 8).

To get the base image:

docker pull sysbiouw/roadrunner-manylinux2014-base:llvm-13.x

Docker build scripts can be found under the docker directory from the roadrunner root directory.

We can also build roadrunner in alternative docker environments (ubuntu etc.) on request.

Citing

If you use RoadRunner in your research, we would appreciate following citations in any works you publish:

Ciaran Welsh, Jin Xu, Lucian Smith, Matthias König, Kiri Choi, Herbert M Sauro, libRoadRunner 2.0: a high performance SBML simulation and analysis library, Bioinformatics, Volume 39, Issue 1, January 2023, btac770, https://doi.org/10.1093/bioinformatics/btac770

Endre T. Somogyi, Jean-Marie Bouteiller, James A. Glazier, Matthias König, J. Kyle Medley, Maciej H. Swat, Herbert M. Sauro, libRoadRunner: a high performance SBML simulation and analysis library, Bioinformatics, Volume 31, Issue 20, 15 October 2015, Pages 3315–3321, https://doi.org/10.1093/bioinformatics/btv363

Acknowledgements

This work is funded by NIGMS grant: GM081070

License

Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS-IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

In plain english this means:

You CAN freely download and use this software, in whole or in part, for personal, company internal, or commercial purposes;

You CAN use the software in packages or distributions that you create.

You SHOULD include a copy of the license in any redistribution you may make;

You are NOT required include the source of software, or of any modifications you may have made to it, in any redistribution you may assemble that includes it.

YOU CANNOT: redistribute any piece of this software without proper attribution;

libRoadRunner logo

The libroadrunner logo is an adaptation of the image originally posted to Flickr by El Brujo+ at http://flickr.com/photos/11039104@N08/2954808342. It was reviewed on 9 August 2009 by the FlickreviewR robot and was confirmed to be licensed under the terms of the cc-by-sa-2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

libroadrunner-2.7.0-cp312-cp312-win_amd64.whl (24.0 MB view details)

Uploaded CPython 3.12 Windows x86-64

libroadrunner-2.7.0-cp312-cp312-manylinux_2_28_aarch64.whl (22.5 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

libroadrunner-2.7.0-cp312-cp312-macosx_14_0_arm64.whl (16.4 MB view details)

Uploaded CPython 3.12 macOS 14.0+ ARM64

libroadrunner-2.7.0-cp312-cp312-macosx_11_0_x86_64.whl (89.0 MB view details)

Uploaded CPython 3.12 macOS 11.0+ x86-64

libroadrunner-2.7.0-cp311-cp311-win_amd64.whl (24.0 MB view details)

Uploaded CPython 3.11 Windows x86-64

libroadrunner-2.7.0-cp311-cp311-manylinux_2_28_aarch64.whl (22.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

libroadrunner-2.7.0-cp311-cp311-macosx_14_0_arm64.whl (16.4 MB view details)

Uploaded CPython 3.11 macOS 14.0+ ARM64

libroadrunner-2.7.0-cp311-cp311-macosx_11_0_x86_64.whl (89.0 MB view details)

Uploaded CPython 3.11 macOS 11.0+ x86-64

libroadrunner-2.7.0-cp310-cp310-win_amd64.whl (24.0 MB view details)

Uploaded CPython 3.10 Windows x86-64

libroadrunner-2.7.0-cp310-cp310-manylinux_2_28_aarch64.whl (22.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

libroadrunner-2.7.0-cp310-cp310-macosx_14_0_arm64.whl (16.4 MB view details)

Uploaded CPython 3.10 macOS 14.0+ ARM64

libroadrunner-2.7.0-cp310-cp310-macosx_11_0_x86_64.whl (89.0 MB view details)

Uploaded CPython 3.10 macOS 11.0+ x86-64

libroadrunner-2.7.0-cp39-cp39-win_amd64.whl (24.0 MB view details)

Uploaded CPython 3.9 Windows x86-64

libroadrunner-2.7.0-cp39-cp39-manylinux_2_28_aarch64.whl (22.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

libroadrunner-2.7.0-cp39-cp39-macosx_14_0_arm64.whl (16.4 MB view details)

Uploaded CPython 3.9 macOS 14.0+ ARM64

libroadrunner-2.7.0-cp39-cp39-macosx_11_0_x86_64.whl (89.0 MB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

File details

Details for the file libroadrunner-2.7.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9466d9c35ec75ebf36403de6d859bb0dd3e0580ad5b0842119d1cf77ad137cd7
MD5 600a4492f06dd07ca6ee33f2d8292ef5
BLAKE2b-256 303c4b8e84c08e6784c8c7c2cc8badd51344af6205cb191bee3c573a9db2a5f4

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 234101002b33a628ae2f5dd4cff38d029e55c6840276de60cfeb81ab34f63c66
MD5 7ad96e06398bff8e4642581e785b2077
BLAKE2b-256 9cb6dab768d34ad9358ef5abcd6d2ad5f1a8dbb8712949f36ba89df0170f5a86

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d771c4648f9b7187c12c8f2cc0ebd38f83139c9d76b3e41404de8e33fe1e02a
MD5 e8cbb5c3c44dd37c50791051a10d3e59
BLAKE2b-256 ceb94e5c37655cdeaf4d19617f6d2e06eb6aaa283087baffe8186fea9d88e189

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2d1af2d743296dea887728888636d46f47ebbd9aeb652edfa2925958c4b3e566
MD5 934e3a356787f94508898cdb77d4fd07
BLAKE2b-256 606749bfe2400b81a067a40f42d1e8e1b613979d2f3b4596ebd0445cdfcd5bcc

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a2c1f45023b86b62d2ca5d793e6b09105c1572cdf8b7714a6c270edbeea629f8
MD5 a607ca02de627ac44beff892e51d94ab
BLAKE2b-256 462056508e40442a69fa0938d8b697c29971995ace804113d002d5f2c9e8efc2

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 175bee5b19b155799a11691d6de20b574f99e02cf30902f3fb7812e7707ee693
MD5 0dd0398ce87e1b3f569cc40c81eed53d
BLAKE2b-256 2399bb5918eed606d7cb9a7b24e23f68d5a567bc93d09dfced074b76bf455a0b

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a5f671548e1fb40f0f679f481546c0f6d73e162ca28fbe5963797ba881ede471
MD5 5667616725c5c9e9086e921dc99eeebc
BLAKE2b-256 473d90cc92fdf6a35bd4b1fc0efce7eb893015a694845d0dfac51affd4a5d171

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9dc5bb70df2a0323f6e8ab0c9ac82575c5c1155b377904a331174e69cec6ea4
MD5 b762d993370f759b55305d9953060c77
BLAKE2b-256 5b54a3bb85ad030e1d0c0a4383176b23247aebde6114da494705b0bba15b5e74

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dbf2be7310f70f4a6d524bc77f8aa9aba0021725bb5a22957d3e6dcd48075b0c
MD5 5b42fd06d360368bcc7651250bf3b00b
BLAKE2b-256 e028e3a033a367a0c8337cdf68f5f2b3c26c87905a081ce65139208a7d363173

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 fbd79393f1cbfa6f07b138a037a4d77460631c2bdae395b1c34587eb9722393e
MD5 d9cb3294698023a816c212b5a6fe0084
BLAKE2b-256 441639c4da1a8815c1f8c4e0956b3f99985ed4c7640ea6f30e0eb0b1168a0614

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 23c54b2315be8c2de79bb3d2bec2a93b0b26390e604aec5e1fbe006cbe734237
MD5 5d3e17d6443fca31d48c2fddfc74cc53
BLAKE2b-256 65ae21189e140436a30aa0314f99d4afdb3aa364c49a7052600abc0369de6656

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c14cc06d71a06747096cd1a749b63b8d0877f25f5dc139493b0433f983f43a08
MD5 146bbc7b675fe8c43e631d0fa8d4fee6
BLAKE2b-256 0ecb1b852b8ff6886b6991a4d67831bb0694c1bde2802b6a95215f69e7d95567

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9a73f55319616c26e961308beeec7305404e43343eb3283dea239dda9c21dae1
MD5 d116f86711dcd58bce9c5cef5c0b1b36
BLAKE2b-256 7739a0893bb95ce8782344d03f1ea2c81496f133a3db94c2cb1fd0743ed5bf33

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b6e2ea3e9f25f8f7c48f2e0fccbfe14f86f169eca610fe2ccc1349418f95497d
MD5 40c6058cb9ad6445a7ebd40df2a78293
BLAKE2b-256 8263417245b4ac80d9622e0dbb75c07541c3dbd3b54a2deebb40e7ff156cfd86

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 71ed317ec218079a269b7aa53667c235b3e194abe68dff35e1d05b697b36bb53
MD5 4c93dd7d4b1dbb99d05186e44fbc32b8
BLAKE2b-256 298e32bcfabea1ee460236f8fbcc367d358f8e4b5bef8ee47910c1e25950e108

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f0cdc8d1a2546ffd4604f8d51e661e055cd954ff017e45357abe4546901572cb
MD5 dead8db7882b5b136c2a43c8b04b21ba
BLAKE2b-256 6e9d8beaba440bcb8f56d965ed4eb28653df6ee03fef8a2a0405234fa1a89d30

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 90b85a7b8815caf6faf10257c49aa6b0a55b93fb232043d1fd9434081cd0fed2
MD5 0b6bb08e24dbd63fd66b71a8a8ed1265
BLAKE2b-256 159471db28f811df1441c8c9b73318adfc0946da8b7a5f11be6aaad32bf2a25b

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 90732c9f3cfad33b3eebf65a2848660e28f45f2655f7a6765a174f043d3ef1ef
MD5 ea26354af0eedef7e2418519be556030
BLAKE2b-256 1e1532b0fdf82915dce4fdf8b34226fe89ff8190dd3c309de67fe83dbb915ea1

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 05e9680b059fc1fb19bd657554fe4853b04db80b578e6eda977898f064f27d68
MD5 51cc7ed2d5e3742f1235b57ed39d030f
BLAKE2b-256 0e212572b1e18a7650a68b6c1ff9090a177d2b6928f8d79cd98781e227d8b416

See more details on using hashes here.

File details

Details for the file libroadrunner-2.7.0-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.7.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 73a11f7a0668baa8e016c1e3ad7704d539207f604a5e50a0bb3c2cffd838194a
MD5 c72f7cb53ebdec6836f50f9fe870d50c
BLAKE2b-256 f1f66082bbd2b854b14244ce20b7eeee67f4baa873f094b7c0b1ac4b598b5b80

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page