This package contains implementations of state-of-th-art methods for segmenting nuclei from histopathology images.
- histomicstk.segmentation.nuclear.detect_nuclei_kofahi(im_nuclei_stain, im_nuclei_fgnd_mask, min_radius, max_radius, min_nucleus_area, local_max_search_radius)¶
Performs a nuclear segmentation using kofahi’s method.
This method uses scale-adaptive multi-scale Laplacian-of-Gaussian filtering for blob enhancement and a local maximum clustering for segmentation. The original implementation described by Al-Kofahi et al. uses Laplacian of Gaussian but this function replaces it with Difference of Gaussian to improve speed.
im_nuclei_stain (array_like) – A hematoxylin intensity image obtained from ColorDeconvolution.
im_nuclei_fgnd_mask (array_like) – A binary mask of the nuclear foreground typically obtained by applying a threshold on the hematoxylin/nuclei stain image
min_radius (float) – Minimum nuclear radius (used to set min sigma of the multiscale LoG filter)
max_radius (float) – Maximum nuclear radius (used to set max sigma of the multiscale LoG filter)
min_nucleus_area (int) – Minimum area that each nucleus should have
local_max_search_radius (float) – Local max search radius used for detection seed points in nuclei
im_nuclei_seg_mask – A 2D array mask of the nuclei segmentation.
- Return type
Y. Al-Kofahi et al “Improved Automatic Detection and Segmentation of Cell Nuclei in Histopathology Images” in IEEE Transactions on Biomedical Engineering, Volume: 57, Issue: 4, doi: 10.1109/TBME.2009.2035102, April 2010.
- histomicstk.segmentation.nuclear.gaussian_voting(I, rmax=35, rmin=10, sSigma=5, Tau=5, bw=15, Psi=0.3)¶
Performs nuclear detection using Gaussian kernel voting.
Uses a gaussian kernel to localize the centroids of cell nuclei. Takes as input a hematoxylin-deconvolved image and uses the gradient signal to cast directed votes towards the center of cell nuclei. These votes are blurred by a gaussian kernel, and are spatially clustered using the mean-shift algorithm. Convolutions are performed separably to reduce compute time.
I (array_like) – A hematoxylin intensity image obtained from ColorDeconvolution.
rmax (double) – Upper-limit on voting area extent. Default value = 35.
rmin (double) – Lower-limit on voting area extent. Default value = 10.
sSigma (double) – Standard deviation of smoothing kernel used in gradient calculation. Default value = 5.
Tau (double) – Lower limit on gradient magnitude for casting a vote. Default value = 5.
bw (double) – Bandwidth parameter for mean-shift clustering. Default value = 15.
Psi (double) – Lower limit threshold on votes. Expressed as a fraction of the maximum vote, ranges from [0, 1). Default value = 0.3.
Centroids (array_like) – An N x 2 array defining the (x,y) coordinates of cell centroids.
Votes (array_like) – An intensity image containing the blurred votes obtained by voting.
Return values are returned as a namedtuple
X. Qi, F. Xing, D.J. Foran, L. Yang, “Robust Segmentation of Overlapping Cells in Histopathology Specimens Using Parallel Seed Detection and Repulsive Level Set,” in IEEE Transactions on Biomedical Engineering, vol.59,no.23,pp.754-65, 2011.
- histomicstk.segmentation.nuclear.gvf_tracking(I, Mask, K=1000, Diffusions=10, Mu=5, Lambda=5, Iterations=10, dT=0.05)¶
Performs gradient-field tracking to segment smoothed images of cell nuclei.
Takes as input a smoothed intensity or Laplacian-of-Gaussian filtered image and a foreground mask, and groups pixels by tracking them to mutual gradient sinks. Typically requires merging of sinks (seeds) as a post processing steps.
I (array_like) – Smoothed intensity or log-filtered response where nuclei regions have larger intensity values than background.
Mask (array_like) – Binary mask where foreground objects have value 1, and background objects have value 0. Used to restrict influence of background vectors on diffusion process and to reduce tracking computations.
K (float) – Number of steps to check for tracking cycle. Default value = 1000.
Mu (float) – Weight parmeter from Navier-Stokes diffusion - weights divergence and Laplacian terms. Default value = 5.
Lambda (float) – Weight parameter from Navier-Stokes diffusion - used to weight divergence. Default value = 5.
Iterations (float) – Number of time-steps to use in Navier-Stokes diffusion. Default value = 10.
dT (float) – Timestep to be used in Navier-Stokes diffusion. Default value = 0.05.
Segmentation (array_like) – Label image where positive values correspond to foreground pixels that share mutual sinks.
Sinks (array_like) – N x 2 array containing the (x,y) locations of the tracking sinks. Each row is an (x,y) pair - in that order.
G. Li et al “3D cell nuclei segmentation based on gradient flow tracking” in BMC Cell Biology,vol.40,no.8, 2007.
- histomicstk.segmentation.nuclear.max_clustering(im_response, im_fgnd_mask, r=10)¶
Local max clustering pixel aggregation for nuclear segmentation. Takes as input a constrained log or other filtered nuclear image, a binary nuclear mask, and a clustering radius. For each pixel in the nuclear mask, the local max is identified. A hierarchy of local maxima is defined, and the root nodes used to define the label image.
im_response (array_like) – A filtered-smoothed image where the maxima correspond to nuclear center. Typically obtained by constrained-LoG filtering on a hematoxylin intensity image obtained from ColorDeconvolution.
im_fgnd_mask (array_like) – A binary mask of type boolean where nuclei pixels have value ‘True’, and non-nuclear pixels have value ‘False’.
r (float) – A scalar defining the clustering radius. Default value = 10.
im_label (array_like) – im_label image where positive values correspond to foreground pixels that share mutual sinks.
seeds (array_like) – An N x 2 array defining the (x,y) coordinates of nuclei seeds.
max_response (array_like) – An N x 1 array containing the maximum response value corresponding to ‘seeds’.
XW. Wu et al “The local maximum clustering method and its application in microarray gene expression data analysis,” EURASIP J. Appl. Signal Processing, volume 2004, no.1, pp.53-63, 2004.
Y. Al-Kofahi et al “Improved Automatic Detection and Segmentation of Cell Nuclei in Histopathology Images” in IEEE Transactions on Biomedical Engineering,vol.57,no.4,pp.847-52, 2010.
- histomicstk.segmentation.nuclear.min_model(I, Delta=0.3, MaxLength=255, Compaction=3, MinArea=100, MinWidth=5, MinDepth=2, MinConcavity=inf)¶
Performs a nuclear segmentation using a gradient contour tracing and geometry splitting algorithm. Implemented from the reference below.
I (array_like) – An intensity image used for analyzing local minima/maxima and gradients. Dimensions M x N.
Delta (float) – Fractional difference threshold between minima/maxima pairs to be included in seed point detection. Fractional difference ([0, 1]) in total image range e.g. Delta = 0.3 with a uint8 input would translate to 0.3 * 255. Default value = 0.3.
MaxLength (int) – Maximum allowable contour length. Default value = 255.
Compaction (int) – Factor used in compacting objects to remove thin spurs. Refered to as ‘d’ in the paper. Default value = 3.
MinArea (int) – Minimum area of objects to analyze. Default value = 100.
MinWidth (int) – Minimum max-width of objects to analyze. Default value = 5.
MinDepth (float) – Minimum depth of concavities to consider during geometric splitting. Default value = 2.
MinConcavity (float) – Minimum concavity score to consider when performing for geometric splitting. Default value = np.inf.
Objects are assumed to be dark (as nuclei in hematoxylin channel from color deconvolution). Smoothing improves accuracy and computation time by eliminating spurious seed points. Specifying a value for ‘Delta’ prevents shallow transitions from being included, also reducing computation time and increasing specificity.
X (array_like) – A 1D array of horizontal coordinates of contour seed pixels for tracing.
Y (array_like) – A 1D array of the vertical coordinates of seed pixels for tracing.
Min (array_like) – A 1D array of the corresponding minimum values for contour tracing of seed point X, Y.
Max (array_like) – A 1D array of the corresponding maximum values for contour tracing of seed point X, Y.
S. Weinert et al “Detection and Segmentation of Cell Nuclei in Virtual Microscopy Images: A Minimum-Model Approach” in Nature Scientific Reports,vol.2,no.503, doi:10.1038/srep00503, 2012.