
Additionally, genes like CXCL10 which we saw were specific to monocyte and B cell interferon response show up as highly significant in this list as well. Notice that many of the top genes that show up here are the same as the ones we plotted earlier as core interferon response genes. Then we use FindMarkers to find the genes that are different between stimulated and control B cells. First, we create a column in the meta.data slot to hold both the cell type and stimulation information and switch the current ident to that column. P2 <- LabelPoints(plot = p2, points = genes.to.label, repel = TRUE)Īs you can see, many of the same genes are upregulated in both of these cell types and likely represent a conserved interferon response pathway.īecause we are confident in having identified common cell types across condition, we can ask what genes change in different conditions for cells of the same type.

P2 <- ggplot(, aes(CTRL, STIM)) + geom_point() + ggtitle("CD14 Monocytes") P1 <- LabelPoints(plot = p1, points = genes.to.label, repel = TRUE) P1 <- ggplot(avg.t.cells, aes(CTRL, STIM)) + geom_point() + ggtitle("CD4 Naive T Cells") t.cells <- subset(bined, idents = "CD4 Naive T")Īvg.t.cells <- log1p(AverageExpression(t.cells, verbose = FALSE)$RNA)Īvg.t.cells$gene <- rownames(avg.t.cells)Ĭd14.mono <- subset(bined, idents = "CD14 Mono")Īvg.cd14.mono <- log1p(AverageExpression(cd14.mono, verbose = FALSE)$RNA)Īvg.cd14.mono$gene <- rownames() Here, we take the average expression of both the stimulated and control naive T cells and CD14 monocyte populations and generate the scatter plots, highlighting genes that exhibit dramatic responses to interferon stimulation. One way to look broadly at these changes is to plot the average expression of both the stimulated and control cells and look for genes that are visual outliers on a scatter plot. Now that we’ve aligned the stimulated and control cells, we can start to do comparative analyses and look at the differences induced by stimulation. Identify differential expressed genes across conditions Idents(bined) <- factor(Idents(bined), levels = c("Mono/Mk Doublets", "pDC", Here we plot 2-3 strong marker genes for each of our 13 clusters.

The DotPlot function with the parameter can be useful for viewing conserved cell type markers across conditions, showing both the expression level and the percentage of cells in a cluster expressing any given gene. We can explore these marker genes for each cluster and use them to annotate our clusters as specific cell types. # STIM_p_val STIM_avg_logFC STIM_pct.1 STIM_pct.2 STIM_p_val_adj Head(nk.markers) # CTRL_p_val CTRL_avg_logFC CTRL_pct.1 CTRL_pct.2 CTRL_p_val_adj Nk.markers <- FindConservedMarkers(bined, ident.1 = 7, grouping.var = "stim", verbose = FALSE) For example, we can calculated the genes that are conserved markers irrespective of stimulation condition in cluster 7 (NK cells). This function performs differential gene expression testing for each dataset/group and combines the p-values using meta-analysis methods from the MetaDE R package.

To identify canonical cell type marker genes that are conserved across conditions, we provide the FindConservedMarkers function.
