Skip to content

fix: Human-GEM errors that the animal GEMs inherit - #1168

Merged
edkerk merged 21 commits into
developfrom
feat/animal-gem
Oct 30, 2026
Merged

edkerk merged 21 commits into
developfrom
feat/animal-gem

Conversation

@edkerk

@edkerk edkerk commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Closes #1155, closes #1156, closes #1147, closes #1150, closes #1151, closes #1152, closes #1159, closes #1167. They are grouped because each one affects the animal GEMs built from Human-GEM (#421); #1167 lists what is left for later.

Part of #1149 (MAR01506, LRAT, is left), #1130 (the GPRs of the third and fourth β-oxidation steps), #1120 (MAR07597) and #1118 (the cofactor pool of MAR00021, #1140).

Based on develop 87fa3a1, which includes #1162. The trimethyllysine-release change of #1157 is therefore no longer part of this PR.

Reactions

Removed (deprecated)

Reactions Change Issue
MAR06609, MAR06610, MAR06611 urate oxidase, 5-hydroxyisourate hydrolysis, allantoinase: deprecated #1147
MAR00040, MAR01724, MAR11357, MAR06783, MAR06784, MAR06785, MAR06786 the tyrosine → 4-coumarate route to the CoQ head group and its cytosolic copy: deprecated #1150
MAR07597 alkyl-DHAP reduction lumped with an acylation by a free fatty acid: deprecated #1120
MAR02314, MAR03437, MAR03438, MAR03439, MAR03483 n-3/n-6 interconversions and the reactions that served them alone: deprecated #1151
MAR00023, MAR00033, MAR00034 vitamin A, D and E catabolite lumps of MAR00022: deprecated #1118
MAR06907 COQ6 hydroxylation of the phenol after the COQ4 decarboxylation: merged into MAR06906, deprecated #1149
MAR03104 (S)-3-hydroxybutanoyl-CoA dehydrogenation in [x]; no reaction makes its substrate MAM00173x since #929: deprecated, with MAM00173x #1159

Added

Reaction Equation GPR Issue
MAR20218 4-hydroxyphenylpyruvate[m] + O2[m] => (S)-4-hydroxymandelate[m] + CO2[m] HPDL #1150
MAR20219 (S)-4-hydroxymandelate[m] + H2O[m] + 2 NAD+[m] => 4-hydroxybenzoate[m] + CO2[m] + 2 NADH[m] + 2 H+[m] (lumped) no gene #1150
MAR20220 1-alkyl-sn-glycerol 3-phosphate[c] + acyl-CoA pool[c] => 2-acyl-1-alkyl-sn-glycero-3-phosphate[c] + CoA[c] no gene #1120

Equations, bounds, names and ECs

Reactions Current New Issue
MAR08615 cob(II)alamin[m] + NADH[m] <=> cob(I)alamin[m] + H+[m] + NAD+[m], named as the adenosyltransferase 2 cob(II)alamin[m] + NADPH[m] => 2 cob(I)alamin[m] + H+[m] + NADP+[m], "cob(II)alamin reduction" #1152
MAR08616 reversible one-way #1156
MAR08613 NADH NADPH #1149
MAR00022 lipoyl-lysine and 0.1 of each vitamin catabolite lump; "[protein]-N6-(lipoyl)lysine reduction" lipoic acid, no lumps; "Cofactors and vitamins pool for MAR00021" #1118
MAR00968, MAR02397, MAR02399, MAR02497, MAR02499, MAR03415, MAR03417, MAR03440, MAR03474, MAR03479 n-6 and n-3 isomers mixed; (3S) intermediates of the ER elongation the isomer of each series; (3R) intermediates #1151
MAR03412, MAR03415, MAR03417, MAR03418, MAR03440, MAR03442, MAR03474, MAR03479 ELOVL1 names and ECs of other steps; MAR03417, MAR03418, MAR03474, MAR03479 reversible the name and EC of their step (2.3.1.199, 1.1.1.330, 4.2.1.134, 1.3.1.93); one-way #1151
MAR02403 "... hydroxylation", no EC acyl-CoA 6-desaturase, EC 1.14.19.3 #1149
MAR06906 decarboxylation, EC 4.1.1.- oxidative decarboxylation with O2 and NADPH (with the hydroxylation of MAR06907), EC 4.1.1.130 #1149
MAR03460 EC 5.3.3.8 EC 5.3.3.21 #1159
MAR01694 thiolase ECs 2.3.1.176, 2.3.1.16 none #875
MAR10003 EC 3.1.1.4 none #1147
MAR03383 reversible one-way #1120

GPRs (295 reactions)

Reactions Current New Issue
MAR04072, MAR08640, MAR08641 with TRDMT1 and DNMT3L; DNMT1 needs DNMT3B DNMT1 or DNMT3A or DNMT3B #1155
MAR08614; MAR08615, MAR08616 MMAA; MMAB or MMAA no gene; MMAB #1156
MAR07601; MAR06906; MAR05363; MAR02403; MAR08613 no gene PEDS1; COQ4; PRUNE1; FADS2; MTRR #1149
276 β-oxidation reactions alternative enzymes joined with AND; mitochondrial genes on peroxisomal steps; MYO5B on 39 rules by step and chain length, e.g. HSD17B4 or EHHADH, ACAA1 or SCP2, (HADHA and HADHB) or HADH or HSD17B10, ACOX2 or ACOX3 #1130, #1159, #875
8 ER elongation steps ELOVL1 HSD17B12, HACD1–4, TECR, or the ELOVL set of the condensation #1151

Totals: 21 reactions removed, 3 added, 295 GPRs changed, 14 equations corrected.

Metabolites

Metabolites Change Issue
MAM00173x deprecated (substrate of MAR03104 only) #1159
MAM00982c, MAM00996c, MAM01004m, MAM01104c deprecated (no reaction left) #1150, #1147
MAM00853c, MAM00853r deprecated; the reactions use MAM00902 #1151
MAM03139c, MAM03140c, MAM03143c vitamin A, D and E derivative pools, deprecated #1118
MAM00902c taken back from the deprecated list #1151
MAM00902r, MAM20093c, MAM20093r added #1151
MAM20092m added ((S)-4-hydroxymandelate) #1150

Genes

Gene Change Issue
TRDMT1, DNMT3L removed #1155
MMAA removed #1156
MYO5B removed #1159
PEDS1, COQ4 added #1149
HPDL added #1150

Tasks and code

  • qcModelChecks.py: reaction and metabolite numbers 15000 to 19999 (MAR15000-MAR19999, MAM15000-MAM19999) belong to the animal GEMs, which number their own reactions and metabolites there. The Model QC workflow fails when the model, its annotation tables or the deprecated lists use one, and lists it in qc_reserved_identifiers.csv. model/README.md describes the numbering and the reserved block, and a comment in generateAnimalGEM.py names the block.
  • metabolicTasks_Essential.txt: the IC, BS and SU tasks may exchange H+ (Essential tasks allow no proton exchange, so 28 of them pass only through charge-unbalanced reactions #1152).
  • metabolicTasks_CellfieConsensus.txt: task 178 follows the new CoQ head-group route (The CoQ head group is made through a plant 4-coumarate route instead of HPDL #1150).
  • diffGeneEssentiality.py: a gene that is in one side's context model only is scored in that line; matrices older than their model are not compared; no shared cell line raises an error; a model_membership column. Develop's markers for genes that enter or leave the model are kept. Genes that leave or enter the model now get report rows of their own, so their label no longer reads as if it covered the other genes in the row.

Maintainers: after merge, credit new contributors by commenting @all-contributors please add @username for <type> on this PR or the linked issue (see CONTRIBUTING).

edkerk added 14 commits October 19, 2026 00:04
…ity diff

A gene outside a cell line's context model has no knockout effect there, but
the diff skipped every line where the gene was in the context model on one
side only. A change that adds a gene to a GPR, or takes it out, was therefore
reported as unchanged. Such lines are now compared, with the gene
non-essential on the side where it is absent. The CSV gains a
model_membership column for genes new to or removed from the model. A gene
missing from a matrix that is older than its model is not compared, and
matrices without a shared cell line are refused.

This also corrects the grouping of the report: genes removed from or added to
the model get rows of their own instead of sharing a row with genes that stay,
where the membership label of one gene read as applying to the whole row.
TRDMT1 methylates tRNA, and DNMT3L is catalytically inactive; DNMT1 and DNMT3B
do not need each other. Both genes leave the model.
…1156)

MMAA is the G-protein chaperone of MMUT. MAR08614 (cobalamin import into
mitochondria) has no known transporter; MAR08615 and MAR08616 are MMAB's.
MAR08616 is made irreversible. MMAA leaves the model.
PEDS1 (plasmanylethanolamine desaturase, MAR07601), COQ4 (MAR06906, EC
4.1.1.130), PRUNE1 (triphosphate hydrolysis, MAR05363), FADS2 (24:4n-6
desaturation, MAR02403, renamed), and MMACHC or MTRR for aquacobalamin
reduction (MAR08613, now NADPH, with a note). PEDS1, COQ4 and MMACHC are new
genes.
#1159, #875)

274 mitochondrial and peroxisomal beta-oxidation reactions: isoenzymes become
alternatives (or), chain-length and substrate-class specificity follows the
literature, and MYO5B, a myosin, leaves every thiolase GPR and the model.
The bile-acid transport MAR01694 loses its thiolase GPR and EC codes, the
2-methyl-branched oxidase steps MAR03498 and MAR03512 get ACOX2 or ACOX3, and
MAR03460 (ECH1) gets EC 5.3.3.21.
…antoinase (#1147)

Removes MAR06611, MAR06610 and MAR06609, deprecates 5-hydroxyisourate, and
drops EC 3.1.1.4 from the allantoin transport MAR10003.
…1150)

Adds 4-hydroxymandelate synthase (HPDL, MAR20218), (S)-4-hydroxymandelate and
a gene-free lumped step to 4-hydroxybenzoate (MAR20219). Removes the tyrosine
-> 4-coumarate steps, which have no human enzymes, and the cytosolic copy of
the coumarate route; the mitochondrial route from dietary 4-coumarate stays,
gene-free. CellFie task 178 (ubiquinone from tyrosine) follows the new route.
)

MAR07597 lumped alkyl-DHAP reduction with an acylation by the free fatty acid
pool, without the cost of acyl-CoA. It is replaced by MAR20220 on the acyl-CoA
pool; the reduction is MAR03354. The phosphatase MAR03383 becomes
irreversible: run backwards it phosphorylated 1-alkyl-2-acetylglycerol with
free phosphate, a cycle that MAR20220 would otherwise close.
Removes MAR02314, MAR03437, MAR03438, MAR03439 and MAR03483, corrects the
isomers in MAR00968, MAR02397, MAR02399, MAR02497, MAR02499, MAR03415, MAR03417,
MAR03440, MAR03474 and MAR03479, takes MAM00902 back from the deprecated list
and adds MAM20093; MAR03440 consumes the proton of its twin MAR02395, and
MAM00853x gets the n-6 structure its name describes. The eight ER elongation
steps get the name, EC, GPR, direction and subsystem of their enzymes (ELOVL2,
HSD17B12, HACD1-4, TECR). Rhea and MetaNetX ids follow the corrected
reactions.
MAR08615 becomes 2 cob(II)alamin + NADPH => 2 cob(I)alamin + NADP+ + H+, the
reduction of MMAB-bound cob(II)alamin within EC 2.5.1.17; NADPH, as the
FDXR-FDX1 system that supplies the electrons in vitro. It was written as
cob(II)alamin + NADH <=> cob(I)alamin + H+ + NAD+, which does not balance.
Without H+ exchange, 27 of these 47 tasks passed only through
charge-unbalanced reactions. The ER tasks keep their closed proton balance.
…olites (#1118, #1140)

MAR00022 takes lipoic acid instead of [protein]-N6-(lipoyl)lysine, which
nothing makes, so MAR00021 is feasible again; it is renamed from
"[protein]-N6-(lipoyl)lysine reduction" to "Cofactors and vitamins pool for
MAR00021". The vitamin A, D and E derivative pools and their pool reactions
are removed.
(S)-3-hydroxybutanoyl-CoA[x] (MAM00173x) occurs in MAR03104 only, so the
peroxisomal dehydrogenase could never carry flux. Both are deprecated.
@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Model quality report

❌ 1 regression(s) vs develop. Review the row(s) below. Gates: duplicate keys 0 ✅, growth 1.9 ✅, direction alarms 0 ✅.

Section Status
Model & network checks (23) ❌ 1 regression(s)
Model file & metabolic tasks (6) ✅ all pass
MEMOTE ✅ 63.8% (core subset)
Full report model_qc_summary.md

Regression(s):

  • Reactions flagged by MACAW dead-end test: 1396

Improved:

  • Mass-imbalanced reactions: 66
  • Charge-imbalanced reactions: 149

✅ unchanged · ✨ improved vs develop · ⚠️ pre-existing, non-blocking · ❌ regression

Reaction directions: the alarm and the warning catch only directions that thermodynamics makes very unlikely. A reaction without an alarm or warning is not thereby shown to have the right reversibility.

Full workflow run · this comment is edited as results come in

@edkerk

edkerk commented Oct 20, 2026 •

Copy link
Copy Markdown
Member Author

Gene essentiality was run on this pull request via GH Actions.

Gene essentiality: effect of this change

Checked 53 gene(s) directly affected plus 2230 more that share a metabolite with one of them.

A gene counts as changed below only if the flip agrees in direction across at least 3 of the 5 cell-line models; fewer than that is grouped as likely noise from ftINIT's run-to-run variability instead.

Category Status
Growth effect changed (vs Hart 2015) ❌ 5 wrong · ⚠️ 4 mixed · ✨ 3 correct
Other role changed (not Hart-comparable) ℹ️ 10
Likely noise (<3/5 lines) ℹ️ 20
No change ✅ 2241

Full detail: gene-essential_summary.md.

✅ unchanged · ✨ correct vs Hart 2015 · ❌ wrong vs Hart 2015 · ℹ️ not comparable to Hart 2015

The unscoped, every-gene matrix behind the table above is committed to gene-essential.csv.

Note: each run posts its results in place of its own start notice; earlier results link here.

github-actions Bot and others added 6 commits October 20, 2026 19:29
The animal GEMs number their own reactions and metabolites in
MAR15000-MAR19999 and MAM15000-MAM19999. qcModelChecks.py now fails if
the model, its annotation tables or the deprecated lists use that block,
and lists the identifiers in qc_reserved_identifiers.csv. The gate is
silent while clean: buildReport.py shows its row only when it finds
something.
MMACHC reduces aquacobalamin with glutathione and only without oxygen (https://doi.org/10.1074/jbc.M114.567339), and no measurement shows it with NADPH. `MAR08613` keeps MTRR, which does reduce it with NADPH (https://doi.org/10.1073/pnas.0603694103). MMACHC leaves the model, as no other reaction uses it.

#1149
…ve reaction (#1149)

MAR06906 now converts 3-methoxy-4-hydroxy-5-all-trans-decaprenylbenzoate to
2-methoxy-6-all trans-decaprenyl-2-methoxy-1,4-benzoquinol with O2 and NADPH
under COQ4. MAR06907, which assigned COQ6 to the C1 hydroxylation, is
deprecated.
@edkerk

edkerk commented Oct 21, 2026 •

Copy link
Copy Markdown
Member Author

The gene-essentiality run on this pull request lists five genes as wrong against Hart 2015 (FADS2, H6PD, MMAB, PRUNE1, HPDL) and four as mixed (AKR1A1, GNPAT, SLC22A5, COQ4). None of these is a regression that should block the merge:

Gene Result Cause
FADS2, PRUNE1, MMAB essential in 5/5 lines The biomass reaction MAR10065 contains tetrahydrobiopterin and adenosylcobalamin, and the lipid pools need very-long-chain PUFA, which the cells must make from C18 precursors on the medium. The GPR changes of #1149 and #1156 only attach the correct gene to a step that was already required. Fixed with the biomass redefinition in #1118.
HPDL essential in 5/5 lines HPDL is added as the only source of the CoQ head group (#1150). Cultured cells keep some CoQ labelling without HPDL (Banh 2021), through a route whose enzymes are unknown. No route is guessed, so HPDL is an expected false essential gene until the route is known; this stays open under #1150. The previous model did not need HPDL at all, because gene-less plant-route reactions supplied 4-hydroxybenzoate.
H6PD essential in 5/5 lines The gene-free ER NADPH shuttle MAR07778/MAR07780 is absent from these context models. This explanation is not tested, and no issue covers it yet.
COQ4 added; blocks growth in 5/5 lines COQ4 had no GPR entry before, so the gene is new to the model and the call is mixed against Hart. MAR06906 is now one oxidative decarboxylation under COQ4 (Pelosi 2024); the run predates this change. Nothing to fix.
AKR1A1, GNPAT, SLC22A5 no longer essential in 3/5 lines Mixed across lines, no consistent direction against Hart. AKR1A1 and GNPAT belong to the ether-lipid route of #1120, whose main proposals are still open; no issue covers SLC22A5.

The essential calls of FADS2, PRUNE1, MMAB, HPDL and H6PD are false positives that follow from biomass content and from an unknown alternative CoQ route. They are listed under "Expected effect" in #1167 and do not indicate an error in the changed GPRs.

@edkerk
edkerk merged commit 38567ab into develop Oct 30, 2026
@edkerk
edkerk deleted the feat/animal-gem branch October 30, 2026 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant