Análisis y Visualización de Datos de Transcriptómica Espacial 10x Visium mediante Seurat

El análisis de datos de secuenciación de ARN con resolución espacial requiere la aplicación de flujos de trabajo que fusionen la información molecular con las coordenadas histológicas. Este proceso abarca la normalización, el agrupamiento no supervisado, la detección de patrones de variabilidad espacial y la integración con transcriptómica de células individuales.

Reducción de Dimensionalidad, Clustering y Representación Gráfica

El procesamiento inicial de las matrices de expresión génica sigue una metodología análoga a la empleada en el aálisis de scRNA-seq. Se aplican técnicas de reducción de dimensionalidad y algoritmos de agrupamiento para estructurar los datos espaciales.

tissue_sample <- RunPCA(tissue_sample, assay = "SCT", verbose = FALSE, npcs = 40)
tissue_sample <- FindNeighbors(tissue_sample, reduction = "pca", dims = 1:25)
tissue_sample <- FindClusters(tissue_sample, resolution = 0.5, verbose = FALSE)
tissue_sample <- RunUMAP(tissue_sample, reduction = "pca", dims = 1:25)

Una vez definidos los clústeres, su distribución puede examinarse tanto en el espacio de baja dimensión (UMAP) como directamente sobre la topología del tejido original.

umap_view <- DimPlot(tissue_sample, reduction = "umap", label = TRUE, repel = TRUE)
spatial_view <- SpatialDimPlot(tissue_sample, label = TRUE, label.size = 4)
umap_view | spatial_view

En tejidos con alta heterogeneidad, la superposición de múltiples colores puede dificultar la interpretación. Para mitigar esto, es posible resaltar selectivamente poblaciones celulares específicas, aislando clústeres de interés biológico para facilitar el análisis de su nicho espacial.

target_clusters <- CellsByIdentities(object = tissue_sample, idents = c("1", "4", "7", "9"))
SpatialDimPlot(tissue_sample,
               cells.highlight = target_clusters,
               facet.highlight = TRUE,
               ncol = 2,
               cols.highlight = c("#FF0000", "grey80"))

Detección de Genes con Variabilidad Espacial

La identificación de firmas moleculares asociadas a nichos anatómicos puede abordarse realizando un análisis de expresión diferencial comparando regiones predefinidas, ya sea por conocimiento histológico previo o mediante los clústeres generados.

spatial_markers <- FindMarkers(tissue_sample, ident.1 = "3", ident.2 = "8", min.pct = 0.25)
genes_to_plot <- rownames(spatial_markers)[1:4]
SpatialFeaturePlot(object = tissue_sample, features = genes_to_plot, alpha = c(0.2, 1), ncol = 2)

Alternativamente, cuando no existen anotaciones previas, se pueden emplear modelos estadísticos como el Índice de Moran. Este algoritmo evalúa la autocorrelación espacial, determinando si los niveles de transcripción en un punto (spot) están correlacionados con sus vecinos inmediatos. Para optimizar el rendimiento computacional, esta evaluación suele restringirse a un subconjunto de genes altamente variables.

tissue_sample <- FindSpatiallyVariableFeatures(tissue_sample,
                                               assay = "SCT",
                                               features = VariableFeatures(tissue_sample)[1:2000],
                                               selection.method = "moransi")

Los patrones de expresión de los genes con mayor puntuación de variabilidad espacial pueden mapearse directamente sobre la imagen histológica para su validación.

top_spatial_genes <- head(SpatiallyVariableFeatures(tissue_sample, selection.method = "moransi"), n = 4)
SpatialFeaturePlot(tissue_sample, features = top_spatial_genes, ncol = 2, alpha = c(0.2, 1), pt.size.factor = 1.2)

Aislamiento de Regiones Anatómicas Específicas

Es habitual requerir el análisis enfocado de una estructura anatómica concreta, por ejemplo, aislando la corteza cerebral para una posteroir integrcaión con atlas de referencia de scRNA-seq. Este filtrado se logra combinando las identidades de los clústeres con coordenadas espaciales precisas.

cortical_tissue <- subset(tissue_sample, idents = c("1", "2", "4", "5", "7"))
# Filtrado iterativo basado en coordenadas de la imagen
cortical_tissue <- subset(cortical_tissue, anterior1_imagerow > 420 | anterior1_imagecol < 160, invert = TRUE)
cortical_tissue <- subset(cortical_tissue, anterior1_imagerow > 280 & anterior1_imagecol > 380, invert = TRUE)
cortical_tissue <- subset(cortical_tissue, anterior1_imagerow > 260 & anterior1_imagecol > 450, invert = TRUE)

fig_cropped <- SpatialDimPlot(cortical_tissue, crop = TRUE, label = TRUE, pt.size.factor = 1.5)
fig_uncropped <- SpatialDimPlot(cortical_tissue, crop = FALSE, label = TRUE, pt.size.factor = 1, label.size = 4)
fig_cropped + fig_uncropped

Etiquetas: Seurat 10xVisium TranscriptómicaEspacial RNA-seq Bioinformática

Publicado el 7-13 13:06