展示细胞比例变化之balloonplot和马赛克图

2021-07-06 14:59:38 浏览数 (1)

我在CNS图表复现09—上皮细胞可以区分为恶性与否提到了一个很有意思的现象,就是把上皮细胞分群后,可以看到有一些亚群是具有病人特异性,但是也有不少亚群是跨越了病人存在的。

而我展现这一现象使用的可视化方法就是balloonplot函数啦,它来自于gplots这个包!

首先创造一个数据

代码语言:javascript复制
n=10*sample(100,9);n
cancer=rep(paste0('c',1:9),n)
table(cancer)
p=c(rep(paste0('p',1:5),n[1:5]),
    sample(paste0('p',1:5),sum(n[6:9]),replace = T))
table(p)
table(cancer,p)

可以看到是如下所示:

代码语言:javascript复制
> table(cancer,p)
      p
cancer  p1  p2  p3  p4  p5
    c1 890   0   0   0   0
    c2   0 420   0   0   0
    c3   0   0 330   0   0
    c4   0   0   0 800   0
    c5   0   0   0   0 730
    c6 155 170 180 184 181
    c7 197 194 189 194 176
    c8  70  64  54  56  56
    c9 116 106 102 129 107

前面的c1到c5,都是病人特异性的,每个病人一个独立单细胞亚群,通常是恶性细胞。但是后面的 c6和c9都是涵盖了5个病人的正常细胞。

在肺癌领域,恶性和细胞正常细胞各自的标记基因如下所示:

  • epi or tumor (EPCAM, KRT19, PROM1, ALDH1A1, CD24).
  • alveolar type I cell (AT1; AGER )
  • alveolar type II cell (AT2; SFTPA1)
  • secretory club cell (Club; SCGB1A1 )
  • basal airway epithelial cells (Basal; KRT17 )
  • ciliated airway epithelial cells (Ciliated; TPPP3 )

balloonplot可视化

前面我们提到过可视化方法就是balloonplot函数啦,它来自于gplots这个包!

代码语言:javascript复制
library(gplots) 
balloonplot(table(cancer,p))

效果如下所示:

马赛克图可视化

代码如下:

代码语言:javascript复制
library(vcd)
dat=table(cancer,p)
mosaic(dat,shade=T,legend=T)

还有一个更优秀的可视化方法

就是桑基图,明天再介绍它!

0 人点赞