The cannot-be-occupied floor never binds at gene-body scale in any of the 27 samples, so q147's gene-scale rule is a bare 2.0x gate - and the max-versus-95th-percentile difference between q147 and q152 is immaterial there
also called q154 floor audit · the decorative floor
This project's occupancy test has two parts: the signal must be at least twice an average gene switch, and it must beat a floor built from eight genes that cannot possibly be switched on in a leukaemia. At the gene-body scale, that floor is always tiny - never above 1.65, when the bar is 2.0 - so the second part of the test never does anything. The test is really just the first part.
The same thing, for a scientist
Recomputed from q147's own committed region table: the per-library floor at gene-body scale, built from eight width-matched 5,572 bp windows at ALB, RHO, MYH7, MYOD1, NEUROD1, KRT14, GFAP and INS, is **above 2.0 in 0 of 27 samples** under either definition. Its maximum anywhere is **1.648** (A93949) and its median is **0.259** by the max rule, **0.223** by the 95th-percentile rule [E1]. Because the share gate is 2.0x, **the floor clause is inert at gene-body scale and the rule reduces to "share >= 2.0 in both KMT2A-N libraries"**. Two consequences. First, the discrepancy between q147's gene-scale floor (**95th percentile** of the eight, as its entry's `floor_rule` field correctly records) and q152's promoter-scale floor (**per-library maximum**, as `step1.py` implements) **changes no gene-scale call**: the two differ by at most 0.202 and by a median of 0.0216 [E1]. Second, the same is emphatically **not** true at promoter scale, where q152 measured per-library floors spanning **0 to 4.005** and recorded that NOP58's entire call rests on the floor clause [E2]. **A control that is load-bearing at one scale and decorative at another must not be described in the same sentence for both.**
The numbers
| gene-body scale (5,572 bp windows) | promoter scale (2 kb windows) | |
|---|---|---|
| floor definition used | 95th percentile of the 8 | per-library maximum of the 8 |
| median floor | 0.223 (p95) / 0.259 (max) | not recomputed here; q152 reports a range |
| maximum floor over 27 samples | 1.648 (A93949) | 4.005 (A80956, replicate 1) |
| samples where the floor exceeds the 2.0x gate | 0 of 27 | at least one (A80956) |
| calls changed by swapping max for 95th percentile | 0 | not tested |
The largest max-minus-p95 gap anywhere is 0.202 (A80956) and the median gap is 0.0216. Both are far below the 2.0 gate, so neither definition can flip a call at this scale 1.
Why an inert control is still worth recording
Three reasons, and the third is the one that cost this project time.
- A reader assumes the floor is doing work. q147's entry describes the rule as ">=2.0x in both KMT2A-N antibodies AND above the 95th percentile of eight width-matched cannot-be-occupied loci", which reads as a two-part test. At gene-body scale it is a one-part test.
- The floor is the only thing in the rule that adapts to the library. With it inert, the gene-scale rule has no per-library calibration at all, which matters because there is no spike-in in this deposit and the per-library scale is unknown.
- A dispatch brief for this beat stated the rule with the promoter-scale floor (the maximum) while sending the agent to calibrate the gene-scale result. The two definitions are genuinely different and live in different scripts. Here the conflation is harmless, but only because the clause is inert - which nobody had checked.
| script | analyses/q154-gene-scale-occupancy-null/floor_audit.py |
|---|---|
| status | run |
| result summary | Gene-body floor never exceeds 1.648 against a 2.0x gate; 0 of 27 samples floor-limited; max-vs-95th-percentile definitions differ by a median of 0.0216 and change no call. |
| gene scale floor max over 27 samples | 1.648 |
| gene scale floor max sample | A93949 |
| promoter scale floor max | 4.005 |
| promoter scale floor max sample | A80956 replicate 1 |
inputs
[ "analyses/q147-hoxa-irx1-across-partners/results_regions147.json", "analyses/q152-the-aff1-only-recurrent-promoter-core/results.json" ]
measurements
[
{
"quantity": "n_samples_where_the_floor_clause_can_bind",
"subject": "KMT2A-N libraries in which the eight-locus cannot-be-occupied floor exceeds the 2.0x share gate at gene-body scale",
"value": 0,
"units": "samples",
"n": 27,
"universe": "27 GSE252378 KMT2A-fusion patient samples, mean of the two KMT2A-N replicates, eight width-matched 5,572 bp negative windows",
"null": null,
"note": "maximum floor anywhere is 1.648 (A93949); the rule therefore reduces to a bare 2.0x gate at this scale"
},
{
"quantity": "median_difference_between_the_two_floor_definitions",
"subject": "per-library maximum minus 95th percentile of the eight negative-control shares at gene-body scale",
"value": 0.0216,
"units": "multiples of an average promoter",
"n": 27,
"universe": "the same 27 samples; maximum difference 0.202 in A80956",
"null": null,
"note": "q147 uses the 95th percentile at gene scale and q152 uses the maximum at promoter scale; at gene scale the choice changes no call"
}
]- If a future beat lowers the share gate to 1.5x to gain sensitivity, the floor stops being decorative and starts excluding exactly the three libraries with the most background - which would look like a biological result and would be an artefact of the gate change.
- At promoter scale, how many of the 6,049 occupied-anywhere calls would change if the floor were the 95th percentile rather than the maximum? The floor binds there, so the answer is not zero, and the two beats currently use different definitions of the same-named control.
- The floor is built from eight loci chosen to be unexpressed in a leukaemia. Is a floor built from length-matched RANDOM intergenic windows higher or lower than this one, and which is the better null for a gene body?
- A73051 has the lowest gene-scale floor of the AML samples (0.255) and is also the one sample with no HOXA occupancy. Is its low floor a sign of a clean library or of a library with very little signal anywhere?
- E1strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.dataset
Recomputed from q147's committed results_regions147.json, the gene-body-scale floor over the eight width-matched negative loci exceeds 2.0 in 0 of 27 samples; its maximum is 1.648 in A93949 and its median is 0.259 (max rule) or 0.223 (95th-percentile rule), with the two definitions differing by at most 0.202 and a median of 0.0216.
Q147 region table - per-library shares for 21 named regions including the eight width-matched negative controls · Iqbal Lab oncofusion knowledge graph, beat Q147 · this project 2026What this evidence cannot show
Computed on the mean of the two KMT2A-N replicates per sample, which is how gene_scale147.py builds the floor. Scoring each replicate separately raises the per-replicate maximum slightly but not past 2.0 in any library. The eight loci are width-matched to IRX1's 5,572 bp gene body; a floor matched to a longer gene would be lower still, so the conclusion is conservative in the direction of the floor mattering less, not more.
Evidence that argues against this (1)
- An inert floor is only inert against a 2.0x gate. If the gate were lowered - and 1.5x is the cut-point this project has used elsewhere for margins - the floor would bind in A93949, A80956 and 152985, and those three are exactly the libraries with the most negative-control signal. Iqbal Lab oncofusion knowledge graph et al. 2026
- E2strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.dataset
At promoter scale the same eight loci give per-library floors spanning 0 to 4.005 times an average promoter, and q152 recorded that one core member, NOP58, has its only non-AFF1 exclusion produced by the floor clause rather than by the 2.0x gate.
Q152 results - per-library floors and the floor-only exclusions · Iqbal Lab oncofusion knowledge graph, beat Q152 · this project 2026What this evidence cannot show
The 4.005 figure is A80956 replicate 1; its replicate 2 floor is 0.788, so the floor is not even stable within a sample at promoter scale.
Evidence that argues against this (1)
- q152's promoter floors are computed on a matrix this project initially believed held within-sample shares and which in fact holds raw mean coverage; the shares were derived by dividing by the column mean. That conversion is correct but it means the promoter floor figures quoted here are downstream of a correction made mid-beat, and they have not been re-derived independently in this beat. Iqbal Lab oncofusion knowledge graph et al. 2026
usable at promoter scale, where floors reach 4.005; inert at gene-body scale, where the floor never exceeds 1.648 against a 2.0x gate
- related to →IRX1 fusion occupancy is confined to KMT2A::AFF1: 0 of 18 samples across five other partners
the gene-scale calls in that entry are produced by the 2.0x gate alone; the floor clause it names changes none of them
the promoter-scale half of the same audit; the contrast between the two scales is the point
why the pass rate is identical under the flat and the length-matched floor