Skip to content

fix: pre-existing reaction and GPR errors found in the curation review - #1106

Merged
edkerk merged 20 commits into
developfrom
fix/remaining-reactions
Sep 28, 2026
Merged

edkerk merged 20 commits into
developfrom
fix/remaining-reactions

Conversation

@edkerk

@edkerk edkerk commented Sep 27, 2026 •

Copy link
Copy Markdown
Member

Main improvements in this PR:

Reaction and gene errors that already existed in v2.0.1, found in the evidence review behind #1105. Builds on #1105 (base branch); it retargets to develop when #1105 is merged. Fatty-acid and acyl-CoA reactions are left to their open issues.

  • Wrong or impossible reactions deprecated: cytosolic NAD+ choline dehydrogenase and its betaine aldehyde reactions, NAD+ D-lactate dehydrogenase, CH25H 26-/20-hydroxylations, sterol-to-7alpha-hydroxy-C4 conversions without a 7alpha-hydroxylation (HSD3B7 acts only on 7alpha-hydroxylated sterols), duplicate and cytosolic CYP27A1 steps, the para-Forssman globoside (no human enzyme makes it), and a few isolated reactions.
  • Stoichiometry: hydroxypyruvate reductase 1:1 (it created NADH), NIS 2 Na+ per iodide, pendrin 1:1, H+/K+-ATPase exports its proton, PGD2 dehydrations one-way and spontaneous, CYP27A1 as a mitochondrial monooxygenase.
  • 2-hydroxyglutarate: L- and D-2HG are separate metabolites; L2HGDH (mitochondrial, ubiquinone), new D2HGDH (via ETF, new gene), PHGDH makes D-2HG, MDH/LDHA make L-2HG; OAT1, OAT4 and NaDC3 transports.
  • GPRs: genes without evidence removed (e.g. LDHD from NAD reactions, ALDH4A1 from the non-enzymatic P5C ring opening, transporters from nuclear diffusion; NUP62CL/NUP210L, then without reactions, are removed); HCl merged into chloride, hydrogen bromide renamed bromide.

Each decision was checked against literature and curated databases, then reviewed independently. No reaction becomes mass- or charge-imbalanced; all essential and verification tasks pass; growth is unchanged. New ids (MAR20204–MAR20211, gene D2HGDH) were checked against the deprecated lists. Still open (not changed here): a mitochondrial 2HG carrier (none characterised), MAR03817 (bile acid aldehyde step written as a reduction), ATP12A's Na+/K+ mode.

  • Cholesterol synthesis: shortcuts in the ER copy that bypassed HSD17B7 and MSMO1 are deprecated (MAR00117, MAR00118, MAR02302); MAR00115 GPR HSD17B7; MAR01500 and MAR02301 reduce with NADPH. The cytosolic and ER copies are to be reconciled in Cholesterol synthesis exists twice (cytosol and ER): reconcile into one pathway #1117.
  • MAR20031: blocked ER copy of 4-nitrophenol hydroxylation (MAR08034) deprecated into MAR08034, with PNP[r] and 4-nitrocatechol[r].

Reasoning and evidence for each change, with references: #1108, #1109, #1110, #1111, #1112, #1113; also comment on #528.

I hereby confirm that I have:

  • Tested my code on my own computer for running the model
  • Selected develop as a target branch
  • Any removed reactions and metabolites have been moved to the corresponding deprecated identifier lists

edkerk and others added 8 commits September 26, 2026 21:34
…from the curation review

- MAR20193: MCT1 carries succinate with 2 H+ (UniProt P53985, RHEA:29303,
  PMID:32946811); MCT4 has no succinate evidence, so the GPR is SLC16A1.
- Vesicular secretion goes back to the HMR stoichiometries (2 ATP per 3
  amines or acetylcholine, 1 ATP per 3 GABA, glycine or beta-alanine): VMAT
  exchanges 2 H+ per amine and the V-ATPase pumps about 10 H+ per 3 ATP
  (PMID:32165585), so 1 ATP per molecule overestimates the cost.
- BGT1 (SLC6A12) couples 3 Na+ and 2 Cl- (human BGT-1, PMID:7589472).
- MAR01857/MAR01861 exported bile salts straight from the peroxisome with
  2 ATP and no gene; ABCB11 uses 1 ATP (RHEA:50052/50064), as in
  MAR01870/MAR01872.
- Kept reactions record the reactions #1040 and #1041 deprecated into them.
- #1090 GPR unions: MAR01762 and MAR01605 are CYP27A1 only, MAR01765 is
  CYP7B1 (CH25H only 25-hydroxylates, CYP2E1 and CYP27A1 do not
  7alpha-hydroxylate); duplicate genes removed from joined GPRs.
- MAR08607 has the cross-references and EC of glutamine transaminase K
  (RHEA:30391, EC 2.6.1.117); HCl keeps MNXM735978; MAM03543 has the
  (2E,4Z) structure its name and DECR1 require; renamed ids are recorded in
  metRetired; MAR00751 is merged into MAR06346 with its gene; MAR00036 uses
  one 15-deoxy-PGD2.
- MAR00483 and MAR03838 carry the ids of their quinone reactions, and no
  deprecated reaction lists them as retired any more.
- MAR08433/MAR08434 carry the BiGG/MetaNetX ids of their glycine cleavage
  steps.
- LDHD, a mitochondrial FAD (R)-2-hydroxyacid dehydrogenase (UniProt Q86WU2),
  is removed from the NADH reactions MAR11476/MAR11479.
…ation review

- H2O2 crosses the plasma, ER and inner mitochondrial membranes through
  peroxiporins, as water does through aquaporins in the model: MAR08408
  AQP3/AQP8/AQP9, MAR13002 AQP11/AQP8, MAR03946 AQP8 (PMID:20724658,
  PMID:31546170, PMID:22910329); no longer flagged spontaneous. AQP11 is
  added as a gene.
- Histone import (MAR08024) is by importin-4 (PMID:36103578): GPR IPO4 (new
  gene), cytosol to nucleus only, not spontaneous.
- Prostacyclin and thromboxane A2 hydrolysis are one-way (PMID:29320,
  PMID:1059088); MAR06877 is written as the spontaneous addition of cysteine
  to dopaquinone.
- Leu-Gly-type errors of #1084: palmitoleoylcarnitine and selenohomocysteine
  get their own structures back.
- ModelSEED ids of a different reaction (proton-pumping variants on plain
  hydrolases, 18:2 on 18:3 elongation, degenerate or plant reactions) or
  compound are removed or corrected.
- #1087: unrelated ids on the NH4+/NH3 and xanthurenate protonation
  reactions removed; the respiratory chain BiGG ids NADH2_u10mi, CYOR_u10mi,
  CYOOm2i and CYOOm3i restored; the carnitine-shuttle MetaNetX ids it added
  use (R)-carnitine; ids inherited from misannotated metabolites removed;
  D-ribulose 1-phosphate ids removed from the D-xylulose 1-phosphate
  aldolase; RHEA:10160 restored on MAR09470.
- PubChem ids that #1087 took from wrong model structures (a different
  compound, D-peptides, all-trans lipids) are replaced by the correct one
  where verified, otherwise removed; 14,15-DiHETE has CHEBI:133916 and
  13(S)-HODE loses the 13R LIPID MAPS id.
…1099 ids, LDH GPRs, notes)

- Deprecated rows of MAR00449, MAR08610 and MAM01690m are complete copies of
  their last model rows.
- MAR08441 (choline to ubiquinone) loses the ids of the FAD reaction and cites
  the evidence for the quinone route (PMID:1218095, PMID:9630673,
  PMID:34428349).
- #1099: the apo H protein is named as such (CHEBI:29969); the aminomethyl H
  protein has CHEBI:83143 and KEGG C01242 and records MAM02878m as retired;
  S-propanoyldihydrolipoamide loses the protein-bound ids; MAR20168 is named
  after LIPT1 and filed under lipoic acid metabolism.
- TPO iodination (MAR06793/MAR06794) is tyrosine metabolism.
- The 40 PXMP2 pore reactions note that Pxmp2 loss only partly restricts
  peroxisomal permeability (PMID:19352492).
- MAR11476, MAR11479 and MAR05351 get every LDH with demonstrated activity
  (LDHA, LDHB, LDHC, LDHAL6A): LDH reduces the branched-chain 2-oxo acid
  (PMID:26014429) and 2-oxobutyrate (PMID:26059096); LDHAL6B has no
  demonstrated activity.
Diffusion and non-enzymatic reactions (#1101, #1103):
- 14 missed diffusion transports (CO, ethanol, methanol, acetaldehyde,
  formaldehyde) flagged spontaneous; acetone diffuses mitochondria <=>
  cytosol <=> extracellular (MAR02222, MAR08364) and is not an MCT1
  substrate (MAR08365 deprecated).
- Plasma-membrane NH3 transport also by RHBG and RHCG (PMID:24077989); the
  NH4+ Rhea id is removed from NH3 transports.
- Lipid nuclear transports named for what they move, with a note on lateral
  diffusion in the ER/nuclear envelope; flagged nuclear diffusions reversible.
- MAM01739 is 5,6-dihydroxyindole (its ChEBI, KEGG and structure); the
  reactions that used it as aminochrome now use aminochrome (MAM02160); the
  two resulting duplicates are merged into the NQO1 and GSTM2 reactions, and
  the two glutathionyl-aminochrome ids into MAM01136.
- MAR04840 (thiosulfate hydrolysis) has no chemical or enzymatic basis and is
  deprecated; H2S2O3 is merged into thiosulfate; mitochondrial TST transfers
  sulfur from GSSH to sulfite (MAR20203, RHEA:55976, PMID:25225291).
- Further non-enzymatic reactions flagged (statin lactonisation, 1-pyrroline,
  aminochrome tautomerisation, mevalonolactone, PAH diols); Pictet-Spengler
  condensations are written as condensations.

Annotations (#1084, #1086, #1087, #1090, #1033):
- Deprecated MetaNetX reaction ids replaced by their matching successor or
  removed; R_-prefixed BiGG ids removed; KEGG ids of the lipoamide
  half-reactions and chloro-compound hydrolyses restored; ModelSEED ids that
  differ in proton coupling removed.
- L-form PubChem/ChEBI ids for stereo-less amino-acid derivatives; iodide,
  ammonium and ascorbate ids of the ionic forms.
- Chemically sensible protonation sites in 11 re-protonated SMILES;
  synaptamide structure; more precise names for kept ids of #1090 merges;
  (11Z)- and (7Z)-octadecenoylcarnitine and cis-vaccenoyl-CoA structures.
- Gene rows of the Ca2+ channels, IPO4 and AQP11 completed; TRPV5 and TRPV6
  added to MAR11311 (UniProt RHEA:29671, PMIDs 11097838, 19261737).
- Genes without evidence removed from #1090 unions: CYP2J2 (MAR06700),
  ALDH3A1/ALDH9A1 (MAR01611); MAR04049 keeps CYP1A1 and CYP1B1.
- MAR01453 hydroxypyruvate reductase is 1:1 (it made reducing equivalents),
  with LDHA/LDHB (PMID:16198644).
- No cytosolic NAD+ choline dehydrogenase or NAD+ D-lactate dehydrogenase
  exists in human: MAR04696 (with the cytosolic betaine aldehyde reactions
  MAR04697/MAR04698) and MAR08512 are deprecated; LDHD is removed from NAD
  reactions; choline is oxidised by CHDH in mitochondria.
- CH25H only 25-hydroxylates cholesterol: the ER 26- and 20-hydroxylations
  MAR01785/MAR01781 (and MAR01783, which followed from 20-hydroxycholesterol)
  are deprecated.
- NIS carries 2 Na+ per iodide (MAR06989 into MAR08924); pendrin exchanges
  1 Cl- per I- (RHEA:72379); the H+/K+-ATPase exports its proton
  (MAR08892; MAR01444 merged into it).
- HCl is replaced by chloride + H+; hydrogen bromide was bromide already and
  is renamed and re-annotated.
- 15-deoxy-PGD2 forms by dehydration of PGD2 (one-way, spontaneous); the
  1-pyrroline-5-carboxylate ring openings are non-enzymatic (no ALDH4A1);
  nuclear transports of CMP-Neu5Ac, UTP and deoxycytidine are diffusion,
  like the other nucleotides (NUP62CL and NUP210L, left on no reaction, are
  removed); MAR01597 and MAR10395 are deprecated.
- CYP27A1 steps are mitochondrial monooxygenations; 15-oxo-PGE2 13-reduction
  by PTGR3 (MAR20018) is written in its direction.
- 2-hydroxyglutarate: L- (MAM03188) and D-2-hydroxyglutarate (MAM20012) are
  separate; L2HGDH oxidises L-2HG in mitochondria (ubiquinone), new D2HGDH
  (MAR20204, via ETF) oxidises D-2HG; PHGDH makes D-2HG; MDH2 and
  LDHA/MDH1 make L-2HG; OAT1/NaDC3 transports.
- MAR08773 is named for D-xylulose 1-phosphate.
…tion reactions

- No human enzyme makes beta-GalNAc-globoside (para-Forssman): B3GALNT1 only
  makes globoside and B3GALNT2 does not act on glycolipids (PMID:14724282);
  its synthesis, reversed lysosomal breakdown and transports are deprecated.
  NAGA hydrolyses alpha-GalNAc-globoside with water (RHEA:48412).
- MAR01787, MAR03259, MAR02184 and MAR02881 turned sterols without a
  7alpha-hydroxyl into 7alpha-hydroxycholest-4-en-3-one; HSD3B7 acts only on
  7alpha-hydroxylated sterols (PMID:11067870); deprecated.
- CYP27A1 is mitochondrial (UniProt Q02318): duplicate and cytosolic copies
  of its steps are merged into the mitochondrial reactions.
- 2-hydroxyglutarate efflux (MAR11733) is OAT4 exchange with estrone sulfate
  (PMID:18365245).
- PGD2 dehydrates to delta-12-PGJ2 and PGJ2 non-enzymatically (one-way;
  PMID:6578214, PMID:11786541).
- Deprecations left dead ends: the Golgi GalNAc transport MAR08193, and
  MAR01578/MAR02895 (20-hydroxycholesterol and 7alpha-hydroxycholest-4-en-3-one
  in mitochondria, each in one reaction only) are deprecated with their
  metabolites.
- OAT4 also exchanges D-2-hydroxyglutarate (MAR20211, PMID:18365245).
- The L-glycerate ids MNXR100701/HPYRR2x belong to the LDH hydroxypyruvate
  reduction (MAR01453), not to GRHPR's D-glycerate reaction (MAR08782).
- Pendrin 1:1 exchange cited (PMID:18565999); an unrelated citation removed
  from MAR11731; MAR02184 is deprecated without a merge target; chloride
  records the HMR id of the merged HCl.
@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Model quality report

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

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

Regression(s):

  • Reactions split across compartments: 27
  • Reactions flagged by MACAW dead-end test: 1107

Improved:

  • Reactions flagged as MACAW duplicates: 338
  • Charge-imbalanced reactions: 175
  • Structure vs formula/charge inconsistencies: 57

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

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

edkerk and others added 2 commits September 27, 2026 17:54
…ation into MAR08034

MAR20031 is MAR08034 (CYP2E1, RHEA:26205, MNXR102281) in the ER, where PNP
and 4-nitrocatechol have no other reaction or transport, so it cannot carry
flux. MAR08034 keeps the connected cytosolic copy and records MAR20031 in
rxnRetired; PNP[r] and 4-nitrocatechol[r] are deprecated.
@edkerk edkerk added this to the 2.1.0 milestone Sep 27, 2026
edkerk and others added 2 commits September 27, 2026 23:23
The Recon3D ER copy of the second C4 demethylation lumped it into
3-keto-4-methylzymosterol + O2 -> zymosterone (MAR00117, MAR00118) and
had a gene-less hydrolytic demethylation (MAR02302), which bypassed
HSD17B7 and MSMO1; these are deprecated and replaced by MSMO1 (MAR20217)
and NSDHL (MAR20218) steps with the new MAM00955r. MAR00115 gets HSD17B7
instead of HSD17B4, MAR01500 and MAR02301 reduce with NADPH instead of
producing it, and MAR00116 gets EC 1.14.18.9.
The MSMO1 and NSDHL steps in the ER (and 4alpha-carboxyzymosterol[r])
are dropped: the cytosolic and ER copies of the pathway are to be
reconciled into one, and cholesterol is made by the complete cytosolic
copy.
Base automatically changed from fix/review-v2.0.1-curation to develop September 28, 2026 15:33
@edkerk

edkerk commented Sep 28, 2026

Copy link
Copy Markdown
Member Author

/run gene-essentiality

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

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

Gene essentiality: effect of this change

Checked 83 gene(s) directly affected plus 2385 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) ✅ 0
Other role changed (not Hart-comparable) ℹ️ 1
Likely noise (<3/5 lines) ℹ️ 25
No change ✅ 2442

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.

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