Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.

The COBRA Toolbox
COnstraint-Based Reconstruction and Analysis Toolbox

All continuous integration builds
Ratio of the number of inefficient code lines and the total number of lines of code (in percent). A: 0-3%, B: 3-6%, C: 6-9%, D: 9-12%, E: 12-15%, F: > 15%.

System Requirements and Solver Installation

warning Please follow this guide in order to configure your system properly.

warning Please make sure you install a compatible solver. Check the compatibility here.

You may install TOMLAB, IBM ILOG CPLEX, GUROBI, or MOSEK by following these detailed instructions.


  1. Download this repository (the folder ./cobratoolbox/ will be created). You can clone the repository using:

    $ git clone --depth=1 cobratoolbox

    warning Please note the --depth=1 in the clone command. Run this command in Terminal (on macOS and linux) or in Git Bash (on windows) - not in matlab. Although not recommended, you can download the repository as a compressed archive.

  2. Change to the folder cobratoolbox/ and run from matlab

    >> initCobraToolbox

Tutorials, Documentation, and Support

  • Consult all tutorials in the section . All tutorials can be run from the /tutorials directory.
  • All functions are documented in the .
  • If you need support, please feel free to post your question in our .
  • Answers to Frequently Asked Questions (FAQ) are here.

How to contribute

thumbsup tada First off, thanks for taking the time to contribute to The COBRA Toolbox! tada thumbsup


You can install the MATLAB.devTools from within MATLAB by typing:

>> installDevTools()

bulb Check out MATLAB.devTools - and contribute the smart way! The official documentation is here.

thumbsup Contribute to the opencobra/cobratoolbox repository by following these instructions:

>> contribute('opencobra/cobratoolbox');

thumbsup Contribute to the opencobra/COBRA.tutorials repository by following these instructions:

>> contribute('opencobra/COBRA.tutorials');
  • Please follow the Style Guide.
  • More information on writing a test is here and a template is here.
  • More information on formatting the documentation is here
  • A guide for reporting an issue is here.

If you want to use git via the command line interface and need help, this guide or the official GitHub guide come in handy.

How to cite the COBRA Toolbox

When citing the COBRA Toolbox, it is important to cite the original paper where an algorithm was first reported, as well as its implementation in the COBRA Toolbox. This is important, because the objective of the COBRA Toolbox is to amalgamate and integrate the functionality of a wide range of COBRA algorithms and this will be undermined if contributors of new algorithms do not get their fair share of citations. The following is one example how to approach this within the methods section of a paper (not the supplemental material please):

To generate a context-specific model the FASTCORE algorithm [1], implemented in The COBRA Toolbox v3.0 [2], was employed.

[1] = Vlassis N, Pacheco MP, Sauter T (2014) Fast Reconstruction of Compact Context-Specific Metabolic Network Models. PLoS Comput Biol 10(1): e1003424.
[2] Laurent Heirendt & Sylvain Arreckx, Thomas Pfau, Sebastian N. Mendoza, Anne Richelle, Almut Heinken, Hulda S. Haraldsdottir, Jacek Wachowiak, Sarah M. Keating, Vanja Vlasov, Stefania Magnusdottir, Chiam Yu Ng, German Preciat, Alise Zagare, Siu H.J. Chan, Maike K. Aurich, Catherine M. Clancy, Jennifer Modamio, John T. Sauls, Alberto Noronha, Aarash Bordbar, Benjamin Cousins, Diana C. El Assal, Luis V. Valcarcel, Inigo Apaolaza, Susan Ghaderi, Masoud Ahookhosh, Marouen Ben Guebila, Andrejs Kostromins, Nicolas Sompairac, Hoai M. Le, Ding Ma, Yuekai Sun, Lin Wang, James T. Yurkovich, Miguel A.P. Oliveira, Phan T. Vuong, Lemmer P. El Assal, Inna Kuperstein, Andrei Zinovyev, H. Scott Hinton, William A. Bryant, Francisco J. Aragon Artacho, Francisco J. Planes, Egils Stalidzans, Alejandro Maass, Santosh Vempala, Michael Hucka, Michael A. Saunders, Costas D. Maranas, Nathan E. Lewis, Thomas Sauter, Bernhard Ø. Palsson, Ines Thiele, Ronan M.T. Fleming, Creation and analysis of biochemical constraint-based models: the COBRA Toolbox v3.0, Nature Protocols, volume 14, pages 639–702, 2019

Binaries and Compatibility

warning Please make sure you install a compatible solver. Check the compatibility here.

For convenience, we provide glpk_mex and libSBML-5.17+ in /external.

Binaries for these libraries are provided in a submodule for Mac OS X 10.6 or later (64-bit), GNU/Linux Ubuntu 14.0+ (64-bit), and Microsoft Windows 7+ (64-bit). For unsupported OS, please refer to their respective building instructions (glpk_mex, libSBML).

Read more on the compatibility with SBML-FBCv2 here.


The software provided by the openCOBRA Project is distributed under the GNU GPLv3 or later. However, this software is designed for scientific research and as such may contain algorithms that are associated with patents in the U.S. and abroad. If the user so chooses to use the software provided by the openCOBRA project for commercial endeavors then it is solely the user’s responsibility to license any patents that may exist and respond in full to any legal actions taken by the patent holder.