桑基图:不同分辨率下的细胞分群可视化


单细胞绘图系列:

  • Seurat绘图函数总结
  • 使用ggplot2优化Seurat绘图
  • scRNAseq灵活的点图绘制:FlexDotPlot
  • 富集分析结果雷达图
  • DoHeatmap的优化+ComplexHeatmap绘制带特定基因的单细胞热图
  • 不同单细胞群之间的相关性分析
  • 单细胞RunPCA()结果解读+DimHeatmap的用法

多分辨率下的分群变化桑基图

常规的树状图画法

library(Seurat)
library(SeuratData)
library(clustree)
pbmc <- readRDS("pbmc.rds")
pbmc <- FindClusters(
  object = pbmc,
  resolution = c(seq(0,1.6,.2))
)
clustree([email protected], prefix = "RNA_snn_res.")

桑基图画法

#install.packages("ggalluvial")
library(ggalluvial)
library(tidyverse)

head([email protected])
ggplot(data = [email protected],
       aes(axis1 = RNA_snn_res.0, axis2 = RNA_snn_res.0.2,axis3 = RNA_snn_res.0.4, 
           axis4 = RNA_snn_res.0.6,axis5 = RNA_snn_res.0.8,axis6 = RNA_snn_res.1,
           axis7 = RNA_snn_res.1.2,axis8 = RNA_snn_res.1.4,axis9 = RNA_snn_res.1.6)) +
  scale_x_discrete(limits = c(paste0("RNA_snn_res.",seq(0,1.6,.2))), expand = c(.01, .05)) +
  geom_alluvium(aes(fill = RNA_snn_res.1.6)) + #展示其他metadata随resolution的变化只需改这个参数就好。如:geom_alluvium(aes(fill = celltype));geom_alluvium(aes(fill = nFeature_RNA))
  geom_stratum() + geom_text(stat = "stratum", infer.label = TRUE) +
  #coord_polar()+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))+
  ggtitle("cell number in each cluster")
可以更加直观的看到细胞来源

⚠️理论上只要是metadata中相互对应的列,都可以提出来画桑基图

参考:桑基图在单细胞数据探索中的应用

你可能感兴趣的:(桑基图:不同分辨率下的细胞分群可视化)