Bordures cellulaires internes et externes
Lors de l’étude des tissus, organismes et organoïdes, la position et l’orientation de la cellule et de ses membranes au sein du tissu sont souvent pertinentes. Par exemple, nous différencions les côtés apicaux (à l’apex, à l’extrémité, extérieur) et basaux (à la base, intérieur) des cellules dans le tissu. À partir d’une image d’étiquettes de segmentation cellulaire, nous pouvons identifier les pixels qui se trouvent à l’extérieur ou à l’intérieur d’une structure composée de cellules. Dans l’exemple suivant, nous travaillons avec une image synthétique bidimensionnelle de quelques cellules formant un organoïde. Les mêmes fonctions fonctionneront également en 3D.
Tout d’abord, nous construisons notre ensemble de données synthétiques. Il est composé de 6 centres cellulaires que nous avons dilatés pour former un organoïde.
Voici nos cellules :
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 6.0 |
|
Et voici l’organoïde :
|
cle._ image
| shape | (100, 100) |
| dtype | uint8 |
| size | 9.8 kB |
| min | 0.0 | | max | 1.0 |
|
Nous identifions maintenant les pixels qui se trouvent sur les bordures des cellules.
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 6.0 |
|
Nous pouvons faire exactement la même chose avec l’organoïde pour identifier les pixels à sa surface.
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 1.0 |
|
En masquant les bordures cellulaires avec la bordure de l’organoïde - techniquement, c’est une multiplication pixel par pixel - nous pouvons identifier les bordures extérieures.
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 6.0 |
|
Si nous soustrayons les bordures extérieures de toutes les bordures cellulaires, nous obtenons les bordures intérieures
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 6.0 |
|
Lors du post-traitement de ces images d’étiquettes, soyez un peu prudent, car ces images peuvent ne pas être étiquetées séquentiellement. Il existe des bibliothèques et des fonctions qui peuvent avoir des problèmes avec ce type d’images d’étiquettes (par exemple, cle.statistics_of_labelled_pixels()). Vous pouvez afficher les étiquettes existantes dans une image d’étiquettes en utilisant np.unique() et vous pourriez rendre les images d’étiquettes séquentielles en utilisant cle.relabel_sequential().
array([0, 2, 3, 4, 5, 6], dtype=uint32)
array([0, 1, 2, 3, 4, 5, 6], dtype=uint32)