Bordes celulares internos y externos
Al estudiar tejidos, organismos y organoides, a menudo la posición y orientación de la célula y sus membranas dentro del tejido es relevante. Por ejemplo, diferenciamos los lados apicales (en un ápice, en el extremo, exterior) y basales (en la base, interior) de las células dentro del tejido. Partiendo de una imagen de etiquetas de segmentación celular, podemos identificar píxeles que se encuentran fuera o dentro de una estructura formada por células. En el siguiente ejemplo, trabajamos con una imagen sintética bidimensional de algunas células formando un organoide. Las mismas funciones también funcionarán en 3D.
Primero, construimos nuestro conjunto de datos sintético. Está compuesto por 6 centros celulares que dilatamos para formar un organoide.
Estas son nuestras células:
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 6.0 |
|
Y este es el organoide:
|
cle._ image
| shape | (100, 100) |
| dtype | uint8 |
| size | 9.8 kB |
| min | 0.0 | | max | 1.0 |
|
Ahora identificamos los píxeles que se encuentran en los bordes de las células.
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 6.0 |
|
Podemos hacer exactamente lo mismo con el organoide para identificar los píxeles en su superficie.
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 1.0 |
|
Al enmascarar los bordes celulares con el borde del organoide - técnicamente es una multiplicación píxel por píxel - podemos identificar los bordes externos.
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 6.0 |
|
Si restamos los bordes externos de todos los bordes celulares, obtenemos los bordes internos
|
cle._ image
| shape | (100, 100) |
| dtype | uint32 |
| size | 39.1 kB |
| min | 0.0 | | max | 6.0 |
|
Al procesar estas imágenes de etiquetas, ten cuidado, porque estas imágenes pueden no estar etiquetadas secuencialmente. Hay bibliotecas y funciones que pueden tener problemas con este tipo de imágenes de etiquetas (por ejemplo, cle.statistics_of_labelled_pixels()). Puedes imprimir qué etiquetas existen en una imagen de etiquetas usando np.unique() y podrías hacer que las imágenes de etiquetas sean secuenciales usando cle.relabel_sequential().
array([0, 2, 3, 4, 5, 6], dtype=uint32)
array([0, 1, 2, 3, 4, 5, 6], dtype=uint32)