Cellular segmentation is an automated process of detecting cell boundaries within your images and assigning each detected cell a unique identifier. By doing this, Enable Medicine’s downstream analysis platform will be able to explore intercellular interaction and extract additional single-cell information.
When first opening any of our Segmentation extensions, you will be presented with the following screen:
If your experiment has not been fully configured or your images have not been made available yet for viewing in the Visualizer, you may not be able to create a “New Run”. Please complete your experimental design in the Designer to unlock this feature. If you have any questions please reach out to [email protected].
If we click the “New Run” button, we can run a new segmentation version through Enable’s processing pipeline. After pressing the button you should see a prompt such as the one below for creating a new segmentation version.
Biomarker selected as the Whole Cell Segmentation Approach
Dilation selected as the Whole Cell Segmentation Approach
To run your segmentation version you need to fill out all necessary fields below, and press the Create button. These fields include:
Segmentation Version name
Add a unique name for this segmentation run
Description
Add a unique description for this segmentation run.
Regions:
Here you can select a particular set of regions you would like to segment.
Nuclear Biomarker:
Here you can select specific biomarkers targeting cell nuclei. Common Nuclear biomarkers for segmentation for fluorescence microscopy include DAPI, Hoechst, anti-Histone3, and DRAQ5.
Tile Size (pixels) - Optional:
The tile size here is used to maximize segmentation processing speed. Specifying a tile size will break the image into smaller square parts, where the tile size is the length, and perform segmentation on each independent component. Tiling can speed up processing because we can parallelize our segmentation across different compute resources. In the end, we stitch the tiles back together. We recommend a tile size of no less than 2048, since smaller tile sizes increase the time needed for stitching of tile boundaries.
Cell Area Threshold (in microns) - Optional
A cell object’s area is used to represent cell size. For each cell object in the dilated/whole cell segmentation mask, this is derived from the area
property from skimage.measure.regionprops
. This threshold is used to filter cell interaction calculations—cells above the thresholded size are excluded. See the section on voronoi diagrams for more detail. The default value is $400 \mu m^2$.
Whole Cell Segmentation Approach
While the Nuclear Biomarker entered above determines where the nuclei of cells are, this approach determines where the boundaries of those cells are.
If you select “Dilation”, we dilate the nuclear mask (resolving conflicts where cell boundaries meet) to determine the cell boundary. This approach is explained in more depth below.
If you select “biomarker”, we identify cell boundaries using Mesmer, a pre-trained deep learning model. The Mesmer algorithm was trained on TissueNet, an image dataset containing >1 million paired whole-cell and nuclear annotations in numerous human tissue images. The method utilizes an input biomarker that is expressed on the cell membrane in the image. The cell membrane biomarker to be used in a segmentation extension is specified in the Whole Cell Biomarker
field. This method is useful for segmenting cells with irregular shapes, where pixel dilation may not be accurate.
Number of Dilations
In the expansion method, a whole cell mask is generated from a nuclear mask by dilating the nuclear mask’s boundaries, using the scikit-image
package (Python)’s function skimage.morphology.binary_dilation
. Dilation occurs probabilistically for n
cycles, where n
is specified in num_dilations
. Each dilation equates to a given area outside of the nuclear mask, which will vary based on the image resolution and approximately follows the equation: $\mu m \space dilated = \frac 1 2 (\mu m\space per \space pixel)*(number \space dilations)$. At each dilation step, each zero-valued pixel within the given area, where zero-values represent an area not classified as part of a cell, is flipped to a new cell_id
value. The cell_id
value is determined using a probability equal to the count of all neighboring pixels equal to the new cell_id
divided by 4.
After requesting your first segmentation run, the page should reload and show a list of your running segmentation jobs in the Generated Versions table.