Identification des étiquettes qui touchent l’arrière-plan#

En biologie du développement, il est courant de différencier les couches de cellules, par exemple dans les tissus épithéliaux. Il peut donc être utile de savoir si une cellule fait partie d’une couche externe, si elle touche l’arrière-plan. Dans ce notebook, nous mesurons et visualisons cela.

Pour le démontrer, nous simulons un amas de cellules.

import pyclesperanto_prototype as cle

# import a function from a file in the same folder
from simulated_cell_clumb import simulate_data
cells = simulate_data()
cells
cle._ image
shape(200, 200)
dtypeuint32
size156.2 kB
min0.0
max41.0

Déterminer quelles cellules touchent l’arrière-plan#

Pour déterminer quelles cellules touchent l’arrière-plan, nous devons produire une matrice de contact qui nous indique quels objets touchent quels autres.

touch_matrix = cle.generate_touch_matrix(cells)
touch_matrix
cle._ image
shape(42, 42)
dtypefloat32
size6.9 kB
min0.0
max1.0

La première ligne et la première colonne de cette image représentent les objets touchant l’arrière-plan. Nous pouvons lire cette première ligne ou colonne comme ceci :

touching_background = touch_matrix[0]
touching_background
cle.array([0. 1. 1. 1. 0. 1. 1. 1. 0. 1. 0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1. 1.
 0. 0. 1. 0. 0. 1. 0. 1. 1. 0. 0. 1. 1. 0. 0. 1. 1. 1.], dtype=float32)

Et nous pouvons le visualiser dans les coordonnées de l’image originale.

cle.replace_intensities(cells, touching_background)
cle._ image
shape(200, 200)
dtypefloat32
size156.2 kB
min0.0
max1.0

Ou nous pouvons obtenir une image d’étiquettes représentant ces objets.

cle.exclude_labels(cle.binary_not([touching_background]), cells)
cle._ image
shape(200, 200)
dtypeuint32
size156.2 kB
min0.0
max20.0