Identifizierung von Beschriftungen, die den Hintergrund berühren#

In der Entwicklungsbiologie ist es eine häufige Aufgabe, Zellschichten zu unterscheiden, zum Beispiel in epithelialem Gewebe. Daher kann es nützlich sein zu wissen, ob eine Zelle Teil einer äußeren Schicht ist, ob sie den Hintergrund berührt. In diesem Notebook messen und visualisieren wir dies.

Zur Demonstration simulieren wir einen Zellhaufen.

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

Bestimmen, welche Zellen den Hintergrund berühren#

Um festzustellen, welche Zellen den Hintergrund berühren, müssen wir eine Berührungsmatrix erstellen, die uns anzeigt, welche Objekte welche anderen berühren.

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

Die erste Zeile und Spalte in diesem Bild repräsentieren Objekte, die den Hintergrund berühren. Wir können diese erste Zeile oder Spalte wie folgt auslesen:

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)

Und wir können es in den ursprünglichen Bildkoordinaten visualisieren.

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

Oder wir können ein Beschriftungsbild erhalten, das diese Objekte darstellt.

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