StrainDesign

Current Release Current PyPI Version Current Anaconda Version Documentation Status Supported Python Versions GitHub Actions CI-test Status Apache 2.0 License YAPF

A COBRApy[1]-based package for computational design of metabolic networks

The comprehensive StrainDesign package for MILP-based strain design computation with the COBRApy toolbox supports MCS, MCS with nested optimization, OptKnock [2], RobustKnock [3] and OptCouple [4], GPR-rule integration, gene and reaction knockouts and additions as well as regulatory interventions. The automatic lossless network and GPR compression allows strain design computations from genome-scale metabolic networks. Supported solvers are GLPK (available from COBRApy), CPLEX, Gurobi and SCIP [5].

Installation instructions ...

Download Jupyter notebook examples ...

Network interventions Network interventions Plot animation

The default compression uses a pure Python sparse RREF implementation. A legacy Java-based compression via EFMTool [6] is optionally available (see Legacy Methods). Note that the Java backend (via JPype) is known to conflict with CPLEX’s native library when both are loaded in the same Python session. If you use CPLEX, we recommend the default Python compression backend.

Installation:

The StrainDesign package is available on pip and Anaconda. To install the latest release, run:

pip install straindesign

or

conda install -c cnapy straindesign

Developer Installation:

Download the repository and run

pip install -e .

in the main folder. Through the installation with -e, updates from a ‘git pull’ are at once available in your Python environment without the need for a reinstallation.

Apple Silicon (ARM64) note:

On macOS with Apple Silicon (M1/M2/M3), the default GLPK solver (shipped with COBRApy) may produce inaccurate results for larger metabolic models due to numerical precision differences on the ARM64 architecture. If you encounter unexpected infeasibility or incorrect flux values, we recommend installing an alternative solver:

  • Gurobi (free academic license): pip install gurobipy

  • SCIP (open source): pip install pyscipopt

Then specify the solver explicitly when calling StrainDesign functions, e.g. sd_setup = {..., 'solver': 'gurobi'} or sd_setup = {..., 'solver': 'scip'}. For standalone analysis functions: fba(model, solver='gurobi') or fva(model, solver='scip').

Examples:

Computation examples are provided in the different chapters of this documentation. The original Jupyer notebook files are located in the StrainDesign package at docs/source/examples.

How to cite:

Schneider P., Bekiaris P. S., von Kamp A., Klamt S. - StrainDesign: a comprehensive Python package for computational design of metabolic networks. Bioinformatics, btac632 (2022)

Contents:

References:

[1] Ebrahim, A., Lerman, J.A., Palsson, B.O. et al. - COBRApy: COnstraints-Based Reconstruction and Analysis for Python. BMC Syst Biol 7, 74 (2013)

[2] Burgard, A. P., Pharkya, P., & Maranas, C. D. - Optknock: a bilevel programming framework for identifying gene knockout strategies for microbial strain optimization. Biotechnology and bioengineering, 84(6), 647–657 (2003)

[3] Tepper N., Shlomi T. - Predicting metabolic engineering knockout strategies for chemical production: accounting for competing pathways, Bioinformatics. Volume 26, Issue 4, Pages 536–543 (2010)

[4] Jensen K., Broeken V., Lærke Hansen A.S., et al. - OptCouple: Joint simulation of gene knockouts, insertions and medium modifications for prediction of growth-coupled strain designs. Metabolic Engineering Communications, Volume 8 (2019)

[5] Bestuzheva K., Besançon M., Chen W.K. et al. - The SCIP Optimization Suite 8.0. Available at Optimization Online and as ZIB-Report 21-41, (2021)

[6] Marco Terzer, Jörg Stelling, Large-scale computation of elementary flux modes with bit pattern trees, Bioinformatics, Volume 24, Issue 19, (2008), Pages 2229–2235,

Indices and tables