Repository navigation
Phase 1: Python package skeleton on the GECKO 4 ecModel - #3
Merged
Merged
Conversation
The GECKO 2 pipeline, the models it built and the results it produced are kept for reference. The Python pipeline replacing it needs the top-level code/, models/ and results/ paths.
Both from GECKO develop4 at cbc4ca33, built with GECKO 4.0.0b1 and RAVEN 3.0.0b1. PROVENANCE.md records the source commit and blob hash, and the two model properties the pipeline has to override: NGAM ships pinned at 0.7 and the protein pool at the distributed default.
config.py names the reaction IDs and parses the measured conditions, including the per-condition replicate column prefixes -- hGR's columns are named CN_hGR_*, unlike every other condition. biomass.py supplies the yeast-GEM component layout that raven-toolbox's sumBioMass and scaleBioMass arithmetic needs, plus the polymerization costs.
The model tests pin what the pipeline relies on -- enzyme count, usage reactions drawing from the pool, molecular weights in Da, the pinned NGAM -- so that replacing the model file cannot change them silently.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First of a staggered series porting this analysis from GECKO 2 / MATLAB to
GECKO 4 / Python. This PR lands no analysis yet — only the foundation the
later phases build on — so it is safe to read quickly.
What changed
legacy_matlab/— the MATLAB pipeline, its models and its results movethere wholesale. Nothing is deleted; every path is a rename.
models/— the GECKO 4ecYeastGEM.ymland the conventionalyeast-GEM.ymlit derives from, both from GECKOdevelop4atcbc4ca33.models/PROVENANCE.mdrecords the source commit, the blob hash and how toverify it.
src/overflow/—config.py(paths, reaction IDs, parsed conditions),adapter.py(geckopy adapter, model loading),biomass.py(the yeast-GEMcomponent layout raven-toolbox needs).
tests/— 24 tests, all passing.Feasibility gate
Before writing any of this I checked that the GECKO 4 model can support these
chemostats at all, by building each condition end to end. All five reach their
measured dilution rate:
Two findings from that gate that shape the later phases:
conventional GEM reaches 0.1001 at the measured glucose uptake — there is
no slack. Anything that costs the model a little carbon makes the condition
infeasible rather than merely slower.
flexibilize_enz_concsis not sufficient, stalling at 0.056 forCN4. What works is the original's own scheme: a per-enzyme minimum-usage
pre-pass followed by iterative freeing of the top limiting enzyme. Phase 3
ports that rather than substituting geckopy's.
Model coverage against the GECKO 2 model
The swap is close to lossless: 813 of the old model's 816 enzymes are retained,
331 are new, and measured proteins that are model enzymes go from 590 to 695.
Only 2 measured enzymes are lost.
Notes for review
sigma = 1inmodel_adapter.toml, matching the original'sgetModelParameters.m; the enzyme constraints come from measurements ratherthan an assumed saturation.
data/andmodels/relative to the repository root, soit is meant to be used from a checkout rather than installed standalone.