StrainDesign
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].
Download Jupyter notebook examples ...
The default compression uses a pure Python sparse RREF implementation. A legacy Java-based compression via EFMTool [6] is optionally available (see Legacy Methods).
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 envrionment without the need for a reinstallation.
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:
- Solvers
- Network Analysis
- Plotting the flux space
- Computational strain design: Growth-coupled production (GCP)
- Minimal Cut Sets (MCS)
- Prerequisites
- Example 1: Strain designs with a minimum product (1,4-butanediol) yield (SUCP strain design)
- Example 2: Enforce product (1,4-BDO) synthesis at all growth states (dGCP strain design)
- Example 3: Suppress flux states that are optimal with respect to a pre-defined objective function (wGCP strain design)
- Example 4: Protect flux states that are optimal with respect to a pre-defined objective function (pGCP strain design)
- Example 5: All single gene knockouts that prohibit growth (synthetic lethals).
- Example 6: Genome-scale strain designs with a minimum product (1,4-butanediol) yield (SUCP strain design)
- Example 7: Suppress flux states in a toy network
- Example 8: Suppress and protect flux states in a toy network
- Theoretical background
- Multi-level strain optimization approaches
- Standalone network compression
- CNApy interface
- StrainDesign API
- straindesign
- Submodules
- straindesign.compression
- straindesign.compute_strain_designs
- straindesign.cplex_interface
- straindesign.efmtool_cmp_interface
- straindesign.glpk_interface
- straindesign.gurobi_interface
- straindesign.indicatorConstraints
- straindesign.lptools
- straindesign.names
- straindesign.networktools
- straindesign.parse_constr
- straindesign.pool
- straindesign.scip_interface
- straindesign.solver_interface
- straindesign.strainDesignMILP
- straindesign.strainDesignModule
- straindesign.strainDesignProblem
- straindesign.strainDesignSolutions
- Package Contents
- Submodules
- straindesign
- Legacy Methods
- StrainDesign Developer’s Guide
- Table of Contents
- 1. Architecture Overview
- 2. Repository Structure
- 3. Public API & Entry Points
- 4. Preprocessing Pipeline
- 5. MILP Construction
- 5.1 Overview & z-map Matrices
- 5.2 Primal LP from COBRApy Model
- 5.3 SUPPRESS Module — Farkas’ Lemma Dual
- 5.4 PROTECT Module
- 5.5 OPTKNOCK — LP Duality for Bilevel Optimization
- 5.6 ROBUSTKNOCK — Three-Level Duality
- 5.7 OPTCOUPLE — Growth Coupling Potential
- 5.8 Linking Binary Variables:
link_z - 5.9 Big-M Bounding
- 5.10 Indicator Constraints vs. Big-M
- 6. Solver Backends
- 7. Computation Approaches — SDMILP
- 8. Post-processing & Result Container
- 9. Constraint & Expression Parsing
- 10. Supporting Utilities
- 11. Known Issues, Urgent Actions & Future Work
- 12. Testing
- Quick Reference: Data Flow Through Key Functions
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,
