Oncofusion

start / graph / ana-the-index-built-to-stop-gap-claims-made-one

Analysisstrong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.

The citation index built to stop false gap claims made one: its regex matched prose but not the schema's own pmid field, missing 73.7% of the corpus's citations, and the single-cell gap it selected was refuted by a paper already cited in fourteen entries

also called the index missed 73.7% of its own corpus · 4,000 PMIDs, not 1,908 · precision is not recall · the fourth index-instead-of-the-thing · 35288693 was cited 14 times while a brief said it did not exist

Two cycles ago this project built a search tool over every paper its notes cite, specifically to stop it claiming that something had never been done when it had. The tool reported 1,908 papers and that every one was real, which sounded like a clean bill of health. It was not: the tool could only see citations written one of the two ways this project writes them, and it missed nearly three quarters of them. The gap it then pointed at — nobody has studied these patients one cell at a time — was refuted by a paper the project had already cited fourteen times.

The same thing, for a scientist

**Statement.** Cycle 118 built a citation index to stop dispatch briefs asserting gaps the corpus already refuted, after three consecutive cycles did exactly that. **The index has now done it a fourth time, and it is the instrument built to prevent it.** | | cycle 118 | corrected | |---|---:|---:| | distinct PMIDs | 1,908 | **4,000** | | entries citing one | 1,230 | **2,411** | | resolving to a real paper | 100% | **100%** | | missed by the prose path | — | **2,946 (73.7%)** | **The defect is one regex.** `PMID[:\s]*(\d{7,8})` matches `PMID 35288693` in prose and cannot match `"pmid": "35288693"` — **the citation schema's own field**, which is where this project records most of its citations. **Why it survived a 100% resolution rate.** That rate is a **PRECISION** measure: every identifier found is a real paper. The script had **no recall measure at all**, and nothing in its output could distinguish a complete index from a quarter of one. **An index whose job is to bound an ABSENCE needs recall; precision is the wrong axis entirely** and the confident-looking number was on it. **The cost, concretely.** Cycle 118 reported single-cell as the thinnest topic — *"8 papers, each cited once or twice, none of them a KMT2A::AFF1 or infant-ALL study"* — and dispatched a beat on it. The corrected index holds **19**, and the most-cited is **PMID 35288693, Khabirova *Nat Med* 2022, *Single-cell transcriptomics reveals a distinct developmental state of KMT2A-rearranged infant B-cell acute lymphoblastic leukemia*, cited by 14 entries in this corpus.** The declared-absent study is the single best-cited paper in the declared-empty topic. Candelli *Leukemia* 2022 (relapse-initiating cells in MLL-rearranged infant ALL, 4 entries) and Chen *Blood* 2022 (KMT2A-r single-cell multiomics, 5 entries) follow. **And it propagated.** `hyp-lineage-switch-is-competitive-release-of-preexisting-clone` asserted *"No single-cell demonstration exists in KMT2A-rearranged disease"*. Chen 2022 reports *preexisting lymphomyeloid primed progenitors and myeloid blasts at initial diagnosis of B-ALL* and tracks those clones through lineage switch into AML in two patients — the hypothesis's own prediction, measured. That entry is corrected and raised speculative → moderate. **Every topic count moved, and not by a common factor** — relapse/MRD ×3.5, metabolism ×1.7 — so the **ranking** was unreliable, not merely the level. Relapse/MRD **91** (was 26), metabolism **65** (39), condensates **51** (22), splicing **48** (15), CAR-T **38** (14), 3D genome **30** (10), degrons **25** (14), single-cell **19** (8). --- 🔴 **ADDENDUM 2026-09-24 (cycle 126): THE INDEX GOES STALE THE MOMENT A BEAT LANDS, AND NOTHING REFRESHED IT.** Checking whether the corpus knew a paper — **PMID 33069783**, which defines the HOXA9/IRX1 subgroups of infant MLL-AF4 ALL — the index returned **cited by 0 entries**. It is cited by one: **q142's**, committed after the index was last built. A `grep` found it immediately. **So the pre-dispatch gap check answers a question about the corpus as it was two cycles ago**, and it fails in the direction that manufactures gaps. That is the same defect this entry records, arriving by a different route: not a regex that cannot see a field, but an index that cannot see the present. **And it is the exact shape of `a missing value is not a negative value`** — `cited_by.get(pmid)` returns empty for *never indexed* and for *never cited*, and nothing distinguishes them. 🔴 **Refreshing it was itself a landmine.** `run.py` rewrote `citation-index.json` with only the keys it produces — `generated`, `titles`, `cited_by` — and would have **silently destroyed the 3,956 abstracts** written into the same file by `add_abstracts.py`, which are the half that narrowed this tool's binding `U2`. The write now merges into the prior file instead of replacing it, and the file was backed up before the first refresh. 🔵 **Refreshed:** 4,000 → **4,003 PMIDs**, 2,411 → **2,492 citing entries**, abstracts preserved and topped up to 3,959 of 4,003. **The index must be re-run before it is used to justify a dispatch, and the run is cheap because titles and abstracts are cached** — this refresh fetched three records.

Go deeper
The entry's own caveat named the defect, and it was written as a hedge

Cycle 118's E1 caveats say it outright:

"The PMID regex requires the literal 'PMID' prefix, which is deliberate — a bare 7-8 digit number in this corpus is usually a genomic coordinate — so any citation written without that prefix is missed entirely and the 1,908 is itself a lower bound."

Everything needed to catch this was in that sentence, written before the number was used. The reasoning for excluding bare digits was sound and remains in the corrected script. What was never asked is the next question: does this corpus write citations without the prefix, and how many? One grep for "pmid" answers it.

This is the sixth time a caveat in this project has named a defect that later cost a cycle. A caveat that names a measurable gap is not a disclaimer, it is an unexecuted task, and the distinction is invisible at writing time because both are written in the same voice.

The corrected script now carries a recall control — it runs both extraction paths, prints how many identifiers each finds that the other misses, and stores the disagreement in results.json. Two paths that agree is weak evidence of completeness; two that disagree by 73.7% is conclusive evidence of incompleteness, and only the second was available here.

Four cycles, four indices, one shape
cyclethe index measuredthe thing
113type == 'analogy' → 17 entriesa 68-entry comparative/ folder
115two true margins, joinedRS4;11 has zero MEN1 or VTP samples
117entry ids and prosePMID 33910331, cited in nine entries
118prose-only citations73.7% of citations are in the pmid field

The pattern is not carelessness, it is that an index is always cheaper to query than the thing, and the gap between them is invisible from inside the index. Each of these tools was built as the fix for the previous one, and each inherited the shape.

What would actually break the cycle is not a better index but a different question. A brief that says "here is what is known, extend it" cannot be wrong in this way; a brief that says "this has never been done" can, and has, four times. Cycle 118 raised this in its own open questions and then dispatched a novelty-asserting brief anyway.

Facts and figures
questionwas the citation index that selects dispatch beats complete?
answerno - it missed 73.7% of the corpus's cited PMIDs
node files walked2630
distinct pmids corrected4000
distinct pmids original1908
entries citing a pmid corrected2411
entries citing a pmid original1230
distinct dois3449
found only by schema path2946
found only by prose path793
prose path undercount PCT73.7
resolved PCT100
the defectthe regex required the literal string PMID, matching prose citations but not the citation schema's own "pmid" field
why it surviveda 100% resolution rate is a PRECISION measure; the script had no RECALL measure, and an index used to bound an absence needs recall
the fix now in the scripttwo extraction paths are run and their disagreement is printed and stored as a recall control; two paths that disagree by 73.7% is conclusive evidence of incompleteness, and no such signal existed before
absence classmeasured-not-curated
bite backThis entry argues that an absence claim is only as good as the instrument that bounds it, and then asserts several absences of its own - that no third citation form matters, that the corrected 4,000 is complete enough to act on. Those rest on the same instrument, corrected once, by the person who wrote the defect. A reader should treat '4,000' with the scepticism this entry says '1,908' deserved.
topic coverage corrected
single_cell19.0single_cell: 19degron_targeted_degradati…25.0degron_targeted_degradation: 253D_genome30.03D_genome: 30CAR_T_immunotherapy38.0CAR_T_immunotherapy: 38splicing48.0splicing: 48condensate_phase_separati…51.0condensate_phase_separation: 51metabolism65.0metabolism: 65relapse_MRD91.0relapse_MRD: 91
topic coverage original
single_cell8.000single_cell: 83D_genome10.03D_genome: 10CAR_T_immunotherapy14.0CAR_T_immunotherapy: 14degron_targeted_degradati…14.0degron_targeted_degradation: 14splicing15.0splicing: 15condensate_phase_separati…22.0condensate_phase_separation: 22relapse_MRD26.0relapse_MRD: 26metabolism39.0metabolism: 39
topic coverage corrected — the numbers behind the chart
{
  "relapse_MRD": 91,
  "metabolism": 65,
  "condensate_phase_separation": 51,
  "splicing": 48,
  "CAR_T_immunotherapy": 38,
  "3D_genome": 30,
  "degron_targeted_degradation": 25,
  "single_cell": 19
}
topic coverage original — the numbers behind the chart
{
  "relapse_MRD": 26,
  "metabolism": 39,
  "condensate_phase_separation": 22,
  "splicing": 15,
  "CAR_T_immunotherapy": 14,
  "3D_genome": 10,
  "degron_targeted_degradation": 14,
  "single_cell": 8
}
the refuted gap
{
  "claimed": "single-cell: 8 papers, none a KMT2A::AFF1 or infant-ALL study",
  "actual": "19 papers; PMID 35288693 Khabirova Nat Med 2022 is KMT2A-rearranged infant B-ALL single-cell transcriptomics and is cited by 14 entries in this corpus",
  "also_present": {
    "34304246": "Candelli, Leukemia 2022, relapse-initiating cells in MLL-r infant ALL, 4 entries",
    "34864916": "Chen, Blood 2022, KMT2A-r single-cell multiomics, 5 entries"
  }
}
entries corrected this cycle
[
  "ana-this-corpus-cites-1908-papers-and-searching-them-is-the-check-three-briefs-skipped",
  "hyp-lineage-switch-is-competitive-release-of-preexisting-clone"
]
staleness addendum cycle 126
{
  "the_defect": "the index is built from committed node files and is not refreshed when a beat lands, so the pre-dispatch gap check describes the corpus as it was",
  "the_near_miss": "PMID 33069783 returned 'cited by 0' while q142 cites it; grep found it immediately",
  "direction_of_failure": "manufactures gaps, which is the failure mode this entry exists to stop",
  "the_landmine": "run.py rewrote citation-index.json with only its own keys and would have destroyed the 3,956 abstracts written by add_abstracts.py into the same file; the write now merges",
  "after_refresh": {
    "pmids": 4003,
    "citing_entries": 2492,
    "abstracts": 3959
  },
  "the_rule": "re-run the index before using it to justify a dispatch; it is cheap because titles and abstracts are cached"
}
Still open
  1. Re-check every absence claim in this graph written before 2026-09-23. All of them were bounded by tools with unmeasured recall, and at least two have now been found false; nobody knows the rate.
  2. Add a recall control to every instrument that bounds an absence, not just this one. The general rule the cycle earns: report how much the instrument MISSES beside what it finds, or the finding is unreadable.
  3. Index abstracts, not titles. U2 is now the binding limit on every topic count in this entry and it has been carried forward unactioned for three cycles.
  4. Resolve the 3,449 DOIs. They remain entirely unchecked and deposits and preprints live there.
  5. Stop dispatching briefs that assert novelty. Four cycles, four false gaps; a brief that states what is known and asks for an extension cannot fail this way, and this was raised in cycle 118's own open questions and then not done.
Every source behind this entry (1)
  1. E1strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.analysis

    Re-running the cycle-118 citation extractor over all 2,630 committed node files with both a prose path (PMID[:\s]*\d{7,8}) and a schema-field path ("pmid"\s*:\s*"?\d{7,8}) unioned yields 4,000 distinct PMIDs cited by 2,411 entries, against the prose path alone's 1,908 across 1,230 entries. 2,946 of the 4,000 are found only by the schema path and 793 only by the prose path. All 4,000 resolve to a real paper via PubMed esummary, 100.0%. Recomputed topic coverage over fetched titles gives relapse/MRD 91, metabolism 65, condensates 51, splicing 48, CAR-T 38, 3D genome 30, degrons 25 and single-cell 19, against cycle 118's 26, 39, 22, 15, 14, 10, 14 and 8. PMID 35288693, a KMT2A-rearranged infant B-ALL single-cell study, is cited by 14 entries and was seen by the prose path in 1.

    What this evidence cannot show

    4,000 IS STILL A LOWER BOUND AND THE SAME MISTAKE IS AVAILABLE AGAIN. Both paths are regexes over raw file text; a citation written in a third form - a bare identifier, a PMCID, a URL containing the id - is still invisible, and bare 7-8 digit numbers remain excluded deliberately because in this corpus they are usually genomic coordinates. The recall control detects disagreement BETWEEN THE TWO PATHS I THOUGHT OF and cannot detect a form neither path matches, so it bounds a known failure and not an unknown one. The topic counts inherit cycle 118's U2 unchanged - they are title-string matches, so a paper that ran a method without naming it in its title is still missed and every topic count remains a lower bound. The per-topic keyword lists are the coordinator's and were written before the recount but after the single-cell result was known, so the single-cell list in particular was not chosen blind. DOI counts moved from 3,440 to 3,449 and remain unresolved and unchecked.

    Evidence that argues against this (3)
    • The corrected number is not independently verified either. 4,000 comes from the same script by the same author on the same afternoon as the discovery, with the same class of defect available, and nobody has re-derived it a different way. The honest status of '4,000' is 'the second number this instrument has produced', not 'the truth'. The 1,908 also looked settled for two cycles and was quoted into a king log and two entries.
    • Framing this as an instrument failure is the comfortable reading and there is a less comfortable one. The single-cell brief could have been checked in seconds by grepping the corpus for 'single-cell' or for 'Khabirova', and was not, because the index was trusted precisely BECAUSE it had been built for this. A tool that concentrates trust raises the cost of its own failures, and this one removed a check that a human habit had been performing adequately.
    • The dispatched beat may not have been wasted, which complicates the lesson. The single-cell agent's own work is what surfaced this defect, and it returned usable nodes; had the brief been correct the error might have survived several more cycles. Reporting this as a pure cost is tidier than the record supports.
Connected to