更多精彩请至《KS科研分享与服务公众号》
除了之前说过的三种常见单细胞基因可视化方法外,还有一种最常用的就是直接在UMAP或者TSNE降维图上显示表达某基因的细胞,这种方式更加直观,但是只能显示一个基因,一般用于标记重要的基因。
1、降维可视化
降维可视化一般用Dimplot函数,如果使用的是UMAP方法,可以直接使用UMAPPlot函数,但是感觉效果不好或者很混乱,可以考虑使用PCAPlot函数。可以看到,聚类效果不错,PCA不同细胞群还是分开了。
plot1 <- UMAPPlot(scedata, label = T, pt.size = 1)
plot2 <- PCAPlot(scedata, label = T, pt.size = 1)
library(cowplot)
plot_grid(plot1,plot2)
2、配色及修饰
Seurat包的函数作图都有默认配色,但小编一直觉得不好看,其实看很多文章发现他们的色彩搭配很好。这里简单介绍两组办法。第一种使用ggsci包,自动搭配。第二种则是从文章获取颜色,自己修饰即可。
plot3 <- DimPlot(scedata, label = T, pt.size = 1)+
NoLegend()+labs(x = "UMAP1", y = "UMAP2",title = "Celltype") +
theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
axis.text.x = element_blank(),
axis.ticks.x = 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, pt.size = 1,cols = pal)+
NoLegend()+labs(x = "UMAP1", y = "UMAP2",title = "Celltype") +
theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
axis.text.x = element_blank(),
axis.ticks.x = element_blank())
library(RColorBrewer)
cell_type_cols <- c(brewer.pal(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, pt.size = 1,cols = cell_type_cols)+
NoLegend()+labs(x = "UMAP1", y = "UMAP2",title = "Celltype") +
theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
axis.text.x = element_blank(),
axis.ticks.x = element_blank())
plot_grid(plot6,plot7)
3、基因可视化
单个基因的可视化使用FeaturePlot函数,用ggplot2修饰即可。
color <- c('lightgrey', 'blue','seagreen2')#设置颜色
plot8 <- FeaturePlot(scedata, features = 'ACKR1',cols = color, pt.size = 1)+
theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"))#加边框
cols = c("gray", "coral2")
plot9 <- FeaturePlot(scedata, features = 'ACKR1',cols = cols, pt.size = 1)+
theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"))#加边框
plot_grid(plot8,plot9)
4、把细胞群圈起来
此外,有人问道,很多文章中用虚线框起来细胞群是如何做到的,之前我也尝试过用画PCA置信椭圆的办法,但是效果不理想,最好的方法就是导入PPT或者AI,自己动手添加。
好了,这就是今天的分享了,只是冰山一角,还有其他更多的方式,可以参考其他文献,找到适合自己的。