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

If you're not sure about the file name format, learn more about wheel file names.

libroadrunner-2.9.2-cp314-cp314-win_amd64.whl (25.0 MB view details)

Uploaded CPython 3.14Windows x86-64

libroadrunner-2.9.2-cp314-cp314-manylinux_2_28_x86_64.whl (51.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

libroadrunner-2.9.2-cp314-cp314-macosx_15_0_x86_64.whl (36.6 MB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

libroadrunner-2.9.2-cp314-cp314-macosx_14_0_arm64.whl (34.2 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

libroadrunner-2.9.2-cp313-cp313-win_amd64.whl (24.4 MB view details)

Uploaded CPython 3.13Windows x86-64

libroadrunner-2.9.2-cp313-cp313-manylinux_2_28_x86_64.whl (51.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

libroadrunner-2.9.2-cp313-cp313-macosx_15_0_x86_64.whl (36.6 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

libroadrunner-2.9.2-cp313-cp313-macosx_14_0_arm64.whl (34.2 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

libroadrunner-2.9.2-cp312-cp312-win_amd64.whl (24.4 MB view details)

Uploaded CPython 3.12Windows x86-64

libroadrunner-2.9.2-cp312-cp312-manylinux_2_28_x86_64.whl (51.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

libroadrunner-2.9.2-cp312-cp312-macosx_15_0_x86_64.whl (36.6 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

libroadrunner-2.9.2-cp312-cp312-macosx_14_0_arm64.whl (34.2 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

libroadrunner-2.9.2-cp311-cp311-win_amd64.whl (25.0 MB view details)

Uploaded CPython 3.11Windows x86-64

libroadrunner-2.9.2-cp311-cp311-manylinux_2_28_x86_64.whl (51.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

libroadrunner-2.9.2-cp311-cp311-macosx_15_0_x86_64.whl (36.6 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

libroadrunner-2.9.2-cp311-cp311-macosx_14_0_arm64.whl (34.2 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

File details

Details for the file libroadrunner-2.9.2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 52862d3520bb04565a31e420e4c37fa334c74a5071c121c962e7c0d356d245d4
MD5 7a0506ebe811e31a65fc1946d7759418
BLAKE2b-256 8fde5de28b8e5818c7e0c9b8db7ff9f6c1014488fc276936316a75bd7a61766b

See more details on using hashes here.

File details

Details for the file libroadrunner-2.9.2-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 01d5a5f1b3df72ca9d3c330096e75004ddccb8d6073911f9a068bff5bd1bfbe3
MD5 5b117d3f09366e4154a353fae731332a
BLAKE2b-256 68e1c64e6ce6fc5d8f8160eae7be4c99733bf63b0ee167a48f8e0df5db0d8238

See more details on using hashes here.

File details

Details for the file libroadrunner-2.9.2-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 fa1876e0962f45b6344e1697d2b4f0ffbc79188f46a4fccec758cc95c2850fb1
MD5 deef46cba35c3c96b8093792a86258c8
BLAKE2b-256 4d867e09eb72c5fc5b1a828748add1229d0f9749e0c63b86b54d18f98f9b6368

See more details on using hashes here.

File details

Details for the file libroadrunner-2.9.2-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8a14b5fb9f191b703ad0e304e8c39190d6f26a3cada47329224514b1dbe86010
MD5 945d8c7dab26aa4ad800a2458ac4cd36
BLAKE2b-256 9fba59d0b729cf2f72777ee808803426db6665c5ecb5650fe5a39137b1904960

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9555f9087e96002dc10bd9924f25f61e2759b5135061b1bf1fd14276e070c3c9
MD5 340b34eb7fa46943dcd44e6bb879654d
BLAKE2b-256 a9de066c60ef819f2d1a1f721eb858afe78364481c85c370ca83d33725d6f494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 56f0c1888507b94b7a7a79877fa5f3f7e73f7838145df53fb3c9982bd25d6b5f
MD5 80e4be19e19ef073023c8952b3a400ba
BLAKE2b-256 1bf1e84e3b49203c505a55c355a28b0761fba79f62aa1c658940ec63501c24d8

See more details on using hashes here.

File details

Details for the file libroadrunner-2.9.2-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 cbd1744f62d655d4e692080bcd5f42aac390c6b13c70fab81e6c7fc136c69b4f
MD5 dec36818af4d0b69b49cd656943b47b2
BLAKE2b-256 f393b1d065684aa046f83963e6bfd3f0ee81fa47373ba024f1c2c22169f5b0bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4db3380366e3312a07370be9ed969e6f79bca77f56c5e31c89a749bc9993b0b4
MD5 d8f53ee15fffd31b9e407353072b4b66
BLAKE2b-256 b68e034cbe812af3e1a8396a200c39ab42411967310580cf6297189d8d93b136

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9818ea4e51a002181a10dd997c69f9e7cd96c6fbcf3115797cfc2728f18b79b7
MD5 38943172b82bbc799787b95a4dede54d
BLAKE2b-256 4e58639b442239a10048e288fc42ba10fa55c4751d05725091993d4496c141d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 11d2ff6605f67fbd78f6829b1235db8d159a61a65235261974b997ff4bbf16ae
MD5 f536943c47b4e60f9a3302a00b2727db
BLAKE2b-256 3f9080574285e0b88e3c87f6aad22c06fb919b02b0218b99842e84e206275195

See more details on using hashes here.

File details

Details for the file libroadrunner-2.9.2-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 436c9034b0452634e9791bd6d37616ca3fff526cefe547150578763a9acc3611
MD5 4d27e008c15136fe8a6fc39c4fc04b90
BLAKE2b-256 59a03bd9aaa3ad5da8763876d91483889cd056faf10902bfdd9fba740669687b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 24363b0b85f0e3fcaedded1589e56c18b609d1de4119490bb71947db428efffd
MD5 437b85469c43eed517365451b0257f49
BLAKE2b-256 0ba08bb7e5356a25519111515606c2af21c196cdec5a348271a3c8db5410f74c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 04860fab5fdbb3aabec9bfdb2ebd24ebae3321d5c06d6e774b8a8ff5056c5eba
MD5 59a2f4ffaddd267da7d65ec5e766485b
BLAKE2b-256 ebec0c59ba28ecb3cccdeb135d8f2f9f0ae0040cd9ff8ec5d25f1ab0b6edd3a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0cb0ef8d8e7eea6065c04345394be2fc335f76d7df339097f5f8739a5bece6dc
MD5 ea658631a46e681c8ebc7b02aae3d360
BLAKE2b-256 398de4b927fc3fe6b7f07fb38662702e8ebcc0f5a460676ac647ec2b5256e6b8

See more details on using hashes here.

File details

Details for the file libroadrunner-2.9.2-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 f58ee34433e9f2b38b6195726f71015cb20216348ab095d7355263f58de858c8
MD5 ff97dff91062ed14da3ad76ed505c802
BLAKE2b-256 8d5ba2fdc77088ced910b67f36b9e744403effdd306bd83d278ffc5134cda98d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libroadrunner-2.9.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 041054438406c4210e438e1a968fe8d527bff5c52858c1b702e211f5001dc4c6
MD5 d498997014a8c988001374e12653813e
BLAKE2b-256 66c320f488014f9598f26f8166e62ab32c24498d6334f48ffee73e8f160f890d

See more details on using hashes here.

Supported by

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