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.8.0-cp313-cp313-win_amd64.whl (24.0 MB view details)

Uploaded CPython 3.13Windows x86-64

libroadrunner-2.8.0-cp313-cp313-manylinux_2_28_x86_64.whl (49.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

libroadrunner-2.8.0-cp313-cp313-macosx_14_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

libroadrunner-2.8.0-cp313-cp313-macosx_13_0_x86_64.whl (36.7 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

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

Uploaded CPython 3.12Windows x86-64

libroadrunner-2.8.0-cp312-cp312-manylinux_2_28_x86_64.whl (49.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

libroadrunner-2.8.0-cp312-cp312-macosx_14_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

libroadrunner-2.8.0-cp312-cp312-macosx_13_0_x86_64.whl (36.7 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

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

Uploaded CPython 3.11Windows x86-64

libroadrunner-2.8.0-cp311-cp311-manylinux_2_28_x86_64.whl (49.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

libroadrunner-2.8.0-cp311-cp311-macosx_14_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

libroadrunner-2.8.0-cp311-cp311-macosx_13_0_x86_64.whl (36.7 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

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

Uploaded CPython 3.10Windows x86-64

libroadrunner-2.8.0-cp310-cp310-manylinux_2_28_x86_64.whl (49.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

libroadrunner-2.8.0-cp310-cp310-macosx_14_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

libroadrunner-2.8.0-cp310-cp310-macosx_13_0_x86_64.whl (36.7 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

File details

Details for the file libroadrunner-2.8.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d57ecaacc92dfd0cbd67b6b2a04b35f192feb3045f3d8dbf8ac9267e84490a72
MD5 425ecf544c0b642aadaf1a1b7389533f
BLAKE2b-256 fb1937a84014e5a4883d16fe4802529bc1317729478ac3b8e26e8de7c34f64c6

See more details on using hashes here.

File details

Details for the file libroadrunner-2.8.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c67023e727f8d76063e5b8c3adf62cb0aa563cd5b3b35b6468619fa2d9e1a080
MD5 81882e86377de2b3d367de9241efaee6
BLAKE2b-256 b1e3d505f099be29da8c6d754690818fe7df1600716fb86a80c510c17281456b

See more details on using hashes here.

File details

Details for the file libroadrunner-2.8.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c336ef5501b32ecc688f438579f6f78404f1a673c59c02682681133d848d69fe
MD5 952dc3d78fc254c5d349ef75f818ebf2
BLAKE2b-256 c937a54886f5d2914034c3757c4098702e130e5e495a0f1ba112682e358d45c6

See more details on using hashes here.

File details

Details for the file libroadrunner-2.8.0-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b56c76a9aec5ed7122c446299135976b78a1779d42f9797628bda3fb58a17226
MD5 c50037234683ba31f517e6da3b865779
BLAKE2b-256 d46cd5255a37488c1a936f5d126d7b5b165a3f7df2a98f80bf75a42173ac6a9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7b251e3b0c01b62158310877dcd50428da9bff52484a4c3ffa806f0b4887fa19
MD5 3fc599a4ec806cfe8193b56a764ff1e0
BLAKE2b-256 8b911c70266da3dd587d2b272e104aeac06e64c7cb466c58bb84b203673dba81

See more details on using hashes here.

File details

Details for the file libroadrunner-2.8.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 24c99d29be289d2dc630241143405f2657705aefb530f7ec795ca03b025877ce
MD5 5af5923b260367bd8f43b8df41237da6
BLAKE2b-256 0d3bf3cf2088647d160b87bd8df51bdcfe80bbfd5550bf5560e9096d6c185b15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 73f3196eaf4547650c388ae818df31bca9033a66010a259bf4d6a462e3b92a7e
MD5 1b01ae3a3d86200d0a6de3ab4093ed2c
BLAKE2b-256 88ca609eab45cba99f38cfa4d916e59cc1eee247a914844ad8ed5aa7a0fa7f2a

See more details on using hashes here.

File details

Details for the file libroadrunner-2.8.0-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 fe5cf48d86f5a8c5c99cf9c4196324dceaf47e8daff22c7f57f7b2a3b31ccb77
MD5 91c59a1ed8251e077354218e6e89949e
BLAKE2b-256 29d969b9f69fb9a614d33cd1ad018be9b44dd40f64b8f17acbb137e9097dc4d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 37b1cdc4a9234dad671c97af876e4e7bddead6a49f041b37a97002ab6fe3330d
MD5 80982054abc309d9e61f3126152b9f70
BLAKE2b-256 e6ae493d5a1c3b6d9e8c3a8ffa0ccb16a6831cee306850b305d023abdabcdb15

See more details on using hashes here.

File details

Details for the file libroadrunner-2.8.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f0542cb79a80e6a5b6122ca76dd57bf59dc4e4498ab4d02d0cd4a185de2e3017
MD5 336f4d5f67e39f4f455d6ba44a26a87f
BLAKE2b-256 cbd5acc655da0e1db2c654cef8abe6ecd52dcb03fb54c0cae26463985311a95b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e41333545bbd5a5c31ce27c11632c88c2f706896cd05ee8f27fa949ed8c14936
MD5 08b39d6007edd72f5ce463a62faf20a8
BLAKE2b-256 d17e1a357ec49183345981bea88631e8aff5fc74d4501a5b41d424c17e0fee83

See more details on using hashes here.

File details

Details for the file libroadrunner-2.8.0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7a63c085a50b21a2e04d3fb1e660c02d55b2eee656619f22b61a8af7e7bfdbb6
MD5 232ccd3876ac6259c8015ff8b9ff834b
BLAKE2b-256 8f1280af9d826c77cff1803b7fada8bfec25565c36aafce159ba1b2ee8884405

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5ae6810c731a363fbd70101ad84568585e896008cb17cbcf51edaf9b02d1300a
MD5 a8997a97fcd21d8580d0e6c53b1d6a34
BLAKE2b-256 386d510b7f24bb793b49c78267fe451d50338258317bfdc709d58be97fd87fe7

See more details on using hashes here.

File details

Details for the file libroadrunner-2.8.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 470820601a9ca8b0561a7e71acc82fd76f486cf9c54d2e776899a7aaccd914fa
MD5 e21a10d02456d42d3956993d4d3bce59
BLAKE2b-256 e9d84ea6d30f7df889e2ddeeb73db3f93241a3874748039c43515b3244783b57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0160fb545dd64dc5562707883e3345f238ae118f490fee284f5cbd1a3ef0240b
MD5 2efdbd8b03e723979e10969fee8414a6
BLAKE2b-256 cf7c8c8cb9c6e8dad838d173d1232ab848fd4b889c8dd734b85329800504ebf9

See more details on using hashes here.

File details

Details for the file libroadrunner-2.8.0-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.8.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f74c1b0509a640d1bc62ecd521a5857a08aaee6f86469a3269db23aae8dc8586
MD5 c6bf0ec4f53dfd784908b99867fd87a9
BLAKE2b-256 16c719c62bbab3c0e25097c3010e28fb68c172143c39607bd5bd8426256e21b1

See more details on using hashes here.

Supported by

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