Oncofusion

start / graph / ana-q155-aff1s-own-promoter-window-is-occupied-in-20-of-27-samples-and-the-call-cannot-be-attributed-to-aff1

Analysismoderate confidence 3 of 5: One strong study, or several smaller consistent ones.Q155-can-an-aff1-promoter-measurement-be-attributed

AFF1's own promoter window is occupied in 20 of 27 samples - top 4% of the whole table - and the call cannot be attributed to AFF1

also called Q155 AFF1 promoter occupancy · the fusion at its own partner's promoter

The measurement everybody assumed had never been made was sitting in a table nobody read. Under this project's own rule, the window used for AFF1 - the gene the index fusion is named after - is called occupied in 20 of 27 patient samples, which puts it in the most consistently occupied 4% of all 19,404 windows. And 92% of that window belongs to two other genes, so the call cannot be assigned to AFF1.

The same thing, for a scientist

Q153 recorded that AFF1's 92.45%-shared promoter window was a **standing hazard** rather than a live problem, because *"this graph holds no promoter-scale occupancy claim about AFF1's own promoter"* and *"the q145/q147/q151 analyses never scored it"*. **The first half is true and the second half is not.** `AFF1` is row of the 19,404-symbol promoter matrix, so the project's occupancy rule has an answer for it in every one of the 27 GSE252378 samples; no entry had ever read it. Scored here: **20 of 27 samples** clear the rule (share >= 2.0x an average promoter in **both** KMT2A-N antibodies **and** above that library's floor, the per-library max of ALB/GFAP/INS/KRT14/MYH7/MYOD1/NEUROD1/RHO) [E1]. **The call is robust to the threshold** - 20/27 at 1.5x, 20/27 at 2.0x, 15/27 at 3.0x - which was pre-registered because *if the verdict tracks the threshold you are measuring the ruler* [E1]. It is also **far above the base rate**: 13,355 of 19,404 promoters are called in **zero** samples, the mean promoter is called in **2.733**, and only **786 of 19,404 (4.05%)** are called in 20 or more [E2]. **So the pre-registered NEITHER/UNINFORMATIVE branch C1 - 'if the window is never called occupied the question is moot' - is refuted, and branch B (NOT ATTRIBUTABLE) bites on a live positive.** Under Q153's own asymmetry rule (*a null over a superset entails a null over its subset, so negatives survive attribution and positives do not*), a positive at a window that is 92.45% AFF1-AS1's and 86.1% C4orf36's is **unattributed**, not 92%-attributed and not 7.55%-attributed. **And it is not strongly fusion-biased.** The same rule on the KMT2A-C arm - the C-terminal epitope, which the fusion has lost - calls the window occupied in **11 of 27**, and AFF1's N/C ratio has a median of only **1.702**. The IgG arm reaches >= 2.0x in **8 of 25** libraries that have one. That is consistent with the coordinator's own control finding that the shared-window occupancy enrichment is **not fusion-specific** (KMT2A-C 44.86% against KMT2A-N 43.86%, IgG 33.86%).

Go deeper
The scoring, and the assertion that had to pass first

C:\Temp\q147part\promoter_matrix.tsv holds raw mean bigWig coverage, not within-sample shares. The script asserts the inverse of the standing rule - that the column means are NOT within 1% of 1.0 - before converting, and then asserts they are 1.0 afterwards:

matrix: 19404 symbols x 133 libraries
RAW column means span 0.9177 - 18.7951 ; 0 of 133 within 1% of 1.0
converted: all 133 column means == 1.0 (within 1e-9)
samples: 27, of which 27 have both KMT2A-N antibodies

The last line is there because the first version of the script printed 27 samples, of which 0 have both KMT2A-N antibodies and reported a clean 0 / 0 for every threshold. The column names are <sample>_<antibody> and the replicated antibodies carry their own underscore (p279_KMT2An_1), so rpartition("_") split at the wrong place and produced an empty comparison that printed as a tidy row of zeros. A failed check is a claim too, and the only reason this one was caught is that the diagnostic was printed rather than assumed. The script now exits non-zero if no sample has both N antibodies.

The result, at three thresholds and against the table-wide distribution
thresholdAFF1 occupiedpromoters called in >= 1 sampleIRX2C4orf36 (project row)
1.5x20 / 277,684 / 19,404 (39.60%)1 / 270 / 27
2.0x20 / 276,049 / 19,404 (31.17%)0 / 270 / 27
3.0x15 / 273,757 / 19,404 (19.36%)0 / 270 / 27

At 2.0x, over the whole table: 13,355 of 19,404 promoters are called in zero samples, the mean is 2.733 samples per promoter, and 786 (4.05%) are called in 20 or more. AFF1 is in that top 4%.

Per-sample at 2.0x, the seven that do not clear are 152985, A70498, A80956, A95941, TB000694, TB040576 and TB986292 - and in four of those the failure is one antibody falling short rather than both (A95941 N1 3.835 / N2 1.345; TB986292 N1 3.271 / N2 0.000), which is a depth problem rather than a negative.

Why the call cannot be attributed, and what would be needed

The window is chr4:86,934,001-86,936,001. Of its 2,000 bp:

  • 1,849 bp (92.45%) would also be inside a 2 kb window at AFF1-AS1's TSS;
  • 1,722 bp (86.10%) would also be inside a 2 kb window at the nearest current-RefSeq C4orf36 TSS;
  • 151 bp is unique to AFF1's window.

A mean over the window is therefore a mean over sequence that three genes' promoters share. Q153's asymmetry applies and only in one direction:

A negative survives. If the combined signal is below threshold, neither constituent can be above it. A positive does not. The signal may be entirely a neighbour's.

This is a positive. The three measurements that could break the tie, and what each gave:

routeresultverdict
gene body (disjoint even when promoters are not)AFF1-AS1 body 0/27; AFF1 width-matched body 4/27; ratio median 2.247suggestive for AFF1, and overturned by the next row
base resolutionthe KMT2A-N profile is bimodal, and neither mode is on AFF1's TSS; 2.0x more signal upstream of AFF1's TSS than downstreamdoes not support AFF1
strandnot available - CUT&RUN coverage is unstranded, and occupancy is a property of DNA, not of a transcriptstructurally unavailable

See ana-q155-the-kmt2a-n-signal-at-the-aff1-locus-is-bimodal-and-neither-mode-is-centred-on-aff1s-tss. The honest verdict is NOT ATTRIBUTABLE, and more specifically: the best available evidence says the call is not AFF1's.

What this does and does not change in the graph

A content scan of all 2,898 node files found 90 entries mentioning AFF1 within 120 characters of promoter and 8 with a candidate statement about AFF1's own promoter or TSS. Of the 8, five are Q153's own, two are false positives (gene-setd1a, about SETD1A's TSS; ana-absolute-h3k79me2-in-kmt2a-aff1..., about RS4;11 TSS entries) and one is this beat's.

So no existing entry in this graph asserts a promoter-scale occupancy result about AFF1, and none needs correcting. What needs amending is Q153's sentence "the q145/q147/q151 analyses never scored it": the matrix scores every row, AFF1 is a row, and the score is 20/27. The number existed and nobody looked at it - the same shape as a control count is a list nobody opens.

The per-statement attribution verdict for the graph's existing promoter-scale AFF1 claims is therefore: there are none, and the one standing statement (Q153's hazard note) is confirmed in substance and wrong in one clause.

Facts and figures
scriptanalyses/q155-can-an-aff1-promoter-measurement-be-attributed/q155_occupancy.py
statusrun
result summaryAFF1's 2 kb promoter window is occupied in 20 of 27 samples (top 4.05% of the table), the call is threshold-robust, and it is NOT ATTRIBUTABLE to AFF1: 92.45% of the window is AFF1-AS1's and 86.10% is C4orf36's.
prereg branch firedB (NOT ATTRIBUTABLE), on a live positive. Pre-registered branch C1 - 'if the window is never called occupied the question is moot' - was named as the likeliest and is REFUTED.
occupancy rulewithin-sample share >= T in BOTH KMT2A-N antibodies AND above that library's floor = per-library max of ALB, GFAP, INS, KRT14, MYH7, MYOD1, NEUROD1, RHO
matrix assertionraw column means span 0.9177-18.7951; 0 of 133 within 1% of 1.0; converted by column mean; post-conversion means all 1.0 within 1e-9
measurements
n_over_c_ratio1.702n_over_c_ratio: 1.702promoter_rank_percentile4.050promoter_rank_percentile: 4.05n_samples_occupied11.0n_samples_occupied: 11n_samples_occupied20.0n_samples_occupied: 20
inputs
[
  "C:/Temp/q147part/promoter_matrix.tsv (19,404 x 133, RAW coverage)",
  "GSE252378"
]
aff1 samples not occupied at 2x
[
  "152985",
  "A70498",
  "A80956",
  "A95941",
  "TB000694",
  "TB040576",
  "TB986292"
]
measurements — the numbers behind the chart
[
  {
    "quantity": "n_samples_occupied",
    "subject": "AFF1's 2 kb promoter window chr4:86,934,001-86,936,001, KMT2A-N1+N2, threshold 2.0x",
    "value": 20,
    "units": "samples",
    "n": 27,
    "universe": "27 GSE252378 KMT2A-fusion patient samples, six partners; rule >= 2.0x both KMT2A-N antibodies AND above the 8-locus per-library floor",
    "null": 2.733,
    "note": "null is the mean number of samples calling a promoter across all 19,404 rows under the identical rule; 13,355 rows are called in zero samples and 786 (4.05%) in 20 or more"
  },
  {
    "quantity": "n_samples_occupied",
    "subject": "the same window, KMT2A-C1+C2 (the epitope the fusion has LOST), threshold 2.0x",
    "value": 11,
    "units": "samples",
    "n": 27,
    "universe": "same 27 samples, same rule, C-arm libraries",
    "null": 2.428,
    "note": "null is the C-arm mean calls per promoter. The N-over-C gap is real but the C arm is far from empty, so this is not a clean fusion-specific call"
  },
  {
    "quantity": "n_over_c_ratio",
    "subject": "AFF1 promoter window, mean of the two KMT2A-N shares over the mean of the two KMT2A-C shares, per sample",
    "value": 1.702,
    "units": "ratio, median over samples",
    "n": 27,
    "universe": "27 GSE252378 samples; above 1.0 in 22 of 27",
    "null": 1,
    "note": "1.0 is the value expected if the N and C epitopes read the same thing, i.e. wild-type KMT2A"
  },
  {
    "quantity": "promoter_rank_percentile",
    "subject": "AFF1's position in the distribution of how many samples call each promoter",
    "value": 4.05,
    "units": "percent of promoters at or above AFF1",
    "n": 19404,
    "universe": "all 19,404 rows of the promoter matrix, KMT2A-N arm, 2.0x rule",
    "null": 50,
    "note": "786 of 19,404 promoters are called in 20 or more samples"
  }
]
How this could bite us back
  • If anyone builds an argument that KMT2A::AFF1 autoregulates AFF1 - which this 20/27 invites - the argument cannot be made from a promoter window, and the base-resolution data actively contradicts it. Publishing the 20/27 without the attribution would produce exactly the wrong headline.
  • The seven non-calling samples include four where one antibody is high and the other near zero. Reading those as biological negatives would manufacture patient heterogeneity out of library depth.
Still open
  1. The seven samples that do not clear the rule split into genuine negatives and depth failures, and this beat did not separate them. Applying the q147 depth gate (p_dz = frac_zero(N1) x frac_zero(N2)) to this row would say whether 20/27 is really 20/20 with seven unmeasured.
  2. How many other rows of the promoter table are called in 20 or more samples AND sit at a window shared 50% or more with another gene? That is the population this finding belongs to, and the two ingredients are already computed - Q153's per-row sharing census and this beat's per-row call counts - but they have never been joined.
  3. Is AFF1's promoter occupancy sensitive to menin inhibition? GSE252378 contains treated samples and the per-sample table here carries the treated flag, but this beat did not split on it.
Every source behind this entry (3)
  1. E1moderate confidence 3 of 5: One strong study, or several smaller consistent ones.dataset

    In GSE252378, AFF1's 2 kb promoter window is called occupied in 20 of 27 samples at a 2.0x threshold under the project's rule, 20 of 27 at 1.5x and 15 of 27 at 3.0x, against a matrix asserted at load to hold raw coverage (column means 0.9177-18.7951, 0 of 133 within 1% of 1.0) and converted to within-sample shares.

    Q155 occupancy scoring of the AFF1 promoter row at three thresholds, GSE252378 promoter matrix · Iqbal Lab oncofusion knowledge graph, beat Q155 · this project 2026
    What this evidence cannot show

    No spike-in exists in this deposit, so all values are within-sample shares and cannot separate low target abundance from a shallow library; oncoprotein share correlates with raw library coverage at Spearman +0.659 across these libraries. The floor is a maximum over eight tissue-restricted loci, which is conservative but is not a null distribution. The 27 samples come from 24 patients, so they are not fully independent. The occupancy rule itself was imported from the dispatch brief and not re-derived; the three thresholds are reported so it can be re-scored.

    Evidence that argues against this (1)
    • The first run of this script reported 0 of 0 samples occupied at every threshold, because the column-name parser split at the last underscore and produced no sample with both KMT2A-N antibodies. It printed as a clean, well-formed set of zeros. The result above is from the corrected run, which now exits non-zero if the pairing is empty. Iqbal Lab oncofusion knowledge graph et al. 2026
  2. E2moderate confidence 3 of 5: One strong study, or several smaller consistent ones.dataset

    Under the same rule at 2.0x, 13,355 of 19,404 promoters are called in zero samples, the mean promoter is called in 2.733 of 27 samples, and only 786 of 19,404 (4.05%) are called in 20 or more, so AFF1's 20 of 27 places it in the top 4.05%; the KMT2A-C arm calls AFF1 in 11 of 27 with a mean of 2.428 samples per promoter, and AFF1's N/C ratio has a median of 1.702, above 1.0 in 22 of 27 samples.

    Q155 controls: arm-by-arm scoring and the table-wide distribution of per-promoter call counts · Iqbal Lab oncofusion knowledge graph, beat Q155 · this project 2026
    What this evidence cannot show

    The 4.05% is a rank within THIS table under THIS rule, not a p-value; no permutation null was run and the promoters are not exchangeable (housekeeping and CpG-island promoters dominate the top). The N arm is slightly more permissive than the C arm overall (2.733 vs 2.428 mean calls per promoter), so part of AFF1's 20-vs-11 gap is that baseline difference, though the gap is much larger than it. IgG is missing for two of the 27 samples.

    Evidence that argues against this (1)
    • An N/C median of 1.702 is a weak fusion signature. The coordinator's own control over the whole shared-window class found the occupancy enrichment is NOT fusion-specific - KMT2A-C 44.86% against KMT2A-N 43.86% and IgG 33.86% - so a locus that is merely N-biased is doing what an accessible promoter does, not what a fusion target does. Iqbal Lab oncofusion knowledge graph et al. 2026
  3. E3moderate confidence 3 of 5: One strong study, or several smaller consistent ones.dataset

    A content scan of all 2,898 node files finds 90 entries mentioning AFF1 within 120 characters of 'promoter' and 8 with a candidate statement about AFF1's own promoter or TSS, of which five are Q153's own, two are false positives and one is this beat's - so no pre-existing entry in this graph asserts a promoter-scale occupancy result about AFF1's own promoter.

    Q155 corpus scan for promoter-scale statements about AFF1's own promoter · Iqbal Lab oncofusion knowledge graph, beat Q155 · this project 2026
    What this evidence cannot show

    This is a regex scan of entry CONTENT, not a census. A statement phrased without the string 'promoter' near 'AFF1' - for example 'the fusion sits on 4q21.3' or a claim carried only in a table cell or a figure caption - would not be found, and this project's own registry records that gap lists cannot see decisions recorded in prose. It is a floor. The two false positives were hand-read and named; the other six were hand-read too.

    Evidence that argues against this (1)
    • Q153's sentence 'the q145/q147/q151 analyses never scored it' is the part this contradicts, and it is contradicted by the matrix rather than by any entry. The measurement was made by the pipeline for all 19,404 rows and simply never read for this one, so both statements can be true at once: no entry reports it, and the number existed the whole time. Iqbal Lab oncofusion knowledge graph et al. 2026
Connected to