Segmentation Task Definition
The segmentation_tasks
object in the segmentation algorithm file is a list of tasks. Each task has the following structure:
{
"task_id": 0,
"segmentation_family": "Cellpose",
"entity_types_detected": [ ... ],
"z_layers": [ ... ],
"segmentation_properties": { ... },
"task_input_data": [ ... ] ,
"segmentation_parameters": { ... },
"polygon_parameters": { ... },
}
task_id
Each task has an integer index, starting from zero called the task_id
. The task_id
is used in the generation of the
EntityID
to ensure uniqueness.
Note
The Vizgen Post-processing Tool vpt
only supports 9 tasks in a single segmentation algorithm. If more tasks are
needed, users are encouraged to run vpt
multiple times and combine the segmentation outputs post hoc.
segmentation_family
Each task has a segmentation_family
. This variable specifies what type of segmentation will be performed and what
parameters must be provided. The currently supported families are:
Watershed
Cellpose
entity_types_detected
A task may detect one or more entities based on entity_types_detected
. This is useful for running multiple tools for
detecting an Entity (e.g. Cells) and combining the output. Supported Entity types are "cell" and "nucleus."
z_layers
The z_layers
variable is a list of which z-index images should be used in this segmentation task. If the type of
segmentation is 2D and multiple z-indexes are entered, segmentation will be performed on each z-layer sequentially and the
Entities will be merged into 3D objects at the end of the task. If multiple z_layers
are selected with 2D segmentation, a
heuristic will be applied to fill in any gaps between segmented layers. 2D segmentation is applied to all z-layers in the
experiment by default without needing to explicitly specify the behavior.
Properties and Parameters
Both segmentation_properties
and segmentation_parameters
are specific to the segmentation_family
and are described
in their own sections.
task_input_data
The task_input_data
list is a list of image channels and per-channel pre-processing steps. This tool allows the
application of intensity normalization, down-sampling, and/or blurring before performing cell segmentation.
Normalization Options
Filter name: "normalize"
Types:
default (default if no parameters are specified)
default normalization is min-max range normalization. It does not accept any parameters
CLAHE
Contrast Limited Adaptive Histogram Equalization (CLAHE) is a normalization method for emphasizing local contrast in an image at the expense of altering global brightness. CLAHE accepts two parameters:
clip_limit (range: 0 - 1)
filter_size (2 element list, units of pixels)
For more information, see the Scikit Image Documentation
Usage:
"image_preprocessing": [
{
"name": "normalize",
"parameters": {
"type": "CLAHE",
"clip_limit": 0.01,
"filter_size": [
100,
100
]
}
}
]
Blur Filter Options
Filter name: "blur"
Types:
average (default if no parameters are specified)
median
gaussian
All blur filter types accept a kernel size parameter in units of pixels and are implemented using OpenCV. If the size is not specified it takes the default value 5px.
Usage:
"image_preprocessing": [
{
"name": "blur",
"parameters": {
"type": "gaussian",
"size": 21
}
}
]
Downsample Options
Filter name: "downsample"
The downsample filter reduces the size of the images during segmentation to decrease processing time. The only parameter
passed to the downsample filter is the scale factor, scale
(default value: 2).
Usage:
"image_preprocessing": [
{
"name": "downsample",
"parameters": {
"scale": 2
}
}
]
polygon_parameters
The polygon_parameters
are used when converting a foreground / background mask into geometric
shapes describing the outlines of cells. In order to improve computational performance and avoid
artifacts, smoothing and simplification of Entity geometries is recommended, as is filtering by
size. All parameters are measured in units of pixels.
Parameters:
simplification_tol
The acceptable loss of precision when simplifying cell boundaries. Even a small amount of simplification (2 px) dramatically improves processing time.
smoothing_radius
The size of a smoothing operation comparable to morphologically closing and then opening the cell mask using the same structuring element.
minimum_final_area
Minimum area of a polygon to retain the cell. Used to filter spurious detections.
Usage:
"polygon_parameters": {
"simplification_tol": 2,
"smoothing_radius": 10,
"minimum_final_area": 500
}