单细胞基因可视化之UMAP图修饰

时间:2024-12-11 07:20:17

更多精彩请至《KS科研分享与服务公众号》
除了之前说过的三种常见单细胞基因可视化方法外,还有一种最常用的就是直接在UMAP或者TSNE降维图上显示表达某基因的细胞,这种方式更加直观,但是只能显示一个基因,一般用于标记重要的基因。

1、降维可视化

降维可视化一般用Dimplot函数,如果使用的是UMAP方法,可以直接使用UMAPPlot函数,但是感觉效果不好或者很混乱,可以考虑使用PCAPlot函数。可以看到,聚类效果不错,PCA不同细胞群还是分开了。


plot1 <- UMAPPlot(scedata, label = T,  = 1)
plot2 <- PCAPlot(scedata, label = T,  = 1)
library(cowplot)
plot_grid(plot1,plot2)

2、配色及修饰

Seurat包的函数作图都有默认配色,但小编一直觉得不好看,其实看很多文章发现他们的色彩搭配很好。这里简单介绍两组办法。第一种使用ggsci包,自动搭配。第二种则是从文章获取颜色,自己修饰即可。

plot3 <- DimPlot(scedata, label = T,  = 1)+
  NoLegend()+labs(x = "UMAP1", y = "UMAP2",title = "Celltype") +
  theme( = element_rect(fill=NA,color="black", size=1, linetype="solid"),
         = element_blank(),
         = element_blank(),
         = element_blank(),
         = element_blank())
  
library(ggsci)
library(ggplot2)
#nature版本
plot4 = plot3 + scale_color_npg()
#science版本
plot5 = plot3 +scale_color_aaas()
plot_grid(plot4,plot5)

再看下其他文章中使用过的配色,虽然差不多,但是感觉好多了。

library(paletteer)
pal <- paletteer_d("ggsci::nrc_npg")[c(1,3,4,9,5)]
plot6 <- DimPlot(scedata, label = T,  = 1,cols = pal)+
  NoLegend()+labs(x = "UMAP1", y = "UMAP2",title = "Celltype") +
  theme( = element_rect(fill=NA,color="black", size=1, linetype="solid"),
         = element_blank(),
         = element_blank(),
         = element_blank(),
         = element_blank())

library(RColorBrewer)
cell_type_cols <- c((9, "Set1"), 
                    "#FF34B3","#BC8F8F","#20B2AA","#00F5FF","#FFA500","#ADFF2F",
                    "#FF6A6A","#7FFFD4", "#AB82FF","#90EE90","#00CD00","#008B8B",
                    "#6495ED","#FFC1C1","#CD5C5C","#8B008B","#FF3030", "#7CFC00")  

plot7 <- DimPlot(scedata, label = T,  = 1,cols = cell_type_cols)+
  NoLegend()+labs(x = "UMAP1", y = "UMAP2",title = "Celltype") +
  theme( = element_rect(fill=NA,color="black", size=1, linetype="solid"),
         = element_blank(),
         = element_blank(),
         = element_blank(),
         = element_blank())
plot_grid(plot6,plot7)

3、基因可视化

单个基因的可视化使用FeaturePlot函数,用ggplot2修饰即可。


color <- c('lightgrey', 'blue','seagreen2')#设置颜色  
plot8 <- FeaturePlot(scedata, features = 'ACKR1',cols = color,  = 1)+  
  theme( = element_rect(fill=NA,color="black", size=1, linetype="solid"))#加边框 

cols = c("gray", "coral2")
plot9 <- FeaturePlot(scedata, features = 'ACKR1',cols = cols,  = 1)+  
  theme( = element_rect(fill=NA,color="black", size=1, linetype="solid"))#加边框 
plot_grid(plot8,plot9)

4、把细胞群圈起来

此外,有人问道,很多文章中用虚线框起来细胞群是如何做到的,之前我也尝试过用画PCA置信椭圆的办法,但是效果不理想,最好的方法就是导入PPT或者AI,自己动手添加。

好了,这就是今天的分享了,只是冰山一角,还有其他更多的方式,可以参考其他文献,找到适合自己的。