Repository navigation
fix: errors from v2.0.0 to v2.1.1 and the checks that missed them - #1177
Merged
Merged
Conversation
…ity diff A gene outside a cell line's context model has no knockout effect there, but the diff skipped every line where the gene was in the context model on one side only. A change that adds a gene to a GPR, or takes it out, was therefore reported as unchanged. Such lines are now compared, with the gene non-essential on the side where it is absent. The CSV gains a model_membership column for genes new to or removed from the model. A gene missing from a matrix that is older than its model is not compared, and matrices without a shared cell line are refused. This also corrects the grouping of the report: genes removed from or added to the model get rows of their own instead of sharing a row with genes that stay, where the membership label of one gene read as applying to the whole row.
TRDMT1 methylates tRNA, and DNMT3L is catalytically inactive; DNMT1 and DNMT3B do not need each other. Both genes leave the model.
…1156) MMAA is the G-protein chaperone of MMUT. MAR08614 (cobalamin import into mitochondria) has no known transporter; MAR08615 and MAR08616 are MMAB's. MAR08616 is made irreversible. MMAA leaves the model.
PEDS1 (plasmanylethanolamine desaturase, MAR07601), COQ4 (MAR06906, EC 4.1.1.130), PRUNE1 (triphosphate hydrolysis, MAR05363), FADS2 (24:4n-6 desaturation, MAR02403, renamed), and MMACHC or MTRR for aquacobalamin reduction (MAR08613, now NADPH, with a note). PEDS1, COQ4 and MMACHC are new genes.
#1159, #875) 274 mitochondrial and peroxisomal beta-oxidation reactions: isoenzymes become alternatives (or), chain-length and substrate-class specificity follows the literature, and MYO5B, a myosin, leaves every thiolase GPR and the model. The bile-acid transport MAR01694 loses its thiolase GPR and EC codes, the 2-methyl-branched oxidase steps MAR03498 and MAR03512 get ACOX2 or ACOX3, and MAR03460 (ECH1) gets EC 5.3.3.21.
…antoinase (#1147) Removes MAR06611, MAR06610 and MAR06609, deprecates 5-hydroxyisourate, and drops EC 3.1.1.4 from the allantoin transport MAR10003.
…1150) Adds 4-hydroxymandelate synthase (HPDL, MAR20218), (S)-4-hydroxymandelate and a gene-free lumped step to 4-hydroxybenzoate (MAR20219). Removes the tyrosine -> 4-coumarate steps, which have no human enzymes, and the cytosolic copy of the coumarate route; the mitochondrial route from dietary 4-coumarate stays, gene-free. CellFie task 178 (ubiquinone from tyrosine) follows the new route.
) MAR07597 lumped alkyl-DHAP reduction with an acylation by the free fatty acid pool, without the cost of acyl-CoA. It is replaced by MAR20220 on the acyl-CoA pool; the reduction is MAR03354. The phosphatase MAR03383 becomes irreversible: run backwards it phosphorylated 1-alkyl-2-acetylglycerol with free phosphate, a cycle that MAR20220 would otherwise close.
Removes MAR02314, MAR03437, MAR03438, MAR03439 and MAR03483, corrects the isomers in MAR00968, MAR02397, MAR02399, MAR02497, MAR02499, MAR03415, MAR03417, MAR03440, MAR03474 and MAR03479, takes MAM00902 back from the deprecated list and adds MAM20093; MAR03440 consumes the proton of its twin MAR02395, and MAM00853x gets the n-6 structure its name describes. The eight ER elongation steps get the name, EC, GPR, direction and subsystem of their enzymes (ELOVL2, HSD17B12, HACD1-4, TECR). Rhea and MetaNetX ids follow the corrected reactions.
MAR08615 becomes 2 cob(II)alamin + NADPH => 2 cob(I)alamin + NADP+ + H+, the reduction of MMAB-bound cob(II)alamin within EC 2.5.1.17; NADPH, as the FDXR-FDX1 system that supplies the electrons in vitro. It was written as cob(II)alamin + NADH <=> cob(I)alamin + H+ + NAD+, which does not balance.
Without H+ exchange, 27 of these 47 tasks passed only through charge-unbalanced reactions. The ER tasks keep their closed proton balance.
…olites (#1118, #1140) MAR00022 takes lipoic acid instead of [protein]-N6-(lipoyl)lysine, which nothing makes, so MAR00021 is feasible again; it is renamed from "[protein]-N6-(lipoyl)lysine reduction" to "Cofactors and vitamins pool for MAR00021". The vitamin A, D and E derivative pools and their pool reactions are removed.
(S)-3-hydroxybutanoyl-CoA[x] (MAM00173x) occurs in MAR03104 only, so the peroxisomal dehydrogenase could never carry flux. Both are deprecated.
deprecatedReactions.tsv and deprecatedMetabolites.tsv lacked rxnSeedID, metSeedID, metSmiles and metInChI, which reactions.tsv and metabolites.tsv gained with #1058 and #1086, so every removed reaction or metabolite lost them. The columns are added and filled with the last values in the history, together with the MetaNetX ids lost from 8 reactions (MAR01348/MAR01349 MNXR99974, MAR01351 MNXR99976, MAR01444, MAR01604, MAR12065, MAR00595, MAR07597) and MAM03971e (BIOMASS). Generated by `code/modelCuration/backfillDeprecatedColumns.py --table data/modelCuration/deprecatedIdentifierColumns.tsv`. #T4
A gene that ftINIT leaves out of a cell line's model is predicted non-essential (growth ratio 1.0), as in the Human1 analysis, for the MCCs, AUROC and AUPRC alike; the all-line row has its MCC again. A Hart symbol is matched through the gene's own symbol first, and never through an alias that is another gene's current HGNC symbol (for example RPF1 on NEDD4, TEP1 on PTEN). See #1077. #T7
gradedEssentiality.py fails when Step 1 drops an essential task (GR in particular) and when a context model cannot grow on the GR medium, instead of scoring without them. Each cell line records the package versions, the raven-toolbox commit and the time-limit and tie-break warnings of ftINIT and its gap-filling. ftINIT calls depend on the reaction order. With /run gene-essentiality orders=2 (or 3) every cell line is built in that many orders (at most 5 shards at a time), the summary gives MCC ranges, and the pull-request diff does not count calls that differ between orders. The results commit stages removed files too, so a single-order run drops a stale gene-essential-unstable.csv. See #1077 and #1082. #T7
The gate wrote the SBML with cobra directly, so it passed while 2.1.0 shipped without subsystems. It uses export_for_git, as the release does, and reads the file back with libSBML, with subsystems, names and notes (#1078). #T8
The round-trip compared two written files, so a field lost on the first read went unseen. The fields cobrapy does not read (metaData, metFrom, rxnFrom, references, confidence_score) are listed; any other loss fails (#1027). #T8
Unknown metabolites, and a metabolite that is both input and output with nonzero lower bounds, make RAVEN's checkTasks abort, as CellfieConsensus tasks 21, 90, 169, 184 and 187 did before the previous commits (#998). Names and compartments are compared without case, as RAVEN does. The GR task also runs with MAR00021 as the biomass reaction, which the animal-GEM generator needs (#1140). #1163
MAR and MAM numbers have five digits; open #1011 adds MAR020190-MAR020194. A unit test covers the medium of the growth gate: the inputs of the GR task are opened at the caps of the gate, and no other exchange. #T8
The ten mitochondrial vitamin E rounds cleave 2-methyl-branched 3-oxoacyl-CoAs. The matrix 3-ketoacyl-CoA thiolase ACAA2 is inactive on these and the trifunctional protein cleaves them (https://doi.org/10.1006/abbi.1995.1389), so HADHA and HADHB take the place of ACAA2 in their GPRs. MAR06346, the 4,8-dimethylnonanoyl-CoA round, gets the genes of its stepwise route MAR03522-MAR03525, whose unbranched 3-oxo intermediate ACAA2 cleaves. #1118
Mammalian purine nucleoside phosphorylase cleaves nicotinic acid riboside (https://doi.org/10.1074/jbc.M807976200); without a gene the reaction ran ungated (#934). #T1
This was referenced Oct 20, 2026
`MAM01034m` takes MNXM940 as `MAM01034c`, and the empty cells of `MAM03326m`, `MAM03326x` and `MAM03362x` take the MetaNetX id of their cytosolic copy. #1172
The animal GEMs number their own reactions and metabolites in MAR15000-MAR19999 and MAM15000-MAM19999. qcModelChecks.py now fails if the model, its annotation tables or the deprecated lists use that block, and lists the identifiers in qc_reserved_identifiers.csv. The gate is silent while clean: buildReport.py shows its row only when it finds something.
Knockdown of mitochondrial AQP8 in human HepG2 cells lowers the release of H2O2 from the mitochondria (https://doi.org/10.1016/j.taap.2012.08.005), and no measurement shows that H2O2 leaves the mitochondria without it. `MAR03946` has AQP8 as its gene again and is not flagged spontaneous. The transport of water, `MAR04888`, stays gene-less and spontaneous: the water permeability of mitochondria is the same without AQP8 (https://doi.org/10.1074/jbc.M601864200). #1169
MMACHC reduces aquacobalamin with glutathione and only without oxygen (https://doi.org/10.1074/jbc.M114.567339), and no measurement shows it with NADPH. `MAR08613` keeps MTRR, which does reduce it with NADPH (https://doi.org/10.1073/pnas.0603694103). MMACHC leaves the model, as no other reaction uses it. #1149
…ve reaction (#1149) MAR06906 now converts 3-methoxy-4-hydroxy-5-all-trans-decaprenylbenzoate to 2-methoxy-6-all trans-decaprenyl-2-methoxy-1,4-benzoquinol with O2 and NADPH under COQ4. MAR06907, which assigned COQ6 to the C1 hydroxylation, is deprecated.
# Conflicts: # data/deprecatedIdentifiers/deprecatedReactions.tsv # model/reactions.tsv
# Conflicts: # .github/workflows/model-qc.yml # code/test/buildReport.py # code/test/diffGeneEssentiality.py # code/test/qcModelChecks.py # code/test/unit/test_diff_gene_essentiality.py # code/test/unit/test_qc_model_checks.py # data/deprecatedIdentifiers/deprecatedMetabolites.tsv # data/deprecatedIdentifiers/deprecatedReactions.tsv # data/testResults/balance_results.csv # data/testResults/gene-essential-diff.csv # data/testResults/gene-essential.csv # data/testResults/gene-essential_summary.md # data/testResults/memote_score.md # data/testResults/model_qc_comment.md # data/testResults/model_qc_summary.md # data/thermodynamics/reactionDeltaG.tsv # model/Human-GEM.yml # model/README.md # model/genes.tsv # model/metabolites.tsv # model/reactions.tsv
Member
Author
|
Gene essentiality was run on this pull request via GH Actions. Gene essentiality: effect of this changeChecked 304 gene(s) directly affected plus 2284 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.
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.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1169, closes #1170, closes #1171, closes #1172, closes #1173, closes #1174, closes #1175, closes #1176. They are grouped because all eight fix errors in changes merged between v2.0.0 and v2.1.1, or in the checks that let them through, and they edit the same files.
Part of #1117, #1118, #1163, #1071 and #1133 (the remaining points are in the comments there).
Builds on #1168 and must be merged after it. One commit per change (137 commits).
Thirteen changes have weak support: they remove or correct an activity that no source shows, and no source shows the previous form either. Each issue states why the change is made and what follows if the previous form is kept: #1169 (three), #1173 (six), #1174 (two), #1167 (two).
Reactions
Removed (deprecated; "into" = merged into the twin, recorded in
rxnRetired)MAR01685,MAR02885MAR01567MAR02891MAR01693MAR00222MAR08218MAR01585,MAR04400,MAR04548MAR01584,MAR08768,MAR08566MAR20167MAR04575MAR04721,MAR08889,MAR04691MAR09607,MAR09873,MAR09613MAR03758MAR03764MAR06599,MAR12048,MAR12049,MAR11314,MAR06709,MAR05381,MAR04188,MAR06512,MAR01572MAR01798MAR01574MAR02937,MAR02938,MAR02939,MAR03216,MAR20191,MAR01563,MAR01564,MAR03435MAR08224,MAR08227MAR11744,MAR11587,MAR11674,MAR10292MAR03178,MAR11592,MAR11657,MAR10275(duplicates after metabolite merges)MAR04248Added
MAR20221MAR20224MAR20225MAR20226–MAR20228MAR20223MAR20229MAR20230MAR20231MAR20232MAR20233,MAR20234MAR20235,MAR20236Equations, compartments and bounds
MAR01794,MAR01796MAR01796with NADP+MAR06983–MAR06985,MAR20195MAR06979MAR04575MAR04700MAR04425,MAR04606MAR01389,MAR02559MAR00814MAR10461MAR20084,MAR20086,MAR20088MAR06433,MAR06448,MAR06434,MAR06450MAR07634MAR00035MAR07049,MAR06734,MAR06738,MAR06879MAR04771,MAR07139,MAR11311,MAR00928,MAR01692,MAR02889MAR01092,MAR02550,MAR06878,MAR06880,MAR08625,MAR11946MAR04888MAR04654,MAR03263,MAR09515;MAR06978,MAR08029,MAR06980,MAR00812MAR03271,MAR11745GPRs (220 reactions)
MAR04604MAR04662MAR06434–MAR06488)HADHA and HADHBMAR04252,MAR04264MAR01674,MAR01675MAR00210,MAR00242;MAR00324,MAR00332,MAR00426,MAR00438MAR01801,MAR01808MAR02957;MAR00249ENSG00000184154, LRRC51)ENSG00000284844)MAR06921,MAR06500;MAR00787MAR06700–MAR06703MAR03752,MAR03784MAR05351,MAR11476,MAR11479MAR11476andMAR11479MAR08780,MAR06519MAR06515,MAR06518;MAR06520MAR04130;MAR08366MAR08036,MAR08037;MAR04233;MAR08969;MAR05429MAR07627,MAR07143MAR08226,MAR08228MAR11318MAR01794;MAR01796MAR04372;MAR08726;MAR10067MAR01389,MAR02559;MAR08005;MAR04700MAR00960; CYP24A1; DMGDHMAR20016,MAR20017,MAR12064Names, ECs and annotation
reactions.tsv:rxnRheaIDdirectional in 963 rows; cross-references of 12 other reactions;rxnFromon 291 reactions. See Metabolite structures, charges and cross-references point to other compounds #1172.Metabolites
MAM00764r,MAM00761r,MAM01180rMAM00204r,MAM02767r,MAM01036r,MAM00232rMAM02517mMAM02646gMAM20094m,MAM20095c,MAM20095e,MAM20095mMAM03683m;MAM03827c,MAM03827e;MAM03319c;MAM02667cMAM00046m;MAM03810c,MAM03810e;MAM01278c;MAM03151cMAM00761c,MAM00764c,MAM01180c,MAM01180m,MAM00232c,MAM01036c,MAM02767c,MAM01034m,MAM01026n,MAM01031n,MAM03377cMAM00748c,MAM03367c,MAM01267c,MAM01384c,MAM01778g,MAM02600c,MAM02739c,MAM20019cMAM01830folate;MAM011155-methyl-THFMAM01315alloxan;MAM02545N-acetyl-O-acetylneuraminateMAM03131V3(NeuAc)2-Gb5Cer;MAM02491monosialylgalactosylglobosideMAM02517trimethyllysine;MAM007893-hydroxy-trimethyllysineMAM01226,MAM01228MAM03377MAM01136,MAM02954,MAM03263,MAM03522,MAM03682,MAM03976;MAM03260,MAM03261,MAM03639,MAM03908metabolites.tsvGenes
MAR11318)ENSG00000284844ENSG00000184154(LRRC51, labelled LRTOMT)ENSG00000112096→ENSG00000291237,ENSG00000281500→ENSG00000137700,ENSG00000263464→ENSG000002888672865 → 2863 genes.
Tasks
metabolicTasks_CellfieConsensus.txt: tasks 7, 21, 22, 64, 82, 90, 107, 130, 138, 148, 161, 169, 184, 187 (Curate the Full and Essential task files #1163).metabolicTasks_Full.txt: tasks 180 and 239 name (10Z,13Z,16Z)-docosatrienoic acid; new vitamin A, D and E tasks 258–265 (Redefine the biomass reactions MAR13082 and MAR00021 (and review the tasks that depend on them) #1118).metabolicTasks_Essential.txt: unchanged.Code and CI
data/datasets/HGNC_symbols_Hart2015.tsv;orders=Nrepeats the run in N reaction orders and leaves order-unstable calls out of the diff;BIG_M, was 100), the raven-toolbox default and the cap of RAVEN'sftINITInternalAlg.GRtask withMAR00021; the identifier format;human_gem/annotation.pyis the one annotation implementation; KEGG drug and glycan ids are exported askegg.drugandkegg.glycan(Release and QC checks miss SBML, task-file and version errors #1176, Metabolite structures, charges and cross-references point to other compounds #1172).generateAnimalGEM.pyand.m: the lipoyl biomass fix applies on a model test, not by version (Release and QC checks miss SBML, task-file and version errors #1176).increaseHumanGEMVersion.pystampspyproject.toml,human_gemandcitation.cff; raven-toolbox is required at commitee0f8868(Release and QC checks miss SBML, task-file and version errors #1176).data/deprecatedIdentifiers/: the removed reactions and metabolites, with the SEED, SMILES and InChI columns added and lost values restored (Metabolite structures, charges and cross-references point to other compounds #1172).data/thermodynamics/loopExceptions.tsv: the 12 reactions that still cycle with all boundaries closed, with reasons (Reaction equations have wrong cofactors or directions, and some duplicates form loops #1173).data/modelCuration/metaboliteNameChEBIdiff.tsvremoved (Metabolite structures, charges and cross-references point to other compounds #1172).code/modelCuration/applyCurationTable.py(new) applies a per-entity table of annotation changes (entity, field, before, after) to the YAML and the model TSVs;code/modelCuration/backfillDeprecatedColumns.py(new) gives the deprecated lists the columns of the model TSVs and fills them from a table. The 40 tables of the scripted changes are indata/modelCuration/, and each scripted commit gives its command (Release and QC checks miss SBML, task-file and version errors #1176).Maintainers: after merge, credit new contributors by commenting
@all-contributors please add @username for <type>on this PR or the linked issue (see CONTRIBUTING).