In this notebook, we will analyse neighborhood-relationships between cells. We count the number of neighbors for each cell and take a look at this number in a parametric image. Afterwards, we average this number locally between neighbors.
Let's generate some cells and take a look at the borders between them
import pyclesperanto_prototype as cle
import numpy as np
from skimage.io import imshow
import matplotlib
# Generate artificial cells as test data
tissue = cle.artificial_tissue_2d()
cle.imshow(tissue, labels=True)
membranes = cle.detect_label_edges(tissue)
cle.imshow(membranes)
touch_matrix = cle.generate_touch_matrix(tissue)
neighbor_count = cle.count_touching_neighbors(touch_matrix)
parametric_image = cle.replace_intensities(tissue, neighbor_count)
cle.imshow(parametric_image, min_display_intensity=0, max_display_intensity=10, color_map='jet')
Mean of touching neighbors
local_mean_neighbor_count = cle.mean_of_touching_neighbors(neighbor_count, touch_matrix)
parametric_image = cle.replace_intensities(tissue, local_mean_neighbor_count)
cle.imshow(parametric_image, min_display_intensity=0, max_display_intensity=10, color_map='jet')
Median of touching neighbors
local_median_neighbor_count = cle.median_of_touching_neighbors(neighbor_count, touch_matrix)
parametric_image = cle.replace_intensities(tissue, local_median_neighbor_count)
cle.imshow(parametric_image, min_display_intensity=0, max_display_intensity=10, color_map='jet')
local_minimum_neighbor_count = cle.minimum_of_touching_neighbors(neighbor_count, touch_matrix)
parametric_image = cle.replace_intensities(tissue, local_minimum_neighbor_count)
cle.imshow(parametric_image, min_display_intensity=0, max_display_intensity=10, color_map='jet')
local_maximum_neighbor_count = cle.maximum_of_touching_neighbors(neighbor_count, touch_matrix)
parametric_image = cle.replace_intensities(tissue, local_maximum_neighbor_count)
cle.imshow(parametric_image, min_display_intensity=0, max_display_intensity=10, color_map='jet')
local_standard_deviation_neighbor_count = cle.standard_deviation_of_touching_neighbors(neighbor_count, touch_matrix)
parametric_image = cle.replace_intensities(tissue, local_standard_deviation_neighbor_count)
cle.imshow(parametric_image, min_display_intensity=0, max_display_intensity=10, color_map='jet')
# most popular number of neighbors locally
local_mode_neighbor_count = cle.mode_of_touching_neighbors(neighbor_count, touch_matrix)
parametric_image = cle.replace_intensities(tissue, local_mode_neighbor_count)
cle.imshow(parametric_image, min_display_intensity=0, max_display_intensity=10, color_map='jet')