A sharper test than complex enrichment: is the claimed partner's OBLIGATE partner also there? — and its fourth failure is the one protein the source paper named as its own non-selectivity control
also called obligate partner test · is the other half of the heterodimer present · ACTL6A absence generalised
When a protein turns up in a pull-down, the usual defence of it is that it belongs to a machine that genuinely binds the bait. A harder question is whether the one partner it cannot work without also turned up. Testing thirteen such pairs, four failed — and one of the four is the protein the original authors had already singled out as a false lead, which nobody told the test.
The same thing, for a scientist
Complex-level enrichment asks *are several members here?* and is confounded by abundance — the CCT/TRiC chaperonin scores 8 of 9 subunits in this network and is a textbook artefact. The obligate-partner test asks something narrower: **this protein cannot do the job attributed to it without that specific partner; is the partner present?** It needs no background, no threshold and no complete subunit list. Over 13 obligate pairs in Skucha's 960-protein network (PMID 29777171): **7 pass, 4 PARTNER ABSENT, 2 not in the network.** Failures: **ACTB** (needs ACTL6A/BAF53A — absent), **EIF4G1** (needs EIF4E or EIF4A1 — absent), **PRKAR1A** (needs a PKA catalytic subunit — absent), **SF3A3** (needs SF3A1 or SF3A2 — absent). **SF3A3 is the paper's OWN named non-selectivity control**, whose knockdown hit MLL-wild-type K562 and HL-60 as hard as MOLM-13 — and the test rediscovered it from structure alone. **CORRECTED 2026-09-21, and the correction is large: six of the seven passes do not survive scrutiny.** Run per bait, CHD4, NUDT21 and TPR have no obligate partner in the MLL-AF4 column at all. Run against a null, CHD4 (m=7), KAT7 (m=6), MCM2 (m=5) and SMARCC1 (m=4) are MORE LIKELY THAN NOT to pass by chance -- 80.6%, 75.4%, 69.0% and 60.8% for at least one of m unrelated partners landing in a 960-protein network drawn from 4,600. **Exactly one pair of thirteen, CSNK2B, is both an index-column pass and not chance-expected** [E3]. **Rescored per obligate partner rather than any-of-m -- the repair that null implies -- two survive: CSNK2B (2 of 2) and SMARCC1 (3 of 4), both enriched under all three backgrounds, and five more verdicts are demoted** [E4]. But the sharper scoring has its own floor: at p0 = 0.209 no m=1 pair can ever reach p<0.05, so **ACTB/ACTL6A, the pair this test was built for, is unscoreable there** -- the two scorings fail at opposite ends of m. The claim that a pass is the more informative direction was an assertion about a probability that was never computed, and computed it is backwards for any module with redundant subunits. **The four failures survive and strengthen:** ACTB, EIF4G1, PRKAR1A and SF3A3 fail in all seven bait columns, so no failure is a bait artefact. The correction is background-dependent -- under the strict 20,431 proteome background all seven passes stand -- and the SF3A3 coincidence has no clean null at all, because SF3A3 was not pre-specified.
Why a narrower question is a better one here
The control I designed did not fire, and an accident supplied a better one
Corrected: six of the seven passes do not survive per-bait scoring and a null
Cycle 51 listed two next steps for this analysis: run it per bait, and compute the null for the SF3A3 coincidence. Both are now done and both cut against this entry.
| pair | m | in MLL-AF4 column? | P(pass by chance, B=4600) | verdict |
|---|---|---|---|---|
| CSNK2B | 2 | yes | 37.4% | survives both |
| KAT7 | 6 | yes | 75.4% | chance-expected |
| MCM2 | 5 | yes | 69.0% | chance-expected |
| SMARCC1 | 4 | yes | 60.8% | chance-expected |
| CHD4 | 7 | no | 80.6% | fails both |
| NUDT21 | 2 | no | 37.4% | pooled only |
| TPR | 1 | no | 20.9% | pooled only |
One pair of thirteen supports a claim about the index fusion. The entry above reported seven.
The failures move the other way and get stronger. ACTB, EIF4G1, PRKAR1A and SF3A3 fail in all seven bait columns, so no failure here is an artefact of which fusion was pulled down. The asymmetry this entry asserted -- a pass is informative, a failure merely removes a defence -- is therefore reversed for this pair list, for a reason the original reasoning did not anticipate: a module with redundant subunits is nearly guaranteed to show up somewhere, so testing it against a list of seven acceptable partners tests almost nothing.
The correction is background-dependent and that is stated rather than buried. Under the strict reviewed-proteome background of 20,431 no pass is chance-expected and all seven stand. The recovery-restricted background of 4,600 is the defensible choice for an AP-MS network, but it is a choice, and a reader who rejects it keeps the original result.
The per-partner repair, and it demotes five more verdicts
Cycle 52 showed any-of-m scoring is nearly powerless at high m. The repair is to score each named obligate partner as its own trial.
| protein | k of m | expected | p (B=4600) | all three backgrounds |
|---|---|---|---|---|
| CSNK2B | 2 of 2 | 0.42 | 0.0436 | enriched in all three |
| SMARCC1 | 3 of 4 | 0.83 | 0.0307 | enriched in all three |
| CHD4 | 3 of 7 | 1.46 | 0.1633 | strict only |
| KAT7 | 3 of 6 | 1.25 | 0.1099 | strict only |
| MCM2 | 1 of 5 | 1.04 | 0.6897 | none |
| NUDT21 | 1 of 2 | 0.42 | 0.3738 | none |
| TPR | 1 of 1 | 0.21 | 0.2087 | strict only |
| ACTB, EIF4G1, PRKAR1A, SF3A3 | 0 | — | 1.0 | all partners absent |
Five verdicts change and every one is a demotion. NUDT21, MCM2, KAT7, CHD4 and TPR all move from pass to not enriched.
And the repair has its own blind spot, which corrects the cycle-52 correction. With p0 = 960/4600 = 0.209, a perfect 1-of-1 gives p = 0.209, so no m=1 pair can ever reach p<0.05 under the permissive background. Cycle 52 said the power lives in the m=1 and m=2 pairs; that is true of any-of-m and false here. The two scorings fail at opposite ends, and ACTB/ACTL6A — the pair this entire test was built for — sits at m=1, where the sharper scoring can never be significant. The informative band is m=2–4 with k close to m, which is exactly where the two survivors sit.
| script | analyses/obligate-partner-test/run.py |
|---|---|
| results | analyses/obligate-partner-test/results.json |
| network | Skucha 2018, 960 proteins, 291 in the MLL-AF4 column |
| why this is sharper than enrichment | Enrichment depends on a background (this project has shown seven of twelve complexes lose significance when the background moves from the proteome to the nuclear proteome), on a subunit list being complete, and on a threshold. The obligate-partner test depends on none of them. It asks a structural question with a binary answer. |
| the unplanned positive control | SF3A3 is the one protein in the source paper that the AUTHORS named as a non-selectivity control — its knockdown inhibited MLL-wild-type K562 and HL-60 as much as MLL-AF9 MOLM-13, explicitly contrasted with MEN1. The test was not told this and had no access to the functional screen; it flagged SF3A3 from subunit structure alone. That is a validation I did not design and could not have engineered, because I chose the thirteen pairs before looking at which would fail. |
| the control i DID design and it failed to fire | I included PPIL4-DHX16 as a positive control, because the two are in direct structural contact in the human spliceosome and this graph holds them from different datasets. It returned 'protein not in network' — PPIL4 is not in the 960 at all, it came from the proximity interactome. The control is VOID, not passed, and the test therefore has no designed positive control. SF3A3 supplies an accidental one. |
| the seven passes | CSNK2B (CSNK2A1 and CSNK2A2 both present), NUDT21 (CPSF6), MCM2 (MCM3), KAT7 (JADE2, JADE3, BRPF1), CHD4 (GATAD2A, GATAD2B, MBD2), TPR (NUP153), SMARCC1 (SMARCC2, SMARCB1, SMARCA4). CORRECTED 2026-09-21 -- see data.correction_2026_09_21 and E3: only CSNK2B survives both the per-bait restriction and the chance-expectation null. Do not cite this list as seven independent passes. |
| a tension worth keeping | SMARCC1 PASSES the obligate test while BAF is NOT SIGNIFICANT in the complex enrichment at a realistic background (q = 0.076). Those measure different things and both are right: the BAF core dimer plus SMARCB1 plus an ATPase are present, and the complex as a whole is not enriched above what a nuclear background predicts. A protein can have its obligate partners and still belong to a complex that is no more represented than chance. |
| shown for fusion | Membership was scored over the pooled 960. The MLL-AF4 column is reported per protein in results.json, but the partner-presence test itself was not re-run per bait, which would be stricter and is the obvious next refinement. |
| the sf3a3 null | Asked for in cycle 51 and it does not exist. 4 of 11 in-network proteins fail, so the base rate for any PRE-SPECIFIED protein being among the failures is 4/11 = 36.4% -- and that is explicitly NOT a p-value for this coincidence, because SF3A3 was not pre-specified. It was chosen as a clean obligate heterotrimer and its status as the paper's own named non-selectivity control was noticed only after it failed. The honest statement is that the test recovered a protein the authors had independently flagged, which is a consistency check and not a significance claim. A real null needs the authors' full named-control list scored blind before the pair list was written, and that ordering is no longer available. |
the four failures
{
"ACTB": "needs ACTL6A/BAF53A, the other half of the obligate nuclear ARP module, co-purified in the same 1998 paper that established the BAF-membership claim. Absent from all 960.",
"EIF4G1": "needs EIF4E (cap-binding) or EIF4A1 (helicase). Neither present. eIF4G1 is a scaffold and does nothing alone.",
"PRKAR1A": "needs PRKACA or PRKACB. Neither present. A type I regulatory subunit exists to inhibit a catalytic subunit.",
"SF3A3": "needs SF3A1 or SF3A2; the SF3a heterotrimer does not assemble in parts. Neither present."
}correction 2026 09 21
{
"what_was_wrong": "This entry reported '7 pass, 4 PARTNER ABSENT' and argued that a pass is the more informative direction because both halves of an obligate pair arriving independently is not what abundance produces. That is an assertion about a probability and it was never computed. Computed, it is backwards for the high-m pairs.",
"per_bait": "CHD4, NUDT21 and TPR pass on the pooled 960 but have NO obligate partner in the MLL-AF4 column. Only 4 of the 7 pooled passes are index-fusion passes. This is the fourth time in this project that a pooled figure was quoted as a per-bait one, and the CHD4 case is the same NuRD result that had already been found once.",
"the_null": "P(at least one of m unrelated partners lands in a 960-protein network drawn from 4,600) is 80.6% for CHD4 (m=7), 75.4% for KAT7 (m=6), 69.0% for MCM2 (m=5) and 60.8% for SMARCC1 (m=4). Those four passes are more likely than not by chance. The test's power lives in the m=1 and m=2 pairs.",
"what_survives": "CSNK2B alone -- in the index column AND not expected by chance -- 1 of 13 pairs tested. The four failures survive intact and are strengthened: ACTB, EIF4G1, PRKAR1A and SF3A3 fail in all seven bait columns, so a failure is not a bait artefact.",
"the_asymmetry_now_reverses": "The entry said a PASS is the informative direction and a failure only removes a defence. After measurement the opposite holds for this pair list: the failures are robust and bait-independent, and six of the seven passes are either pooled-only or chance-expected. The original reasoning for the asymmetry was sound in principle and simply did not apply to modules with redundant subunits.",
"script": "analyses/obligate-partner-test/run_per_bait_and_null.py",
"results": "analyses/obligate-partner-test/results_per_bait_and_null.json"
}per partner repair 2026 09 21
{
"what_was_asked": "Cycle 52 next-step 6: re-run with per-partner scoring rather than any-of-m, the repair the null implied for redundant-subunit modules.",
"result": "37 partner-trials, 15 present pooled, 9 in the index column. Enriched under all three backgrounds: CSNK2B and SMARCC1 only. Five verdicts change, all demotions.",
"why_the_question_was_wrong": "Under any-of-m, a longer partner list made a PASS more likely by chance and therefore made the verdict LESS informative -- the test was strongest exactly where the biology was least redundant. Per-partner scoring turns the number of partners into ordinary statistical power and tests the claim the obligate-partner argument actually rests on: a functional module should bring several of its subunits, not one.",
"power_floor": "With p0 = 960/4600 = 0.209, a perfect 1-of-1 result gives P(X>=1) = 0.209, so NO m=1 pair can reach p<0.05 under the permissive background however clean it is, and m=2 requires both partners. This CORRECTS cycle 52's conclusion that the test's power lives in the m=1 and m=2 pairs: that is true of any-of-m scoring, which was weakest at high m, and false of per-partner scoring, which is weakest at low m. The informative band is m=2-4 with k close to m.",
"script": "analyses/obligate-partner-test/run_per_partner.py",
"results": "analyses/obligate-partner-test/results_per_partner.json"
}- This entry nominates no target and supports no clinical action. It is a method for weakening one kind of argument about one dataset.
- A PARTNER ABSENT result must not be quoted as evidence that a protein is a contaminant. It removes a specific defence — complex membership — and leaves the question open. Four proteins fail here and none of them is thereby disproven.
- Re-run the test PER BAIT rather than over the pooled network. A partner present in the MLL-ENL column and absent from MLL-AF4 should not rescue a claim about the index fusion, and the pooled version currently lets it.
- Compute the null: with 13 pairs and 4 failures, what is the probability that at least one failure coincides with one of the three proteins the paper names as non-selective (RFC1, SF3A3, CCT3)? Until that is done the SF3A3 result is suggestive, not evidence of a hit rate.
- Extend the pair list to every complex-membership argument currently made anywhere in this corpus, not just the thirteen tested here. The test is cheap and the argument form is common.
- Does the rank truncation explain the four failures? For each absent partner, check whether it appears anywhere in the 4,600 proteins recovered before filtering. That list is unpublished, but the PRIDE submission PXD009338 may allow it to be reconstructed.
- E1moderate confidence 3 of 5: One strong study, or several smaller consistent ones.database
Over 13 obligate protein pairs in the Skucha 2018 960-protein MLL-fusion interactome, 7 pass (the obligate partner is present), 4 fail with the partner entirely absent (ACTB needing ACTL6A, EIF4G1 needing EIF4E or EIF4A1, PRKAR1A needing a PKA catalytic subunit, SF3A3 needing SF3A1 or SF3A2), and 2 of the tested proteins are not in the network at all.
Obligate-partner test over Skucha 2018 Supplementary Table 5, run 2026-09-22: analyses/obligate-partner-test/run.py, 13 hand-curated obligate pairs with the structural reason recorded for each, scored against the 960-protein network and the 291-protein MLL-AF4 column. · This repository (script and results.json committed; pair list written out in source and auditable in the diff) 2026What this evidence cannot show
A PARTNER ABSENT result REMOVES A DEFENCE, it does not establish contamination. AP-MS is lossy, stoichiometry varies between subunits, and this table is rank-truncated at the top 300 per bait, so a genuine partner can fall below the cut and vanish. The 13 pairs are my own curation rather than a database's, so the obligate claims are judgement calls — they are written out in the script with a stated reason each, precisely so a reader can reject one. Membership was also scored over the pooled network rather than per bait, which is the looser of the two available tests.
Evidence that argues against this (1)
- The test's own logic cuts against its failures more than its passes. Because the table retains only the top 300 preys per bait, a genuine obligate partner sitting at rank 301 is indistinguishable from one that was never there — and abundance differences between subunits of the same complex are routinely tenfold, so the LESS abundant half of an obligate pair is exactly what a rank cutoff removes first. Every one of the four failures is compatible with a real interaction whose partner was truncated away. Nature Communications 2018
- E2moderate confidence 3 of 5: One strong study, or several smaller consistent ones.paper
The test independently identified the source paper's own non-selectivity control. SF3A3 was named by Skucha and colleagues, alongside RFC1 and CCT3, as an interactor with a known essential function whose knockdown inhibited MLL-wild-type K562 and HL-60 cells as much as MLL-AF9 MOLM-13 — explicitly contrasted with MEN1, which spared them. The obligate-partner test had no access to that functional screen and flagged SF3A3 from subunit structure alone, because neither SF3A1 nor SF3A2 is in the network.
MLL-fusion-driven leukemia requires SETD2 to safeguard genomic integrity. · Skucha A, Ebner J, Schmoellerl J, Roth M, Eder T, Cesar-Razquin A, Stukalov A, Vittori S, Muhar M, Lu B, Aichinger M, Jude J, Mueller AC · Nature Communications 2018What this evidence cannot show
One accidental hit is not a validated instrument. With 13 pairs and 4 failures, the chance that any given failure coincides with one of the three proteins the paper names as non-selective is not negligible, and I have not computed that probability. It is suggestive rather than established, and the honest reading is that the test produced one result an independent method agrees with, not that it has a measured hit rate.
Evidence that argues against this (1)
- The coincidence may run the other way. SF3A3 is a spliceosomal protein, and spliceosomal subunits are abundant, essential and promiscuous in pulldowns — so both the paper's functional screen and this structural test may be detecting the same underlying property (essentiality plus abundance) rather than independently converging on a shared truth. Two methods that share a confound agreeing is weaker evidence than two independent methods agreeing, and this entry should not be cited as the latter. This repository 2026
- E3moderate confidence 3 of 5: One strong study, or several smaller consistent ones.analysis
Run per bait and against a null, only ONE of the 13 obligate pairs still supports a claim about the index fusion. Of the 7 pooled passes, CHD4, NUDT21 and TPR have no obligate partner in the MLL-AF4 column at all, so a pooled pass is not an index-fusion pass. Of the 7, CHD4 (m=7), KAT7 (m=6), MCM2 (m=5) and SMARCC1 (m=4) are MORE LIKELY THAN NOT to pass by chance under the permissive background -- 80.6%, 75.4%, 69.0% and 60.8% respectively for at least one of m unrelated partners landing in a 960-protein network drawn from 4,600. The intersection of 'passes in the index column' and 'not expected by chance' is CSNK2B alone. The 4 failures, by contrast, fail in all seven bait columns, so a failure is not a bait artefact.
What this evidence cannot show
The null treats network membership as an independent draw per protein, which ignores that real complex subunits co-vary in abundance and in recovery. Co-variation makes genuine partners more likely to co-occur, so the null is CONSERVATIVE for the pass direction and the power problem for high-m pairs is if anything understated rather than exaggerated. The three backgrounds are the ones this project already uses and the verdict flips with the background: under the strict whole-proteome background (20,431) no pass is expected by chance and all seven stand, so the correction depends on preferring a recovery-restricted background, which is the defensible choice for an AP-MS network but is a choice. The m values are counts of partners I chose to list, so a pair's power is partly an artefact of how generously its obligate partners were enumerated.
Evidence that argues against this (2)
- The high-m pairs were not padded to manufacture passes -- CHD4's seven and KAT7's six list genuine alternative subunits of one module, and naming only one would have been the less honest choice. So the power loss is intrinsic to testing modules with redundant subunits rather than a defect in the pair list, and the right repair is to score those modules differently (does the SPECIFIC partner that CHD4 needs appear?) rather than to discard them.
- Under the strict reviewed-proteome background of 20,431 every pass remains unexpected by chance (4.7% to 28.6%), so a reader who rejects the recovery-restricted background keeps all seven passes and this correction does not apply. The entry's original claim is not refuted outright; it is shown to be background-dependent where it was stated unconditionally.
- E4moderate confidence 3 of 5: One strong study, or several smaller consistent ones.analysis
Scored per obligate partner instead of any-of-m, 37 partner-trials give 15 partners present in the pooled 960 and 9 in the MLL-AF4 column, and only TWO of the 13 proteins are enriched above chance under all three backgrounds: CSNK2B (2 of 2 catalytic subunits, p = 0.0022 / 0.0278 / 0.0436) and SMARCC1 (3 of 4, p = 0.0004 / 0.0163 / 0.0307). Five verdicts change and all five are demotions: NUDT21 1 of 2, MCM2 1 of 5, KAT7 3 of 6, CHD4 3 of 7 and TPR 1 of 1 all move from 'pass' to 'not enriched'. The four all-partners-absent results are unchanged.
What this evidence cannot show
The per-partner trials for one protein are NOT independent -- subunits of one complex co-vary in abundance and in recovery -- so these binomial p-values are ANTI-conservative in the enrichment direction, which is the opposite of the conservatism that applied to the any-of-m null. Treat them as a ranking, not as calibrated probabilities. The network is rank-truncated at 300 interactions per bait, so every absence is a non-detection rather than a demonstrated absence, and m remains a count of partners chosen by hand in run.py, so a pair's power still depends on how generously its partners were enumerated. Two of the 13 proteins (ELOA, PPIL4) are not in the network at all and are reported as 'protein not in network' rather than given a partner verdict -- an earlier version of this script printed 'ALL PARTNERS ABSENT' for them, which would have reported a result about a row that is not there.
Evidence that argues against this (2)
- There is a POWER FLOOR that cuts against this entry's cycle-52 correction as well. With p0 = 960/4600 = 0.209, a perfect 1-of-1 result gives P(X>=1) = 0.209, so no m=1 pair can reach p<0.05 under the permissive background however clean it is. Cycle 52 concluded that 'the test's power lives in the m=1 and m=2 pairs'. That is true of any-of-m scoring, which was weakest at HIGH m, and false of per-partner scoring, which is weakest at LOW m. The informative band is m=2-4 with k close to m. So neither scoring is uniformly better: the any-of-m result and the per-partner result fail at opposite ends, and ACTB -- the pair this whole test was built for -- sits at m=1 where the sharper scoring can never reach significance.
- SMARCC1's promotion here DISAGREES with this repository's complex-level analysis, which reports BAF/SWI-SNF as not significant at a realistic background (q = 0.0756 nuclear, 0.1859 recovered). Both answers stand because they are different questions -- 'are many BAF subunits present?' is confounded by the size of the subunit list, while 'are the specific partners SMARCC1 cannot function without present?' is not. But a reader could reasonably take the disagreement as evidence that neither figure is stable, and the honest reading is that SMARCC1 rather than BAF-as-a-complex is the unit this dataset supports.
A sharper test on the same network, free of the background, threshold and subunit-list assumptions that forced three successive corrections to the enrichment analysis. Agrees where it overlaps: KAT7 and CHD4 pass, and the HBO1 module is the best-supported complex there too.
Removes this entry's best defence without convicting it: ACTB's BAF membership is the argument for it being real, and ACTL6A -- the other half of the obligate nuclear ARP module, co-purified in the same 1998 paper -- is absent from all 960.
Independently rediscovers what this entry already records from the source paper: SF3A3 is the authors' own named non-selectivity control. The test flagged it from subunit structure alone -- neither SF3A1 nor SF3A2 is in the network -- with no access to the functional screen.
EIF4G1 is an eIF4F scaffold that does nothing alone, and neither EIF4E nor EIF4A1 is in the network. Consistent with this entry's own observation that no eIF4F component, no ribosome and no PABPC1 appears -- which also means simple translational carryover does not explain it.
A PKA type I regulatory subunit exists to inhibit a catalytic subunit, and neither PRKACA nor PRKACB is in the network -- independently reaching this entry's own conclusion that no PKA catalytic subunit is present.
SAME FAILURE CLASS, FOUND FROM THE OTHER DIRECTION: that entry was corrected twice in two cycles because its stored verdicts were never tested against a null or against the index bait's own column. Here the finding is that 25 of 36 self-measuring analyses carry stored results computed against a much smaller graph. Both are instances of a saved number outliving the conditions that produced it.