Análisis de perturbación de RNA-seq de células individuales espaciales con ‘augurio’

Los datos de RNA-seq de una sola célula espacial son esencialmente datos de RNA-seq de una sola célula regulares que tienen coordenadas espaciales asociadas a través de la localización en un portaobjetos de captura especial. Anteriormente, había utilizado con éxito el llamado análisis de «perturbación» con datos de una sola celda 10X y quería aplicar la técnica a una sola celda espacial para comprender cómo afecta un tratamiento a los grupos resueltos espacialmente.

Aquí, quiero describir brevemente los pasos que realicé para realizar un análisis de perturbación ‘augurio’ de datos de RNA-seq de una sola célula Visium Spatial 10X. augur funciona de la siguiente manera:

Augur es un paquete R para priorizar los tipos de células involucradas en la respuesta a una perturbación experimental dentro de los datos de una sola célula de alta dimensión. La intuición que subyace a Augur es que las células que experimentan una respuesta profunda a un estímulo experimental dado se vuelven más separables, en el espacio de las mediciones moleculares, que las células que no se ven afectadas por el estímulo. Augur cuantifica esta separabilidad preguntando con qué facilidad se pueden predecir las etiquetas de muestras experimentales asociadas con cada célula (p. ej., tratamiento frente a control) solo a partir de mediciones moleculares. Esto se logra entrenando un modelo de aprendizaje automático específico para cada tipo de célula, para predecir la condición experimental a partir de la cual se originó cada célula individual. La precisión de cada clasificador específico del tipo de célula se evalúa en la validación cruzada, lo que proporciona una base cuantitativa para la priorización del tipo de célula.

Seguí los dos Seurat viñeta 10X Visium así como una protocolo de integración de conjunto de datos para combinar dos tratamientos (un gen knockout, en este caso) y muestras de control (S1 y S2). La normalización fue realizada por «SCTransform» como se recomienda para los datos espaciales de RNA-seq antes de la integración. PCA, K-vecinos más cercanos, agrupamiento y uMAP se calcularon como se describe en la viñeta de Seurat usando valores predeterminados. Los tipos de células se asignaron en colaboración con los experimentadores.

Con el conjunto de datos integrado, agrupado y asignado en la mano, estaba listo para ingresar al flujo de trabajo de «aumento» como descrito en el papel, con algunos ajustes menores. En primer lugar, debido a que se trata de un scRNA-seq espacial y no regular, no hay un ensayo predeterminado de «ARN» para establecer después de la integración. Elegí establecer «SCT» como el ensayo en su lugar, porque esto representa el conjunto de datos normalizado y escalado que es lo que desea para la entrada a un modelo ML.

```

library(Augur)
DefaultAssay(s1s2.int) <- "SCT"
augur <- Augur::calculate_auc(s1s2.int, label_col = "orig.ident", cell_type_col = "cell_type", 
                              n_threads = 6, 
                              rf_params = list(trees = 15, mtry = 2, min_n = NULL, importance = "accuracy"),
                              n_subsamples = 25,
                              )
```

Arriba, puede ver la llamada real para augur el método «calculate_auc». Descubrí que al especificar ‘rf_params’ y reducir la cantidad de árboles, obtuve una mejor separación entre los tipos de celdas en la lectura de AUC. El cálculo tarda unos 20 minutos en ejecutarse en una computadora portátil MacBook Pro 2018 de 13 pulgadas.

Cuando se completa el algoritmo, puede visualizar sus resultados. Usando la viñeta para scRNA-seq regular, puede hacer esto:

library(patchwork)
p1 <- plot_umap(augur, s1s2.int, mode = "default", palette = "Spectral")
p1 <- p1 + geom_point(size=0.1) + ggtitle("Augur Perturbation by Type (Red = Most)")
p2 <- DimPlot(s1s2.int, reduction = "umap", group.by = "cell_type") + ggtitle("S1/S2 Integrated Cell Types")
p1 + p2 

La trama resultante se ve así:

Analisis de perturbacion de RNA seq de celulas individuales espaciales con
Análisis de perturbación de augurio por AUC (el rojo está más perturbado; izquierda) y gráfico UMAP de tipos de células (derecha).

Esto es excelente y útil, pero no aprovecha la naturaleza espacialmente resuelta de los datos. Para hacer eso, tienes que modificar el objeto seurat integrado con los resultados del augur:

### Make a dataframe of AUC results 
auc_tab <- augur$AUC
auc_tab$rank <- c(1:9)

### Grab the cells by type and barcode 
tib <- s1s2.int$cell_type %>% as_tibble(rownames = "Barcode") %>% rename(cell_type=value)

### Join the AUC information to the barcode on cell_type 
tib <- tib %>% left_join(., auc_tab)

### Sanity check 
assertthat::are_equal(colnames(s1s2.int), tib$Barcode)

### Update the seurat object with new augur metadata 
s1s2.int$AUC <- round(tib$auc, 3) 
s1s2.int$RANK <- tib$rank

Aquí, simplemente extraigo los resultados de AUC en una tabla por tipo de celda. Luego obtengo la información del tipo de celda del objeto seurat y combino la información de AUC en él. Acabo de configurar nuevos metadatos en el objeto seurat para transferir información sobre AUC y rango para cada código de barras (es decir, celda). Hago una verificación de cordura para asegurarme de que los códigos de barras coincidan (lo hacen, como se esperaba).

Ahora puede trazar la información AUC resuelta espacialmente:

SpatialDimPlot(s1s2.int, group.by = "AUC", cols = rev(c("#D73027", "#F46D43", "#FDAE61", "#FEE090", "#FFFFBF", "#E0F3F8", "#ABD9E9", "#74ADD1", "#4575B4")))

Esto aprovecha el indicador «group.by» en el comando Spatial Dim Plots para usar los metadatos AUC. También estoy usando un esquema de color personalizado de ColorBrewer que sombrea los tipos de células de AUC bajo a alto a lo largo de un arco iris para facilitar la visualización. La trama se ve así:

1664383827 84 Analisis de perturbacion de RNA seq de celulas individuales espaciales con
Perturbación resuelta espacialmente (AUC) de grupos de células en las muestras WT (izquierda) y knockout (derecha).

Fuente del artículo

Deja un comentario