查看原文
其他

多个基因在多亚组疾病中的展示

R语言讲师果子 果子学生信 2023-06-15

我们探讨过单基因在特定肿瘤中亚型的可视化展示 

Y叔推荐的这个图有毒!

今天我们来看看多基因在多亚型中的可视化,这次还是用上次的数据,数据格式如下: 

行是样本,列是基因,第一列是亚组信息(来自于Pam50预测),第二列是癌和癌旁的信息(来自于取样信息)

我们需要把数据调整成R包ggplot喜欢的格式,调整格式的能力是R语言的基本功,占用了数据分析差不多90的时间 

我们选取了乳腺癌21基因中的8个基因来做暂时

  1. index <- which(colnames(exprSet) %in% c("MMP11","ESR1","PGR","SCUBE2","GRB7","ERBB2","GSTM1","TFRC"))

  2. expr8 <- exprSet[c(1:2,index)]

  3. expr_gather <- tidyr::gather(expr8,key = Genenames, value = Geneexpr,-c(subgroup,sample))

整理好的数据格式如图所示 

genenames那一项,7个基因在一列中 加载R包

  1. library(ggplot2)

  2. library(ggridges)

1.多基因在癌和癌旁的表达

  1. ggplot(

  2.  expr_gather,

  3.  aes(x = sample, y = Geneexpr,color=sample)

  4. ) +

  5.  geom_boxplot()+

  6.  facet_wrap(~Genenames,nrow = 2)

2.多基因在癌症亚型中的表达

  1. ggplot(

  2.  expr_gather,

  3.  aes(x = subgroup, y = Geneexpr,color=subgroup)

  4. ) +

  5.  geom_boxplot()+

  6.  facet_wrap(~Genenames,nrow = 2)

如果觉得x轴太挤,还可以使用 coord_flip()函数转换坐标轴

  1. ggplot(

  2.  expr_gather,

  3.  aes(x = subgroup, y =Geneexpr ,color=subgroup)

  4. ) +

  5.  geom_boxplot()+

  6.  coord_flip()+

  7.  facet_wrap(~Genenames,nrow = 2)

3.把两个因素融合在一起,比如亚型中加入突变信息,在本例中癌和癌旁. facet_grid()函数可以做到

  1. ggplot(

  2.  expr_gather,

  3.  aes(x = subgroup, y =Geneexpr ,color=subgroup)

  4. ) +

  5.  geom_boxplot()+

  6.  coord_flip()+

  7.  facet_grid(sample~Genenames)

这时候我们发现了一些奇怪的事情,在输入normal的样本,有一部分被Pam50识别成了basal。

4. 使用山脊图展示亚型的信息

  1. ggplot(

  2.  expr_gather,

  3.  aes(x = Geneexpr, y = subgroup)

  4. ) +

  5.  geom_density_ridges_gradient(

  6.    aes(fill = ..x..), scale = 1, size = 0.3

  7.  ) +

  8.  scale_fill_gradientn(

  9.    colours = c("#0D0887FF", "#CC4678FF", "#F0F921FF"),

  10.    name = "Temp. [F]"

  11.  )+

  12.  facet_wrap(~Genenames,nrow = 2)

5.使用山脊图同时表现两个信息,癌和癌旁,亚型

  1. ggplot(

  2.  expr_gather,

  3.  aes(x = Geneexpr, y = subgroup)

  4. ) +

  5.  geom_density_ridges_gradient(

  6.    aes(fill = ..x..), scale = 1, size = 0.3

  7.  ) +

  8.  scale_fill_gradientn(

  9.    colours = c("#0D0887FF", "#CC4678FF", "#F0F921FF"),

  10.    name = "Temp. [F]"

  11.  )+

  12.  facet_grid(sample ~Genenames)

这时候就更容易看出来,nomal那个组中,包含了两个亚组,一个是normal,一个basal。 除了这些信息我们还可以看出来,ER,PR在是个亚型中明显不一样,这个符合事实。 此外,即使在normal组中,我们也发现,有一些基因表达的模式不一样,比如GRB7,这稍微深究一下,就是一个小课题。 


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存