GECKO#

GECKO GECKO

MATLAB & Python

Reconstruction, simulation and analysis of enzyme-constrained metabolic models (ecModels): a MATLAB toolbox built on RAVEN, and geckopy, a Python port built on cobrapy.

Install#

pip install --pre geckopy

--pre is required: the GECKO 4 releases of geckopy and the releases of raven-toolbox that it depends on are pre-releases. Without --pre, pip installs geckopy 2.0.2, an earlier and unrelated package of the same name.

pip install \
    git+https://github.com/CompMetEng/raven-toolbox.git@develop \
    git+https://github.com/CompMetEng/geckopy.git@develop

Installs the develop branch of both packages, which is ahead of the latest PyPI release.

git clone --depth=1 https://github.com/CompMetEng/GECKO

Then run GECKOInstaller.install in MATLAB. The clone is the develop branch; --branch <tag> selects a release tag listed on the tags page.

Home → Add-Ons → Get Add-Ons → search "GECKO Toolbox". The Add-On installs a GitHub release; the latest, v3.2.5, is GECKO 3 (see GECKO 3 to GECKO 4). GECKO 4 is a pre-release, installed with git or from a ZIP archive.

Features#

Enzyme constraints

Convert a conventional GEM into an ecModel by bounding reaction rates with enzyme kcat and abundance.

Proteomics integration

Constrain individual enzyme usage with absolute or relative proteomics measurements.

Light ecModels

A smaller, faster-simulating ecModel variant for when full proteome coverage is not needed.

Quick start#

from geckopy import ModelAdapter, load_ec_model

# load a previously built ecModel from a project folder
adapter = ModelAdapter.from_folder("path/to/project")
model = load_ec_model("ecYeastGEM.yml", adapter)

# set growth as the objective
model.objective = "r_2111"

# run FBA -- simulation comes from cobrapy, unchanged
sol = model.optimize()
print(f"Growth rate: {sol.objective_value:.4f} h⁻¹")
% load a previously built ecModel from a project folder
ModelAdapterManager.setDefault('path/to/project');
model = loadEcModel('ecYeastGEM.yml');

% set growth as the objective
model = setParam(model, 'obj', 'r_2111', 1);

% run FBA
sol = solveLP(model);
fprintf('Growth rate: %.4f h-1\n', sol.f);

Documentation#

Workflow overview

The order of the functions from model construction to analysis, with the alternative paths, as MATLAB and Python diagrams.

Workflow overview
Upgrade a GECKO 3 project

Convert a GECKO 3 project and its ecModel to project format 4 with upgradeGECKOproject or geckopy upgrade.

Upgrade a GECKO 3 project
Installation

Set up GECKO in MATLAB or geckopy in Python, the solver and Docker for DLKcat.

Installation
GECKO and geckopy

Corresponding objects, names that differ, functions of one implementation and differences in behaviour.

GECKO and geckopy

Citing GECKO#

Publications that use GECKO cite:

Chen, Y., Gustafsson, J., Tafur Rangel, A., Anton, M., Domenzain, I., Kittikunapong, C., Li, F., Yuan, L., Nielsen, J. & Kerkhoven, E. J. Reconstruction, simulation and analysis of enzyme-constrained metabolic models using GECKO Toolbox 3.0. Nature Protocols 19, 629-667 (2024). https://doi.org/10.1038/s41596-023-00931-7

See Citations for the full list, including papers that have used this protocol.

Source code#

GECKO is publicly available under the MIT licence at CompMetEng/GECKO, archived at https://doi.org/10.5281/zenodo.7699818. geckopy, the Python port, is at CompMetEng/geckopy.

Getting help#

Report a bug or request a feature against whichever implementation it concerns; ask a usage question in either repository's Discussions.