libRoadRunner: A simulation and analysis library for SBML
Project description
libRoadRunner
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
Local Documentation (May be used if above link is failing.)
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)
- run a cell with
!apt-get install libncurses5
- run a cell with
!pip install libroadrunner
- (Vert important) Restart the runtime (From the menu: 'Runtime / Restart runtime')
- 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
- Biocomplexity Institute, Indiana University, Simon Hall MSB1, Bloomington, IN 47405
- Dune Scientific, 10522 Lake City Way NE, #302 Seattle WA
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file libroadrunner-2.7.0-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 24.0 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9466d9c35ec75ebf36403de6d859bb0dd3e0580ad5b0842119d1cf77ad137cd7 |
|
MD5 | 600a4492f06dd07ca6ee33f2d8292ef5 |
|
BLAKE2b-256 | 303c4b8e84c08e6784c8c7c2cc8badd51344af6205cb191bee3c573a9db2a5f4 |
File details
Details for the file libroadrunner-2.7.0-cp312-cp312-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp312-cp312-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 234101002b33a628ae2f5dd4cff38d029e55c6840276de60cfeb81ab34f63c66 |
|
MD5 | 7ad96e06398bff8e4642581e785b2077 |
|
BLAKE2b-256 | 9cb6dab768d34ad9358ef5abcd6d2ad5f1a8dbb8712949f36ba89df0170f5a86 |
File details
Details for the file libroadrunner-2.7.0-cp312-cp312-manylinux2014_x86_64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp312-cp312-manylinux2014_x86_64.whl
- Upload date:
- Size: 50.1 MB
- Tags: CPython 3.12
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d771c4648f9b7187c12c8f2cc0ebd38f83139c9d76b3e41404de8e33fe1e02a |
|
MD5 | e8cbb5c3c44dd37c50791051a10d3e59 |
|
BLAKE2b-256 | ceb94e5c37655cdeaf4d19617f6d2e06eb6aaa283087baffe8186fea9d88e189 |
File details
Details for the file libroadrunner-2.7.0-cp312-cp312-macosx_14_0_arm64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp312-cp312-macosx_14_0_arm64.whl
- Upload date:
- Size: 16.4 MB
- Tags: CPython 3.12, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d1af2d743296dea887728888636d46f47ebbd9aeb652edfa2925958c4b3e566 |
|
MD5 | 934e3a356787f94508898cdb77d4fd07 |
|
BLAKE2b-256 | 606749bfe2400b81a067a40f42d1e8e1b613979d2f3b4596ebd0445cdfcd5bcc |
File details
Details for the file libroadrunner-2.7.0-cp312-cp312-macosx_11_0_x86_64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp312-cp312-macosx_11_0_x86_64.whl
- Upload date:
- Size: 89.0 MB
- Tags: CPython 3.12, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2c1f45023b86b62d2ca5d793e6b09105c1572cdf8b7714a6c270edbeea629f8 |
|
MD5 | a607ca02de627ac44beff892e51d94ab |
|
BLAKE2b-256 | 462056508e40442a69fa0938d8b697c29971995ace804113d002d5f2c9e8efc2 |
File details
Details for the file libroadrunner-2.7.0-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 24.0 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 175bee5b19b155799a11691d6de20b574f99e02cf30902f3fb7812e7707ee693 |
|
MD5 | 0dd0398ce87e1b3f569cc40c81eed53d |
|
BLAKE2b-256 | 2399bb5918eed606d7cb9a7b24e23f68d5a567bc93d09dfced074b76bf455a0b |
File details
Details for the file libroadrunner-2.7.0-cp311-cp311-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp311-cp311-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5f671548e1fb40f0f679f481546c0f6d73e162ca28fbe5963797ba881ede471 |
|
MD5 | 5667616725c5c9e9086e921dc99eeebc |
|
BLAKE2b-256 | 473d90cc92fdf6a35bd4b1fc0efce7eb893015a694845d0dfac51affd4a5d171 |
File details
Details for the file libroadrunner-2.7.0-cp311-cp311-manylinux2014_x86_64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp311-cp311-manylinux2014_x86_64.whl
- Upload date:
- Size: 50.1 MB
- Tags: CPython 3.11
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9dc5bb70df2a0323f6e8ab0c9ac82575c5c1155b377904a331174e69cec6ea4 |
|
MD5 | b762d993370f759b55305d9953060c77 |
|
BLAKE2b-256 | 5b54a3bb85ad030e1d0c0a4383176b23247aebde6114da494705b0bba15b5e74 |
File details
Details for the file libroadrunner-2.7.0-cp311-cp311-macosx_14_0_arm64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp311-cp311-macosx_14_0_arm64.whl
- Upload date:
- Size: 16.4 MB
- Tags: CPython 3.11, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbf2be7310f70f4a6d524bc77f8aa9aba0021725bb5a22957d3e6dcd48075b0c |
|
MD5 | 5b42fd06d360368bcc7651250bf3b00b |
|
BLAKE2b-256 | e028e3a033a367a0c8337cdf68f5f2b3c26c87905a081ce65139208a7d363173 |
File details
Details for the file libroadrunner-2.7.0-cp311-cp311-macosx_11_0_x86_64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp311-cp311-macosx_11_0_x86_64.whl
- Upload date:
- Size: 89.0 MB
- Tags: CPython 3.11, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbd79393f1cbfa6f07b138a037a4d77460631c2bdae395b1c34587eb9722393e |
|
MD5 | d9cb3294698023a816c212b5a6fe0084 |
|
BLAKE2b-256 | 441639c4da1a8815c1f8c4e0956b3f99985ed4c7640ea6f30e0eb0b1168a0614 |
File details
Details for the file libroadrunner-2.7.0-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 24.0 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23c54b2315be8c2de79bb3d2bec2a93b0b26390e604aec5e1fbe006cbe734237 |
|
MD5 | 5d3e17d6443fca31d48c2fddfc74cc53 |
|
BLAKE2b-256 | 65ae21189e140436a30aa0314f99d4afdb3aa364c49a7052600abc0369de6656 |
File details
Details for the file libroadrunner-2.7.0-cp310-cp310-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp310-cp310-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.5 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c14cc06d71a06747096cd1a749b63b8d0877f25f5dc139493b0433f983f43a08 |
|
MD5 | 146bbc7b675fe8c43e631d0fa8d4fee6 |
|
BLAKE2b-256 | 0ecb1b852b8ff6886b6991a4d67831bb0694c1bde2802b6a95215f69e7d95567 |
File details
Details for the file libroadrunner-2.7.0-cp310-cp310-manylinux2014_x86_64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp310-cp310-manylinux2014_x86_64.whl
- Upload date:
- Size: 50.1 MB
- Tags: CPython 3.10
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a73f55319616c26e961308beeec7305404e43343eb3283dea239dda9c21dae1 |
|
MD5 | d116f86711dcd58bce9c5cef5c0b1b36 |
|
BLAKE2b-256 | 7739a0893bb95ce8782344d03f1ea2c81496f133a3db94c2cb1fd0743ed5bf33 |
File details
Details for the file libroadrunner-2.7.0-cp310-cp310-macosx_14_0_arm64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp310-cp310-macosx_14_0_arm64.whl
- Upload date:
- Size: 16.4 MB
- Tags: CPython 3.10, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6e2ea3e9f25f8f7c48f2e0fccbfe14f86f169eca610fe2ccc1349418f95497d |
|
MD5 | 40c6058cb9ad6445a7ebd40df2a78293 |
|
BLAKE2b-256 | 8263417245b4ac80d9622e0dbb75c07541c3dbd3b54a2deebb40e7ff156cfd86 |
File details
Details for the file libroadrunner-2.7.0-cp310-cp310-macosx_11_0_x86_64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp310-cp310-macosx_11_0_x86_64.whl
- Upload date:
- Size: 89.0 MB
- Tags: CPython 3.10, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71ed317ec218079a269b7aa53667c235b3e194abe68dff35e1d05b697b36bb53 |
|
MD5 | 4c93dd7d4b1dbb99d05186e44fbc32b8 |
|
BLAKE2b-256 | 298e32bcfabea1ee460236f8fbcc367d358f8e4b5bef8ee47910c1e25950e108 |
File details
Details for the file libroadrunner-2.7.0-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 24.0 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0cdc8d1a2546ffd4604f8d51e661e055cd954ff017e45357abe4546901572cb |
|
MD5 | dead8db7882b5b136c2a43c8b04b21ba |
|
BLAKE2b-256 | 6e9d8beaba440bcb8f56d965ed4eb28653df6ee03fef8a2a0405234fa1a89d30 |
File details
Details for the file libroadrunner-2.7.0-cp39-cp39-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp39-cp39-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.5 MB
- Tags: CPython 3.9, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90b85a7b8815caf6faf10257c49aa6b0a55b93fb232043d1fd9434081cd0fed2 |
|
MD5 | 0b6bb08e24dbd63fd66b71a8a8ed1265 |
|
BLAKE2b-256 | 159471db28f811df1441c8c9b73318adfc0946da8b7a5f11be6aaad32bf2a25b |
File details
Details for the file libroadrunner-2.7.0-cp39-cp39-manylinux2014_x86_64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp39-cp39-manylinux2014_x86_64.whl
- Upload date:
- Size: 50.1 MB
- Tags: CPython 3.9
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90732c9f3cfad33b3eebf65a2848660e28f45f2655f7a6765a174f043d3ef1ef |
|
MD5 | ea26354af0eedef7e2418519be556030 |
|
BLAKE2b-256 | 1e1532b0fdf82915dce4fdf8b34226fe89ff8190dd3c309de67fe83dbb915ea1 |
File details
Details for the file libroadrunner-2.7.0-cp39-cp39-macosx_14_0_arm64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp39-cp39-macosx_14_0_arm64.whl
- Upload date:
- Size: 16.4 MB
- Tags: CPython 3.9, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05e9680b059fc1fb19bd657554fe4853b04db80b578e6eda977898f064f27d68 |
|
MD5 | 51cc7ed2d5e3742f1235b57ed39d030f |
|
BLAKE2b-256 | 0e212572b1e18a7650a68b6c1ff9090a177d2b6928f8d79cd98781e227d8b416 |
File details
Details for the file libroadrunner-2.7.0-cp39-cp39-macosx_11_0_x86_64.whl
.
File metadata
- Download URL: libroadrunner-2.7.0-cp39-cp39-macosx_11_0_x86_64.whl
- Upload date:
- Size: 89.0 MB
- Tags: CPython 3.9, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73a11f7a0668baa8e016c1e3ad7704d539207f604a5e50a0bb3c2cffd838194a |
|
MD5 | c72f7cb53ebdec6836f50f9fe870d50c |
|
BLAKE2b-256 | f1f66082bbd2b854b14244ce20b7eeee67f4baa873f094b7c0b1ac4b598b5b80 |