Skip to content

fix: reformulate SAM synthesis GPR and remove non-catalytic MAT2B#1030

Open
edkerk wants to merge 3 commits into
developfrom
fix/sam-synthesis-gpr
Open

fix: reformulate SAM synthesis GPR and remove non-catalytic MAT2B#1030
edkerk wants to merge 3 commits into
developfrom
fix/sam-synthesis-gpr

Conversation

@edkerk

@edkerk edkerk commented Jul 11, 2026

Copy link
Copy Markdown
Member

Main improvements in this PR:

As reported in #1013, the GPR of MAR03875 (SAM synthesis) and MAR07139 (SeAdoMet synthesis) was MAT2B or MAT1A or MAT2A, which incorrectly lets the non-catalytic regulatory subunit MAT2B catalyse the reaction on its own.

  • Set the GPR of MAR03875 and MAR07139 to ENSG00000151224 or ENSG00000168906 (MAT1A or MAT2A).
  • Remove MAT2B (ENSG00000038274) from the model, as it is non-catalytic and was associated only with these two reactions.

MAT2B knockout leaves cellular SAM levels unchanged while only MAT2A depletion reduces SAM (PMID:39353892), and MAT2A forms a catalytically active homotetramer without MAT2B, so MAT2B should not gate flux. This differs from the reporter's MAT1A OR (MAT2A AND MAT2B), which would make MAT2B falsely essential for the MAT2 route.

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

MAR03875 (SAM synthesis) and MAR07139 (SeAdoMet synthesis) had the GPR
"MAT2B or MAT1A or MAT2A", which incorrectly lets MAT2B catalyse the
reaction on its own. MAT2B (ENSG00000038274) is a non-catalytic
regulatory subunit: it stabilises MAT2A and lowers the Km for methionine
and the Ki for SAM, but its knockout leaves cellular SAM levels unchanged
while only MAT2A depletion reduces SAM (PMID:39353892). MAT2A forms a
catalytically active homotetramer without MAT2B and is the catalytic
subunit; MAT1A is the catalytic isozyme.

Set both GPRs to "ENSG00000151224 or ENSG00000168906" (MAT1A or MAT2A).
MAT2B was associated only with these two reactions, so it is removed
from the gene list.
@edkerk edkerk added this to the 2.1.0 milestone Jul 11, 2026
Bring the branch up to date with develop (120 commits behind). Clean merge, no
conflicts. Verified the branch's intent survives the merge: MAT2B
(ENSG00000038274) is absent from genes.tsv, the YAML gene list and every GPR, and
both SAM-synthesis reactions (EC 2.5.1.6) carry the reformulated two-gene rule
(ENSG00000151224 or ENSG00000168906). genes.tsv rows and YAML gene entries match.
@github-actions

github-actions Bot commented Jul 18, 2026

Copy link
Copy Markdown

Model quality report

⚠️ 6 pre-existing finding(s), no regressions vs develop. Non-blocking.

Each check name links to its explanation in the testResults README.

Model checks

Duplicate keys (model unloadable) and no growth block the merge; every other row is a non-blocking report.

Check Result Δ vs develop
Duplicate !!omap keys 0 0
Growth (biomass producible) 125 0
Reactions with no metabolites 0 0
Model / annotation-table inconsistencies 0 0
Removed reactions or metabolites not deprecated 0 0
Metabolites missing formula 0 0
Metabolites missing charge 0 0
Reaction bound / GPR issues 0 0
Exact-duplicate reaction groups 0 0
Unused metabolites 0 0
Unused genes 0 0
Malformed cross-references 0 0
Cross-refs inconsistent across compartments 3 0 ⚠️

MACAW and mass/charge balance

Check Result Δ vs develop
Reactions flagged by MACAW dead-end test 2510 0 ⚠️
Reactions flagged as MACAW duplicates 377 0 ⚠️
Mass-imbalanced reactions 87 0 ⚠️
Charge-imbalanced reactions 234 0 ⚠️
Structure vs formula/charge inconsistencies 397 0 ⚠️

Model file and metabolic tasks

Check Result
YAML round-trip (cobrapy) pass
YAML round-trip (RAVEN) pass
YAML lint pass
Essential metabolic tasks 57 passed
Verification metabolic tasks 21 passed

MEMOTE

Total score: 63.2% (core subset)   0

Section Score Δ vs base
consistency 42.4% 0
annotation_met 73.0% 0
annotation_rxn 72.7% 0
annotation_gene 46.7% 0
annotation_sbo 81.7% 0
Per-test scores
Section Test Score
Consistency Stoichiometric Consistency 100.0%
Consistency Mass Balance 0.8%
Consistency Charge Balance 2.1%
Consistency Metabolite Connectivity 0.0%
Consistency Unbounded Flux In Default Medium 100.0%
Annotation - Metabolites Presence of Metabolite Annotation 0.0%
Annotation - Metabolites Metabolite Annotations Per Database 62.3%
Annotation - Metabolites Metabolite Annotation Conformity Per Database 45.8%
Annotation - Metabolites Uniform Metabolite Identifier Namespace 0.0%
Annotation - Reactions Presence of Reaction Annotation 0.0%
Annotation - Reactions Reaction Annotations Per Database 75.9%
Annotation - Reactions Reaction Annotation Conformity Per Database 33.3%
Annotation - Reactions Uniform Reaction Identifier Namespace 0.0%
Annotation - Genes Presence of Gene Annotation 0.0%
Annotation - Genes Gene Annotations Per Database 80.0%
Annotation - Genes Gene Annotation Conformity Per Database 80.0%
Annotation - SBO Terms Metabolite General SBO Presence 0.0%
Annotation - SBO Terms Metabolite SBO:0000247 Presence 0.1%
Annotation - SBO Terms Reaction General SBO Presence 0.0%
Annotation - SBO Terms Metabolic Reaction SBO:0000176 Presence 0.0%
Annotation - SBO Terms Transport Reaction SBO:0000185 Presence 0.7%
Annotation - SBO Terms Exchange Reaction SBO:0000627 Presence 0.0%
Annotation - SBO Terms Demand Reaction SBO:0000628 Presence 100.0%
Annotation - SBO Terms Sink Reactions SBO:0000632 Presence 100.0%
Annotation - SBO Terms Gene General SBO Presence 0.0%
Annotation - SBO Terms Gene SBO:0000243 Presence 0.0%
Annotation - SBO Terms Biomass Reactions SBO:0000629 Presence 0.0%

Full suite: 64.2%   0 · from the last /run memote.

The score above is the fast core subset. Comment /run memote to run the full suite on this pull request; the score updates here when it finishes.

Gene essentiality (Hart 2015)

Not run automatically (it takes hours). Comment /run gene-essentiality to run it on this pull request; the result posts as its own comment.

❌ = a count rose vs the target branch (regression) · ⚠️ = a pre-existing non-zero finding (non-blocking) · ⏳ = still running. Counts link to the CSV listing the exact entries.

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

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