Skip to content

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

Merged
edkerk merged 14 commits into
developfrom
fix/remaining-metabolites
Sep 28, 2026
Merged

edkerk merged 14 commits into
developfrom
fix/remaining-metabolites

Conversation

@edkerk

@edkerk edkerk commented Sep 27, 2026 •

Copy link
Copy Markdown
Member

Main improvements in this PR:

Metabolite identity, structure and cross-reference 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 (only annotations of acyl-CoA metabolites change).

  • L-carnitine had the D-carnitine structure and ids; it is now (R)-carnitine, and the carnitine-shuttle reactions carry the (R)-carnitine MetaNetX/ModelSEED ids.
  • Peptides: 221 peptides had D or undefined residues; they get all-L structures and ids. Three are renamed after their formula and hydrolysis products (Asp/Glu instead of Asn/Gln).
  • Statins: the statin metabolites were Ca/Na salt dimers (cerivastatin also one CH2 short); they are monomers at physiological charge, lactones neutral, glucuronides acyl glucuronides, fluvastatin 3R,5S; their reactions are rewritten to stay balanced.
  • Wrong compounds: D-xylulose 1-phosphate, 4-cis-decenoyl-CoA, (6Z,9Z)-octadecadienoyl-CoA, dihydro-LTB4 isomers, A2PE, lactosylceramide and muricholoyl-CoAs get their own structures and ids.
  • Duplicates merged: lactosylceramide (MAM03586 into MAM02328) and the Lewis b glycolipid (MAM01999 into MAM03578), with the duplicate reactions they created.
  • Shifted BiGG ids from the HMR/Recon mapping: 59 exchanges and 97 internal reactions carry their own BiGG/MetaNetX ids.

Each change was checked against the databases and reviewed independently. No reaction becomes mass- or charge-imbalanced (three statin reactions become balanced); all essential and verification tasks pass; growth is unchanged. No new ids.

Reasoning and evidence for each change, with references: #1112, #1113, #1114, #1115; also comments on #626, #964, #967, #968 and #1074.

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.
…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.
…yl-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.
- 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.
@github-actions

github-actions Bot commented Sep 27, 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 ✅.

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

Regression(s):

  • Reactions flagged by MACAW dead-end test: 1111

Improved:

  • Charge-imbalanced reactions: 172

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

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

@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 29 gene(s) directly affected plus 1783 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) ❌ 2 wrong
Other role changed (not Hart-comparable) ✅ 0
Likely noise (<3/5 lines) ℹ️ 10
No change ✅ 1800

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.

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.
@edkerk
edkerk merged commit b9ce0c9 into develop Sep 28, 2026
@edkerk
edkerk deleted the fix/remaining-metabolites branch September 28, 2026 22:48
@edkerk

edkerk commented Sep 28, 2026

Copy link
Copy Markdown
Member Author

Gene essentiality: the two wrong calls (AKR1A1, GNPAT: knockout now blocks growth in DLD1, GBM and RPE1) are not caused by this PR's curation.

  • In those context models ftINIT left out the gene-free lysoPA pool reaction MAR10035. That leaves the cytosolic DHAP route (MAR07588 GNPAT, then MAR07591 AKR1A1) as the only source of 1-acylglycerol-3P pool[c] for lipid_pool_biomass. Adding MAR10035 back restores growth.
  • This PR touches none of these reactions. The change comes from ftINIT's optimum shifting after the "Galactosyl Glucosyl Ceramide" → LacCer pool merge.
  • The underlying problem predates v2.0.1: wrong gene rules on the acyl/alkyl-DHAP steps (AKR1A1 and GNPAT instead of DHRS7B and AGPS, plus a cytosolic GNPAT copy), and no gene-linked pool-level GPAT route. Details and sources in Wrong GPRs on the DHAP route to lysophosphatidic acid and ether lipids make GNPAT and AKR1A1 falsely essential #1120.

The results files of this run are committed in e00e6c4. The run's own results commit conflicted with the relative-link change pushed while it was running, so they were rebuilt from the run's checkpoints.

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