Skip to content

feat: flag non-enzymatic reactions as spontaneous - #1103

Merged
edkerk merged 5 commits into
developfrom
feat/spontaneous-chemistry
Sep 26, 2026
Merged

edkerk merged 5 commits into
developfrom
feat/spontaneous-chemistry

Conversation

@edkerk

@edkerk edkerk commented Sep 25, 2026

Copy link
Copy Markdown
Member

Follow-up to #1101. Flags 30 gene-less reactions as spontaneous because they are non-enzymatic chemistry, so ftINIT always keeps them.

  • 21 are annotated non-enzymatic or spontaneous in KEGG: thromboxane A2 and prostacyclin hydrolysis; creatine-phosphate → creatinine; formaldehyde + THF and formaldehyde + GSH; 3-sulfinylpyruvate desulfination; 2-amino-3-oxobutanoate decarboxylation; the xanthurenate, picolinate and Δ1-piperideine-2-carboxylate cyclisations; dopachrome and cysteinyldopa; six NNK nitrosamine decomposition steps.
  • 9 are well-known non-enzymatic reactions: acetoacetate → acetone + CO2; NH4+ ⇌ NH3 [e]; triose-phosphate → methylglyoxal (2); dehydroascorbate hydrolysis; leukoaminochrome autoxidation; statin acyl-glucuronide → lactone (3).

Not in this PR: MAR03819 and MAR03820 (glutamate-5-semialdehyde ⇌ 1-pyrroline-5-carboxylate) and MAR08096 (4-hydroxyglutamate semialdehyde ⇌ 1-pyrroline-3-hydroxy-5-carboxylate) are also spontaneous ring closures, but they carry a GPR. That GPR should be removed when they are flagged.

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Model quality report

⚠️ 6 pre-existing finding(s), no regressions vs develop. Non-blocking. Gates: duplicate keys 0 ✅, growth 1.9 ✅.

Section Status
Model & network checks (18) ⚠️ 6 pre-existing
Model file & metabolic tasks (5) ✅ all pass
MEMOTE ✅ 63.8% (core subset)
Full report model_qc_summary.md

Pre-existing:

  • Cross-refs inconsistent across compartments: 2
  • Reactions flagged by MACAW dead-end test: 1142
  • Reactions flagged as MACAW duplicates: 377
  • Mass-imbalanced reactions: 71
  • Charge-imbalanced reactions: 233
  • Structure vs formula/charge inconsistencies: 316

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

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

edkerk and others added 3 commits September 25, 2026 22:44
…hemistry

# Conflicts:
#	data/testResults/README.md
#	data/testResults/memote_score.md
#	data/testResults/model_qc_comment.md
#	data/testResults/model_qc_summary.md
@edkerk

edkerk commented Sep 26, 2026

Copy link
Copy Markdown
Member Author

/run gene-essentiality

@github-actions

Copy link
Copy Markdown
Contributor

🧬 Started gene-essentiality on feat/spontaneous-chemistry (this takes a few hours). Track it in the Actions tab.

@github-actions

Copy link
Copy Markdown
Contributor

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

Gene essentiality: effect of this change

Checked 0 gene(s) directly affected plus 0 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) ✅ 0
Likely noise (<3/5 lines) ✅ 0
No change ✅ 0

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: in the case of multiple test runs, this post is edited.

@edkerk
edkerk merged commit 4eae0bd into develop Sep 26, 2026
@edkerk
edkerk deleted the feat/spontaneous-chemistry branch September 26, 2026 07:10
@edkerk edkerk added this to the 2.1.0 milestone Sep 26, 2026
edkerk added a commit that referenced this pull request Sep 26, 2026
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.
@edkerk

edkerk commented Sep 27, 2026 •

Copy link
Copy Markdown
Member Author

Corrections in #1105 to the reactions flagged here. The reasoning and evidence for the flags themselves are documented in #1112.

Directions. A flagged reaction is kept in every ftINIT model, so a non-enzymatic reaction must run only in its chemical direction.

Change Model entities Evidence
Made one-way. Before: 6-oxo-PGF1a <=> H2O + PGI2; after: PGI2 + H2O => 6-oxo-PGF1a, renamed "prostaglandin I2 hydrolysis" MAR01310 [r], MAR01318 [c] PGI2 hydrolysis is irreversible (PMID 29320). Because 6-oxo-PGF1a and TXB2 can be taken up, the reversible form let the model make PGI2 without PTGIS and TXA2 without TBXAS1. The flag then forced this into every ftINIT model.
Made one-way, TXA2 + H2O => TXB2 (lb 0) MAR01315 [r], MAR10406 [c] PMID 1059088.
Written in its chemical direction. Before: 5-S-cysteinyldopa <=> cysteine + dopaquinone; after: cysteine + L-dopaquinone => 5-S-cysteinyldopa, renamed MAR06877 Fast non-enzymatic addition of cysteine to dopaquinone, PMID 10952395.

Acetoacetate decarboxylation (MAR04464). EC 4.1.1.4 is removed because the only enzymes for RHEA:19729 are bacterial, and a note is added. A weak activity attributed to serum albumin (PMID 4624981, PMID 963888) is mentioned in the note.

Reactions that were already in v2.0.1 and are newly flagged or corrected in #1105 (aminochrome, Pictet-Spengler condensations, bromobenzene, statin lactonisation, 1-pyrroline, mevalonolactone, thiosulfate) are in #1112.

edkerk added a commit that referenced this pull request Sep 28, 2026
)

* fix: corrections to #1039, #1041, #1040, #1090, #1028, #1099 and #1038 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.

* fix: corrections to #1101, #1103, #1084, #1086 and #1087 from the curation 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.

* fix: remaining corrections from the curation review (deprecated rows, #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.

* fix: remaining low-priority corrections from the curation review

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.

* chore: update model QC results [skip ci]

* chore: update model QC results [skip ci]

* fix: corrections to #1043, #1088, #1093-#1096 from an evidence review

Retired pointers for merged ids (MAR09553, MAM02768c, MAM20076n, the
cytosolic tocopherol copies); I-antigen MAM03584g merged into MAM02186g
and MAR08317 into MAR00082 with B4GALT1-4; PTGS peroxidase steps
MAR01307/MAR01392/MAR01393 use NADPH and are irreversible; tocopherol
side-chain beta-oxidation gets ACAA2, and MAR06435/MAR06451 DECR1 and
ECI1/ECI2 with separate NADPH and NAD+; CYP3A4 on MAR08034; references
and notes for MAR03859, MAR04280, MAR20195, MAR20021-MAR20029 and the
CYP4F2 13'-carboxylation steps.

* fix: corrections to #1044 and #1089 from an evidence review

Retinoate 4-hydroxylation and 4-oxo GPRs follow single-isoform human
data (CYP2C9, CYP2B6, CYP2C19, CYP3A5, CYP26A1 added where shown), Rhea
ids for the 9-cis steps, lumped MetaNetX ids removed from the split
hydroxylations, ids for 4-hydroxy-9-cis-retinoate; retired pointers for
the galactose merges and UniProt-backed references for GALK1, GALT and
UGP2 on galactose-1-phosphate.

* chore: update model QC results [skip ci]

* feat: add CYP26C1 to the retinoate 4-hydroxylation and 4-oxo reactions

UniProt Q6V0L0 gives human CYP26C1 the all-trans and 9-cis 4-hydroxylations
and 4-oxo steps (RHEA:51984, 75851, 75847, 75855; PMID:14532297); it also
4-hydroxylates 13-cis-retinoate (PMID:29476041).

* chore: update model QC results [skip ci]

* chore: add gene essentiality test result [skip ci]

* chore: add gene essentiality test result [skip ci]

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
edkerk added a commit that referenced this pull request Sep 28, 2026
#1106)

* fix: corrections to #1039, #1041, #1040, #1090, #1028, #1099 and #1038 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.

* fix: corrections to #1101, #1103, #1084, #1086 and #1087 from the curation 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.

* fix: remaining corrections from the curation review (deprecated rows, #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.

* fix: remaining low-priority corrections from the curation review

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.

* chore: update model QC results [skip ci]

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

- 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.

* fix: bile acid, globoside, 2-hydroxyglutarate export and PGD2 dehydration 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).

* fix: review corrections on the reaction branch

- 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.

* chore: update model QC results [skip ci]

* fix: MAR01453 lists its BiGG id once

* chore: update model QC results [skip ci]

* fix: deprecate the blocked ER copy MAR20031 of 4-nitrophenol hydroxylation 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.

* chore: update model QC results [skip ci]

* fix: cholesterol synthesis goes through HSD17B7 and MSMO1 in the ER copy

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.

* chore: update model QC results [skip ci]

* fix: do not complete the ER copy of cholesterol synthesis

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.

* chore: update model QC results [skip ci]

* chore: update model QC results [skip ci]

* chore: add gene essentiality test result [skip ci]

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
edkerk added a commit that referenced this pull request Sep 28, 2026
…errors (#1107)

* fix: corrections to #1039, #1041, #1040, #1090, #1028, #1099 and #1038 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.

* fix: corrections to #1101, #1103, #1084, #1086 and #1087 from the curation 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.

* fix: remaining corrections from the curation review (deprecated rows, #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.

* fix: remaining low-priority corrections from the curation review

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.

* chore: update model QC results [skip ci]

* fix: pre-existing metabolite identity, structure and cross-reference errors

- L-carnitine (MAM02348) had the D-carnitine structure and ids in every field
  but HMDB: now (R)-carnitine (CHEBI:16347, C00318, MNXM1105737, cpd00266,
  PubChem 10917); the carnitine-shuttle reactions carry the (R)-carnitine
  MetaNetX and ModelSEED ids.
- Peptides: 221 peptide metabolites had D or undefined residues; they get
  all-L structures, and all-L PubChem/MetaNetX ids replace the D ones.
- Statins: the rosuvastatin, pitavastatin, pravastatin, fluvastatin and
  cerivastatin metabolites were Ca/Na salt dimers (cerivastatin also one CH2
  short); they are monomers at physiological charge, and their reactions are
  rewritten to stay balanced; statin acyl glucuronide lactonisation by
  UGT1A1/UGT1A3/UGT2B7 (PMID:26412035).
- D-xylulose 1-phosphate, beta-GalNAc-globoside (penicillin G ids removed),
  4-cis-decenoyl-CoA, (6Z,9Z)-octadecadienoyl-CoA, 10,11-dihydro-12-epi-LTB4,
  A2PE, lactosylceramide and alpha-/omega-muricholoyl-CoA get their own
  structures and cross-references; the reaction ids that followed the wrong
  compound are corrected or removed; KHK (MAR08772) has the D-xylulose
  MetaNetX id.
- Shifted BiGG ids from the HMR/Recon mapping: 59 exchanges carry their own
  EX_ id, and 97 internal reactions the matching BiGG and MetaNetX ids.

* fix: merge duplicate lactosylceramide and Leb glycolipid ids; linoleoyl-CoA, dihydro-LTB4 and peptide names

- MAM03586 is merged into MAM02328 (lactosylceramide), which now carries
  lactosylceramide's BiGG/MetaNetX ids instead of digalactosylceramide's; the
  six Recon reactions that became identical to HMR ones are merged into them,
  and the GLA/PSAP globotriaosylceramide hydrolysis (MAR00804) gets its genes.
- MAM01999 'glycolipid' is the Lewis b glycolipid (two fucoses, made by FUT3)
  and is merged into MAM03578; MAR08287 makes Lewis y (FUT9); duplicate
  reactions merged; MAR08271 is FUT3 or FUT5.
- Linoleoyl-CoA has the (9Z,12Z) PubChem id; 10,11-dihydro-LTB4 and its CoA
  ester the 5S,12S structure and ids (CHEBI:133324); MAM00091m's metRetired
  is well formed.
- Asp-Ala-Arg, Glu-Arg-Leu and Glu-Asn-Leu are named by their formula, BiGG
  ids and hydrolysis products.

* fix: review corrections on the metabolite branch

- MAR02660/MAR02662 unchanged (acyl-CoA reactions follow their own issues).
- Cerivastatin M-22 and M-31 are the neutral lactones of M-1 and M-23, and
  the M-1/M-23 glucuronides are acyl glucuronides (only these lactonise); the
  lactonisation and hydrolysis reactions no longer use SAM/SAH to balance.
- The fluvastatin acids have the 3R,5S configuration of fluvastatin and its
  lactone (PubChem 37888681).
- MetaNetX ids of other isomers removed (MAR00150; the 10,11-dihydro-LTB4
  reactions; two polyglutamyl-folates); MAR00766 duplicates MAR12035 in
  reverse and is merged into it; exchange names follow the renamed peptides;
  FUT5 evidence cited on MAR08271.

* chore: update model QC results [skip ci]

* chore: update model QC results [skip ci]

* ci: relative links in the committed test-result reports

model_qc_summary.md and gene-essential_summary.md sit in data/testResults
next to the README and the CSVs they link to, so they now link relatively.
The absolute links pinned the pull-request branch and broke once it was
deleted after merging. The posted comments keep absolute links, which they
need.

* chore: relative links in the committed test-result reports

* chore: add gene essentiality test result [skip ci]
@edkerk edkerk mentioned this pull request Sep 29, 2026
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