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

No description has been provided for this image
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}_*.