Skip to content

fix: GPRs and equation of ACOX2, carnitine, FADS and PRUNE1 reactions - #1183

Open
edkerk wants to merge 14 commits into
developfrom
fix/acox2-carnitine-fads-prune1
Open

edkerk wants to merge 14 commits into
developfrom
fix/acox2-carnitine-fads-prune1

Conversation

@edkerk

@edkerk edkerk commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Closes #1182.

Reactions Change Current New Support
MAR01638 gene and equation ACOX3 or ACOX1; 25(S)THCA-CoA + FADH2 + O2 => ...-24-enoyl-CoA + FAD + 2 H2O ACOX2; 25(S)THCA-CoA + FAD => ...-24-enoyl-CoA + FADH2 strong
MAR20114 name MAR20014 FADH2:oxygen oxidoreductase
30 mitochondrial acylcarnitine reactions, C16 to C20 gene CRAT or CPT2 CPT2 moderate
3 mitochondrial, C2 to C4 (MAR00161, MAR02593, MAR02598) gene CRAT or CPT2 CRAT moderate
12 mitochondrial, C21 and C22 gene CRAT or CPT2 CPT2 weak
3 mitochondrial, C24 and C26 (MAR01439, MAR01481, MAR01556) gene CPT2 no gene moderate
52 ER, C16 and longer gene CRAT no gene moderate to weak
MAR02359, MAR02368, MAR02472, MAR02505, MAR00152 gene FADS2 or FADS1 or FADS3 (MAR00152: FADS2 or FADS1) FADS2 moderate
MAR02365, MAR02380, MAR02484 gene FADS2 or FADS1 or FADS3 FADS1 moderate
MAR03975, MAR03977, MAR03979, MAR06912, MAR07794 gene LHPP or PPA2 or PRUNE1 or PPA1 LHPP or PPA2 or PPA1 moderate
  • FADS3 is removed from model/Human-GEM.yml and model/genes.tsv, because no reaction uses it any more.
  • doi: references are added to the changed reactions that a registry row supports.
  • data/modelCuration/ holds the per-reaction tables (acox2BileAcidOxidase.tsv, carnitineAcyltransferaseGprs.tsv, fattyAcidDesaturaseGprs.tsv, diphosphataseGprs.tsv), applied with code/modelCuration/applyCurationTable.py, which now also changes gene rules, equations and references and deletes genes that no reaction uses.
  • literature/registry.tsv: 14 rows added for the papers behind these changes, 62 rows that stated only the abstract now state the full text, and the rows of Violante 2013, de Antueno 2001, Ferdinandusse 2018, Kiema 2014 and Tammenkoski 2008 carry the limits of the sources.
  • code/test/buildReport.py: the note on the reliability of the reaction-direction rows appears in model_qc_summary.md only, no longer in the pull-request comment, and is reworded.

The table fields now include gene_reaction_rule (written with gene symbols), metabolites, references and name of reactions, and a gene row deletes a gene that no reaction uses.

#1182
Human liver oxidises trihydroxycoprostanoyl-CoA with ACOX2 only, and acyl-CoA oxidases form H2O2 from O2, not water. MAR20114 gets a descriptive name.

Generated by `code/modelCuration/applyCurationTable.py --table data/modelCuration/acox2BileAcidOxidase.tsv`.
#1182
CPT2 is active on C8 to C20 and not on C2 to C6 or C24 and longer, and CRAT is not shown on the ER reactions, where the luminal enzyme has no identified gene.

Generated by `code/modelCuration/applyCurationTable.py --table data/modelCuration/carnitineAcyltransferaseGprs.tsv`.
#1182
FADS1 is the delta-5 and FADS2 the delta-6 desaturase; FADS3 has no ascribed desaturase activity and is removed.

Generated by `code/modelCuration/applyCurationTable.py --table data/modelCuration/fattyAcidDesaturaseGprs.tsv`.
#1182
Recombinant PRUNE1 does not hydrolyse pyrophosphate.

Generated by `code/modelCuration/applyCurationTable.py --table data/modelCuration/diphosphataseGprs.tsv`.
#1182
…E1 curation

Thirteen rows are added, 62 rows that stated the abstract now state the full text, and the rows of Violante 2013, de Antueno 2001, Ferdinandusse 2018, Kiema 2014 and Tammenkoski 2008 carry the limits of the sources.

#1182
@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Model quality report

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

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

Pre-existing:

  • Reaction directions: warning: 70
  • Mass-imbalanced reactions: 65
  • Charge-imbalanced reactions: 145
  • Structure vs formula/charge inconsistencies: 51
  • Reactions flagged as MACAW duplicates: 338
  • Reactions flagged by MACAW dead-end test: 1380
  • Reactions split across compartments: 26

✅ 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 November 1, 2026 00:40
The trihydroxycoprostanoyl-CoA oxidase oxidises the 25S and not the 25R diastereoisomer of the substrate.

Generated by `code/modelCuration/applyCurationTable.py --table data/modelCuration/acox2ReferenceStereoisomer.tsv`.
#1182
@edkerk

edkerk commented Nov 1, 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 12 gene(s) directly affected plus 2176 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) ℹ️ 1
Likely noise (<3/5 lines) ℹ️ 12
No change ✅ 2173

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.

edkerk and others added 4 commits November 1, 2026 09:03
The note repeated the caveat that the pull-request comment's table already links to, and its first clause named the section instead of stating the limit. It now appears above the reaction-direction rows of model_qc_summary.md, in plain sentences.
@edkerk

edkerk commented Nov 1, 2026 •

Copy link
Copy Markdown
Member Author

The three gene-essentiality changes flagged against Hart 2015 follow from the gene rules of this pull request and from the biomass and medium of the growth task, not from errors in the rules.

  • FADS1 is now the only gene of the delta-5 desaturations MAR02365, MAR02380 and MAR02484. The acyl-CoA pools in the biomass lipid composition draw small amounts of their three products (Mead acid-CoA, arachidonoyl-CoA and EPA-CoA), and the growth medium supplies none of them, so the model must make them. Before, FADS2 or FADS1 or FADS3 gave a second gene. Hart 2015 was measured in serum, where cells take up such lipids. The composition of the lipid pools belongs to Redefine the biomass reactions MAR13082 and MAR00021 (and review the tasks that depend on them) #1118.
  • CRAT is now the only gene of the mitochondrial C2 to C4 acyltransferases MAR00161, MAR02593 and MAR02598, because CPT2 has almost no activity on C2 to C6 (doi:10.1016/j.bbadis.2010.06.002); before, the rules read CRAT or CPT2. The peroxisomal MAR03029, MAR03030 and MAR03037 were already CRAT only. The CRAT knockout stops growth in the DLD1, GBM, HCT116 and HELA cell-line models and not in RPE1. In DLD1 the mitochondrial and the peroxisomal acetylcarnitine routes each allow growth alone, and the gene knockout removes both; it was not checked in the other three models.
  • CPT2 is only required for biosynthesis and substrate-utilisation tasks, which Hart 2015 does not measure; growth stays at 99.9% in the models.

The twelve other genes agree in fewer than three of the five cell lines.

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