1.2.0 Sparkfinder Application Documentation
Application Name | Sparkfinder |
---|---|
Version | 1.2.0 |
Documentation Version | 20.09.2023 - 1 |
Input Image(s) | Multichannel Images (standard and/or WSI); max. 10 channels; 8 Bit or 16 Bit |
Input Parameter(s) |
|
Keywords | fluorescence, multichannel, DAPI, Hoechst, immunofluorescence, multiplex, phenotype, microscopy |
Short Description | Measurement of channel intensities in images from fluorescence microscopy, including an optional segmentation, extraction of morphometric parameters, and intensity/distance/density measures of cell nuclei (DAPI/Hoechst staining) and corresponding (virtual) cells/cytoplasm. |
References / Literature | - |
Table of contents
IKOSA Prisma Sparkfinder
You can use this image analysis application or any of our other applications in your account on the IKOSA platform. If it is not on the list of available applications, please contact your organization's administrator or our team at support@ikosa.ai.
Application description
This application automatically measures individual channel intensities of multichannel fluorescence microscopy images. Optionally, cell nuclei stained with DAPI, Hoechst or similar dyes are automatically segmented in one or multiple channels. Intensities of individual channels at the cell nuclei and virtual cytoplasm areas, morphometric features of the objects as well as measures for densities and distances are provided.
In the following, the prerequisites for an accurate analysis are outlined and the output of the application is described.
Input data requirements
Input image(s)
Input for this application is the following image data:
Image type and format | Color channels | Color depth (per channel) | Size (px) | Resolution (μm/px) |
---|---|---|---|---|
Multichannel (standard and/or WSI)
Check image format File formats | max.10 | 8 Bit or 16 Bit | WSI (CZI) formats: arbitrary Standard images: max. 6,144 x 6,144 | Typically: 0.1 -1.1 |
Image content Fluorescence microscopy image Additional requirements
|
Important:
For all images, the following requirements apply:
The illumination must be constant throughout the image(s).
The sample must be in focus, i.e. no blurry regions in image(s).
Input parameter(s)
Required input parameters:
channel name (e.g. “channel-DAPI”)
channel color (e.g. “00FF00”)
channel type (cell nuclei / intensity)
For channel type cell nuclei, the maximum outgrowth of a virtual cytoplasm can be defined in pixels. Supported value range: 0 to 99 pixels.
As an optional parameter, single or multiple regions of interest (ROIs) can be defined in which the analysis should be performed (‘inclusion ROIs’).
Description of output files and their content
Files
File format | Description | |
---|---|---|
1 | csv | results.csv A csv file containing the overall analysis results for the input image or all inclusion ROIs. |
2 | csv | results_cell_nuclei.csv A csv file containing the analysis results for all detected objects (cell nuclei) in the optionally selected channels of the input image or inclusion ROIs. Please note: This file is only created if the type of at least one channel was set to cell nuclei. |
3 | jpg | results_vis/cell_nuclei_<cc>_<channel-name>_vis.jpg (multichannel; no ROI), or results_vis/cell_nuclei_<cc>_<channel-name>_t<time-step>_z<z-layer>.jpg (for time series, or z-stack; no ROI), or results_vis/cell_nuclei_<cc>_<channel-name>_<roi-id>.jpg (multichannel; ROI <roi-id>), or results_vis/cell_nuclei_<cc>_<channel-name>_t<time-step>_z<z-layer>_<roi-id>.jpg (for time series, or z-stack; ROI <roi-id>) A visualization of the analysis result for each channel <cc> with channel name <channel-name> for which the channel type was set to cell nuclei, for a specific time step (of a time series), or z-layer (of a z-stack), for either the whole image (if no inclusion ROIs selected for analysis) or each individual inclusion ROI. Each visualization includes three parts:
Input image Results visualization for all channels Reference: FFG-BRIDGE Precision Histology Project, Ao.Univ.Prof. DI Dr. Johannes Schmid and PhD Bernhard Hochreiter, Center for Physiology and Pharmacology, the Institute of Vascular Biology and Thrombosis Research in Vienna, Austria. Please note: These files are only created if the type of at least one channel was set to cell nuclei and qualitative result visualization was requested when submitting the analysis job. |
4 | json | annotation_results.json: JSON file containing positions of detected nuclei. The position is measured from the left upper corner (1,1) of the image. |
5 | json | roiMeta.json A json file containing all information regarding the ROIs defined for the analysis job to ensure reproducibility. |
6 | jpg | rois_visualization.jpg, or t<time-step>_z<z-layer>_rois_visualization.jpg: An overview visualization to show locations of all analyzed ROIs for the time step <time-step> of a time series or z-layer <z-layer> of a z-stack. |
7 | json | jobResultBundleMeta.json A json file containing all information regarding the analysis job (application name and version, project, etc.) to ensure reproducibility. |
Content
results.csv
Single CSV file.
A row is generated for the whole image or for each inclusion ROI, displaying the total intensity of each channel (columns 41+). In addition, for each channel having its channel type set as cell nuclei, a row including all results with descriptions is provided.
If one or more time steps (of a time series image) or z-layers (of a z-stack image) have been selected, the results in a specific row refer to the time step or z-layer specified in the corresponding column.
If one or more ROIs have been selected, the results in a specific row refer to the ROI specified in the corresponding column. Otherwise , i.e. in cases of empty ROI columns, the results refer to the whole image.
Column NO. | Column name | Examples | Value range | Description |
---|---|---|---|---|
1 | t | 3 | 1 - | Time step, i.e. the position of the image in the time series. |
2 | z | 5 | 1 - | z-layer, i.e. the position of the layer in the z-stack. |
3 | roi_id | ROI-03 | ROI-01 - | <roi-id> starting from “ROI-01”. Empty, if no inclusion ROI is specified and the whole image was analyzed. |
4 | roi_name | “central” | any text | Custom text to identify the ROI. Empty, if no inclusion ROI is specified and the whole image was analyzed. |
5 | roi_size [Px^2] | 1212212 | 1 - #pixels | Size of the ROI that was analyzed in pixels^2. The size of the whole image is given if no inclusion ROI is specified and the whole image was analyzed. |
6 | object_channel_index | 2 | 1 - #channels | Index of selected channel for object detection |
7 | object_channel_name | “my_channel” | any text | Name of selected channel for object detection |
8 | object_type | “cell nuclei” | “cell nuclei”, or “image/ROI” | Type of “object” analysis (basis for intensity results calculation) . Can either be “cell nuclei” or “image/ROI”. |
9 | outgrowth_type | “virtual cytoplasm” | “virtual cytoplasm”, or ““ (empty) | If an outgrowth is defined, it shows the outgrowth type. |
10 | object_max_outgrowth [Px] | 2 | 0 - 99 | Maximum outgrowth in pixels. |
11 | total_num_objects | 788 | 1 - | Total number of objects which are detected in the image/ROI. |
12 | density_num_objects [1/Px^2] | 0.0007514953 | 0 - 1 | Total number of objects divided by area of image/ROI. |
13 | total_area_objects [Px^2] | 101863 | 8 - #pixels | Total area of objects which are detected in the image/ROI. |
14 | density_area_objects | 0.0971441268 | 0 - 1 | Total area of objects divided by area of image/ROI. |
15 | total_area_outgrowth [Px^2] | 125326 | 0 - #pixels | Total area of object’s outgrowth which are detected in the image/ROI. |
16 | density_area_outgrowth | 0.11952018737 | 0 - 1 | Total area of outgrowth divided by area of image/ROI. |
17 | total_area_objects_incl_outgrowth [Px^2] | 227189 | 8 - #pixels | Total area of objects including outgrowth which are detected in the image/ROI. |
18 | density_area_objects_incl_outgrowth | 0.2166643142 | 0 - 1 | Total area of objects including outgrowth divided by area of image/ROI |
19 | mean_area_objects [Px^2] | 14.324523 | 8 - #pixels | Mean area of detected objects in Pixels^2. |
20 | stddev_area_objects [Px^2] | 1.213133 | 0 - #pixels | Standard deviation of area of detected objects in Pixels^2. |
21 | median_area_objects [Px^2] | 13.983252 | 8 - # pixels | Median area of detected objects in Pixels^2. |
22 | mean_area_outgrowth [Px^2] | 21.363824 | 0 - #pixels | Mean area of outgrowth in Pixels^2. |
23 | stddev_area_outgrowth [Px^2] | 2.573912 | 0 - #pixels | Standard deviation of areas of outgrowth in Pixels^2. |
24 | median_area_outgrowth [Px^2] | 20.874623 | 0 - #pixels | Median area of outgrowth in Pixels^2. |
25 | mean_area_objects_incl_outgrowth [Px^2] | 35.836274 | 8 - #pixels | Mean area of detected objects including outgrowth in Pixels^2. |
26 | stddev_area_objects_incl_outgrowth [Px^2] | 2.309003 | 0 - #pixels | Standard deviation of area of detected objects including outgrowth in Pixels^2. |
27 | median_area_objects_incl_outgrowth [Px^2] | 35.473222 | 8 - #pixels | Median area of detected objects including outgrowth in Pixels^2. |
28 | mean_distance [Px] | 13.5016475693 | 0 - | Mean distance (center-to-center) between detected objects in Pixels. The distance is calculated by the nearest-neighbor distance to other objects of the same type. |
29 | stddev_distance [Px] | 5.5485792042 | 0 - | Standard deviation of distances between detected objects in Pixels. The distance is calculated by the nearest-neighbor distance to other objects of the same type. |
30 | median_distance [Px] | 12.529964086 | 0 - | Median distance between detected objects in Pixels. The distance is calculated by the nearest-neighbor distance to other objects of the same type. |
31 | mean_bbox_area [Px^2] | 202.03426395 | 8 - | Mean area of bounding box of detected objects in Pixels^2. |
32 | mean_area_ratio [%]* | 0.0124492385 | 0 - 100 | Mean area of detected object as percentage of overall image area or ROI area inside the image. |
33 | mean_perimeter [Px]* | 40.434010152 | 8 - | Mean perimeter of detected objects in Pixels. |
34 | mean_circularity* | 0.92114213197 | 0 - ~1 | Mean circularity factor of detected objects. Circularity = 4*pi*area/(perimeter^2). The circularity of a circle is 1. Note: Detected objects with a circularity of infinity are ignored when calculating mean_circularity. |
35 | mean_solidity* | 0.9310659898 | 0 - 1 | Mean solidity value of all detected objects. Solidity is calculated out of the ratio of an object’s area to the area of its convex hull. |
36 | mean_eccentricity* | 0.7109644670 | 0 - 1 | Mean eccentricity of all detected objects. Eccentricity of the ellipse that has the same second-moments as the object area. The eccentricity is the ratio of the focal distance (distance between focal points) over the major axis length. When it is 0, the ellipse becomes a circle. |
37 | mean_equivalent_diameter [Px]* | 11.737309644 | 1 - | Mean equivalent diameter of all detected objects. The equivalent diameter is the diameter of a circle having the same area as the detected object. |
38 | mean_extent* | 0.709022842 | 0 - 1 | Mean extent of all detected objects. The extent value is the ratio of the object area to the total bounding box area. |
39 | mean_minor_axis_length [Px]* | 9.4835025380 | 1 - | Mean minor axis length of all detected objects. The minor axis length is the length of the minor axis of the ellipse that has the same normalized second central moments as the object. |
40 | mean_major_axis_length [Px]* | 15.843908629 | 1 - | Mean major axis length of all detected objects. The major axis length is the length of the major axis of the ellipse that has the same normalized second central moments as the object. |
For each channel [CC] of the multichannel image: | ||||
41/ 54/ … | channel_#[CC]_index | 2 | 1 - #channels | Channel index of this channel CC, on which the next values are based on. |
42/ 55/ … | channel_#[CC]_name | “my_ch_name” | any text | Channel name of this channel CC, on which the next values are based on. |
43/ 56/ … | channel_#[CC]_total_intensity | 170486667 | 0 - 65535 x #pixels | Total intensity (sum) of this channel CC in the image/ROI. |
44/ 57/ … | channel_#[CC]_type | “intensity” | “object” or “intensity” | Type of this channel CC. If the type is “object”, this channel is selected for object instance segmentation (e.g. cell nuclei instance segmentation) and intensity extraction. If the type is “intensity”, this channel is used for intensity extraction. |
45/ 58/ … | channel_#[CC]_objects_mean_intensity | 272.93074030 | 0 - 65535 | Mean intensity of this channel CC over the areas of all detected objects. |
46/ 59/ … | channel_#[CC]_objects_stddev_intensity | 130.84258715 | 0 - 65535 | Standard deviation of intensity of this channel CC over the areas of all detected objects. |
47/ 60/ … | channel_#[CC]_objects_intensity_dominant | 265 | 0 - total_num_objects, or “nan” | Number of objects for which mean intensity is highest (=dominant) in this channel CC, compared to all other channels (mean intensity larger than in other channels of type “intensity”). If this channel CC is of type “object”, this field is “nan”. |
48/ 61/ … | channel_#[CC]_outgrowth_mean_intensity | 273.26551765 | 0 - 65535, or ”” (empty) | Mean intensity of this channel CC over the areas of the outgrowths of all detected objects. Is empty ““ if no outgrowth was set (max. outgrowth was set to 0 pixels). |
49/ 62/ … | channel_#[CC]_outgrowth_stddev_intensity | 203.15327249 | 0 - 65535, or ”” (empty) | Standard deviation of intensity of this channel CC over the areas of the outgrowths of all detected objects. Is empty ““ if no outgrowth was set (max. outgrowth was set to 0 pixels). |
50/ 63/ … | channel_#[CC]_outgrowth_intensity_dominant | 724 | 0 - total_num_objects, or “nan” | Number of objects for which mean intensity of outgrowth areas is highest (=dominant) in this channel CC, compared to all other channels (mean intensity larger than in other channels of type “intensity”). If this channel CC is of type “object”, this field is “nan”. |
51/ 64/ … | channel_#[CC]_objects_incl_outgrowth_mean_intensity | 273.115521066 | 0 - 65535 | Mean intensity of this channel CC over the areas of the objects including outgrowths of all detected objects. |
52/ 65/ … | channel_#[CC]_objects_incl_outgrowth_stddev_intensity | 174.47822028 | 0 - 65535 | Standard deviation of intensity of this channel CC over the areas of the objects including outgrowths of all detected objects. |
53/ 66/ … | channel_#[CC]_objects_incl_outgrowth_intensity_dominant | 530 | 0 - total_num_objects, or “nan” | Number of objects for which mean intensity of areas of detected objects incl. outgrowths is highest (=dominant) in this channel CC, compared to all other channels (mean intensity larger than in other channels of type “intensity”). If this channel CC is of type “object”, this field is “nan”. |
results_cell_nuclei.csv
Single CSV file.
A csv file is generated containing the analysis results for all detected objects (cell nuclei) in the optionally selected channels of the input image or inclusion ROIs.
If one or more time steps (of a time series image) or z-layers (of a z-stack image) have been selected, the results in a specific row refer to the time step or z-layer specified in the corresponding column.
If one or more ROIs have been selected, the results in a specific row refer to the ROI specified in the corresponding column. Otherwise, i.e. in cases of empty ROI columns, the results refer to the whole image.
Column NO. | Column name | Examples | Value range | Description |
---|---|---|---|---|
1 | t | 3 | 1 - | Time step, i.e. the position of the image in the time series. |
2 | z | 5 | 1 - | z-layer, i.e. the position of the layer in the z-stack. |
3 | roi_id | ROI-03 | ROI-01 - | <roi-id> starting from “ROI-01”. Empty, if no inclusion ROI is specified and the whole image was analyzed. |
4 | roi_name | “central” | any text | Custom text to identify the ROI. Empty, if no inclusion ROI is specified and the whole image was analyzed. |
5 | roi_size [Px^2] | 1212212 | 1 - #pixels | Size of the ROI that was analyzed in pixels^2. The size of the whole image is given if no inclusion ROI is specified and the whole image was analyzed. |
6 | object_channel_index | 2 | 1 - #channels | Index of selected channel for object detection |
7 | object_channel_name | “my_channel” | any text | Name of selected channel for object detection |
8 | object_type | “cell nuclei” | “cell nuclei” | Type of “object” analysis (basis for intensity results calculation) . In this version, the app supports “cell nuclei” detection. |
9 | outgrowth_type | “virtual cytoplasm” | “virtual cytoplasm” | Outgrowth type. In this version, the app supports “virtual cytoplasm”. |
10 | virtual_cytoplasm_max_outgrowth [Px] | 2 | 0 - 99 | Maximum outgrowth in pixels. |
11 | object_id | 5 | 1 - | ID of detected object (cell nucleus). |
12 | nucleus_center_x | 741 | 1 - image/ROI width | x-coordinate of cell nuclei center (starting from upper left corner, along image/ROI width). |
13 | nucleus_center_y | 26 | 1 - image/ROI height | y-coordinate of cell nuclei center (starting from upper left corner, along image/ROI height). |
14 | nucleus_area [Px^2] | 174 | 8 - | Area of cell nucleus in pixels^2. |
15 | virtual_cytoplasm_area [Px^2] | 310 | 0 - or ““ (empty) | Area of virtual cytoplasm (outgrown) in pixels^2. Is empty ““ if no outgrowth was set (max. outgrowth was set to 0 pixels). |
16 | virtual_cell_area [Px^2] | 484 | 8 - | Area of virtual cell (nucleus + virtual cytoplasm) in pixels^2. |
17 | distance_nearest_neighbor [Px] | 22.090722034 | 0 - | Distance (center-to-center) to the nearest other cell in pixels. |
18 | bbox_area [Px^2] | 304 | 8 - | Area of bounding box of detected cell nucleus in pixels^2. |
19 | area_ratio [%] | 0.02 | 0 - 100 | Area of detected cell nucleus as percentage of overall image area or ROI area inside the image. |
20 | perimeter [Px] | 53 | 8 - | Perimeter of detected cell nucleus in Pixels. |
21 | circularity | 0.78 | 0 - ~1 | Circularity of detected cell nucleus. Circularity = 4*pi*area/(perimeter^2). The circularity of a circle is 1. |
22 | solidity | 0.97 | 0 - 1 | Solidity of detected cell nucleus. Solidity is calculated out of the ratio of an object’s area to the area of its convex hull. |
23 | eccentricity | 0.92 | 0 - 1 | Eccentricity of detected cell nucleus. Eccentricity of the ellipse that has the same second-moments as the object area. The eccentricity is the ratio of the focal distance (distance between focal points) over the major axis length. When it is 0, the ellipse becomes a circle. |
24 | equivalent_diameter [Px] | 14 | 1 - | Equivalent diameter of detected cell nucleus. The equivalent diameter is the diameter of a circle having the same area as the detected object. |
25 | extent | 0.57 | 0 - 1 | Extent of detected cell nucleus. The extent value is the ratio of the object area to the total bounding box area. |
26 | minor_axis_length [Px] | 9 | 1 - | Minor axis length of detected cell nucleus. The minor axis length is the length of the minor axis of the ellipse that has the same normalized second central moments as the object. |
27 | major_axis_length [Px] | 23 | 1 - | Major axis length of detected cell nucleus. The major axis length is the length of the major axis of the ellipse that has the same normalized second central moments as the object. |
For each channel [CC] of the multichannel image: | ||||
28/ 40/ … | channel_#[CC]_index | 2 | 1 - #channels | Channel index of this channel CC, on which the next values are based on. |
29/ 41/ … | channel_#[CC]_name | “tissue” | any text | Channel name of this channel CC, on which the next values are based on. |
30/ 42/ … | channel_#[CC]_type | “intensity” | “object”, or “intensity” | Type of this channel CC. If the type is “object”, this channel is selected for object instance segmentation (e.g. cell nuclei instance segmentation) and intensity extraction. If the type is “intensity”, this channel is used for intensity extraction. |
31/ 43/ … | channel_#[CC]_nucleus_mean_intensity | 153.5574712643 | 0 - 65535 | Mean intensity of this channel CC over the area of the detected cell nucleus. |
32/ 44/ … | channel_#[CC]_nucleus_stddev_intensity | 36.5853533038 | 0 - 65535 | Standard deviation of intensity of this channel CC over the area of the detected cell nucleus. |
33/ 45/ … | channel_#[CC]_nucleus_intensity_dominant | “True” | “True”, or ”False”, or ”nan” | Boolean indicator to show if the mean intensity of this channel CC over the area of the cell nucleus is the highest (=dominant), compared to all other channels (mean intensity larger than in other channels of type “intensity”). If this channel CC is of type “object”, this field is “nan”. |
34/ 46/ … | channel_#[CC]_virtual_cytoplasm_mean_intensity | 172.1645161290 | 0 - 65535, or ““ (empty) | Mean intensity of this channel CC over the area of the virtual cytoplasm for the detected cell nucleus. Is empty ““ if no outgrowth was set (max. outgrowth was set to 0 pixels). |
35/ 47/ … | channel_#[CC]_virtual_cytoplasm_stddev_intensity | 52.8368337332 | 0 - 65535, or ““ (empty) | Standard deviation of the intensity of this channel CC over the area of the virtual cytoplasm for the detected cell nucleus. Is empty ““ if no outgrowth was set (max. outgrowth was set to 0 pixels). |
36/ 48/ … | channel_#[CC]_virtual_cytoplasm_intensity_dominant | “False” | “True”, or ”False”, or ”nan” | Boolean indicator to show if the mean intensity of this channel CC over the area of the virtual cytoplasm for the detected cell nucleus is the highest (=dominant), compared to all other channels (mean intensity larger than in other channels of type “intensity”). If this channel CC is of type “object”, this field is “nan”. Is “False“ if no outgrowth is set (max. outgrowth is 0 pixels). |
37/ 49/ … | channel_#[CC]_virtual_cell_mean_intensity | 165.4752066115 | 0 - 65535 | Mean intensity of this channel CC over the area of the virtual cell (nucleus + virtual cytoplasm) for the detected cell nucleus. |
38/ 50/ … | channel_#[CC]_virtual_cell_stddev_intensity | 48.466540867 | 0 - 65535 | Standard deviation of intensity of this channel CC over the area of the virtual cell (nucleus + virtual cytoplasm) for the detected cell nucleus. |
39/ 51/ … | channel_#[CC]_virtual_cell_intensity_dominant | “True” | “True”, or ”False”, or ”nan” | Boolean indicator to show if the mean intensity of this channel CC over the area of the virtual cell (nucleus + virtual cytoplasm) for the detected cell nucleus is the highest (=dominant), compared to all other channels (mean intensity larger than in other channels of type “intensity”). If this channel CC is of type “object”, this field is “nan”. |
Error information
More information about errors can be found in the Application Error Documentation.
Contact
If you have any questions about this app, as well as suggestions or ideas for new ones, email us at support@ikosa.ai.
Feel free to book a 30-minute meeting to speak with us about IKOSA and the apps!
Copyright 2024 KOLAIDO GmbH. IKOSA® is a registered EU trademark.