Oncofusion

start / graph / ana-q152-the-lymphoid-look-of-the-core-does-not-survive-an-activity-matched-null-inside-the-same-332

Analysisstrong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.Q152-aff1-only-recurrent-core

The lymphoid look of the core does not survive an activity-matched null inside the same 332, and the pre-registered power check says 17 genes cannot carry the statistic anyway

also called q152 branch B2 · q152 C3 power check

Three of the seventeen genes are recognisable immune-cell genes, which makes the set look like a B-cell programme. But a random seventeen genes from the same pool already contain about one, and once the comparison is matched for how active the genes are, three is not more than chance. The apparent programme is a low-number coincidence.

The same thing, for a scientist

Pre-registered branch B2 with two gene sets fixed in advance: L1 = GO:0030183 B cell differentiation, L2 = GO:0030098 lymphocyte differentiation, both human, both with descendant terms, from QuickGO. The core's overlaps are L1 = 2 (BLNK, POU2AF1) and L2 = 3 (BLNK, POU2AF1, TBX21). Against an unmatched null of 10,000 draws of 17 from the 6,049 occupied-anywhere promoters the p-values are 0.013 and 0.008; against 17 random members of the same 332 AFF1-only set they are 0.047 and 0.029; against **activity-decile-matched** draws from the 332 they are **0.105 and 0.043**. Neither clears the pre-registered Bonferroni threshold of 0.025 under the matched null. Independently, escape condition C3 fires: the expected overlap of a random 17 is 0.17 (L1) and 0.47 (L2), both below the pre-declared 0.5-gene floor, so an observed 2 or 3 is a low-count artefact regime and no p-value from it should be reported as a verdict.

Go deeper
The p-value climbs as the null gets more appropriate - that is the result
nullL1 (B cell diff.) obs 2L2 (lymphocyte diff.) obs 3
17 random from the 6,049 occupied anywheremean 0.18, p = 0.013mean 0.43, p = 0.008
17 random from the 332 AFF1-onlymean 0.37, p = 0.047mean 0.72, p = 0.029
17 activity-decile-matched from the 332mean 0.59, p = 0.105mean 0.86, p = 0.043

Pre-registered threshold: 97.5th percentile, i.e. p < 0.025, Bonferroni over the two sets. Neither set clears it under the matched null 1. The right comparator is the bottom row: the question was whether the recurrent core is coherent relative to seventeen more singletons from the same 332, matched for activity, and the answer is no.

C3 fires regardless, and it was declared before the numbers were seen

The pre-registration declared that if the expected overlap of a random 17-gene draw with either set is below 0.5 genes, the test is underpowered and no p-value would be reported as a verdict. The expected overlaps are 0.174 (L1) and 0.467 (L2). Both are below 0.5. An observation of 2 or 3 against an expectation under 1 is a Poisson-tail count, and this project has published on how such counts behave (a-monotone-gradient-is-free, a-denominator-that-cannot-fail-inflates-agreement). The escape condition was not decoration and it fired 1.

An instrument note on the gene sets, because it nearly produced a false answer

The pre-registration named mygene.info as the source. mygene.info go: queries return only direct annotations: GO:0030183 returned 63 symbols and GO:0030098 returned 4. A four-gene set would have made L2 uncomputable for the wrong reason. QuickGO with goUsage=descendants returns 115 and 359 human protein symbols respectively, of which 110 and 345 are in the 19,404-promoter table and 62 and 166 are in the 6,049 occupied-anywhere universe. A parent GO term with few direct annotations is not a small gene set; it is a query that does not traverse the ontology 2.

What is true about the three genes

POU2AF1 (OCA-B/OBF-1/BOB-1) and BLNK (SLP-65) are genuine B-lineage genes and TBX21 (T-bet) is a genuine lymphoid master regulator, in an infant B-ALL deposit. That is a real observation about three promoters; it is not an enrichment of a set of seventeen. The correct downstream move is a per-gene one, which is why each has its own entry and why none of those entries claims AFF1 specificity.

Facts and figures
scriptanalyses/q152-the-aff1-only-recurrent-promoter-core/step4.py
statusrun
result summaryB2 fails under the activity-matched null (p 0.105 and 0.043 vs a 0.025 threshold) and C3 fires on power (expected overlap 0.17 and 0.47, both < 0.5).
pre registered gene sets
{
  "L1": "GO:0030183 B cell differentiation, human, descendants, 115 symbols",
  "L2": "GO:0030098 lymphocyte differentiation, human, descendants, 359 symbols"
}
measurements
[
  {
    "quantity": "lymphoid_overlap_permutation_p_activity_matched",
    "subject": "the 17 AFF1-only recurrent core promoters against GO:0030098 lymphocyte differentiation",
    "value": 0.043,
    "units": "one-sided permutation p, +1 corrected",
    "n": 10000,
    "universe": "10,000 activity-decile-matched draws of 17 genes from the 332 AFF1-only promoters",
    "null": 0.865,
    "note": "observed overlap 3; null field is the null MEAN overlap in genes; pre-registered threshold 0.025 Bonferroni over two sets, so this does not clear"
  },
  {
    "quantity": "expected_overlap_of_a_random_17",
    "subject": "a random 17 genes from the 6,049 occupied-anywhere set against GO:0030183 B cell differentiation",
    "value": 0.174,
    "units": "genes",
    "n": 6049,
    "universe": "62 of the 115 GO:0030183 human symbols are in the 6,049 occupied-anywhere promoter set",
    "null": null,
    "note": "below the pre-declared 0.5-gene power floor, so escape condition C3 fires"
  }
]
Still open
  1. How many of this project's existing functional-enrichment statements used an unmatched background? The 0.013-to-0.105 swing here came entirely from matching on promoter activity.
  2. Is POU2AF1 or BLNK occupancy present at gene-body scale in the same samples, where q147 found IRX1 signal that the promoter window missed?
Every source behind this entry (2)
  1. E1strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.dataset

    The 17-promoter core overlaps GO:0030183 (B cell differentiation, descendants, human) in 2 genes (BLNK, POU2AF1) and GO:0030098 (lymphocyte differentiation) in 3 (BLNK, POU2AF1, TBX21); against activity-decile-matched draws of 17 from the same 332 AFF1-only set the one-sided permutation p-values are 0.105 and 0.043, neither clearing the pre-registered Bonferroni threshold of 0.025, and the expected overlaps of a random 17 are 0.174 and 0.467, both below the pre-declared 0.5-gene power floor.

    Q152 pre-registered identity test with unmatched, within-332 and activity-matched nulls · Iqbal Lab oncofusion knowledge graph, beat Q152 · this project 2026
    What this evidence cannot show

    The activity-matched draw samples one gene per core decile from the same decile within the 332, with replacement across draws; deciles with few 332 members are sampled repeatedly, which narrows the null slightly and therefore makes the reported p-values conservative in the direction of significance, not against it.

    Evidence that argues against this (1)
    • The unmatched null gives p = 0.013 and 0.008, which would have passed the pre-registered threshold. Anyone reading only the unmatched comparison would conclude the core IS a lymphoid programme. The two analyses differ only in whether the null knows about promoter activity. EMBL-EBI Gene Ontology Annotation 2026
  2. E2strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.database

    A mygene.info `go:` query returns only directly annotated gene products: GO:0030183 returns 63 human symbols and GO:0030098 returns 4, whereas QuickGO with goUsage=descendants returns 115 and 359 human protein symbols for the same two terms.

    What this evidence cannot show

    Counts are of distinct symbols after de-duplication across annotation records and were fetched on 2026-09-24; GO annotation sets change between releases and no release identifier is returned by the search endpoint.

    Evidence that argues against this (1)
    • mygene.info's direct-annotation behaviour is documented and arguably correct: a query for a GO term is a query for that term, not for its descendants. Calling it an instrument failure is a judgement about what a user expects, and an analysis that wanted only directly annotated genes would be right to use it. EMBL-EBI Gene Ontology Annotation 2026
Connected to