利用 ggplot2 绘制 Seurat 对象中的 tSNE 或 UMAP 图

Seurat 软件自带的绘图函数 DimPlot 虽然也提供了一些参数来供我们调整图形,但有时仍然有些你希望的功能不太容易实现,比如将细胞聚类分成三组,每一组是一种颜色,利用 DimPlot 就不容易实现(步骤比较繁琐:需要给细胞的 meta.data 增加额外的分组标识列,然后用 group.by 参数来为不同的分组上色)。一种更灵活的方法是把 tSNE 或者 UMAP 降维的信息从 seurat 对象中提取出来,并利用 ggplot 作图。具体代码如下:

## 假设我们有 Seurat 对象存储在 seuratObj 变量中
## 用 tSNE 算法进行降维操作
seuratObj  <- RunTSNE(seuratObj, dims = 1:20, check_duplicates = FALSE)

## 提取 tSNE 降维信息到 tsne 
library(tidyverse)
tsne = seuratObj@[email protected] %>%
      as.data.frame() %>% cbind(tx = [email protected]$seurat_clusters)

## 用 ggplot 绘图(假设所有的细胞被分为 6 个 cluster)
jpeg(file = "tSNE.by_cluster.jpg", width = 7, height = 7, units = "in", res = 600)
ggplot(tsne, aes(x = tSNE_1, y = tSNE_2, color = tx)) + 
      geom_point(size = 0.2, alpha = 1) + 
      scale_color_manual(values=c("1" = "red", "2" = "blue", "3" = "yellow", "4" = "darkred", "5" = "darkblue", "6" = "darkorange"))
dev.off()

ggplot 颜色名称和对应的色彩可以参考 这里 或者 这里

参考文献

Seurat DimPlot - Highlight specific groups of cells in different colours, https://stackoverflow.com/questions/59101791/seurat-dimplot-highlight-specific-groups-of-cells-in-different-colours

你可能感兴趣的:(生物信息,R,大数据,ggplot2,可视化)