Mesurer la distance aux cellules dans une autre image d’étiquettes#
Dans certains projets d’imagerie de cellules, noyaux et autres organelles avec plusieurs marqueurs, nous sommes intéressés à mesurer les distances entre les cellules ayant différents modèles d’expression. Étant donné un tissu où toutes les cellules n’expriment pas un certain marqueur, nous pouvons vouloir mesurer la distance de chaque cellule à la prochaine cellule exprimant ce marqueur. Ainsi, nous voulons mesurer et visualiser cette distance sur une carte.
import numpy as np
import pyclesperanto_prototype as cle
import pandas as pd
cle.get_device()
<gfx90c on Platform: AMD Accelerated Parallel Processing (2 refs)>
Notre point de départ est une image d’étiquettes et une autre image d’étiquettes, où certaines des étiquettes de la première image sont sélectionnées. La première image d’étiquettes représente toutes les cellules. La deuxième image d’étiquettes représente les cellules qui expriment le marqueur.
label_image = cle.artificial_tissue_2d()
cle.imshow(label_image, labels=True)
random_vector = np.random.random((1, int(label_image.max() + 1)))
sparse_labels = cle.exclude_labels_with_values_out_of_range(random_vector, label_image, minimum_value_range=0, maximum_value_range=0.3)
cle.imshow(sparse_labels, labels=True)
Nous comptons maintenant pour chaque étiquette dans label_image, combien d’étiquettes sont proximales dans l’image sparse_labels. Pour mesurer la distance, nous utilisons la distance centroïde.
distance_map = cle.average_distance_to_n_nearest_other_labels_map(label_image, sparse_labels, n=1)
cle.imshow(distance_map)
Nous pouvons également lire ces valeurs.
statistics = cle.statistics_of_labelled_pixels(distance_map, label_image)
table = pd.DataFrame(statistics)
# Le tableau ci-dessus contient trop d'informations.
# Par conséquent, nous renommons une colonne et en supprimons la plupart des autres
table = table.rename(columns={"mean_intensity": "centroid_distance"})
table[['label', 'centroid_distance']]
| label | centroid_distance | |
|---|---|---|
| 0 | 1 | 13.957838 |
| 1 | 2 | 0.000000 |
| 2 | 3 | 15.516336 |
| 3 | 4 | 17.409723 |
| 4 | 5 | 16.673353 |
| ... | ... | ... |
| 170 | 171 | 20.870539 |
| 171 | 172 | 0.000000 |
| 172 | 173 | 24.419371 |
| 173 | 174 | 0.000000 |
| 174 | 175 | 32.159912 |
175 rows × 2 columns