Oncofusion

start / graph / ana-no-name-based-test-can-clear-a-gene-symbol-and-gapdh-is-the-proof

Analysismoderate confidence 3 of 5: One strong study, or several smaller consistent ones.

No name-based test can clear a gene symbol, and GAPDH is the proof: 48 files, zero name support, unambiguously the real gene - so the triage is one-sided, 145 REAL and 144 ABSTAIN

also called named-but-unwritten triage · one-sided symbol filter · GAPDH proof · the queue cannot be cleared automatically · EFS is event-free survival

This project keeps a list of genes it mentions constantly but has never written up, and the list is full of words that only look like gene names. An attempt to sort it automatically failed twice, and the reason it can never fully work is that a real gene is often only ever called by its abbreviation.

The same thing, for a scientist

`scripts/check-named-but-unwritten.py` finds proteins this graph discusses constantly and never writes down. Its own docstring concedes the queue *"needs reading"* because it admits symbols that are also English words. The queue is now **303** symbols. I tried to replace the reading with a measurement, and the attempt **failed twice before it worked**, each failure diagnosing the next. **ATTEMPT 1 - score on any word of the HGNC name, in the same file as the symbol. Failed in both directions.** `STAR` scored 0.71 and is the **STAR domain** of KHDRBS1/Sam68: its one distinctive probe, *steroidogenic*, matched **0 of 17** files, and the score came from *acute* (10) and *regulatory* (5) - words that are everywhere in a leukaemia corpus. `WAS` scored 0.57 and is the **English word "was"**: *wasp* matched **0** files and the score came from *actin* (39, via ACTB ChIP controls). **And GAPDH is a proof, not a nuisance.** It scored **0.00** across **48** files and is unambiguously the real gene, used as a ChIP control throughout - because nobody writes *glyceraldehyde-3-phosphate dehydrogenase*. **Absence of a gene name is equally consistent with an artefact and with a real gene this corpus only ever calls by its symbol.** So no name-based test can be two-sided, and attempt 1's headline - that 27% of the queue was artefact - was measuring *referred to by symbol only*. It is **withdrawn**. Of the 40 symbols it called artefacts on zero support, the largest include GAPDH, PTEN, VHL, MDM2, HOXA5, HOXC8 and RFC1, all real. **ATTEMPT 2 - require a RARE probe (corpus document frequency under 5% of files) and make the test ONE-SIDED: REAL at >=0.10 support, otherwise ABSTAIN, never artefact. Failed on `PZP`**, which scored a perfect **1.00**. PZP is one of the two collisions this project's registry records as uncatchable by lookup - HGNC calls it an alpha-2-macroglobulin, while 21 entries here mean KMT2A's **PHD-Zinc-finger-PHD cassette**. The cause: HGNC names routinely **begin with the symbol** (*"PZP alpha-2-macroglobulin like"*, *"CD4 molecule"*, *"BRCA1 DNA repair associated"*), so the probe list contained the symbol lowercased and every such gene scored 1.00 **by matching itself**. An instrument that confirms a documented false friend at full confidence is measuring its own input. **ATTEMPT 3 - exclude the symbol from its own probes. Sound, and much weaker.** PZP falls to 0.03 and abstains. So do CD4, WT1, BRCA1 and APC, whose earlier 1.00 scores were pure self-matching. Final: **145 REAL, 144 ABSTAIN** of 289 scored, with 14 untestable because their HGNC name reduces to nothing but stopwords. **The three most frequent tokens in the whole corpus are all artefacts, and all correctly abstained:** `EFS` in **168** files is *event-free survival*; `PRC1` in **144** is *Polycomb Repressive Complex 1* against HGNC's protein regulator of cytokinesis 1; `PDF` in **43** is the **file format**. **What this is allowed to conclude is narrow.** An ABSTAIN clears nothing. And the hand-read validation is weaker than it looks: 11 agree and 0 disagree, but **9 of the 11 are abstentions, which cannot be wrong** - only **two** REAL calls (ASH1L, CXCL12) were independently checked, and both were right. Two-for-two is not a precision estimate.

Facts and figures
scriptanalyses/how-much-of-the-named-but-unwritten-queue-is-a-different-word/run.py
resultsanalyses/how-much-of-the-named-but-unwritten-queue-is-a-different-word/results.json
statusrun
run date2026-09-22
parent instrumentscripts/check-named-but-unwritten.py
the withdrawn figureattempt 1 reported that 27% of the queue was a reading problem rather than a writing task. WITHDRAWN: it was measuring 'referred to by symbol only'. 40 symbols scored zero name support and the largest of them - GAPDH, PTEN, VHL, MDM2, HOXA5, HOXC8, RFC1 - are real genes.
GAPDH is the structural proof48 files, 0.00 name support, and unambiguously the real gene used as a ChIP control. Absence of the gene name is equally consistent with an artefact and with a symbol-only real gene, so a two-sided name-based test is impossible in principle rather than merely hard to tune.
real gaps this cycle acted onCXCL12 (21 files, 0.48) and ASH1L (21 files, 1.00) were both called REAL; CXCL12 and CXCR4 (18 files, 0.56) became the subject of a cycle-61 beat
what an ABSTAIN meansnothing. It is not evidence the symbol is an artefact and not evidence it is a gene.
absence classmeasured-not-analysed
scope
min_files_threshold5.000min_files_threshold: 5untestable14.0untestable: 14scored289.0scored: 289queue_size303.0queue_size: 303node_files_walked2,126node_files_walked: 2126hgnc_protein_coding_symbo…19,297hgnc_protein_coding_symbols: 19297
scope — the numbers behind the chart
{
  "hgnc_protein_coding_symbols": 19297,
  "node_files_walked": 2126,
  "min_files_threshold": 5,
  "queue_size": 303,
  "scored": 289,
  "untestable": 14
}
verdicts
{
  "REAL": 145,
  "ABSTAIN": 144
}
three failures each diagnosing the next
{
  "1_generic_words": "STAR 0.71 via 'acute' and 'regulatory' while 'steroidogenic' matched 0 of 17 files; WAS 0.57 via 'actin' while 'wasp' matched 0 of 76",
  "2_the_symbol_is_in_its_own_name": "PZP scored 1.00 by matching the probe 'pzp'; PZP is a registry-documented collision meaning KMT2A's PHD-Zinc-finger-PHD cassette in 21 entries",
  "3_what_remains": "a one-sided filter that calls REAL or abstains and never calls artefact"
}
the largest tokens are all artefacts
{
  "EFS": "168 files - event-free survival",
  "PRC1": "144 files - Polycomb Repressive Complex 1, against HGNC's protein regulator of cytokinesis 1",
  "PDF": "43 files - the file format",
  "WAS": "76 files - the English word",
  "RPE": "52 files - the hTERT-RPE-1 cell line",
  "NES": "44 files - nuclear export signal",
  "SPR": "28 files - surface plasmon resonance",
  "CPM": "25 files - counts per million"
}
MEASURED PRECISION cycle 63
{
  "why": "this entry's own open question said only two REAL calls had ever been checked and that two-for-two is not a precision estimate. It is now measured.",
  "population": "142 REAL calls, recomputed in-process. NOTE: results.json caps its printed list at 60, so a first sample drawn from that file would have been biased toward the most-named symbols. The full list was regenerated and sampled from.",
  "sample": "30 of 142, random, seed 63 - 21% of the population",
  "method": "ten of the thirty were context-checked by reading how the token is actually used in this corpus; the other twenty were judged on symbol unambiguity alone, which is the weaker half of this estimate and is stated rather than hidden",
  "result": {
    "correct": 29,
    "false_positive": 1,
    "point_precision_pct": 96.7,
    "wilson_95_ci_pct": "83.3 to 99.4"
  },
  "implied_false_positives_across_all_142": "about 5 at the point estimate, up to 24 at the lower confidence bound",
  "THE_ONE_IT_GOT_WRONG": "MBP. HGNC calls it myelin basic protein; this corpus means MALTOSE-BINDING PROTEIN, the crystallography fusion tag - 'the MBP-fusion crystal 8J25 was built on exactly that construct' and 'a sub-50 kDa MBP-fused fragment spanning residues 46-256'. The rare-probe test passed it because 'myelin' and 'basic' both appear somewhere in a corpus that discusses the nervous system and basic residues.",
  "what_this_changes": "the filter is usable for beat selection at roughly 97% precision, which is better than the entry previously claimed to know - but the lower bound of 83% means up to a quarter of the list could be wrong, so it remains a suggestion and not a worklist. The nine context-checks that passed are recorded below because a count is a list nobody opens.",
  "the_nine_that_passed_a_context_check": {
    "TAP1": "the antigen transporter, in antigen-processing absence queries",
    "FBL": "fibrillarin, in a nucleolar complex list beside NOP58 and RRP9",
    "MTAP": "genuine - MTAP-deleted cells and their pathway sensitivity",
    "ABCB1": "genuine - MDR1, P-glycoprotein, in the t(17;19) literature",
    "AURKA": "genuine, and an entry elsewhere already calls it 'a real gene in this graph'",
    "CEP164": "genuine, in a CALM::MLLT10 cryptic-partner list",
    "DENND2D": "genuine, in a BioPlex platform block",
    "AKAP8L": "genuine, in a splicing cohort beside LUC7L3 and PRPF4B",
    "UBE2B": "genuine, in an H2Bub E2 dependency table"
  }
}
MEASURED RECALL cycle 64 AND IT INVERTS THIS ENTRY
{
  "why": "this entry's open question said the ABSTAIN half had no estimate at all - 144 symbols the filter says nothing about. Measured.",
  "population": "150 ABSTAIN symbols, recomputed in-process (the corpus has grown since cycle 61)",
  "sample": "30 of 150, random, seed 64, each read with a context line from the corpus",
  "result": {
    "correct_abstains": 2,
    "real_genes_the_filter_failed_to_call": 28,
    "fraction_of_ABSTAIN_that_is_a_real_gene_pct": 93.3,
    "wilson_95_ci_pct": "78.7 to 98.2"
  },
  "the_two_it_got_right": {
    "PRC1": "Polycomb Repressive Complex 1 in 145 files, against HGNC's protein regulator of cytokinesis 1 - the registry's own canonical example",
    "HBM": "an abbreviation, not a gene: the corpus writes 'aa 1799-1802 (HBM)' meaning the HCF-1 BINDING MOTIF, against HGNC's hemoglobin subunit mu"
  },
  "THE_INSTRUMENT_IN_FULL": {
    "precision": "96.7% (cycle 63, 30 of 142 REAL calls)",
    "recall": "~50%. At 142 REAL calls and 96.7% precision that is ~137 true positives; at 150 ABSTAIN and 93.3% real that is ~140 false negatives.",
    "verdict": "high precision, half recall - it finds about one in two of the real gaps"
  },
  "AND_THIS_INVERTS_THE_FRAMING_THIS_ENTRY_WAS_BUILT_ON": "The entry is organised around collisions - WAS, RPE, EFS, PRC1, PDF, MBP - as the salient hazard of the queue, and its withdrawn first version claimed 27% of it was a reading problem. Measured across both halves, collision artefact is about **15 of 292 scored symbols, roughly 5%**. The queue is overwhelmingly REAL MISSING GENES: approximately **277 genes named in five or more node files with no entry of their own**. The collisions are conspicuous, memorable and rare, and this entry has been giving them more weight than the measurement supports.",
  "what_this_means_for_the_PI_priority": "The standing instruction is to saturate the biology. The actual size of the named-but-unwritten gap is now measured at roughly 277 genes, not the 142 the filter surfaces. Half of that gap is invisible to the instrument this project uses to find it.",
  "caveats_on_this_measurement": "Thirty of 150, and each judged from a single context line rather than a full read. H3C1 was counted as a real gene missed, but it is a case the graph declines DELIBERATELY - histones are filed here as marks, and an entry elsewhere notes that an instrument 'keeps promoting histone H3C1 as a gap'. So a few of the 28 may be deliberate omissions rather than oversights, which would lower the real-gap estimate. The direction of the inversion is not in doubt at a 78.7% lower bound; the exact figure is."
}
How this could bite us back
  • This is tooling and nominates nothing clinically. The one caution worth stating is against the use it invites: the 145 REAL calls are a beat-selection aid with an unmeasured error rate, and writing an entry because a symbol appears on that list would be exactly the automated 'write the missing genes' pass this project's registry already warns would have created gene-prc1 for a mitotic spindle protein.
Still open
  1. Should the 303-symbol queue simply be read once and labelled? That would cost an afternoon, would make every future version of this instrument testable, and is the one thing that would turn an unvalidated filter into a measured one.
  2. MEASURED IN CYCLE 64. The ABSTAIN half is 93.3% real genes (28 of 30 sampled, Wilson 95% CI 78.7-98.2%), so the filter's recall is about 50% and the queue holds roughly 277 real missing genes rather than the 142 it surfaces. Only two of thirty were correct abstentions - PRC1 and HBM. What remains open is whether some of the 28 are DELIBERATE omissions rather than oversights: H3C1 is a real gene this graph declines on purpose, because histones are filed as marks.
  3. Is a name-based probe the wrong family of test altogether? A symbol accompanied by a UniProt accession, an Ensembl id or a chromosomal band in the same file is being used as a gene regardless of whether its name appears - and that signal was never tried.
  4. Should entries written under non-approved symbols be reconciled? JMJD1C is HGNC-approved for the gene this graph writes as gene-kdm3c, so it sits in the queue at 16 files while having an entry - and one of mechanism-h3k9me1-2-ctcf-balance-gates-kmt2a-rearrangement's own falsifiers turns on distinguishing KDM3B from JMJD1C, which is that same gene under its other name.
Every source behind this entry (1)
  1. E1moderate confidence 3 of 5: One strong study, or several smaller consistent ones.database

    Over 19,297 HGNC protein-coding symbols and 2,126 node files, 303 symbols are named in at least five files with no entry of their own. A same-file test scoring each symbol against any distinctive word of its HGNC name fails in both directions: STAR scores 0.71 while its only distinctive probe 'steroidogenic' matches 0 of 17 files and the score comes from 'acute' and 'regulatory'; WAS scores 0.57 while 'wasp' matches 0 of 76 and the score comes from 'actin'; and GAPDH scores 0.00 across 48 files while being unambiguously the real gene. Restricting probes to words with corpus document frequency below 5% of files and making the test one-sided still failed on PZP, which scored 1.00 by matching the probe 'pzp' derived from its own HGNC name. Excluding the symbol from its own probe list yields 145 REAL and 144 ABSTAIN of 289 scored symbols, with 14 untestable. The three most frequent tokens in the corpus - EFS at 168 files, PRC1 at 144 and PDF at 43 - are event-free survival, Polycomb Repressive Complex 1 and the file format respectively, and all three correctly abstain.

    What this evidence cannot show

    THE VALIDATION IS WEAKER THAN THE HEADLINE. Thirteen symbols were hand-read before the scores were computed, and the final test agrees on 11 with 0 disagreements - but NINE of the eleven are abstentions, and an abstention cannot be wrong. Only TWO REAL calls (ASH1L, CXCL12) were independently checked. Two-for-two is not a precision estimate, and the other 143 REAL calls are unvalidated. Recall is poor by construction: BRCA1, CD4, WT1 and APC are real genes this test abstains on. The document-frequency threshold of 5% and the support floor of 0.10 were chosen by the coordinator without tuning against a labelled set, because no labelled set exists. Distinctive-word extraction uses a hand-made stopword list.

    Evidence that argues against this (2)
    • The parent instrument's docstring already said the queue needs reading, and the honest reading of this analysis is that it confirmed that rather than improving on it. A filter with unvalidated precision, poor recall and a 50% abstention rate is not obviously better than reading 303 symbols once - which would take an afternoon and would produce the labelled set this analysis could then actually be tested against.
    • Three successive failures on an instrument the coordinator built, each caught only because a known-answer case happened to be in the output, is weak evidence that the third version is sound. PZP was caught because the registry documents it; there is no reason to think a fourth failure mode would be equally visible, and this project's ledger already records instruments that needed two corrections before they stopped reporting noise.
Connected to