Oncofusion

start / graph / finding-q151-irx2-transcript-is-not-aff1-confined-one-kmt2a-mllt1-infant-is-irx2-positive

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

IRX2 transcript is NOT AFF1-confined: re-deriving GSE68720 finds 1 of 16 KMT2A::MLLT1 infants positive, and that case is IRX2-positive with IRX1 off

also called q151 correction to gene-irx2 · IRX2 ENL 1/16 · GSM1679755

This project recorded that a gene called IRX2 is switched on only in infants whose leukaemia carries one specific fusion partner. Re-running the same data finds one child with a different partner who also has it switched on - and in that child the neighbouring gene IRX1 is off, which the record said never happens.

The same thing, for a scientist

`gene-irx2` states `irx2_on_by_partner_GSE68720` = AF4 9/48, **ENL 0/16**, AF9 0/6, EPS15 0/3, unknown 0/6, KMT2A-germline 0/17. Re-running q149's own pipeline unchanged - its `probe_map()`, its `load()`, its PTPRC gate, its max-of-ten-silent-genes floor, its max-across-probes collapse - against the same two cached inputs reproduces **every** IRX1 number exactly (AF4 21/48, named-partner non-AFF1 3/26, germline 3/17) and disagrees on IRX2 in exactly one place: **ENL is 1 of 16, not 0 of 16** [E1]. The case is **GSM1679755**, karyotype `47,XY,+X,T(11;19)(Q23;P13.3)[10]/45,IDEM,-X,DER(7;21)(Q10;Q10)[10]`, IRX2 = 6.62 against its own silent-panel floor of 6.20, with **IRX1 = 3.20, well below floor** - the cohort's only IRX2-positive/IRX1-negative case [E1]. Three consequences. (1) IRX2 is not AFF1-confined. (2) Its AFF1 enrichment is **weaker** than IRX1's, not stronger: AFF1 vs named-partner non-AFF1 is 9/48 vs 1/26, **Fisher two-sided p = 0.0883**, against IRX1's 21/48 vs 3/26, **p = 0.0047** [E1]. (3) Against the KMT2A-germline control IRX2 gives 9/48 vs 0/17, **p = 0.0976**, which is *worse* than IRX1's 21/48 vs 3/17, **p = 0.0798** - so the premise that IRX2 is the clean signal and IRX1 the passenger **inverts** [E1]. The per-sample IRX2 values are now persisted, which they were not before.

Go deeper
Why this had to be re-derived at all

The per-partner IRX2 counts were published in gene-irx2.json and the per-sample values were never written to disk. analyses/q149-is-irx1-expressed-in-non-aff1-kmt2a-r/results149_gse68720.json has a per_sample dict of 97 GSMs carrying IRX1, IRX3, PROM1, HOXA_control, floor_max, karyotype and partner_raw - and no IRX2 key at all. The string IRX2 appears once in that entire file, inside probes_per_gene ("IRX2": 2).

That is QUEEN_BRIEF rule 90 in its exact form: a count you cannot re-derive is a claim, not a measurement. Here the claim was load-bearing - it is the reason a whole beat was dispatched - and it was wrong in the one cell that mattered.

The inputs were both already cached (C:\Temp\q149\q149_gse68720_sm.txt.gz, q149_gpl570.annot.gz), so re-deriving cost one script and no download. results151_irx2_expression_rederived.json now carries every per-sample IRX2 value, named by GSM. 1

The control that makes the disagreement about IRX2 and not about my instrument

The same script that produced the IRX2 numbers also produced IRX1 numbers. If it reproduces q149's IRX1 exactly, a disagreement on IRX2 is a fact about IRX2.

quantityq149 publishedre-derived here
AF4 IRX1-ON21 of 4821 of 48match
named-partner non-AFF1 IRX1-ON3 of 263 of 26match
KMT2A-germline IRX1-ON3 of 173 of 17match
AFF1 vs non-AFF1 IRX1, Fisher two-sided0.00470.004733match
AFF1 vs germline IRX1, Fisher two-sided0.07980.07981match
non-AFF1 vs germline IRX1, Fisher two-sided0.66650.666495match
ENL IRX2-ON0 of 161 of 16DISAGREES
AF4 IRX2-ON9 of 489 of 48match
AF9 / EPS15 / unknown / germline IRX2-ON0/6, 0/3, 0/6, 0/170/6, 0/3, 0/6, 0/17match

Six of six IRX1 quantities reproduce to every published digit, and every one of my dispatch brief's IRX1 figures is confirmed. One of seven IRX2 quantities disagrees. 1

The case, named

GSM1679755, GSE68720, COG trial P9407 infant ALL.

fieldvalue
partner (as GEO records it)ENL -> MLLT1
karyotype47,XY,+X,T(11;19)(Q23;P13.3)[10]/45,IDEM,-X,DER(7;21)(Q10;Q10)[10]
IRX2 (max of 2 GPL570 probes, 228404_at / 228462_at)6.62
that sample's silent-panel floor (max of ten)6.20
IRX2 callON, by 0.42 above floor
IRX13.20 - OFF, 3.00 below floor

The margin is 0.42 units and it should be read as marginal. It is an ON call by q149's own pre-registered threshold (value > max-of-silent-panel), applied unchanged, and it was not moved to produce this result. But it is the closest call in the cohort and a stricter floor would remove it.

It matters out of proportion to its margin for one reason: it is the only IRX2-positive / IRX1-negative case anywhere in the 97. gene-irx2's irx1_irx2_2x2_within_AFF1 field - 9 both-on, 12 IRX1-only, 0 IRX2-only, 27 both-off - is correct within AFF1, and I reproduce it exactly. My dispatch brief generalised it to "no IRX2-only cases (it is a strict subset of IRX1)", which is a different claim and is false cohort-wide. 1

The head-to-head that inverts the premise

All Fisher exact, two-sided, computed by q149's own function, on the re-derived calls.

comparisonIRX2pIRX1p
AFF1 vs named-partner non-AFF19/48 vs 1/260.088321/48 vs 3/260.0047
AFF1 vs KMT2A-germline9/48 vs 0/170.097621/48 vs 3/170.0798
non-AFF1 vs KMT2A-germline1/26 vs 0/171.03/26 vs 3/170.6665

Wilson 95% interval for IRX2 in AFF1: 10.2% - 31.9% (9 of 48).

Read the rows in order.

  • IRX2's AFF1 enrichment does not clear 0.05 and IRX1's does, by nearly twenty-fold in p. On the axis that matters most, IRX1 is the stronger fusion-associated signal, not the weaker one.
  • IRX2 against the germline control is 0.0976, worse than IRX1's 0.0798. Neither clears 0.05. The proposition that IRX2 is "clean against the germline control" while IRX1 is not does not survive the test being run.
  • The one thing that does survive is the third row, and it is the part of the original observation that was right: neither IRX1 nor IRX2 distinguishes non-AFF1 KMT2A-rearranged infants from KMT2A-germline infants (p = 0.6665 and p = 1.0). The non-AFF1 arm is not where either gene's signal lives.
  • And the rule of three no longer applies to the non-AFF1 arm for IRX2, because it is 1 and not 0. gene-irx2's stored bound of "below 6.1%" rested on 0 of 49; the true count is 1 of 49.
What should change in the graph, reported not edited

gene-irx2.json is q149's entry and is not edited here. Four specific fields need the coordinator's hand, with the deposit as the resolvable source (GSE68720, per-sample values persisted in results151_irx2_expression_rederived.json):

  1. data.irx2_on_by_partner_GSE68720.ENL: "0/16" -> "1/16", naming GSM1679755.
  2. data.measurements[1].note: "the null is 0 of 49 across all non-AFF1 KMT2A-r and KMT2A-germline infants ... rule of three below 6.1%" -> 1 of 49; the rule of three does not apply and there is no 6.1% bound.
  3. data.shown_for_fusion: "KMT2A::AFF1 only, at the TRANSCRIPT level" -> KMT2A::AFF1 (9 of 48) and KMT2A::MLLT1 (1 of 16), at the transcript level (rule 86: name which fusion).
  4. evidence[1] (E2) attaches a GSE68720 re-analysis claim to PMID 22210879, which is the P9407 expression paper and does not contain that re-analysis. Its support_location should be deposit, and its ENL figure carries the same 0/16 error.

The title of gene-irx2 also says "activated only in KMT2A::AFF1", which is now false and should be amended so the entry does not argue with this correction.

Facts and figures
scriptanalyses/q151-is-irx2-fusion-occupied-in-gse252378/rederive_irx2_expression151.py
statusrun
downloads this beat0
cohortGSE68720, COG P9407 infant ALL, n=97, Affymetrix GPL570, per-sample KMT2A partner in !Sample_characteristics_ch1 mll_par
found viathe RETIRED symbol AF4; the series metadata never says AFF1 and it is invisible to a KMT2A search
threshold ruleq149's, unchanged: ON iff value > that sample's MAXIMUM across the ten silent-tissue genes present; probes collapsed by maximum
n passing PTPRC gate97
irx2 only cases cohort wide1
absence classmeasured-not-analysed
tests two sided fisher exact
IRX1_AFF1_vs_named_non_AF…0.005IRX1_AFF1_vs_named_non_AFF1: 0.004733IRX1_AFF1_vs_germline0.080IRX1_AFF1_vs_germline: 0.07981IRX2_AFF1_vs_named_non_AF…0.088IRX2_AFF1_vs_named_non_AFF1: 0.088307IRX2_AFF1_vs_germline0.098IRX2_AFF1_vs_germline: 0.09755IRX1_non_AFF1_vs_germline0.666IRX1_non_AFF1_vs_germline: 0.666495IRX2_non_AFF1_vs_germline1.000IRX2_non_AFF1_vs_germline: 1
irx1 irx2 2x2 within AFF1 REPRODUCED
IRX2_only0.000IRX2_only: 0both_on9.000both_on: 9IRX1_only12.0IRX1_only: 12both_off27.0both_off: 27n48.0n: 48
measurements
proportion_IRX2_ON0.063proportion_IRX2_ON: 0.0625fisher_p_two_sided0.088fisher_p_two_sided: 0.088307fisher_p_two_sided0.098fisher_p_two_sided: 0.09755
inputs
[
  "C:/Temp/q149/q149_gse68720_sm.txt.gz (GSE68720 series matrix, cached by q149)",
  "C:/Temp/q149/q149_gpl570.annot.gz (GPL570 annotation, cached by q149)"
]
irx2 gpl570 probes
[
  "228404_at",
  "228462_at"
]
irx2 on by partner REDERIVED
{
  "AF4 (AFF1)": "9/48",
  "ENL (MLLT1)": "1/16",
  "AF9 (MLLT3)": "0/6",
  "EPS15": "0/3",
  "ASAH3 (unresolved retired symbol)": "0/1",
  "partner_unknown": "0/6",
  "KMT2A_germline_control": "0/17"
}
graph currently records
{
  "ENL": "0/16",
  "everything_else": "matches"
}
the one disagreeing case
{
  "gsm": "GSM1679755",
  "partner_raw": "ENL",
  "partner_current": "MLLT1",
  "karyotype": "47,XY,+X,T(11;19)(Q23;P13.3)[10]/45,IDEM,-X,DER(7;21)(Q10;Q10)[10]",
  "IRX2": 6.62,
  "floor_max": 6.2,
  "margin_above_floor": 0.42,
  "IRX1": 3.2,
  "IRX1_ON": false,
  "note": "the cohort's only IRX2-positive / IRX1-negative case"
}
control reproduces q149 IRX1
{
  "AF4_IRX1_ON": "21/48 (q149: 21/48)",
  "named_non_AFF1_IRX1_ON": "3/26 (q149: 3/26)",
  "germline_IRX1_ON": "3/17 (q149: 3/17)",
  "PASSED": true
}
tests two sided fisher exact — the numbers behind the chart
{
  "IRX2_AFF1_vs_named_non_AFF1": {
    "table": [
      [
        9,
        39
      ],
      [
        1,
        25
      ]
    ],
    "p": 0.088307
  },
  "IRX1_AFF1_vs_named_non_AFF1": {
    "table": [
      [
        21,
        27
      ],
      [
        3,
        23
      ]
    ],
    "p": 0.004733
  },
  "IRX2_AFF1_vs_germline": {
    "table": [
      [
        9,
        39
      ],
      [
        0,
        17
      ]
    ],
    "p": 0.09755
  },
  "IRX1_AFF1_vs_germline": {
    "table": [
      [
        21,
        27
      ],
      [
        3,
        14
      ]
    ],
    "p": 0.07981
  },
  "IRX2_non_AFF1_vs_germline": {
    "table": [
      [
        1,
        25
      ],
      [
        0,
        17
      ]
    ],
    "p": 1
  },
  "IRX1_non_AFF1_vs_germline": {
    "table": [
      [
        3,
        23
      ],
      [
        3,
        14
      ]
    ],
    "p": 0.666495
  }
}
wilson 95 IRX2 in AFF1
[
  0.1019,
  0.3194
]
irx1 irx2 2x2 within AFF1 REPRODUCED — the numbers behind the chart
{
  "both_on": 9,
  "IRX1_only": 12,
  "IRX2_only": 0,
  "both_off": 27,
  "n": 48
}
corrections reported to the coordinator
[
  "gene-irx2 data.irx2_on_by_partner_GSE68720.ENL: 0/16 -> 1/16 (GSM1679755)",
  "gene-irx2 data.measurements[1].note: null is 1 of 49, not 0 of 49; the rule of three and the 6.1% bound do not apply",
  "gene-irx2 data.shown_for_fusion: KMT2A::AFF1 AND KMT2A::MLLT1, not AFF1 only",
  "gene-irx2 evidence E2 attaches a GSE68720 re-analysis to PMID 22210879 and should carry support_location deposit; its ENL figure also needs the 0/16 -> 1/16 fix",
  "gene-irx2 title says 'activated only in KMT2A::AFF1', which is now false"
]
measurements — the numbers behind the chart
[
  {
    "quantity": "proportion_IRX2_ON",
    "subject": "KMT2A::MLLT1 (ENL) infant ALL",
    "value": 0.0625,
    "units": null,
    "n": 16,
    "universe": "GSE68720 GPL570, max-of-ten-silent-genes per-sample floor, 2 IRX2 probes collapsed by maximum",
    "null": 0,
    "note": "1 of 16 (GSM1679755). The graph currently records 0 of 16. The null is what this graph stored."
  },
  {
    "quantity": "fisher_p_two_sided",
    "subject": "IRX2 ON, KMT2A::AFF1 vs named-partner non-AFF1 KMT2A-r infant ALL",
    "value": 0.088307,
    "units": null,
    "n": 74,
    "universe": "GSE68720; 9 of 48 AFF1 against 1 of 26 named-partner non-AFF1",
    "null": 0.004733,
    "note": "the 'null' is the SAME test for IRX1 on the SAME patients (21/48 vs 3/26). IRX2's AFF1 enrichment is nearly twenty-fold weaker in p and does not clear 0.05."
  },
  {
    "quantity": "fisher_p_two_sided",
    "subject": "IRX2 ON, KMT2A::AFF1 vs KMT2A-germline infant ALL control",
    "value": 0.09755,
    "units": null,
    "n": 65,
    "universe": "GSE68720; 9 of 48 AFF1 against 0 of 17 KMT2A-germline",
    "null": 0.07981,
    "note": "the 'null' is the same test for IRX1 (21/48 vs 3/17). IRX2 is WORSE against the germline control than IRX1, inverting the premise that IRX2 is the clean signal."
  }
]
How this could bite us back
  • If IRX2 were nominated as an AFF1-specific marker or target on the strength of the 0-of-16 figure, this case alone breaks the specificity claim - and a marker that is 9/48 in the index fusion and 1/16 in another is not a partner discriminator at any useful operating point.
Still open
  1. Is GSM1679755's IRX2 positivity reproducible on a different platform or normalisation? A 0.42-unit margin on one GPL570 array is the weakest kind of positive, and RNA-seq of that patient does not exist publicly.
  2. Does this case share anything with the 9 AFF1 IRX2-positive cases other than the transcript - age, white count, CNS status, outcome? P9407 clinical covariates are in the deposit's characteristics fields and were not examined here.
  3. IRX2-DT (C5orf38) is 'coordinated expression to IRX2' by NCBI's own designation and has no GPL570 probe in the q149 panel. Is the IRX2 signal in these arrays separable from its divergent transcript at all?
Every source behind this entry (2)
  1. E1strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.dataset

    Re-running q149's GSE68720 pipeline unchanged reproduces all six of its published IRX1 quantities exactly and finds IRX2 ON in 1 of 16 KMT2A::MLLT1 infant ALL cases (GSM1679755, IRX2 6.62 vs floor 6.20, IRX1 3.20) rather than 0 of 16; IRX2's AFF1 enrichment is Fisher two-sided p = 0.0883 against named-partner non-AFF1 and p = 0.0976 against the KMT2A-germline arm, both weaker than IRX1's 0.0047 and 0.0798.

    What this evidence cannot show

    expected_absent_terms names AFF1 and MLLT1 because this series is reachable ONLY through the RETIRED partner symbols - its metadata says AF4 and ENL and never says AFF1 or MLLT1, and it is invisible to a KMT2A search. The ENL call rests on a 0.42-unit margin above a per-sample floor and is the closest call in the cohort; a stricter floor removes it. Microarray intensity is not a protein measurement and GPL570 collapses two IRX2 probes by maximum. n = 16 for the ENL arm, so 1/16 carries a wide interval. These are different patients from GSE252378.

    Evidence that argues against this (1)
    • The margin cuts both ways. If q149 used a slightly different floor mode than the one I reconstructed - its results file sweeps max, p95, median and min - then a p95 or median floor could move other cases too, and the difference would be a threshold choice rather than an error. Against that: the same reconstruction reproduces all six IRX1 figures to every published digit under the max floor, which is the mode q149 names as its pre-registered threshold. Iqbal Lab oncofusion knowledge graph et al. 2026
  2. E2moderate confidence 3 of 5: One strong study, or several smaller consistent ones.review

    Aberrant expression of IRX1, IRX2, IRX3 and IRX5 has been reported in haematopoietic malignancies including B-cell precursor ALL, T-ALL and some AML subtypes, so IRX2 activation in a non-AFF1 B-lineage leukaemia is not without published precedent.

    What this evidence cannot show

    A review, used only as a map. Its abstract names IRX2 among the aberrantly expressed IRX genes in BCP-ALL but does not attribute that to any fusion partner and does not name KMT2A in the abstract, which is why expected_absent_terms says so. It carries no per-patient data and cannot corroborate the GSM1679755 call; it establishes only that an IRX2-positive BCP-ALL is an expected kind of case.

    Evidence that argues against this (1)
    • The same author's pro-B TALE-code paper reports IRX2 as SILENT in normal B-cell differentiation and places IRX1 rather than IRX2 in pro-B cells, so within this author's own framework IRX2 positivity in a B-lineage blast is the aberrant state and the baseline is off - which makes a single positive case a real event rather than background, but also makes one marginal call harder to dismiss as noise in either direction. Nagel S et al. 2022
Connected to