# Libroadrunner

libRoadRunner is a C/C++ software 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. 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 as well as a set of bindings for Julia.
libroadrunner is often paired with Tellurium, which adds additional functionality such as Antimony scripting.

## Capabilities

* Time-course simulation using the CVODE, RK45, and Euler solvers of ordinary differential equations, which can report on the system's variable concentrations and reaction rates over time.
* Steady-state calculations using non-linear solvers such as kinsolve and NLEQ2
* Stochastic simulation using the standard Gillespie algorithm.
* Supports both steady-state and time-dependent Metabolic control analysis, including calculating the elasticities towards the variable metabolites by algebraic or numerical differentiation of the rate equations, as well as the flux and concentration control coefficients by means of matrix inversion and perturbation methods.
* libroadrunner will also compute the structural matrices (e.g. K- and L-matrices) of a stoichiometric model.
* The stability of a system can be investigated by way of the system eigenvalues.
* Data and results can be plotted via matplotlib, or saved in text files.
* libroadrunner supports the import and export of standard SBML.

## Applications

libroadrunner has been widely used in the systems biology community for doing research in systems biology modeling, as well as being a host for other simulation platforms.

### Software applications that use libroadrunner

* CompuCell3D
* CRNT4SBML
* DIVIPAC
* massPy
* pyBioNetFit
* PhysiCell
* pyViPR
* runBiosimulations
* SBMLSim
* Tellurium (simulation tool)
* Tissue Forge (multi-cellular simulator)
* TOPAS-Tissue

### Research applications

libroadrunner has been used in a large variety of research projects. The following lists a small number of those studies:
* Tickman et al, describe developing multi-layer CRIPRa/i circuits for genetic programs using Tellurium/libroadrunner as the computational application.
* Salazar-Cavazos et al used pyBioNetFit/libroadrunner to investigate Multisite EGFR phosphorylation.
* Douilhet et al. used Tellurium/libroadrunner to investigate the use of genetic algorithms with rank selection optimization.
* Schmiester et al. used pyBioNetFit/libroadrunner to investigate gradient-based parameter estimation using qualitative data.
* Yang et al used CompuCell3D/libroadrunner to model transcript factor cooperation in mouse liver.

## Notability

* libroadrunner was the first SBML simulation to use just-in-time compilation using LLVM.
* It is the only SBML simulator that exploits AUTO2000 for bifurcation analysis.
A number of reviews and commentaries have been written that discuss libroadrunner:
* Maggioli et al. conduct a speed comparison of various SBML simulators and conclude libroadrunner is the fastest SBML simulator currently available to researchers.
* Koster et al,discuss the speed advantages of libroadrunner for solving differential equations compared to solving stochastic systems.

## Development

Development of libroadrunner is primarily funded through research grants from the National Institutes of Health