From a66f3e6d4b303b20e86c32c8a8faa1edf83c2375 Mon Sep 17 00:00:00 2001 From: Eduard Kerkhoven Date: Sat, 11 Jul 2026 11:46:35 +0200 Subject: [PATCH 1/2] fix: correct SAM synthesis GPR and remove non-catalytic MAT2B (#1013) 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. --- model/Human-GEM.yml | 7 ++----- model/genes.tsv | 1 - 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/model/Human-GEM.yml b/model/Human-GEM.yml index 737bebdc..23944604 100644 --- a/model/Human-GEM.yml +++ b/model/Human-GEM.yml @@ -75423,7 +75423,7 @@ - MAM02877c: 1 - lower_bound: 0 - upper_bound: 1000 - - gene_reaction_rule: "ENSG00000038274 or ENSG00000151224 or ENSG00000168906" + - gene_reaction_rule: "ENSG00000151224 or ENSG00000168906" - rxnFrom: "HMRdatabase" - eccodes: "2.5.1.6" - references: "PMID:7213623" @@ -76794,7 +76794,7 @@ - MAM02891c: -1 - lower_bound: -1000 - upper_bound: 1000 - - gene_reaction_rule: "ENSG00000038274 or ENSG00000151224 or ENSG00000168906" + - gene_reaction_rule: "ENSG00000151224 or ENSG00000168906" - rxnFrom: "HMRdatabase" - eccodes: "2.5.1.6" - subsystem: "Metabolism of other amino acids" @@ -246344,9 +246344,6 @@ - !!omap - id: "ENSG00000038210" - name: "PI4K2B" - - !!omap - - id: "ENSG00000038274" - - name: "MAT2B" - !!omap - id: "ENSG00000039123" - name: "MTREX" diff --git a/model/genes.tsv b/model/genes.tsv index 797c979d..1fa2bc38 100644 --- a/model/genes.tsv +++ b/model/genes.tsv @@ -121,7 +121,6 @@ "ENSG00000037897" "ENST00000324871;ENST00000257848;ENST00000547653;ENST00000548504;ENST00000551117;ENST00000553125;ENST00000548681;ENST00000549773" "ENSP00000314441;ENSP00000257848;ENSP00000447838;ENSP00000449397;ENSP00000447988;ENSP00000448342" "Q9UBP6" "METTL1" "4234" "methyltransferase like 1" "C12orf1;TRM8;TRMT8" "Nucleus" "SwissProt;CellAtlas" "ENSG00000038002" "ENST00000264595;ENST00000502310;ENST00000506853;ENST00000510635;ENST00000510955;ENST00000511231" "ENSP00000264595;ENSP00000423798;ENSP00000421471" "P20933" "AGA" "175" "aspartylglucosaminidase" "ASRG" "Lysosome" "SwissProt" "ENSG00000038210" "ENST00000512921;ENST00000264864" "ENSP00000423373;ENSP00000264864" "Q8TCG2" "PI4K2B" "55300" "phosphatidylinositol 4-kinase type 2 beta" "FLJ11105;PI4KIIB;PIK42B" "Endoplasmic reticulum;Golgi apparatus;Cytosol" "SwissProt;CellAtlas" -"ENSG00000038274" "ENST00000280969;ENST00000519719;ENST00000321757;ENST00000421814;ENST00000518095;ENST00000523606;ENST00000520449;ENST00000521838" "ENSP00000280969;ENSP00000325425;ENSP00000397371;ENSP00000428046;ENSP00000431071" "Q9NZL9" "MAT2B" "27430" "methionine adenosyltransferase 2B" "MATIIbeta;SDR23E1" "Cytosol" "DeepLoc2" "ENSG00000039123" "ENST00000230640;ENST00000504388;ENST00000506750;ENST00000503165;ENST00000504997;ENST00000505565;ENST00000502953;ENST00000518955;ENST00000508716" "ENSP00000230640;ENSP00000425042;ENSP00000422125;ENSP00000426641" "P42285" "MTREX" "23517" "Mtr4 exosome RNA helicase" "Dob1;fSAP118;KIAA0052;Mtr4;SKIV2L2" "Nucleus" "SwissProt;CellAtlas" "ENSG00000039650" "ENST00000596624;ENST00000636840;ENST00000595081;ENST00000601816;ENST00000594661;ENST00000627232;ENST00000593946;ENST00000600910;ENST00000322344;ENST00000599454;ENST00000631020;ENST00000596014;ENST00000600573;ENST00000597965;ENST00000640501;ENST00000625216;ENST00000593706;ENST00000627317;ENST00000629179;ENST00000637325;ENST00000636214;ENST00000599543;ENST00000596726;ENST00000625299;ENST00000598020;ENST00000637897;ENST00000626274;ENST00000629088;ENST00000595792;ENST00000636994;ENST00000638016" "ENSP00000490737;ENSP00000486037;ENSP00000468896;ENSP00000473137;ENSP00000323511;ENSP00000486707;ENSP00000472300;ENSP00000469826;ENSP00000471097;ENSP00000491347;ENSP00000486898;ENSP00000486500;ENSP00000489983;ENSP00000469848;ENSP00000470887;ENSP00000470346;ENSP00000490539;ENSP00000490791;ENSP00000489771" "Q96T60" "PNKP" "11284" "polynucleotide kinase 3'-phosphatase" "PNK" "Nucleus" "SwissProt;CellAtlas" "ENSG00000040933" "ENST00000409016;ENST00000409851;ENST00000409463;ENST00000409540;ENST00000463367;ENST00000523221;ENST00000468638;ENST00000467042;ENST00000498026;ENST00000074304" "ENSP00000386704;ENSP00000386777;ENSP00000386329;ENSP00000387294;ENSP00000427722;ENSP00000074304" "Q96PE3" "INPP4A" "3631" "inositol polyphosphate-4-phosphatase type I A" "INPP4" "Nucleus;Cytosol" "SwissProt;CellAtlas" From 5e11c174c74ba3479380b5f2dae9d795b1e61607 Mon Sep 17 00:00:00 2001 From: edkerk <7326655+edkerk@users.noreply.github.com> Date: Sat, 18 Jul 2026 22:03:37 +0000 Subject: [PATCH 2/2] chore: update model QC results [skip ci] --- data/testResults/README.md | 10 ++-- data/testResults/model_qc_summary.md | 72 ++++++++++++++-------------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/data/testResults/README.md b/data/testResults/README.md index 6ed6d67d..83c6daac 100644 --- a/data/testResults/README.md +++ b/data/testResults/README.md @@ -21,11 +21,11 @@ own files. The pull request in each row is the one whose run last wrote those fi | Result file(s) | Produced by | Last updated by | | --- | --- | --- | -| `qc_duplicate_keys.csv`, `qc_empty_reactions.csv`, `qc_annotation_consistency.csv`, `qc_deprecation_completeness.csv`, `qc_metabolite_completeness.csv`, `qc_reaction_sanity.csv`, `qc_duplicate_reactions.csv`, `qc_unused_entities.csv`, `qc_growth_blockers.csv` | `qcModelChecks.py` | **PR #1061** (model QC checks) | -| `qc_annotation_issues.csv` | `annotationTest.py` | **PR #1061** (model QC checks) | -| `qc_status.tsv` (round-trip, YAML lint, metabolic tasks, growth) | `testYamlConversion.py`, `testMetabolicTasks.py`, `action-yamllint`, `qcModelChecks.py` (via `qcStatus.py`) | **PR #1061** (model QC checks) | -| `macaw_results.csv`, `balance_results.csv`, `qc_structure_consistency.csv` | `macawTests.py`, `balanceTest.py`, `structureConsistencyTest.py` | **PR #1061** (MACAW and balance) | -| `memote_score.md` | `memoteSnapshot.py` (fast subset every PR; full suite via `/run memote`) | **PR #1061** (MEMOTE) | +| `qc_duplicate_keys.csv`, `qc_empty_reactions.csv`, `qc_annotation_consistency.csv`, `qc_deprecation_completeness.csv`, `qc_metabolite_completeness.csv`, `qc_reaction_sanity.csv`, `qc_duplicate_reactions.csv`, `qc_unused_entities.csv`, `qc_growth_blockers.csv` | `qcModelChecks.py` | **PR #1030** (model QC checks) | +| `qc_annotation_issues.csv` | `annotationTest.py` | **PR #1030** (model QC checks) | +| `qc_status.tsv` (round-trip, YAML lint, metabolic tasks, growth) | `testYamlConversion.py`, `testMetabolicTasks.py`, `action-yamllint`, `qcModelChecks.py` (via `qcStatus.py`) | **PR #1030** (model QC checks) | +| `macaw_results.csv`, `balance_results.csv`, `qc_structure_consistency.csv` | `macawTests.py`, `balanceTest.py`, `structureConsistencyTest.py` | **PR #1030** (MACAW and balance) | +| `memote_score.md` | `memoteSnapshot.py` (fast subset every PR; full suite via `/run memote`) | **PR #1030** (MEMOTE) | | `gene-essential.csv`, `gene-essential_summary.md` | `geneEssentiality.py` via `/run gene-essentiality` | **PR #1027** (gene essentiality) | ## 2. What each check means diff --git a/data/testResults/model_qc_summary.md b/data/testResults/model_qc_summary.md index fdac8f39..19635a38 100644 --- a/data/testResults/model_qc_summary.md +++ b/data/testResults/model_qc_summary.md @@ -1,59 +1,59 @@ ## Model quality report -:warning: **6 pre-existing finding(s), no regressions vs `main`.** Non-blocking. +:warning: **6 pre-existing finding(s), no regressions vs `develop`.** Non-blocking. -_Each check name links to its explanation in the [testResults README](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md)._ +_Each check name links to its explanation in the [testResults README](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md)._ ### Model checks _Duplicate keys (model unloadable) and no growth block the merge; every other row is a non-blocking report._ -| Check | Result | Δ vs `main` | | +| Check | Result | Δ vs `develop` | | | --- | ---: | ---: | :---: | -| [Duplicate `!!omap` keys](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#duplicate-omap-keys) | 0 | new | :white_check_mark: | -| [Growth (biomass producible)](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#growth-biomass-producible) | 125 | new | :white_check_mark: | -| [Reactions with no metabolites](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#reactions-with-no-metabolites) | 0 | new | :white_check_mark: | -| [Model / annotation-table inconsistencies](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#model--annotation-table-inconsistencies) | 0 | new | :white_check_mark: | -| [Removed reactions or metabolites not deprecated](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#removed-reactions-or-metabolites-not-deprecated) | 0 | new | :white_check_mark: | -| [Metabolites missing formula](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#metabolites-missing-formula) | 0 | new | :white_check_mark: | -| [Metabolites missing charge](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#metabolites-missing-charge) | 0 | new | :white_check_mark: | -| [Reaction bound / GPR issues](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#reaction-bound--gpr-issues) | 0 | new | :white_check_mark: | -| [Exact-duplicate reaction groups](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#exact-duplicate-reaction-groups) | 0 | new | :white_check_mark: | -| [Unused metabolites](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#unused-metabolites) | 0 | new | :white_check_mark: | -| [Unused genes](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#unused-genes) | 0 | new | :white_check_mark: | -| [Malformed cross-references](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#malformed-cross-references) | 0 | new | :white_check_mark: | -| [Cross-refs inconsistent across compartments](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#cross-refs-inconsistent-across-compartments) | [3](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/qc_annotation_issues.csv) | new | :warning: | +| [Duplicate `!!omap` keys](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#duplicate-omap-keys) | 0 | 0 | :white_check_mark: | +| [Growth (biomass producible)](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#growth-biomass-producible) | 125 | 0 | :white_check_mark: | +| [Reactions with no metabolites](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#reactions-with-no-metabolites) | 0 | 0 | :white_check_mark: | +| [Model / annotation-table inconsistencies](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#model--annotation-table-inconsistencies) | 0 | 0 | :white_check_mark: | +| [Removed reactions or metabolites not deprecated](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#removed-reactions-or-metabolites-not-deprecated) | 0 | 0 | :white_check_mark: | +| [Metabolites missing formula](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#metabolites-missing-formula) | 0 | 0 | :white_check_mark: | +| [Metabolites missing charge](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#metabolites-missing-charge) | 0 | 0 | :white_check_mark: | +| [Reaction bound / GPR issues](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#reaction-bound--gpr-issues) | 0 | 0 | :white_check_mark: | +| [Exact-duplicate reaction groups](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#exact-duplicate-reaction-groups) | 0 | 0 | :white_check_mark: | +| [Unused metabolites](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#unused-metabolites) | 0 | 0 | :white_check_mark: | +| [Unused genes](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#unused-genes) | 0 | 0 | :white_check_mark: | +| [Malformed cross-references](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#malformed-cross-references) | 0 | 0 | :white_check_mark: | +| [Cross-refs inconsistent across compartments](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#cross-refs-inconsistent-across-compartments) | [3](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/qc_annotation_issues.csv) | 0 | :warning: | ### MACAW and mass/charge balance -| Check | Result | Δ vs `main` | | +| Check | Result | Δ vs `develop` | | | --- | ---: | ---: | :---: | -| [Reactions flagged by MACAW dead-end test](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#reactions-flagged-by-macaw-dead-end-test) | [2510](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/macaw_results.csv) | -703 | :warning: | -| [Reactions flagged as MACAW duplicates](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#reactions-flagged-as-macaw-duplicates) | [377](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/macaw_results.csv) | -2 | :warning: | -| [Mass-imbalanced reactions](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#mass-imbalanced-reactions) | [87](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/balance_results.csv) | new | :warning: | -| [Charge-imbalanced reactions](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#charge-imbalanced-reactions) | [234](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/balance_results.csv) | new | :warning: | -| [Structure vs formula/charge inconsistencies](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#structure-vs-formulacharge-inconsistencies) | [397](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/qc_structure_consistency.csv) | new | :warning: | +| [Reactions flagged by MACAW dead-end test](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#reactions-flagged-by-macaw-dead-end-test) | [2510](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/macaw_results.csv) | 0 | :warning: | +| [Reactions flagged as MACAW duplicates](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#reactions-flagged-as-macaw-duplicates) | [377](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/macaw_results.csv) | 0 | :warning: | +| [Mass-imbalanced reactions](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#mass-imbalanced-reactions) | [87](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/balance_results.csv) | 0 | :warning: | +| [Charge-imbalanced reactions](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#charge-imbalanced-reactions) | [234](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/balance_results.csv) | 0 | :warning: | +| [Structure vs formula/charge inconsistencies](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#structure-vs-formulacharge-inconsistencies) | [397](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/qc_structure_consistency.csv) | 0 | :warning: | ### Model file and metabolic tasks | Check | Result | | | --- | ---: | :---: | -| [YAML round-trip (cobrapy)](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#yaml-round-trip-cobrapy) | pass | :white_check_mark: | -| [YAML round-trip (RAVEN)](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#yaml-round-trip-raven) | pass | :white_check_mark: | -| [YAML lint](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#yaml-lint) | pass | :white_check_mark: | -| [Essential metabolic tasks](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#essential-metabolic-tasks) | 57 passed | :white_check_mark: | -| [Verification metabolic tasks](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#verification-metabolic-tasks) | 21 passed | :white_check_mark: | +| [YAML round-trip (cobrapy)](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#yaml-round-trip-cobrapy) | pass | :white_check_mark: | +| [YAML round-trip (RAVEN)](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#yaml-round-trip-raven) | pass | :white_check_mark: | +| [YAML lint](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#yaml-lint) | pass | :white_check_mark: | +| [Essential metabolic tasks](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#essential-metabolic-tasks) | 57 passed | :white_check_mark: | +| [Verification metabolic tasks](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#verification-metabolic-tasks) | 21 passed | :white_check_mark: | -### [MEMOTE](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#memote) +### [MEMOTE](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#memote) -**Total score: 63.2%** (core subset)   +**Total score: 63.2%** (core subset)   0 | Section | Score | Δ vs base | | --- | ---: | ---: | -| consistency | 42.4% | | -| annotation_met | 73.0% | | -| annotation_rxn | 72.7% | | -| annotation_gene | 46.7% | | -| annotation_sbo | 81.7% | | +| 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 @@ -89,11 +89,11 @@ _Duplicate keys (model unloadable) and no growth block the merge; every other ro
-**Full suite: 64.2%**   · _from the last_ `/run memote`. +**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)](https://github.com/SysBioChalmers/Human-GEM/blob/develop/data/testResults/README.md#gene-essentiality-hart-2015) +### [Gene essentiality (Hart 2015)](https://github.com/SysBioChalmers/Human-GEM/blob/fix/sam-synthesis-gpr/data/testResults/README.md#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._