I audited whether a valid absence token is the RIGHT token, expecting the gene-nbn error to be widespread. It is not: 3 of 4 read were correctly scoped, the scoping is done in prose, and 39 of 40 flagged entries carry no machine-readable scope
also called absence token correctness · absence_class_scope · never-measured audit · the detector over-fires on depmap
Last cycle we found one entry whose gap label was wrong, so this checked whether that was common. It is not - the labels read correctly, and where an entry means something narrow it says so clearly in its own text, just not in a form a program can read.
The same thing, for a scientist
Cycle 68 found `gene-nbn` carrying `never-measured` over a field that falsely denied four existing ENCODE experiments, and raised the question of how many valid tokens are the wrong token. Of 222 entries with a valid `absence_class`, **99 are `never-measured`** - the strongest and most falsifiable claim. A mechanical narrowing found **33 of 99 name a data accession inside their own `data` block** and **40 of 99 carry a field name asserting a measurement**. Both filters **over-fire badly**: most hits are `depmap`, which measures fitness and is a different axis from the absence, or metadata names like `date_measured` and `alias_split_measured`. Reading four candidates: **`gene-eloa`, `gene-cbx1` and `ana-q37-a-damage-state-...` are all correctly scoped, and only `gene-nbn` was wrong** - and its error was a **false factual claim inside a field**, not a mis-scoped class. **The hypothesis that wrong tokens are widespread is not supported.** The one number that survives is structural: of the 40 flagged, **39 have no `absence_class_note`**, so the scoping that entries plainly do in prose is invisible to any program.
I called gene-cbx1 an error mid-audit and it is not one
The detector flagged gene-cbx1 because it holds a field named encode_occupancy_at_kmt2a_measured_by_this_beat, and I wrote that this was the same shape as gene-nbn: we measured it and never changed the label. That was wrong, and reading the entry is what showed it. Its fields are careful and mutually consistent:
shown_for_fusion— "NO — nobody has looked in any KMT2A fusion"localization_shown_for_fusion— "NO — nobody has looked in any fusion. Newly bounded at the KMT2A locus by this beat in K562 and HepG2 (ENCODE), both negative."cell_type— "measured here in K562 and HepG2; no measurement in a haematopoietic progenitor or a KMT2A-rearranged cell"
So never-measured is correct for the claim the entry is making — never measured in a KMT2A-rearranged cell — and the entry states that scope three separate times. I pattern-matched a field NAME onto the previous cycle's error and reached for the conclusion before reading. The detector narrowed 99 to 40; it did not adjudicate, and treating its output as a verdict is exactly the failure this project keeps recording.
What the two filters actually select for
| filter | hits of 99 | what dominates the hits |
|---|---|---|
own data block names a data accession | 33 | PRIDE PXD009338 cited by seven Elongin/nucleoporin entries as the only relevant deposition, i.e. cited to BOUND the absence rather than to contradict it |
| a field NAME asserts a measurement | 40 | depmap — a fitness measurement, a different axis from "nobody has looked at this protein at the KMT2A locus"; plus date_measured, alias_split_measured, cell_types_measured, which are metadata |
An accession inside a never-measured entry is usually evidence the author did the work. ana-q37-a-damage-state-resection-occupancy-dataset-does-exist-and-it-cannot-reach-the-kmt2a-locus names 23 accessions and its token is right: a damage-state dataset exists, it cannot reach KMT2A because there are no AsiSI sites in the gene body, so the locus has genuinely never been measured in a damage state. The accessions are the bound, not a contradiction of it.
The finding that survives is about scope, not correctness
39 of the 40 flagged entries carry no absence_class_note. The single exception is gene-nbn, where I added one last cycle. Yet the entries are doing the scoping — gene-cbx1 states its scope three times in prose, and gene-eloa's note reads "No instrument has been pointed at Elongin A in a KMT2A-rearranged cell outside the two screen hosts. The MOLM-13 shRNA score is separately measured-not-reported." That is precisely the field's purpose, written by an author two cycles before the field was formalised.
So the corpus is more careful than its schema. The cheap fix proposed last cycle is the right one and this audit strengthens it: a absence_class_scope naming WHICH gap the token describes — one field, no prose rewritten, and it would have stopped me misreading gene-cbx1 in the first place. The array schema (absences: [{what, class, basis}]) remains the fuller answer and the more expensive one.
| valid token entries | 222 |
|---|---|
| never measured naming an accession in own data | 33 |
| never measured with a measurement field name | 40 |
| of those 40 carrying an absence class note | 1 |
| hypothesis tested | that wrong tokens are widespread |
| verdict | NOT SUPPORTED on what was read; the structural gap is scope, not correctness |
| proposed cheap fix | absence_class_scope, one field naming WHICH gap the token describes |
| measured | 2026-09-23, king, cycle 69 |
token distribution — the numbers behind the chart
{
"never-measured": 99,
"measured-not-analysed": 70,
"measured-not-reported": 23,
"literature-absence-bounded": 14,
"measured-not-searched": 9,
"measured-not-curated": 4,
"unclassified-not-checked": 3
}read in full
{
"gene-nbn": "TOKEN WRONG (cycle 68) - a field falsely denied 4 ENCODE experiments",
"gene-cbx1": "correctly scoped - states 'no measurement in a KMT2A-rearranged cell' three times; I called it an error mid-audit and was wrong",
"gene-eloa": "correctly scoped, and already used absence_class_note two cycles before the field was formalised",
"ana-q37-a-damage-state-...": "correct - 23 accessions cited to BOUND the absence; no AsiSI site in the KMT2A gene body"
}- Sample the 59 never-measured entries that NEITHER filter flagged. Both filters key on field names and accessions, so a token that is wrong in a quiet entry is invisible to them, and that is where an unbiased estimate has to come from. Twenty read at random would give the rate this audit cannot.
- Should absence_class_scope be required rather than optional? 39 of 40 flagged entries lack any machine-readable scope while plainly carrying one in prose, so the field would be recording something that already exists rather than asking authors for new work.
- The seven Elongin and nucleoporin entries all cite PXD009338 as the only relevant deposition. Nobody has opened it. If that one proteomics deposit is the sole bound on seven absences, its contents decide seven entries at once.
- E1moderate confidence 3 of 5: One strong study, or several smaller consistent ones.computation_on_this_corpus
Of 222 entries carrying a valid absence_class, 99 are never-measured. 33 of those 99 name a data accession (GSE/GSM/ENCSR/ENCFF/SRX/PXD/PRJNA/E-MTAB) inside their own data block, and 40 carry a field name asserting a measurement. Four candidates were read in full: gene-nbn (token wrong in cycle 68 because a field falsely denied four existing ENCODE experiments), gene-cbx1, gene-eloa and ana-q37-a-damage-state-resection-occupancy-dataset-does-exist. The last three are correctly scoped. 39 of the 40 flagged entries carry no absence_class_note.
Correctness audit of never-measured absence tokens against each entry's own evidence, Oncofusion corpus · king, Oncofusion knowledge graph, cycle 69 · docs/king-log/2026-09-23-cycle-69.md 2026What this evidence cannot show
**Four entries read is not a rate.** Three-of-four correct has a Wilson 95% CI of roughly 30-95%, which is consistent with almost any underlying error rate, and the four were chosen because a filter flagged them rather than at random - so they are the entries MOST likely to be wrong, which makes 3 of 4 correct more reassuring than a random sample would be but still not a measurement. The claim here is narrow: the hypothesis that wrong tokens are WIDESPREAD is unsupported, not that the rate is zero. The 39-of-40 figure is a complete count of the flagged set and does not have this limitation.
Evidence that argues against this (2)
- The audit is also self-serving in a way worth naming: I designed the filters, I read the four, and I am the author of some of the entries. A filter I built that over-fires on `depmap` produces a flagged set I can then declare mostly correct, and the reassuring conclusion costs me nothing. An independent check would sample the 59 never-measured entries my filters did NOT flag - the ones where nothing in the field names suggests a measurement - because a token that is wrong in a quiet entry is exactly what neither filter can see.
- And one reading of gene-cbx1 still favours a defect, though not the one I claimed. Its `localization_shown_for_fusion` says the locus was 'newly bounded by this beat in K562 and HepG2, both negative' - so for the LOCUS question the right class is measured-and-negative, while for the FUSION question it is never-measured. Two gaps, two classes, one token. The entry is not wrong; it is the same single-valued-field problem documented last cycle, and calling it 'correctly scoped' is only true because the reader supplies the scope.
that entry's gene-nbn case raised the worry that valid tokens are often the wrong token; reading four of the most-suspect entries found three correctly scoped, so the defect is scope visibility rather than correctness
flagged by the filter and read: its token is correct for the claim it makes - no measurement in a KMT2A-rearranged cell - which it states three times in prose and nowhere in a field
the one token found wrong, and its error was a false factual claim inside a field rather than a mis-scoped class
that audit conceded its sample was adversarially selected and named the unbiased test; this runs it and finds 0 of 15 wrong, closing the question the same way