Tutorial oficial de Seurat (v4) | Introducción a la integración scrna-seq
1 Crear análisis de datos “integrados” para análisis posteriores
2 Identificar los tipos de células presentes en ambos conjuntos de datos
3 Obtener células marcadores de tipo que se conservan tanto en las células de control como en las estimuladas
4 Comparar conjuntos de datos para encontrar respuestas específicas del tipo de célula a la estimulación
1 Configurar objetos Seurat
p>Biblioteca (Seurat)
Biblioteca (SeuratData)
Biblioteca (Patchwork)
InstallData("ifnb ")
p>LoadData("ifnb ")
ifnb
str(ifnb)
ifnb.list & lt- SplitObject(ifnb, split.by = "stim ")
ifnb.list & lt- lapply(X = ifnb.list, FUN = function(x) {
x & lt-datos normalizados(x)
x & lt- FindVariableFeatures(x, selección.method = "vst", nfeatures = 2000)
})
Función & lt-SelectIntegrationFeatures(object . list = ifnb . list )
2 Realizar la integración
Luego identificamos los anclajes usando la función FindIntegrationAnchors(), que toma como entrada una lista de objetos Seurat y usa estos anclajes para pasar el IntegrateData() Integre los dos conjuntos de datos juntos.
anclajes.inmunes <.
-finditionanchors(object . list = ifnb . list, Anchor.features = características)
Anclajes inmunes
str(ancla inmune)
immune.combined< -integrado data(anchorset = inmune . Anchors)
3 Realizar análisis integrado
¡Ahora podemos realizar un único análisis integrado para todas las células!
DefaultAssay(immunecombined) & lt-"integrated"
immune.combined & lt- ScaleData(immune.combined, detallado = FALSE)
inmune combinado. & lt- RunPCA(immune.combined, npcs = 30, detallado = FALSE)
immune.combined & lt- RunUMAP(immune.combined, reducción = "pca", atenuaciones = 1:30) p>
immune.combined & lt- FindNeighbors(immune.combined, reducción = "pca ", dims = 1:30)
immune.combined & lt- FindClusters(immune.combined, tasa de resolución = 0.5)
p 1 & lt;- DimPlot(immune.combined, reducción = "umap", group.by = "stim")
p2 & lt- DimPlot( inmune .combined, reducción = "umap", etiqueta = VERDADERO, repel = VERDADERO)
p1 + p2
Para mostrar estas dos condiciones una al lado de la otra, podemos usar split.by parámetro Muestra el color categórico de cada condición.
DimPlot(immune.combined, reducción = "umap", split.by = "stim")
4 Identificar marcadores de tipo celular conservados
Para identificar Para genes marcadores de tipo celular típicos que se conservan en diferentes condiciones, proporcionamos la función FindConservedMarkers(). Esta función realiza una prueba de expresión genética diferencial para cada conjunto/grupo de datos y fusiona los valores p utilizando el método de metanálisis en el paquete MetaDE R. Por ejemplo, podemos contar genes marcadores conservados en el grupo 6 (células NK) independientemente de las condiciones de estimulación.
Ensayo predeterminado(combinación inmune)<-"ácido ribonucleico"
'''
bio manager::install(' mult test ')
install.packages('metap ')
Biblioteca("multitest")
'''
nk.markers & lt-findconsavedmarkers (inmune combinado, ident.1 = 6, grouping.var = "stim", verbose = FALSE)
Head (nk.markers)
Podemos crear un enjambre que explore estos genes marcadores. y los utiliza para anotar nuestras poblaciones de células en tipos de células específicos.
str(marca natural)
Nombre de fila (marca natural)
Título(nombre de fila (marca natural))
FeaturePlot( inmune.combined, características = head(nombres de fila (NK . marcadores), 5), min.cutoff = "q9 ")
FeaturePlot(immune.combined, características = c("CD3D ", " VENDER ","CREM","CD8A","GNLY","CD79A","FCGR3A",
"CCL2","PPBP"), corte mínimo = "q9")
immune.combined<- RenameIdents(immune.combined, 0 = "CD14 Mono", 1 = "CD4 Naive T", 2 = "CD4 Memory T",
3 = "CD16 Mono Channel" , 4 = "B", 5 = "CD8 T", 6 = "NK", 7 = "T activo", 8 = "DC", 9 = "B activo",
10 = " Mk ", 11 = "pDC ", 12 = "Eryth ", 13 = "Dobletes Mono/Mk ", 14 = "HSPC ")
DimPlot(immune.combined, label = TRUE)
La función DotPlot() con el parámetro split.by se puede utilizar para ver marcadores de tipo celular conservados en diversas condiciones, mostrando los niveles de expresión y el porcentaje de la población celular que expresa cualquier gen determinado. Aquí, mapeamos 2-3 genes marcadores fuertes para cada uno de nuestros 14 grupos.
Idents(immune.combined)<-factor(Idents(immune.combined), nivel = c("HSPC","Mono/Mk Doublets",
"pDC", "Eryth", "Mk", "DC", "CD14 Mono", "CD16 Mono", "BActivado", "B", "CD8T", "NK", "TActivado",
" Prueba ingenua de CD4", "Prueba de memoria CD4"))
marcadores .a.trazado <- c("CD3D","CREM","HSPH1"," SELL "," GIMAP5 ", " CACYBP", "GNLY", "NKG7", "CCL5",
"CD8A", "MS4A1", "CD79A", "MIR155HG", "NME1", "FCGR3A", "VMO1", " CCL2 ", " S100A9 ", " HLA-DQA1 ",
" GPR183 ", " PPBP ", " GNG11 ", " HBA2 ", " HBB ", " TSPAN13","IL3RA"," IGJ","PRSS57")
DotPlot(inmune.combinado, características = marcadores.para.trazar, cols = c("azul", "rojo"), punto .escala = 8, dividido.por = "estimulación") +
eje de rotación()
5 Identificar genes expresados diferencialmente en diferentes condiciones
Desde Ahora que las células estimuladas y de control han sido alineados, podemos empezar a hacer un análisis comparativo para ver las diferencias provocadas por la estimulación.
Una forma de observar estos cambios en términos generales es trazar la expresión promedio de las células estimuladas y de control y buscar genes con anomalías visuales en un diagrama de dispersión. Aquí tomamos la expresión promedio de poblaciones de monocitos CD14 y células T vírgenes estimuladas y de control y generamos diagramas de dispersión que resaltan genes que muestran respuestas significativas a la estimulación con interferón.
Biblioteca (ggplot2)
Biblioteca (copt)
theme_set(theme_cowplot())
Identificador (combinación inmune)
células t<-subset(combinación inmune, idents = "CD4 naive T")
cabeza (células t)
cola (células t)
células t
'''
mis _ células t & lt-immune.combined@assays$RNA[,orig.ident=c(' IMMUNE_CTRL ',' IMMUNE_STIM')]
Título(mi_célula)
Nombre de columna (mi_célula)
'''
El nivel en este momento es de células T CD4 ingenuas .
identificador de células t<-"STIM"# #Los niveles en este momento son control y estimulación.
ARN de células t
t cell@analyzeRNA))
promedio de células t
promedio de células t$gen<-row name(promedio célula t)
célula t promedio
CD 14.mono<-subset(immune.combined, idents = "CD14 Mono")
idents( CD 14 . mono)<-"estimulante"
promedio CD 14 . mono<-como . marco(log 1p(expresión promedio(CD 14 . mono, detallado = FALSO)gen<- nombre de línea(avg.cd14.mono)
promedio CD 14. mono
genes.to.label = c("ISG15", " LY6E ", " IFI6 ", " ISG20 " , " MX1 ", " IFIT2 ", " IFIT1 ", " CXCL10 ", " CCL8 ")
p 1<- ggplot(células T promedio, aes(CTRL, STIM))+geom_point()+ gg title("células T CD4 ingenuas")
p1
p 1<- LabelPoints(plot = p1, puntos = genes.to.label, repel = FALSE)
p2 & lt- ggplot(avg.cd14.mono, aes(CTRL, STIM))+geom_point()+gg title ("CD 14 monocitos")
p2 & lt- LabelPoints( plot = p2, puntos = genes.to.label, repel = TRUE)
p1 + p2 p>
'''
Biblioteca (dplyr)
Células t promedio
Células t promedio% & gt%
Select(CTRL,STIM)%>% un list()%>%
SD()
'''
Si se observa, muchos de los mismos genes están regulados positivamente en ambos tipos de células, lo que posiblemente represente vías de respuesta conservadas al interferón.
Como confiamos en identificar tipos de células comunes en diferentes condiciones, podemos preguntar qué genes cambian en células del mismo tipo en diferentes condiciones. Primero, creamos una columna en la ranura de metadatos para contener el tipo de celda y la información del estímulo, y cambiamos la identidad actual a esa columna. Luego utilizamos FindMarkers() para buscar genes que fueran diferentes entre las células B estimuladas y de control. Tenga en cuenta que muchos de los genes principales que se muestran aquí son los mismos genes centrales de respuesta al interferón que mapeamos anteriormente. Además, genes como CXCL10, que consideramos específicos de las respuestas de interferón de monocitos y células B, también muestran una gran importancia en esta lista.
head(immune.combined@meta.data, 10)
Estimulación inmune combinada, sep = "_ ")
head(immune.combined@meta .data, 10)
immune.combined $ celltype & lt-identity (combinación inmune)
head(immune.combined@meta.data, 10)
Identificadores (combinación de inmunidad)
Identificadores (combinación de inmunidad)& lt- "celltype.stim "
Identificadores (combinación de inmunidad)
b.Inmune a interferencias. Respuesta<- FindMarkers(immune.combined, ident.1 = "B_STIM", ident.2 = "B_CTRL", verbose = FALSE)
Head(b.InterferonResponse, n = 15)
Otra forma útil de visualizar estos cambios en la expresión genética es utilizar la opción split.by de la función FeaturePlot() o VlnPlot(). Esto mostrará mapas de características para una lista de genes determinada dividida por la variable de agrupación (aquí condición de estímulo). Genes como CD3D y GNLY son marcadores de tipo celular típicos (para células T y células T NK/CD8) que prácticamente no se ven afectados por la estimulación con interferón y muestran patrones de expresión genética similares en los grupos de control y estimulación. Por otro lado, IFI6 e ISG 15 son genes centrales de respuesta al interferón y, por lo tanto, están regulados positivamente en todos los tipos de células. Finalmente, CD14 y CXCL10 son genes que muestran respuestas de interferón específicas del tipo de célula. Los monocitos CD14 muestran una expresión reducida de CD65438+04 tras la estimulación, lo que puede conducir a una clasificación errónea en un marco de análisis supervisado, lo que subraya el valor de un análisis completo. Después de la estimulación con interferón, CXCL10 mostró una regulación positiva significativa en monocitos y células B, pero no en otros tipos de células.
FeaturePlot(immune.combined, características = c("CD3D", "GNLY", "IFI6"), split.by = "stim", max.cutoff = 3,
cols = c("Gray", "Red"))
Trazado<- VlnPlot(immune.combined, características = c("LYZ", "ISG15", "CXCL10"), dividido. por = "stim", group.by = "celltype", split.plot = TRUE,
Tamaño del punto = 0, merge = False)
wrap_plots(plots = plots, ncol = 1 )
Análisis comparativo de tipos celulares complejos mediante el programa de integración Seurat.
Aquí presentamos varios objetivos clave:
1 Crear análisis de datos “integrados” para análisis posteriores
2 Identificar los tipos de células presentes en ambos conjuntos de datos
3 Obtener células marcadores de tipo que se conservan tanto en las células de control como en las estimuladas
4 Comparar conjuntos de datos para encontrar respuestas específicas del tipo de célula a la estimulación
1 Configurar objetos Seurat
p>Biblioteca (Seurat)
Biblioteca (SeuratData)
Biblioteca (Patchwork)
InstallData("ifnb ")
p>LoadData("ifnb ")
ifnb
str(ifnb)
ifnb.list & lt- SplitObject(ifnb, split.by = "stim ")
ifnb.list & lt- lapply(X = ifnb.list, FUN = function(x) {
x & lt-datos normalizados(x)
x & lt- FindVariableFeatures(x, selección.method = "vst", nfeatures = 2000)
})
Función & lt-SelectIntegrationFeatures(object . list = ifnb . list )
2 Realizar la integración
Luego identificamos los anclajes usando la función FindIntegrationAnchors(), que toma como entrada una lista de objetos Seurat y usa estos anclajes para pasar el IntegrateData() Integre los dos conjuntos de datos juntos.
anclajes.inmunes <.
-finditionanchors(object . list = ifnb . list, Anchor.features = características)
Anclajes inmunes
str(ancla inmune)
immune.combined< -integrado data(anchorset = inmune . Anchors)
3 Realizar análisis integrado
¡Ahora podemos realizar un único análisis integrado para todas las células!
DefaultAssay(immunecombined)& lt-"integrated"
immune.combined & lt- ScaleData(immune.combined, verbose = FALSE)
inmune combinado. & lt- RunPCA(immune.combined, npcs = 30, detallado = FALSE)
immune.combined & lt- RunUMAP(immune.combined, reducción = "pca", atenuaciones = 1:30) p>
immune.combined & lt- FindNeighbors(immune.combined, reducción = "pca ", dims = 1:30)
immune.combined & lt- FindClusters(immune.combined, tasa de resolución = 0.5)
p 1 & lt;- DimPlot(immune.combined, reducción = "umap", group.by = "stim")
p2 & lt- DimPlot( inmune .combined, reducción = "umap", etiqueta = VERDADERO, repel = VERDADERO)
p1 + p2
Para mostrar estas dos condiciones una al lado de la otra, podemos usar split.by parámetro Muestra el color categórico de cada condición.
DimPlot(immune.combined, reducción = "umap", split.by = "stim")
4 Identificar marcadores de tipo celular conservados
Para identificar Para genes marcadores de tipo celular típicos que se conservan en diferentes condiciones, proporcionamos la función FindConservedMarkers(). Esta función realiza una prueba de expresión genética diferencial para cada conjunto/grupo de datos y fusiona los valores p utilizando el método de metanálisis en el paquete MetaDE R. Por ejemplo, podemos contar genes marcadores conservados en el grupo 6 (células NK) independientemente de las condiciones de estimulación.
Ensayo predeterminado(combinación inmune)<-"ácido ribonucleico"
'''
bio manager::install(' mult test ')
install.packages('metap ')
Biblioteca("multitest")
'''
nk.markers & lt-findconsavedmarkers (inmune combinado, ident.1 = 6, grouping.var = "stim", verbose = FALSE)
Head (nk.markers)
Podemos crear un enjambre que explore estos genes marcadores. y los utiliza para anotar nuestras poblaciones de células en tipos de células específicos.
str(marca natural)
Nombre de fila (marca natural)
Título(nombre de fila (marca natural))
FeaturePlot( inmune.combined, características = head(nombres de fila (NK . marcadores), 5), min.cutoff = "q9 ")
FeaturePlot(immune.combined, características = c("CD3D ", " VENDER ","CREM","CD8A","GNLY","CD79A","FCGR3A",
"CCL2","PPBP"), corte mínimo = "q9")
immune.combined<- RenameIdents(immune.combined, 0 = "CD14 Mono", 1 = "CD4 Naive T", 2 = "CD4 Memory T",
3 = "CD16 Mono Channel" , 4 = "B", 5 = "CD8 T", 6 = "NK", 7 = "T activo", 8 = "DC", 9 = "B activo",
10 = " Mk ", 11 = "pDC ", 12 = "Eryth ", 13 = "Dobletes Mono/Mk ", 14 = "HSPC ")
DimPlot(immune.combined, label = TRUE)
La función DotPlot() con el parámetro split.by se puede utilizar para ver marcadores de tipo celular conservados en diversas condiciones, mostrando los niveles de expresión y el porcentaje de la población celular que expresa cualquier gen determinado. Aquí, mapeamos 2-3 genes marcadores fuertes para cada uno de nuestros 14 grupos.
Idents(immune.combined)<-factor(Idents(immune.combined), nivel = c("HSPC","Mono/Mk Doublets",
"pDC", "Eryth", "Mk", "DC", "CD14 Mono", "CD16 Mono", "BActivado", "B", "CD8T", "NK", "TActivado",
" Prueba ingenua de CD4", "Prueba de memoria CD4"))
marcadores .a.trazado <- c("CD3D","CREM","HSPH1"," SELL "," GIMAP5 ", " CACYBP", "GNLY", "NKG7", "CCL5",
"CD8A", "MS4A1", "CD79A", "MIR155HG", "NME1", "FCGR3A", "VMO1", " CCL2 ", " S100A9 ", " HLA-DQA1 ",
" GPR183 ", " PPBP ", " GNG11 ", " HBA2 ", " HBB ", " TSPAN13","IL3RA"," IGJ","PRSS57")
DotPlot(inmune.combinado, características = marcadores.para.trazar, cols = c("azul", "rojo"), punto .escala = 8, dividido.por = "estimulación") +
eje de rotación()
5 Identificar genes expresados diferencialmente en diferentes condiciones
Desde Ahora que las células estimuladas y de control han sido Alineados, podemos empezar a hacer un análisis comparativo para ver las diferencias provocadas por la estimulación.
Una forma de observar estos cambios en términos generales es trazar la expresión promedio de las células estimuladas y de control y buscar genes con anomalías visuales en un diagrama de dispersión. Aquí tomamos la expresión promedio de poblaciones de monocitos CD14 y células T vírgenes estimuladas y de control y generamos diagramas de dispersión que resaltan genes que muestran respuestas significativas a la estimulación con interferón.
Biblioteca (ggplot2)
Biblioteca (copt)
theme_set(theme_cowplot())
Identificador (combinación inmune)
Células T<-subset(combinación inmune, idents = "T naive CD4")
Cabeza (células T)
Cola (células t)
células t
'''
mis _ células t & lt-immune.combined@assays$RNA[,orig.ident=c(' IMMUNE_CTRL ',' IMMUNE_STIM')]
Título(mi_célula)
Nombre de columna (mi_célula)
'''
El nivel en este momento es de células T CD4 ingenuas .
identificador de células t<-"STIM"# #Los niveles en este momento son control y estimulación.
ARN de células t
t cell@analyzeRNA))
promedio de células t
promedio de células t$gen<-row name(promedio célula t)
célula t promedio
CD 14.mono<-subset(immune.combined, idents = "CD14 Mono")
idents( CD 14 . mono)<-"estimulante"
promedio CD 14 . mono<-como . marco(log 1p(expresión promedio(CD 14 . mono, detallado = FALSO)gen<- nombre de línea(avg.cd14.mono)
promedio CD 14. mono
genes.to.label = c("ISG15", " LY6E ", " IFI6 ", " ISG20 " , " MX1 ", " IFIT2 ", " IFIT1 ", " CXCL10 ", " CCL8 ")
p 1<- ggplot(células T promedio, aes(CTRL, STIM))+geom_point()+ gg title("células T CD4 ingenuas")
p1
p 1<- LabelPoints(plot = p1, puntos = genes.to.label, repel = FALSE)
p2 & lt- ggplot(avg.cd14.mono, aes(CTRL, STIM))+geom_point()+gg title ("CD 14 monocitos")
p2 & lt- LabelPoints( plot = p2, puntos = genes.to.label, repel = TRUE)
p1 + p2 p>
'''
Biblioteca (dplyr)
Células t promedio
Células t promedio% & gt%
Select(CTRL,STIM)%>% un list()%>%
SD()
'''
Si se observa, muchos de los mismos genes están regulados positivamente en ambos tipos de células, lo que posiblemente represente vías de respuesta conservadas al interferón.
Como confiamos en identificar tipos de células comunes en diferentes condiciones, podemos preguntar qué genes cambian en el mismo tipo de célula en diferentes condiciones. Primero, creamos una columna en la ranura de metadatos para contener el tipo de celda y la información del estímulo, y cambiamos la identidad actual a esa columna. Luego utilizamos FindMarkers() para buscar genes que fueran diferentes entre las células B estimuladas y de control. Tenga en cuenta que muchos de los genes principales que se muestran aquí son los mismos genes centrales de respuesta al interferón que mapeamos anteriormente. Además, genes como CXCL10, que consideramos específicos de las respuestas de interferón de monocitos y células B, también muestran una gran importancia en esta lista.
head(immune.combined@meta.data, 10)
Estimulación inmune combinada, sep = "_ ")
head(immune.combined@meta .data, 10)
immune.combined $ celltype & lt-identity (combinación inmune)
head(immune.combined@meta.data, 10)
Identificadores (combinación de inmunidad)
Identificadores (combinación de inmunidad)& lt- "celltype.stim "
Identificadores (combinación de inmunidad)
b.Inmune a interferencias. Respuesta<- FindMarkers(immune.combined, ident.1 = "B_STIM", ident.2 = "B_CTRL", verbose = FALSE)
Head(b.InterferonResponse, n = 15)
Otra forma útil de visualizar estos cambios en la expresión genética es utilizar la opción split.by de la función FeaturePlot() o VlnPlot(). Esto mostrará mapas de características para una lista de genes determinada dividida por la variable de agrupación (aquí condición de estímulo). Genes como CD3D y GNLY son marcadores de tipo celular típicos (para células T y células T NK/CD8) que prácticamente no se ven afectados por la estimulación con interferón y muestran patrones de expresión genética similares en los grupos de control y estimulación. Por otro lado, IFI6 e ISG 15 son genes centrales de respuesta al interferón y, por lo tanto, están regulados positivamente en todos los tipos de células. Finalmente, CD14 y CXCL10 son genes que muestran respuestas de interferón específicas del tipo de célula. Los monocitos CD14 muestran una expresión reducida de CD65438+04 tras la estimulación, lo que puede conducir a una clasificación errónea en un marco de análisis supervisado, lo que subraya el valor de un análisis completo. Después de la estimulación con interferón, CXCL10 mostró una regulación positiva significativa en monocitos y células B, pero no en otros tipos de células.
FeaturePlot(immune.combined, características = c("CD3D", "GNLY", "IFI6"), split.by = "stim", max.cutoff = 3,
cols = c("Gray", "Red"))
Trazado<- VlnPlot(immune.combined, características = c("LYZ", "ISG15", "CXCL10"), dividido. por = "stim", group.by = "celltype", split.plot = TRUE,
Tamaño del punto = 0, merge = False)
wrap_plots(plots = plots, ncol = 1 )