spateo.segmentation.label¶
Functions for use when labeling individual nuclei/cells, after obtaining a mask.
Functions¶
|
Replace labels according to mapping. |
|
Replace labels according to mapping. |
|
Assign individual nuclei/cells using the Watershed algorithm. |
|
Find peaks for use in Watershed via iterative erosion. |
|
Assign individual nuclei/cells using the Watershed algorithm. |
|
Expand labels up to a certain distance, while ignoring labels that are |
|
Expand labels up to a certain distance. |
|
Label connected components while splitting components that are too large. |
|
Label connected components while splitting components that are too large. |
|
Find peaks from an arbitrary image. |
|
Find peaks from an array. |
|
Find peaks from a boolean mask. Used to obatin Watershed markers. |
|
Augment the labels in one label array using the labels in another. |
|
Augment the labels in one label array using the labels in another. |
Module Contents¶
- spateo.segmentation.label._replace_labels(labels: numpy.ndarray, mapping: Dict[int, int]) numpy.ndarray [source]¶
Replace labels according to mapping.
- Parameters:
- labels
Numpy array containing integer labels.
- mapping
Dictionary mapping from labels to labels.
- Returns:
Replaced labels
- spateo.segmentation.label.replace_labels(adata: anndata.AnnData, layer: str, mapping: Dict[int, int], out_layer: str | None = None)[source]¶
Replace labels according to mapping.
- Parameters:
- adata
Input Anndata
- layer
Layer containing labels to replace
- mapping
Dictionary mapping that defines label replacement.
- out_layer
Layer to save results. By default, the input layer is overridden.
- spateo.segmentation.label._watershed(X: numpy.ndarray, mask: numpy.ndarray, markers: numpy.ndarray, k: int) numpy.ndarray [source]¶
Assign individual nuclei/cells using the Watershed algorithm.
- Parameters:
- X
Data array. This array will be Gaussian blurred and used as the input values to Watershed.
- mask
Nucleus/cell mask.
- markers
Numpy array indicating where the Watershed markers are. May either be a boolean or integer array. If this is a boolean array, the markers are identified by calling cv2.connectedComponents.
- k
Size of the kernel to use for Gaussian blur.
- Returns:
Watershed labels.
- spateo.segmentation.label.find_peaks_with_erosion(adata: anndata.AnnData, layer: str = SKM.STAIN_LAYER_KEY, k: int = 3, square: bool = False, min_area: int = 80, n_iter: int = -1, float_k: int = 5, float_threshold: float | None = None, out_layer: str | None = None)[source]¶
Find peaks for use in Watershed via iterative erosion.
- Parameters:
- adata
Input Anndata
- layer
Layer that was used to create scores or masks. If {layer}_scores is present, that is used. Otherwise if {layer}_mask is present, that is used. Otherwise, the layer is taken as a literal.
- k
Erosion kernel size
- square
Whether to use a square kernel
- min_area
Minimum area
- n_iter
Number of erosions to perform.
- float_k
Morphological close and open kernel size when X is a float array.
- float_threshold
Threshold to use to determine connected components when X is a float array. By default, a threshold is automatically determined by using Otsu method.
- out_layer
Layer to save results. By default, this will be {layer}_markers.
- spateo.segmentation.label.watershed(adata: anndata.AnnData, layer: str = SKM.STAIN_LAYER_KEY, k: int = 3, mask_layer: str | None = None, markers_layer: str | None = None, out_layer: str | None = None)[source]¶
Assign individual nuclei/cells using the Watershed algorithm.
- Parameters:
- adata
Input AnnData
- layer
Original data layer from which segmentation will derive from.
- k
Size of the kernel to use for Gaussian blur.
- mask_layer
Layer containing mask. This will default to {layer}_mask.
- markers_layer
Layer containing Watershed markers. This will default to {layer}_markers. May either be a boolean or integer array. If this is a boolean array, the markers are identified by calling cv2.connectedComponents.
- out_layer
Layer to save results. Defaults to {layer}_labels.
- spateo.segmentation.label._expand_labels(labels: numpy.ndarray, distance: int, max_area: int, mask: numpy.ndarray | None = None) numpy.ndarray [source]¶
Expand labels up to a certain distance, while ignoring labels that are above a certain size.
- Parameters:
- labels
Numpy array containing integer labels.
- distance
Distance to expand. Internally, this is used as the number of iterations of distance 1 dilations.
- max_area
Maximum area of each label.
- mask
Only expand within the provided mask.
- Returns:
New label array with expanded labels.
- spateo.segmentation.label.expand_labels(adata: anndata.AnnData, layer: str, distance: int = 5, max_area: int = 400, mask_layer: str | None = None, out_layer: str | None = None)[source]¶
Expand labels up to a certain distance.
- Parameters:
- adata
Input Anndata
- layer
Layer from which the labels were derived. Then, {layer}_labels is used as the labels. If not present, it is taken as a literal.
- distance
Distance to expand. Internally, this is used as the number of iterations of distance 1 dilations.
- max_area
Maximum area of each label.
- mask_layer
Layer containing mask to restrict expansion to within.
- out_layer
Layer to save results. By default, uses {layer}_labels_expanded.
- spateo.segmentation.label._label_connected_components(X: numpy.ndarray, area_threshold: int = 500, k: int = 3, min_area: int = 100, n_iter: int = -1, distance: int = 8, max_area: int = 400, seed_labels: numpy.ndarray | None = None) numpy.ndarray [source]¶
Label connected components while splitting components that are too large.
- Parameters:
- X
Boolean mask to compute connected components from.
- area_threshold
Connected components with area greater than this value will be split into smaller portions by first eroding and then expanding.
- k
Kernel size for erosion.
- min_area
Don’t erode labels smaller than this area.
- n_iter
Number of erosion operations. -1 means continue eroding until every label is less than min_area.
- distance
Distance to expand eroded labels.
- max_area
Maximum area when expanding labels.
- seed_labels
Seed labels.
- Returns:
New label array
- spateo.segmentation.label.label_connected_components(adata: anndata.AnnData, layer: str, seed_layer: str | None = None, area_threshold: int = 500, k: int = 3, min_area: int = 100, n_iter: int = -1, distance: int = 8, max_area: int = 400, out_layer: str | None = None)[source]¶
Label connected components while splitting components that are too large.
- Parameters:
- adata
Input Anndata
- layer
Data layer that was used to generate the mask. First, will look for {layer}_mask. Otherwise, this will be use as a literal.
- seed_layer
Layer containing seed labels. These are labels that should be used whenever possible in labeling connected components.
- area_threshold
Connected components with area greater than this value will be split into smaller portions by first eroding and then expanding.
- k
Kernel size for erosion.
- min_area
Don’t erode labels smaller than this area.
- n_iter
Number of erosion operations. -1 means continue eroding until every label is less than min_area.
- distance
Distance to expand eroded labels.
- max_area
Maximum area when expanding labels.
- out_layer
Layer to save results. Defaults to {layer}_labels.
- Returns:
New label array
- spateo.segmentation.label._find_peaks(X: numpy.ndarray, **kwargs) Tuple[numpy.ndarray, numpy.ndarray] [source]¶
Find peaks from an arbitrary image.
This function is a wrapper around
feature.peak_local_max()
.- Parameters:
- X
Array to find peaks from
- **kwargs
Keyword arguments to pass to
feature.peak_local_max()
.
- Returns:
Numpy array of the same size as X where each peak is labeled with a unique positive integer.
- spateo.segmentation.label.find_peaks(adata: anndata.AnnData, layer: str, k: int, min_distance: int, mask_layer: str | None = None, out_layer: str | None = None)[source]¶
Find peaks from an array.
- Parameters:
- adata
Input AnnData
- layer
Layer to use as values to find peaks from.
- k
Apply a Gaussian blur with this kernel size prior to peak detection.
- min_distance
Minimum distance, in pixels, between peaks.
- mask_layer
Find peaks only in regions specified by the mask.
- out_layer
Layer to save identified peaks as markers. By default, uses {layer}_markers.
- spateo.segmentation.label.find_peaks_from_mask(adata: anndata.AnnData, layer: str, min_distance: int, distances_layer: str | None = None, markers_layer: str | None = None)[source]¶
Find peaks from a boolean mask. Used to obatin Watershed markers.
- Parameters:
- adata
Input AnnData
- layer
Layer containing boolean mask. This will default to {layer}_mask. If not present in the provided AnnData, this argument used as a literal.
- min_distance
Minimum distance, in pixels, between peaks.
- distances_layer
Layer to save distance from each pixel to the nearest zero (False) pixel (a.k.a. distance transform). By default, uses {layer}_distances.
- markers_layer
Layer to save identified peaks as markers. By default, uses {layer}_markers.
- spateo.segmentation.label._augment_labels(source_labels: numpy.ndarray, target_labels: numpy.ndarray) numpy.ndarray [source]¶
Augment the labels in one label array using the labels in another.
This function modifies the labels in target_labels in the following way. Note that this function operates on a copy of target_labels. It does NOT modify in-place. * Any labels that are in source_labels that have no overlap with
any labels in target_labels is copied over to target_labels.
- Any labels that are in target_labels that have no overlap with any labels
in source_labels is removed.
- Parameters:
- source_labels
Numpy array containing labels to (possibly) transfer.
- target_labels
Numpy array containing labels to augment.
- Returns:
New Numpy array containing augmented labels.
- spateo.segmentation.label.augment_labels(adata: anndata.AnnData, source_layer: str, target_layer: str, out_layer: str | None = None)[source]¶
Augment the labels in one label array using the labels in another.
- Parameters:
- adata
Input Anndata
- source_layer
Layer containing source labels to (possibly) take labels from.
- target_layer
Layer containing target labels to augment.
- out_layer
Layer to save results. Defaults to {target_layer}_augmented.