A panel of many antigens in one cell type is the input track the deposit did not provide: eight H3K9-axis proteins in MCF-7 all read the whole KMT2A locus elevated (six-non-anchor medians 49.8-72.4) and all read the KMT2A promoter at the 87.6th-99.9th percentile - so the shared component has to be subtracted before any single antigen's number means anything
also called the panel baseline · C5 · eight antibodies agreeing is not eight findings
When eight different experiments in the same cells all say a region is busy, the region is probably just easy to measure. Comparing each experiment against the others is a free substitute for the control the original study never published.
The same thing, for a scientist
**The problem this solves.** A ChIP-seq deposit without an input track cannot distinguish a protein's occupancy from the region's accessibility, its copy number, or the depth-normalisation artefact. **Neither GSE139196 nor GSE225028 deposits an input or an IgG**, and between them they are the *entire* body of public data this project has for the H3K9 axis at the *KMT2A* locus. Four beats have now read them. **The substitute, declared before it was computed.** `analyses/q116-h3k9-axis-at-the-locus/PREREGISTRATION.md` §5 fixed control **C5**: *the median `kmt2a_gene` percentile across ALL C1-passing tracks of ALL antigens in the run, and no antigen may be called "at the locus" on a number that does not exceed the panel median.* It was written after Q114 found SUV39H1 at the 81.65th-86.79th percentile over the *KMT2A* gene body in all four of its MCF-7 tracks and could not tell whether that was SUV39H1 or the locus [E1]. **What it measured, over 28 C1-passing tracks of eight antigens in one cell line, one submitter, one pipeline:** | antigen | median of the six non-anchor *KMT2A* intervals | `kmt2a_gene` median | *KMT2A* promoter (2 kb) | |---|---:|---:|---:| | KDM4C | **72.05** | 78.42 | 97.71-98.81 | | **CBX5 4E** (Bio-ChIP) | **72.37** | 60.98 | 99.75 | | KDM4B | **70.31** | 79.69 | 62.28-99.82 | | TRIM28/KAP1 | **65.87** | 66.42 | **99.68-99.91** | | EHMT2/G9a | **52.56** | 66.56 | 87.55-97.76 | | CBX5/HP1a | **51.76** | 30.16 | 96.32-96.97 | | CBX5 4A (Bio-ChIP) | **49.79** | 44.04 | 96.76 | | **H3K9me3** (the only histone mark) | **15.41** | 7.65 | 0.00-77.17 | | *SUV39H1 (Q114, same deposit)* | *not computed there* | *81.65-86.79* | *not reported* | **Every protein antigen reads the whole locus elevated. Only the histone mark does not.** The panel median `kmt2a_gene` percentile is **61.39**, and the panel median at the promoter is **96.87** [E1]. **Two things follow, and they point in opposite directions, which is why the control is worth having.** 1. **It killed a promoter claim's stated basis.** G9a at the 95.8th percentile of CTCF anchors at the *KMT2A* promoter looked specific until the panel showed every protein at 87.6-99.9 there. A third pass against **active promoters** was needed, and the claim survived on that statistic instead - 87.60th and 88.65th percentile of the 2,000 highest-expressed genes' promoters, 1.44x and 1.34x the median active promoter. 2. **It blocked a near-positive at the anchor.** TRIM28 cleared the first clause of the PRESENT rule (3 of 4 tracks above the 81st percentile) and failed the second on a six-non-anchor median of 65.87. Q114 recorded the identical rescue for SUV39H1. **Where the substitute stops working, stated plainly.** All eight antigens here are **H3K9-axis proteins**. If the *KMT2A* locus genuinely carries a shared H3K9 platform, a panel of H3K9 proteins looks exactly like this and the artefact reading is wrong. **The panel cannot distinguish a shared artefact from a shared complex. An input track can, and none exists.**
How to run it, in four lines
- Compute the same interval statistic for every track in the deposit, of every antigen, not only the ones your beat is about. The marginal cost is the reads you were already going to do; here it was ~450,000 reads per track and 28 tracks.
- Report the panel median beside every per-antigen number, and require any "X is at the locus" claim to exceed it. Declare the requirement before you compute it, because afterwards it is a knob.
- Split the panel by assay class. The histone-mark tracks behaved completely differently from the protein tracks here (15.41 against 49.79-72.37), and pooling them would have hidden that. A Bio-ChIP of an overexpressed tagged protein is a third class again - CBX5 wild-type antibody ChIP gave 30.16 at the gene body while its own 4A and 4E Bio-ChIPs gave 44.04 and 60.98.
- Say what the panel cannot do. It controls for the pipeline and for the region's general ChIP-ability. It does not control for a shared true biology among related antigens, and it is not a substitute for input - it is what you use when input does not exist.
Why this is more than a local trick
This project has read occupancy at the KMT2A locus in six cell types across four beats and has never once had an input arm. Q110's signal-level arm failed its own acceptance tests in 12 of 14 tracks and reported no occupancy statement; Q114's C1 gate divided by zero; this beat's C4 was declared failed in advance. The recurring problem is not the analysis, it is that every deposit reachable from here is a targeted study that deposited only its treatment tracks.
A panel baseline is the one control that gets stronger as the corpus reads more of a deposit, because every additional antigen tightens the estimate of the shared component. It cost this beat nothing except the discipline of computing all seven intervals for tracks that were not the point of the beat - and it changed two verdicts.
The corollary for reading this corpus: any occupancy percentile in this graph that comes from a single antigen in a deposit with no input, and that was not compared against other antigens in the same deposit, should be read as an upper bound on that protein's specific occupancy. By the count in ana-q110-h3k9-writer-and-reader-occupancy-at-the-kmt2a-locus and analyses/q112-signal-level-reread, that describes most of them.
The panel did not just diagnose the problem, it identified the null that fixes it - and one antigen proves the null works
C5b said the CTCF-anchor percentile could not discriminate at the KMT2A promoter, because every protein track read 95.8-99.8 there against a panel median of 96.87. The replacement null - the promoters of the 2,000 highest-expressed MCF-7 genes - was then run for six antigens, and it separates them by a factor of nearly two in fold and by 40 percentile points:
| antigen | vs CTCF anchors | vs 2,000 ACTIVE promoters | x median active promoter |
|---|---|---|---|
| TRIM28/KAP1 | 99.80 | 98.80 - 99.35 | 2.98 - 3.85x |
| CBX5 4E (Bio-ChIP) | 99.75 | not run | - |
| KDM4B | 99.37 | 58.60 | 1.05x |
| KDM4C | 98.47 | 78.35 | 1.61x |
| CBX5/HP1a | 96.65 | 91.05 - 94.50 | 1.53 - 1.71x |
| EHMT2/G9a | 95.83 | 87.60 - 88.65 | 1.34 - 1.44x |
| H3K9me3 | 29.43 | 0.00 - 61.05 | - |
KDM4B is the case that proves the method. On the CTCF-anchor null it is 99.37 - indistinguishable from TRIM28 and above the panel median. On the active-promoter null it is 58.60 and 1.05x the median active promoter, i.e. background. Two nulls, one antigen, opposite answers. The panel told us the first null was uninformative; the second null then disagreed with it about one antigen in exactly the way a working control should.
So the full recipe is three steps, not two: compute the panel baseline, notice when it is so high that the statistic cannot discriminate, and then find a null whose members share whatever the panel says is shared. Here that was 'active promoter'. The panel is the diagnostic; it is not itself the fix.
| control name | C5 (gene body, pre-registered) and C5b (promoter, deviation D8) |
|---|---|
| prereg | analyses/q116-h3k9-axis-at-the-locus/PREREGISTRATION.md, section 5 |
| n tracks | 28 |
| n antigens | 8 |
| deposit | GSE139196, MCF-7, one submitter, HOMER makeUCSCfile |
| panel median kmt2a gene percentile | 61.39 |
| panel median kmt2a promoter percentile | 96.87 |
| kmt2a promoter range protein tracks | 87.55 to 99.91 |
| kmt2a promoter range h3k9me3 tracks | 0.00 to 77.17 |
| absence class | never-measured |
| absence class note | The thing the panel substitutes for - an input or IgG track in either of the two deposits that hold H3K9-axis occupancy data at this locus - has never been deposited by anyone. No re-analysis can create it. |
| panel median provenance | C5/C5b PANEL MEDIANS ARE QUOTED AT THE FINAL 28-TRACK COUNT (2026-09-23). Earlier drafts of this entry quoted them at intermediate counts (12, 18 or 25 tracks) while the run was still going. The gene-body panel median moved 61.80 -> 61.39; the PROMOTER panel median moved 82.36 -> 96.87, i.e. UP, and the direction matters: at 96.87 the CTCF-anchor percentile at the KMT2A promoter is even less informative than the first draft said, and the promoter claim rests ENTIRELY on the active-promoter null of deviation D9. |
| active promoter null discriminates | THE ACTIVE-PROMOTER NULL DISCRIMINATES, AND THE PROOF IS KDM4B. Against 56,171 CTCF summit windows KDM4B reads the 99.37th percentile at the KMT2A promoter - indistinguishable from TRIM28's 99.80 and above the 96.87 panel median. Against the promoters of the 2,000 highest-expressed MCF-7 genes it reads the 58.60th percentile and 1.05x the median active promoter, i.e. BACKGROUND. So the two nulls disagree completely about one antigen, the active-promoter null is the one that separates the panel, and the ordering it gives is TRIM28 98.8-99.4 > CBX5 91.1-94.5 > EHMT2 87.6-88.7 > KDM4C 78.4 > KDM4B 58.6 > H3K9me3 0.0-61.1. The module claim rests on the three antigens at the top of that ordering and is not a claim that everything in the deposit is at this promoter. |
six nonanchor interval median per antigen — the numbers behind the chart
{
"KDM4C": 72.05,
"CBX5_mut4E": 72.37,
"KDM4B": 70.31,
"TRIM28": 65.87,
"EHMT2": 52.56,
"CBX5": 51.76,
"CBX5_mut4A": 49.79,
"H3K9me3": 15.41
}suv39h1 q114 same deposit kmt2a gene
[ 81.65, 85.31, 85.51, 86.79 ]
what it controls for
[ "the pipeline's behaviour at this locus", "the region's general ChIP-ability", "input-free depth normalisation at this locus" ]
what it does NOT control for
[ "a shared true biology among related antigens - all eight here are H3K9-axis proteins", "copy number, which needs a segment-level log2 ratio nobody has retrieved", "antibody specificity, for which no clone is stated anywhere in the deposit" ]
verdicts it changed
{
"G9a promoter claim": "stated basis removed; re-based against an active-promoter null and UPHELD at 87.60 and 88.65 percentile of 2,000 active promoters",
"TRIM28 at the exon-11 anchor": "diagnosed the locus-wide elevation that the separate six-non-anchor-interval clause used to block a PRESENT verdict"
}assay classes must be split
{
"antibody_ChIP_of_a_histone_mark": "H3K9me3, six-non-anchor median 15.41",
"antibody_ChIP_of_a_protein": "EHMT2, CBX5, TRIM28, KDM4B, KDM4C, 49.79-72.37",
"Bio-ChIP_of_an_overexpressed_tagged_protein": "CBX5 4A and 4E, 49.79 and 72.37 - a third class, and CBX5 wild-type antibody ChIP gives 30.16 at the gene body against 44.04 and 60.98 for its own Bio-ChIP mutants"
}C5 final 28 track values
{
"panel_median_kmt2a_gene_percentile": 61.39,
"panel_median_kmt2a_promoter_percentile": 96.87,
"per_antigen_median_promoter_percentile_vs_CTCF_anchors": {
"TRIM28": 99.8,
"CBX5_mut4E": 99.75,
"KDM4B": 99.37,
"KDM4C": 98.47,
"CBX5_mut4A": 96.76,
"CBX5": 96.65,
"EHMT2": 95.83,
"H3K9me3": 29.43
},
"reading": "every PROTEIN antigen reads 95.8-99.8 at the KMT2A promoter against CTCF anchors and only the histone mark (29.43) does not - so that statistic cannot discriminate between proteins at all, and every promoter claim in this beat rests on the ACTIVE-PROMOTER null instead"
}the replacement null results
{
"null": "the promoters (TSS +/- 500 bp) of the 2,000 highest-expressed MCF-7 protein-coding genes, ENCFF251DYL",
"TRIM28": [
98.8,
99.35
],
"CBX5": [
91.05,
94.5
],
"EHMT2": [
87.6,
88.65
],
"KDM4C": [
78.35
],
"KDM4B": [
58.6
],
"H3K9me3": [
0,
56.7,
20.55,
61.05
],
"x_median_active_promoter": {
"TRIM28": [
2.98,
3.85
],
"CBX5": [
1.53,
1.71
],
"EHMT2": [
1.34,
1.44
],
"KDM4C": [
1.61
],
"KDM4B": [
1.05
]
},
"not_run_for": [
"CBX5 4A",
"CBX5 4E",
"KDM4B +E2",
"KDM4C +E2",
"KDM4B/C second replicates"
]
}- The active-promoter null was run for six antigens and NOT for the two CBX5 Bio-ChIP mutants or for the +E2 and second-replicate KDM4B/KDM4C tracks. Completing it is five more downloads and would turn the ordering in this entry from six antigens into the full eight.
- Would a panel of UNRELATED chromatin antigens in the same deposit give the same locus-wide elevation? GSE139196 contains H3K4me3, H3K27me3, H3K36me3, H3K56ac, H3K122ac, H3K9K14ac, POLR2A, NELFA and HEXIM1 tracks that this beat did not read. Adding the four acetylation marks and Pol II would turn an H3K9-only panel into a real baseline and would cost about ten more downloads.
- Is the shared elevation copy number? CCLE calls KMT2A copy-neutral in MCF-7 but a discrete caller reports 0 for exactly the size of gain that would produce a 1.1-1.3x elevation. The segment-level log2 ratio at 11q23 has never been retrieved by any beat.
- How many occupancy percentiles already in this corpus come from a single antigen in an input-free deposit with no panel comparison? Nothing has swept for it, and the answer decides how much of this graph's occupancy layer is upper bounds rather than measurements.
- E1strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.dataset
Over 28 C1-passing tracks of eight antigens in GSE139196 (MCF-7), the median of the six non-anchor KMT2A intervals is 49.79-72.37 for every protein antigen and 15.41 for H3K9me3; the panel median kmt2a_gene percentile is 61.39 and the panel median at the 2 kb KMT2A promoter is 96.87, with every protein track between the 87.55th and 99.91st percentile there.
analyses/q116-h3k9-axis-at-the-locus/results_scored.json, controls C5 and C5b; pre-registered in PREREGISTRATION.md section 5 before any of it was measured · Q116-h3k9-axis-at-the-locus · oncofusion-knowledge-graph 2026What this evidence cannot show
One deposit, one submitter, one HOMER pipeline, one cell line, and eight antigens that are all H3K9-axis proteins rather than an unbiased sample. The C5b promoter extension is deviation D8 and is labelled an extension, not a pre-registered control. Panel medians move as tracks are added and are quoted at the track count in results_scored.json. All numbers are percentile ranks within each track's own distribution, which is invariant to HOMER's fixed-tag-total normalisation but cannot see a global shift.
Evidence that argues against this (1)
- THE PANEL CANNOT DISTINGUISH A SHARED ARTEFACT FROM A SHARED COMPLEX, and here the antigens are deliberately related. If the KMT2A locus carries a real H3K9-machinery platform, eight H3K9 proteins reading it up is the expected observation and the 'locus-level property' reading is simply wrong. An input track resolves it; neither of the two deposits this project can reach has one. This is stated as the control's boundary rather than as a caveat, because it is where the method stops. source
- E2moderate confidence 3 of 5: One strong study, or several smaller consistent ones.dataset
The panel baseline changed two verdicts in one run: it removed the stated basis of the G9a promoter claim (which then survived against an active-promoter null instead, at the 87.60th and 88.65th percentile of the 2,000 highest-expressed genes' promoters) and it blocked TRIM28 from a PRESENT verdict at the exon-11 anchor despite 3 of 4 tracks reading above the 81st percentile.
ana-q116-g9a-sits-on-the-kmt2a-promoter-in-mcf7-and-is-ordinary-at-the-exon-11-anchor and ana-q116-trim28-comes-closer-to-firing-at-the-exon-11-anchor-than-anything-yet-and-the-specificity-clause-blocks-it · Q116-h3k9-axis-at-the-locus · oncofusion-knowledge-graph 2026What this evidence cannot show
The TRIM28 block came from the six-non-anchor-interval clause of the PRESENT rule, which originated in analyses/q112-signal-level-reread/PREREGISTRATION.md and is not itself part of C5 - C5 supplied the diagnosis (every protein reads the locus up) rather than the block. Crediting both to the panel baseline would overstate it, and the distinction is recorded here.
Evidence that argues against this (1)
- One of the two verdicts the panel touched went on to SURVIVE against a different null. So the panel's record in this run is: one claim re-based and upheld, one near-positive blocked by a different clause it diagnosed. A control that has changed two verdicts in its first outing has no track record, and the general claim in this entry's title rests on a single run. source
supplied the diagnosis - every protein antigen reads the whole locus up - that the six-non-anchor clause then used to block the verdict
removed the stated basis of that entry's promoter claim: every protein track in the deposit reads 87.6-99.9 at the same promoter
that entry could not tell whether SUV39H1's locus-wide elevation was the protein or the locus; eight antigens in the same deposit say it is the locus
same family: a control that looks like it is working because nothing in the data can make it fail. Both come from reading an input-free deposit at one locus
the panel baseline is what you use when no input exists; that experiment is the input arm itself
two more antigens with SUV39H1's locus-wide signature; the shared elevation now spans a writer, two erasers, a reader's mutants and a scaffold
CBX5 is the panel's one protein exception - the only protein antigen reading the locus DOWN - which is what makes the panel informative rather than uniform
both are controls that a multi-track deposit makes free: one subtracts the shared component across antigens, the other estimates the noise across replicates