COBRA.jl - COnstraint-Based Reconstruction and Analysis
COBRA.jl
is a package written in Julia used to perform COBRA analyses such as Flux Balance Anlysis (FBA), Flux Variability Anlysis (FVA), or any of its associated variants such as distributedFBA
[1].
FBA and FVA rely on the solution of LP problems. The package can be used with ease when the LP problem is defined in a .mat
file according to the format outlined in the COBRAToolbox [2].
Layout
Complete Beginner's Guide
Should you not have any prior experience with Julia and/or Linux, please read carefully the Complete Beginner's Guide. If you however feel that you are set to proceed with this tutorial, please consider the Complete Beginner's Guide as a go-to reference in case you are running into any issues.
Requirements and compatibility
If you are novice to Julia, you may find the Complete Beginner's Guide interesting. In this manual, a working installation of Julia is assumed.
COBRA.jl
has been tested on Ubuntu Linux 14.04+, MacOS 10.7+, and Windows 7 (64-bit). Currently, all solvers that are supported by MathProgBase.jl
are supported by COBRA.jl
, but must be installed separately. The COBRA.jl
package has been tested with Julia v0.5+
, and requires a working installation of the latest MathProgBase.jl
. In order to load the COBRA model from a .mat
file, the module MAT.jl
is required.
Installation of COBRA
At the Julia prompt, clone the COBRA.jl
package and update all packages:
Pkg.update()
Pkg.clone("https://github.com/opencobra/COBRA.jl.git")
Use the COBRA.jl
module by running:
using COBRA
Testing and benchmarking
You can test the package using:
Pkg.test("COBRA")
Shall no solvers be detected on your system, you may experience error messages when testing the COBRA.jl
package. Please make sure that you have installed at least one solver.
The code has been benchmarked against the fastFVA
implementation [3]. A test model ecoli_core_model.mat
[4] can be used to pre-compile the code and is available in the /test
folder. The modules and solvers are correctly installed when all tests pass without errors (warnings may appear of third party packages).
How can I generate the documentation?
You can generate the documentation using Documenter.jl
by typing in /docs
:
julia --color=yes makeDoc.jl
Tutorial, Documentation and FAQ
You may follow this interactive Jupyter notebook. The complete documentation can be read here. For each function, you may display a description. For instance, you may request more information on distributedFBA
by typing at the Julia REPL:
? distributedFBA
Should you encounter any errors or unusual behavior, please refer to the FAQ section.
distributedFBA.jl
?
How to cite You may cite distributedFBA.jl
as follows:
Laurent Heirendt, Ronan M.T. Fleming, Ines Thiele, DistributedFBA.jl: High-level, high-performance flux balance analysis in Julia, in review, 2016.
Limitations
- At present, a COBRA model in
.mat
format is loaded using theMAT.jl
package. A valid MATLAB license is not required. - The inner layer parallelization is currently done within the solver. No log files of each spawned thread are generated.
- The current benchmarks have been performed using default optimization and compilation options of Julia and a set of solver parameters. The performance may be further improved by tuning these parameters.
References
- B. O. Palsson. Systems Biology: Constraint-based Reconstruction and Analysis. Cambridge University Press, NY, 2015.
- Schellenberger, J. et al. COBRA Toolbox 2.0. 05 2011.
- Steinn, G. et al. Computationally efficient flux variability analysis. BMC Bioinformatics, 11(1):1โ3, 2010.
- Orth, J. et al. Reconstruction and use of microbial metabolic networks: the core escherichia coli metabolic model as an educational guide. EcoSal Plus, 2010.