fishdist.spot_validation

find_corresponding_dilated_ROIs(rps_to_search_for, lab_dilated, rps_dilated=None)

Identify the corresponding dilated ROIs for a list of original regions.

For each region in rps_to_search_for, this function finds the matching region in a dilated labeled image (lab_dilated). Optionally, it can return the matching RegionProperties if rps_dilated is provided.

Parameters:
  • rps_to_search_for (list of skimage.measure._regionprops.RegionProperties) –

    List of original ROIs to find in the dilated image.

  • lab_dilated (ndarray) –

    Labeled 3D array representing the dilated image.

  • rps_dilated (list of skimage.measure._regionprops.RegionProperties, default: None ) –

    Optional list of RegionProperties for the dilated image. If provided, the function returns the matching RegionProperties objects instead of raw coordinates. Default is None.

Returns:
  • list of np.ndarray or skimage.measure._regionprops.RegionProperties or None: List of coordinates (np.ndarray) or RegionProperties corresponding to the input regions. If a region cannot be found, None is returned in that position.

Example
from skimage.measure import label, regionprops
import numpy as np

spots = np.random.rand(5, 10, 10) > 0.9
lab = label(spots)
rps = regionprops(lab)

# simulate dilation
spots_dilated = np.copy(spots)
lab_dilated = label(spots_dilated)
extended_rois = find_corresponding_dilated_ROIs(rps, lab_dilated)
print(len(extended_rois))

validate_spots(spots, discard_spot_size_rule=None, dilate_spot_size_rule=None, intensity_image_for_regions_optional=None)

Validate and optionally dilate 3D spot ROIs based on size criteria.

This function labels connected components in a 3D spot image, computes region properties, discards small spots, and optionally dilates spots below a size threshold. Returns a list of validated (and potentially dilated) ROIs.

Parameters:
  • spots (ndarray) –

    Binary or probabilistic 3D image containing candidate spots, shape (Z, Y, X).

  • discard_spot_size_rule (int, default: None ) –

    Minimum size in any dimension below which a spot is discarded. Default is None.

  • dilate_spot_size_rule (int, default: None ) –

    Minimum size in any dimension below which a spot is dilated. Default is None.

  • intensity_image_for_regions_optional (ndarray, default: None ) –

    Optional intensity image for computing region properties. Default is None.

Returns:
  • list of skimage.measure._regionprops.RegionProperties: List of validated and optionally dilated ROIs.

Example
import numpy as np
from skimage.measure import regionprops
spots = np.random.rand(10, 20, 20) > 0.95
valid_rois = validate_spots(spots, discard_spot_size_rule=2, dilate_spot_size_rule=4)
print(len(valid_rois))