spectral_unmixing.estimate_picasso_unmixing_matrix_from_volumeο
- spectral_unmixing.estimate_picasso_unmixing_matrix_from_volume(channel_volumes, *, background_percentile=1.0, preprocess_alpha_inputs=True, mi_bins=64, alpha_max=1.0, max_iter=10, tolerance=0.0001, max_alpha_voxels=500000, random_state=0)[source]ο
Estimate a PICASSO-like blind unmixing matrix from multi-channel image data.
This estimation logic is motivated by the PICASSO publication: Seo, J., Sim, Y., Kim, J. et al. PICASSO allows ultra-multiplexed fluorescence imaging of spatially overlapping proteins without reference spectra measurements. Nature Communications 13, 2475 (2022). https://doi.org/10.1038/s41467-022-30168-z
- Parameters:
channel_volumes (array-like) β Multi-channel image data with channel as the first axis, for example
(C, Z, Y, X)or(C, N).background_percentile (float, optional) β Low percentile used for optional per-channel background subtraction.
preprocess_alpha_inputs (bool, optional) β If
True, apply percentile-based background subtraction and clipping before estimating the unmixing matrix.mi_bins (int, optional) β Number of histogram bins used by the mutual-information estimator.
alpha_max (float, optional) β Upper bound for each pairwise subtraction coefficient.
max_iter (int, optional) β Maximum number of pairwise update sweeps.
tolerance (float, optional) β Convergence criterion on the largest pairwise coefficient update in one iteration.
max_alpha_voxels (int or None, optional) β Optional cap on the number of voxels used for matrix estimation.
random_state (int, optional) β Random seed used for optional subsampling.
- Return type:
tuple[ndarray,dict]- Returns:
tuple β
(matrix, details)with the estimated unmixing matrix and a metadata dictionary describing convergence and pairwise updates.
Notes
This implements an iterative, pairwise, mutual-information-minimizing blind unmixing routine. It is inspired by the PICASSO criterion, but it is not a deep-learning approach and not a full spectral reference-based method.