Oncofusion

start / graph / ana-forty-of-forty-zero-bounds-still-hold-and-nineteen-were-never-queries

Analysisestablished confidence 5 of 5: Multiple independent lines of evidence; treated as settled in the field.king

Re-ran this corpus's literature bounds against the live index: 40 of 40 stored zeros still return zero, none has expired - and 19 stored 'queries' abbreviate their own clauses, so they were never runnable bounds at all

also called zero bound expiry · stored querytranslation audit · gene clause placeholder · absence shelf life

Many of our claims that something has never been studied rest on a literature search that came back empty, and searches go stale as new papers appear. We re-ran forty of them and every one is still empty - but nineteen others turned out to record only a summary of the search rather than the search itself, so they cannot be checked at all.

The same thing, for a scientist

Cycle 70 concluded that the absence TOKEN was never the load-bearing part - the real content is the stored querytranslations, parsed zeros and counts - and that an audit of tokens structurally cannot see a wrong count. This is that audit. The corpus holds **754 {query, count} triples across 246 entries**, of which **193 are zeros across 127 entries**: 127 absence claims resting on an empty search. Decision rule fixed before running, because PubMed grows and a rising count is the world working normally: `live == 0` the bound holds; `live > 0` the bound has **expired** and the entry was right when written; a changed querytranslation invalidates the comparison; an empty translation is instrument failure, never a zero. **Result: 40 of 40 sampled bounds still return 0. Zero expired, zero translation changes, zero instrument failures, denominator closing.** The separate finding is that **19 of the 193 are not queries**: they store `(gene clause) AND (localisation clause) AND (fusion clause)` and similar, across **15 entries**.

Go deeper
The bounds that are real are in good shape

Forty runnable zero-bounds sampled at seed 71 and re-run through scripts/pubmed_safe-style checking, which raises on an empty querytranslation rather than recording it as a zero. Every one still returns 0, and no stored querytranslation differs from the live one.

That is a stronger result than it sounds. These bounds were written across many cycles by different beats, and the fear was twofold: that new literature had appeared and quietly falsified an absence, and that a stored count had been wrong when written. Neither shows up in forty. The absences this corpus publishes have not expired.

Entries sampled include gene-rad51, gene-top2a, gene-chek2, gene-hira, gene-cdkn2a, gene-wee1, mark-h3r2me2a, mark-h4r3me2a, absence-cxcr4-axis-never-measured-under-menin-inhibition and concept-no-dependency-screen-in-infant-kmt2a-aff1-material.

Nineteen entries store a summary of a search instead of the search
stored stringn
(gene clause) AND (localisation clause) AND (fusion clause)14
(gene clause) AND (nine-term KMT2A/MLL fusion clause)2
(gene clause) AND (twelve-term subnuclear clause)1
HLA-B[tiab] AND (localisation clause) AND (fusion clause)1
one with the fusion clause spelled out and the gene clause not1

Across 15 entries: gene-chuk, gene-csnk2a2, gene-ctr9, gene-ddx6, gene-dnmt3a, gene-ep400, gene-fut9, gene-hcfc2, gene-hla-b, gene-jak1, gene-kat2a, gene-khdrbs1, gene-nasp, gene-nf1, gene-igf2bp2.

The severity varies and the two ends are worth separating. In gene-hcfc2 the gene clause and the fusion clause ARE spelled out in earlier queries of the same block, so the abbreviations refer to something the entry defines - except the twelve-term localisation clause, which it never writes down, so the conjunction still cannot be rebuilt exactly. In gene-fut9 none of the three clauses appears anywhere in the entry, and all three of its stored queries are abbreviations. That absence is bounded by a string nobody can run.

This is not evidence the searches were not done - the entries record counts and title-checks that look like real work. It is that a bound which cannot be re-run is a note that a bound was computed, and this cycle is precisely the demonstration of why that matters: the 174 runnable ones could be checked and were, and these 19 could not.

Why a growing index does not make this a false-alarm detector

PubMed only grows, so re-running an old zero can only ever return zero or more. That asymmetry is what makes the test cheap and one-sided: a bound that still reads 0 is confirmed, and a bound that now reads >0 has expired rather than been wrong. The entry was correct when written and the corpus simply has not noticed the new paper.

Finding zero expiries in forty therefore says something specific: across the sampled bounds, no new indexed literature has appeared on any of these questions since they were asked. For a corpus whose absences are mostly recent that is plausible, and it also sets the expectation for later - this is a test that should be re-run periodically, and its value rises with the age of the bound.

Facts and figures
stored query count triples754
entries with a stored query246
stored zero bounds193
entries resting on a zero bound127
runnable as stored174
placeholder abbreviations19 within the zero-count subset; **48 corpus-wide across 16 entries** when every stored query is scanned regardless of count - see CORRECTION_2026_09_23_the_real_scope_is_48_not_19
entries with a placeholder15
sample n40
seed71
held still zero40
expired now nonzero0
querytranslation changed0
instrument failures0
wilson 95 upper bound on expiry rate PCT8.8
decision rule fixed before runninglive==0 holds; live>0 EXPIRED and the entry was right when written; changed querytranslation invalidates the comparison; empty translation is instrument failure and never a zero
measured2026-09-23, king, cycle 71
placeholder strings
(gene clause) AND (twelve…1.000(gene clause) AND (twelve-term subnuclear clause): 1HLA-B[tiab] AND (localisa…1.000HLA-B[tiab] AND (localisation clause) AND (fusion clause): 1one further partial1.000one further partial: 1(gene clause) AND (nine-t…2.000(gene clause) AND (nine-term KMT2A/MLL fusion clause): 2(gene clause) AND (locali…14.0(gene clause) AND (localisation clause) AND (fusion clause): 14
placeholder strings — the numbers behind the chart
{
  "(gene clause) AND (localisation clause) AND (fusion clause)": 14,
  "(gene clause) AND (nine-term KMT2A/MLL fusion clause)": 2,
  "(gene clause) AND (twelve-term subnuclear clause)": 1,
  "HLA-B[tiab] AND (localisation clause) AND (fusion clause)": 1,
  "one further partial": 1
}
worked severity examples
{
  "gene-hcfc2": "gene and fusion clauses ARE spelled out in earlier queries of the same block; the twelve-term localisation clause is not, so the conjunction cannot be rebuilt exactly",
  "gene-fut9": "none of the three clauses appears anywhere in the entry; all three stored queries are abbreviations and the absence is bounded by a string nobody can run"
}
CORRECTION 2026 09 23 the real scope is 48 not 19
{
  "what_was_wrong": "This entry reports 19 abbreviated 'queries' across 15 entries. That is the count within the ZERO-count subset only, because the extraction filtered on count == 0 before testing for a placeholder. Abbreviated bounds attached to a NON-ZERO count were invisible to it.",
  "measured_2026_09_23": "Re-scanned every stored query object regardless of its count: **48 query objects across 16 entries** carry a placeholder clause. The extra entry is gene-nfkb1, which has no zero-count placeholder and so never appeared. Sixteen entries carry exactly three each.",
  "what_is_unchanged": "The audit's substantive result stands: 40 of 40 RUNNABLE zero-bounds still return zero, no querytranslation changed, no instrument failure. The 19-vs-48 error is in the scope of the defect, not in the finding about the bounds that could be run.",
  "why_it_matters": "The entry's own open question asked for the 19 to be spelled out. It is 48, and the difference is not cosmetic: a bound with a non-zero count is one a reader is MORE likely to rely on, because a number that is not zero looks like a measurement rather than an absence. All 48 now carry a bound_not_reproducible_as_stored flag on the query object itself.",
  "the_shape_of_my_error": "I filtered the population before testing the property. The filter (count == 0) was chosen for a different reason - zeros are what absences rest on - and it silently became the denominator for a claim about placeholders. This is the same shape as the cycle-67 checker that globbed a filename while validating a field."
}
Still open
  1. Spell out the 19 abbreviated queries, or mark those bounds unverifiable. gene-fut9 needs all three clauses and gene-hcfc2 needs one; the rest sit between. Writing the query costs a line and is the difference between a bound and a note that a bound existed.
  2. How many absences rest on a search recorded only in PROSE, with no query object at all? This audit could only see the 246 entries that store a machine-readable query. The corpus has 100 never-measured entries alone, so the unaudited remainder is larger than the audited part and nothing has counted it.
  3. Re-run this quarterly rather than once. Zero expiries today is a statement about bounds written mostly within the last few weeks; the test's value rises with the age of the bound, and it costs one script run.
Every source behind this entry (1)
  1. E1established confidence 5 of 5: Multiple independent lines of evidence; treated as settled in the field.computation_on_a_live_api

    The corpus holds 754 stored {query, count} triples across 246 entries, of which 193 have a stored count of zero across 127 entries. 174 of those 193 are runnable as stored and 19 contain a template abbreviation. Forty of the 174 were sampled at seed 71 and re-run live against PubMed esearch: all 40 returned count 0, no stored querytranslation differed from the live one, and no query returned an empty translation. held 40 + expired 0 + failed 0 == 40 sampled.

    Live re-run of stored zero-count literature bounds against NCBI Entrez esearch, Oncofusion corpus · king, Oncofusion knowledge graph, cycle 71 · analyses/stored-zero-bounds-expiry/run.py 2026
    What this evidence cannot show

    Forty of 174 is a 23% sample and zero expiries in forty has a Wilson 95% upper bound near 8.8%, so up to roughly 15 of the 174 could have expired without showing here. The test is also one-sided by construction: it can detect a bound that has gone stale, and it CANNOT detect a count that was wrong when written unless the error made the stored number higher than the live one, which for a growing index is nearly impossible to observe. A stored zero that should have been a two when written still reads as a held bound today. And `[tiab]`-scoped queries were re-run as stored, so a bound that was too narrow when written is re-confirmed as too narrow rather than corrected - rule 80's abstract-level problem is orthogonal to this audit and untouched by it. AND THE PLACEHOLDER COUNT IN THIS ENTRY IS THE ZERO-ONLY SUBSET: 19 of the zeros, but 48 query objects across 16 entries corpus-wide, because the extraction filtered on count == 0 before testing for a placeholder.

    Evidence that argues against this (2)
    • The clean result also reflects what the corpus chose to store. Only 193 of the zeros come with a machine-readable query at all, and those are the bounds written carefully enough to be auditable - so this audit samples the best-documented tail of the absence population and pronounces it sound. The 19 unrunnable ones are the visible part of that selection; how many absences rest on a search recorded only in prose, with no query object at all, is not measured here and is probably larger.
    • And a held zero is weaker evidence than it appears for the claims that rest on it. Most of these are `[tiab]` conjunctions - gene clause AND localisation clause - and a paper that measures the thing without naming both in its title or abstract is invisible to them. The cycle-66 beat showed this directly by moving one absence to full text and finding 0 become 74. So 40 of 40 holding means the stored searches are reproducible, not that the underlying absences are real.
Connected to