Current Version Build Status PyPI Version Documentation Status Join the chat at https://gitter.im/SysBioChalmers/GECKO


The GECKO toolbox is a Matlab/Python package for enhancing a Genome-scale model to account for Enzyme Constraints, using Kinetics and Omics. It is the companion software to this publication, and it has two main parts:

  • geckomat: Matlab+Python scripts to fetch online data and build/simulate enzyme-constrained models.
  • geckopy: a Python package which can be used with cobrapy to obtain a ecYeastGEM model object, optionally adjusted for provided proteomics data.

Last update: 2021-02-17

This repository is administered by Benjamin J. Sanchez (@BenjaSanchez), Division of Systems and Synthetic Biology, Department of Biology and Biological Engineering, Chalmers University of Technology.

geckomat: Building enzyme-constrained models

Required software - Python module

Required software - Matlab module


  • For creating an enzyme constrained model:
    • Update the following data files in /databases with your organism infomation:
      • databases/prot_abundance.txt: Protein abundance Data from Pax-DB. If data is not available for your organism, then a relative proteomics dataset (in molar fractions) can be used instead. The required format is a tab-separated file, named as databases/relative_proteomics.txt , with a single header line and 2 columns; the first with gene IDs and the second with the relative abundances for each protein.
      • databases/uniprot.tab: Gene-proteins data from uniprot.
      • databases/chemostatData.tsv: Chemostat data for estimating GAM (optional, called by fitGAM.m).
      • databases/manual_data.txt: Kcat data from eventual manual curations (optional, called by manualModifications.m).
    • Adapt the following functions in /geckomat to your organism:
      • geckomat/getModelParameters.m
      • geckomat/change_model/manualModifications.m
      • geckomat/limit_proteins/sumProtein.m
      • geckomat/limit_proteins/scaleBioMass.m
      • geckomat/kcat_sensitivity_analysis/changeMedia_batch.m (optional)
      • geckomat/change_model/removeIncorrectPathways.m (optional, called by manualModifications.m)
      • geckomat/limit_proteins/sumBioMass.m (optional, called by sumProtein.m & scaleBiomass.m)
    • Run geckomat/get_enzyme_data/updateDatabases.m to update ProtDatabase.mat.
    • Run geckomat/enhanceGEM.m with your metabolic model as input.
  • For performing simulations with an enzyme-constrained model: Enzyme-constrained models can be used as any other metabolic model, with toolboxes such as COBRA or RAVEN. For more information on rxn/met naming convention, see the supporting information of Sanchez et al. (2017)

geckopy: Integrating proteomic data to ecYeastGEM

If all you need is the ecYeastGEM model to use together with cobrapy you can use the geckopy Python package.

Required software

  • Python 3.6, 3.7 or 3.8
  • cobrapy


pip install geckopy


from geckopy import GeckoModel
import pandas
some_measurements = pandas.Series({'P00549': 0.1, 'P31373': 0.1, 'P31382': 0.1})
model = GeckoModel('multi-pool')


Contributions are always welcome! Please read the contributing guidelines to get started.


  • Ivan Domenzain (@IVANDOMENZAIN), Chalmers University of Technology, Gothenburg Sweden
  • Eduard Kerkhoven (@edkerk), Chalmers University of Technology, Gothenburg Sweden
  • Benjamin J. Sanchez (@BenjaSanchez), Chalmers University of Technology, Gothenburg Sweden
  • Moritz Emanuel Beber (@Midnighter), Danish Technical University, Lyngby Denmark
  • Henning Redestig (@hredestig), Danish Technical University, Lyngby Denmark
  • Cheng Zhang, Science for Life Laboratory, KTH - Royal Institute of Technology, Stockholm Sweden