NF04 · Real multiple-testing correction on the CP↔motility associations¶
nb06's callout states "41 associations survive Bonferroni... 87 survive Benjamini-Hochberg FDR
5%", but auditing the actual notebook found no multipletests/fdr_bh code anywhere — only
raw Spearman p-values are computed (assoc in nb06 cell 7). Bonferroni is trivial to check by
eye (p < 0.05/640), but the BH-FDR number was apparently never actually run. This notebook adds
real, reproducible statsmodels.stats.multitest.multipletests(method="fdr_bh") on the existing
640-test assoc table and reports what it actually finds.
640 tests (160 CP features x 4 motility metrics) Bonferroni (p < 7.81e-05): 41 significant BH-FDR 5%: 87 significant (nb06's callout previously *stated* 41 / 87 without a code cell computing them)
BH-significant associations by motility metric: metric mean_step_um 69 net_displacement_um 7 straightness 7 path_length_um 4 dtype: int64 Top 10 by adjusted p-value:
| feature | metric | rho | p | p_adj | bh_significant | |
|---|---|---|---|---|---|---|
| 575 | RadialDistribution_RadialCV_OrigActin_Golgi_Me... | mean_step_um | 0.158658 | 4.224915e-11 | 2.703946e-08 | True |
| 571 | RadialDistribution_RadialCV_OrigActin_Golgi_Me... | mean_step_um | 0.148550 | 6.792659e-10 | 2.173651e-07 | True |
| 183 | Intensity_MassDisplacement_OrigActin_Golgi_Mem... | mean_step_um | 0.141022 | 4.773415e-09 | 9.228479e-07 | True |
| 455 | RadialDistribution_FracAtD_OrigMito_2of4 | mean_step_um | -0.140270 | 5.767799e-09 | 9.228479e-07 | True |
| 439 | RadialDistribution_FracAtD_OrigER_2of4 | mean_step_um | -0.138113 | 9.871156e-09 | 1.263508e-06 | True |
| 451 | RadialDistribution_FracAtD_OrigMito_1of4 | mean_step_um | -0.137073 | 1.275226e-08 | 1.360241e-06 | True |
| 343 | Intensity_StdIntensityEdge_OrigActin_Golgi_Mem... | mean_step_um | 0.134430 | 2.424637e-08 | 2.017934e-06 | True |
| 463 | RadialDistribution_FracAtD_OrigMito_4of4 | mean_step_um | 0.134265 | 2.522417e-08 | 2.017934e-06 | True |
| 435 | RadialDistribution_FracAtD_OrigER_1of4 | mean_step_um | -0.133118 | 3.319727e-08 | 2.360694e-06 | True |
| 447 | RadialDistribution_FracAtD_OrigER_4of4 | mean_step_um | 0.131863 | 4.471434e-08 | 2.861718e-06 | True |
All results that survive BH-FDR¶
The full set of 87 BH-significant CP<->motility associations -- not just the top 10 -- as a
browsable table and a single overview plot, so every surviving result (not only the strongest)
is visible in one place. (A scrubber view that highlights the specific cells driving each of
these -- e.g. high/low mean_step_um colored on the motility panel -- is planned as a follow-up
investigation page, not built here.)
87 associations survive BH-FDR 5% -- full list:
| feature | metric | rho | p | p_adj | |
|---|---|---|---|---|---|
| 0 | RadialDistribution_RadialCV_OrigActin_Golgi_Me... | mean_step_um | 0.158658 | 4.224915e-11 | 2.703946e-08 |
| 1 | RadialDistribution_RadialCV_OrigActin_Golgi_Me... | mean_step_um | 0.148550 | 6.792659e-10 | 2.173651e-07 |
| 2 | Intensity_MassDisplacement_OrigActin_Golgi_Mem... | mean_step_um | 0.141022 | 4.773415e-09 | 9.228479e-07 |
| 3 | RadialDistribution_FracAtD_OrigMito_2of4 | mean_step_um | -0.140270 | 5.767799e-09 | 9.228479e-07 |
| 4 | RadialDistribution_FracAtD_OrigER_2of4 | mean_step_um | -0.138113 | 9.871156e-09 | 1.263508e-06 |
| ... | ... | ... | ... | ... | ... |
| 82 | Intensity_MinIntensity_OrigDNA | path_length_um | -0.068014 | 4.909864e-03 | 3.785919e-02 |
| 83 | AreaShape_BoundingBoxArea | net_displacement_um | -0.066704 | 5.805065e-03 | 4.416094e-02 |
| 84 | Intensity_MinIntensityEdge_OrigDNA | path_length_um | -0.066623 | 5.865125e-03 | 4.416094e-02 |
| 85 | AreaShape_MinFeretDiameter | straightness | -0.065864 | 6.454097e-03 | 4.763719e-02 |
| 86 | RadialDistribution_FracAtD_OrigActin_Golgi_Mem... | net_displacement_um | 0.065837 | 6.475680e-03 | 4.763719e-02 |
87 rows × 5 columns
saved p_adj / bonferroni_significant / bh_significant back to cp_motility_spearman.parquet
⭐ Key finding¶
The previously-stated numbers check out: 41 survive Bonferroni (p < 7.81e-05) and
87 survive BH-FDR 5%, exactly matching nb06's callout — so the earlier claim was correct,
it just had no reproducible code behind it (now fixed: p_adj/bonferroni_significant/
bh_significant are saved back to cp_motility_spearman.parquet).
Breaking the 87 BH-significant hits down by metric: 69 are with mean_step_um, only
7 with net_displacement_um, 7 with straightness, 4 with path_length_um — reinforcing
nb06's finding that speed, not displacement/path/straightness, is what CP morphology tracks.
Top hits are unchanged from nb06: RadialDistribution_RadialCV_OrigActin_Golgi_Membrane_*
and RadialDistribution_FracAtD_Orig{Mito,ER}_*.