Oncofusion

start / graph / hyp-q155-window-displacement-against-the-current-annotation-is-systematic-not-a-one-off-at-aff1

Hypothesisspeculative confidence 1 of 5: Our own inference or analogy. Not shown to be true.Q155-can-an-aff1-promoter-measurement-be-attributed

REFUTED THE SAME CYCLE: window displacement against the current annotation is 1.83%, not systematic - and the real blind spot it hid is one row per symbol at 14.69%

also called Q155 displacement hypothesis

The guess was that this project's list of gene start sites had gone badly out of date. It has not: 82% of the entries sit on exactly the same spot as the current annotation. The audit that checked it found a different and bigger problem instead - a gene can have several start sites and the list keeps only one.

The same thing, for a scientist

🔴 **REFUTED, in the cycle it was written, by the analysis it asked for.** The hypothesis was that a non-trivial fraction of the 19,404 rows of `promoters.tsv` place their window somewhere that does not overlap where the **current** NCBI RefSeq release would put it. Q156 ran the audit over every row against the current `ncbiRefSeqCurated` [E3]: | | NM_ only | |---|---:| | TSS identical to a current TSS | **15,839 (81.63%)** | | shifted, windows still overlap | 2,688 | | **displaced, window disjoint** | **355 (1.83%)** | | symbol absent from the current release | 522 | | moved chromosome | **0** | | **symbol has multiple non-overlapping TSSs** | **2,851 (14.69%)** | **Prediction 1 (>1% of rows displaced by more than 1 kb) is technically CONFIRMED at 1.83%, and the falsifier as I wrote it (<0.5%) did not fire. The hypothesis is still wrong, and it is wrong in the way that matters: drift is four times SMALLER than Q153's first blind spot (7.2 percentage points), no row has moved chromosome, and the case that motivated the whole idea is not displaced at all.** C4orf36's row TSS 86,892,422 is one of its three current curated TSSs and carries 13 of its 20 transcripts: `d_nearest = 0`. **What the audit found instead is larger and is not annotation drift**: **14.69%** of symbols have multiple non-overlapping TSSs, median span **21,291 bp**, 1,939 of them with an alternate TSS more than 10 kb from the scored one. That is **8x** the displacement rate, and unlike drift it **cannot be fixed by refreshing the annotation** - it is a property of the one-row-per-symbol schema. The successor statement lives in `concept-a-neighbour-goes-missing-two-ways-and-both-return-the-same-clean-negative`. 🟢 **And the negative is worth as much as the positive would have been.** 81.63% TSS-identical and zero chromosome moves is a reassuring result for every promoter-scale call this project has made, and it was obtained for the cost of one join.

Go deeper
Why I got the diagnosis wrong, which is more useful than the hypothesis

The hypothesis was built on one non-randomly-chosen row, and I said so at the time - 'n = 1 row, and it was not sampled at random ... a single case chosen for its proximity to an interesting locus is the worst possible basis for a rate estimate, which is why this entry is a hypothesis with a planned analysis rather than a finding.' That framing was right and it still did not protect me, because the one case was itself measured wrong.

I computed C4orf36's displacement from a UCSC track query restricted to chr4:86,915,000-86,945,000 and took min(observed TSSs) as the symbol's nearest current TSS. That window cannot contain the transcript at 86,892,422 - it is 23 kb below the lower edge - so the comparison was against a set from which the correct answer had already been removed. The query returned HTTP 200 and a well-formed answer of 42,310 bp.

Two rules this earns. A filter must report what it removed - a displacement measured against a windowed query is only valid if the window is wider than the displacement you might find, which is circular unless you query the whole gene. And before generalising from one case, re-measure the case: I generalised a number I had not checked against the full record, and the generalisation was refuted by the first measurement that did.

Facts and figures
statementWITHDRAWN 2026-09-24, cycle 142. This field previously read: 'A non-trivial fraction of the 19,404 rows of the project's promoter table place their 2 kb window so that it does not overlap the window the current NCBI RefSeq release would place for the same symbol.' Measured at 1.83%, four times smaller than Q153's first blind spot, with the motivating case at d_nearest = 0. The successor statement is: a non-trivial fraction of symbols (14.69%) have multiple non-overlapping TSSs and the table can represent only one.
origindata-pattern
prior probability0.75
outcomeREFUTED cycle 142 by ana-q156-the-promoter-tables-second-blind-spot-is-not-annotation-drift-it-is-one-row-per-symbol. Drift 1.83%; multi-TSS symbols 14.69%; C4orf36 d_nearest 0.
predictions
[
  "CONFIRMED BUT UNINFORMATIVE: 'more than 1% of rows displaced by >1,000 bp' - measured 1.83%. The prediction was set too low to discriminate; 1.83% is a small, bounded, reassuring number and I had written it as if exceeding 1% would matter.",
  "UNTESTED: 'displacement is enriched among uncharacterised ORFs and LOC-named genes and depleted among load-bearing genes'. Q156 reports IRX1, IRX2 and AFF1 at d_nearest 0, 0 and 9 bp, which is consistent, but no enrichment test was run.",
  "REFUTED AT THE ONE CASE: 'among displaced rows scored 0/27, re-scoring at the current window changes the call'. C4orf36 is not in the displaced set, so its 0/27-to-23/27 flip is an instance of the MULTI-TSS problem, not of displacement."
]
analyses
[
  "ana-q155-a-whole-table-audit-of-promoter-window-displacement-against-the-current-annotation"
]
experiments
[
  "exp-q155-strand-resolved-transcription-across-the-aff1-aff1-as1-c4orf36-promoter"
]
falsifiers
[
  "DID NOT FIRE, AND THE HYPOTHESIS IS REFUTED ANYWAY. Original text: 'Fewer than 0.5% of the 19,404 rows (i.e. under ~97 rows) have their symbol's nearest current ncbiRefSeq TSS more than 1,000 bp from the row's TSS ... That would make C4orf36 a genuine outlier and the hypothesis false as stated.' Measured 1.83% (355 rows), so the literal falsifier did not fire - and C4orf36 turned out not to be displaced at all, which is the outcome the falsifier was trying to detect and could not express. A falsifier keyed to a rate could not see that the motivating case was mismeasured.",
  "PARTLY ANSWERED: 'among the ~20 load-bearing promoter genes, ZERO are displaced by more than 500 bp - that would leave the hypothesis technically true and operationally irrelevant'. Q156 reports IRX1 d_nearest 0, IRX2 d_nearest 0, AFF1 d_nearest 9 bp. Three of ~20 checked, all clean. The full list was not reported and this remains open.",
  "UNRUN: 'Re-scoring every displaced row at its current-release window changes the occupancy call for fewer than 5% of displaced rows.' The 355 displaced rows are named in Q156's persisted output and nobody has re-scored them."
]
How this could bite us back
  • If the audit's reassuring half is quoted alone - '81.63% TSS-identical, drift is 1.83%' - it will read as 'the promoter table is fine'. It is not: the same audit measures a larger blind spot the same instrument cannot fix, and Q153's first blind spot at 7.2 percentage points is untouched by either number.
Still open
  1. The successor hypothesis, which nobody has stated as one: does the one-row-per-symbol schema change occupancy calls at scale? Q156 names 2,851 multi-TSS symbols; re-scoring each at every one of its TSSs is the same machinery this beat used at C4orf36 and would turn a schema complaint into a number.
  2. Q156 lists 355 displaced rows and 522 symbols absent from the current release. The second group is larger and nobody has looked at it - a symbol absent from the current annotation is a row measuring a coordinate no current gene claims.
  3. Should this entry be deleted now that it is refuted? No - but it is only worth keeping because the refutation names a bigger problem. A hypothesis whose value is entirely in having provoked the audit should say so, and this one does.
Every source behind this entry (3)
  1. E1established confidence 5 of 5: Multiple independent lines of evidence; treated as settled in the field.database

    The case this hypothesis was built on, C4orf36, is NOT displaced: its row TSS 86,892,422 is one of the symbol's three current curated TSSs and carries 13 of its 20 curated transcripts, so d_nearest = 0. The original 42,310 bp figure was computed against a UCSC track query restricted to chr4:86,915,000-86,945,000, a window that cannot contain that transcript.

    UCSC Genome Browser hg38 ncbiRefSeqCurated track, chr4:86,800,000-87,000,000 · UCSC Genome Browser, api.genome.ucsc.edu · UCSC Genome Browser 2026
    What this evidence cannot show

    Re-fetched over a 200 kb window specifically to check the claim that the 30 kb window had produced. Coordinates are 0-based half-open txStart / 1-based txEnd; for a minus-strand transcript the TSS is txEnd. Whether any of the three TSSs is used in a haematopoietic cell is unknown and is not claimed.

    Evidence that argues against this (1)
    • That the row is not displaced does not rescue the locus: a current C4orf36 TSS is still 269 bp from AFF1's and still invisible to the project's table. Only the REASON changed, from stale to one-row-per-symbol, and the corrected reason is the one that cannot be fixed by refreshing anything. Iqbal Lab oncofusion knowledge graph et al. 2026
  2. E2established confidence 5 of 5: Multiple independent lines of evidence; treated as settled in the field.dataset

    The project's promoter table records a transcript accession per row and no annotation release, so no number derived from it can currently be dated to an annotation version.

    Q155 inspection of C:/Temp/q145irx1/promoters.tsv header and rows · Iqbal Lab oncofusion knowledge graph, beat Q155 · this project 2026
    What this evidence cannot show

    The file's columns are symbol, chrom, tss, start, end, strand, accession. Q153 recorded the snapshot's dataTime as 2020-08-17 elsewhere, so the release IS known to the project - it is simply not carried with the data, which is the narrower claim made here. The file lives under C:\Temp and is not in the repository, so it is also not versioned.

    Evidence that argues against this (1)
    • A per-row accession is not nothing: NM_144645 identifies the exact transcript used, and a reader who fetches that accession recovers the coordinates. What is lost is the ability to notice that the SET of transcripts for a symbol has changed, which is precisely the failure mode here - NM_144645 is still a valid C4orf36 transcript, it is just no longer the 5'-most one. UCSC Genome Browser et al. 2026
  3. E3strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.dataset

    The whole-table audit this hypothesis asked for was run over all 19,404 rows against the current UCSC hg38 ncbiRefSeqCurated: 81.63% TSS-identical, 1.83% (355 rows) displaced with a disjoint window, 0 rows moved chromosome, 522 symbols absent from the current release, and 14.69% (2,851) of symbols carrying multiple non-overlapping TSSs with a median span of 21,291 bp and 1,939 having an alternate TSS more than 10 kb from the scored one.

    What this evidence cannot show

    Q156's whole-table figures were run by the coordinator and are QUOTED here, not re-derived; only its C4orf36 result was independently re-checked by this beat, against UCSC ncbiRefSeqCurated over a 200 kb window. The 1.83% and 14.69% should be re-run before being used as load-bearing quantities elsewhere.

    Evidence that argues against this (1)
    • That the C4orf36 row is not displaced makes the situation WORSE, not better. A displaced row can be fixed by refreshing the annotation; a symbol with three legitimate TSSs and a one-row-per-symbol schema cannot be, and Q156 measures that class at eight times the displacement rate. UCSC Genome Browser et al. 2026
Connected to