COBRA.jl - COnstraint-Based Reconstruction and Analysis

DocumentationCoveragePackageEvaluatorBuild Status
coverage statusCoverage StatusCOBRACOBRABuild StatusBuild status

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

Code 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 new 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, add the COBRA package:

Pkg.add("COBRA")

Please make sure that all your packages are updated:

Pkg.update()

Use the COBRA.jl module by running:

using COBRA

If you want to enjoy the latest untagged (but eventually unstable) features of COBRA.jl, do the following from Julia:

if isdir(Pkg.dir("COBRA"))
    run(`rm -rf $(Pkg.dir("COBRA"))`)
end
Pkg.clone("https://github.com/opencobra/COBRA.jl.git")

Please make sure to not run Pkg.update() after having fetched the latest version. You may confirm that you have the latest version by typing:

Pkg.status("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.

How to cite distributedFBA.jl?

The corresponding paper can be downloaded from here. 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, 2016, arXiv:1611.04743.

Limitations

References

  1. B. O. Palsson. Systems Biology: Constraint-based Reconstruction and Analysis. Cambridge University Press, NY, 2015.

  2. Schellenberger, J. et al. COBRA Toolbox 2.0. 05 2011.

  3. Steinn, G. et al. Computationally efficient flux variability analysis. BMC Bioinformatics, 11(1):1–3, 2010.

  4. Orth, J. et al. Reconstruction and use of microbial metabolic networks: the core escherichia coli metabolic model as an educational guide. EcoSal Plus, 2010.