多个基因在多亚组疾病中的展示
我们探讨过单基因在特定肿瘤中亚型的可视化展示
今天我们来看看多基因在多亚型中的可视化,这次还是用上次的数据,数据格式如下:
行是样本,列是基因,第一列是亚组信息(来自于Pam50预测),第二列是癌和癌旁的信息(来自于取样信息)
我们需要把数据调整成R包ggplot喜欢的格式,调整格式的能力是R语言的基本功,占用了数据分析差不多90的时间
我们选取了乳腺癌21基因中的8个基因来做暂时
index <- which(colnames(exprSet) %in% c("MMP11","ESR1","PGR","SCUBE2","GRB7","ERBB2","GSTM1","TFRC"))
expr8 <- exprSet[c(1:2,index)]
expr_gather <- tidyr::gather(expr8,key = Genenames, value = Geneexpr,-c(subgroup,sample))
整理好的数据格式如图所示
genenames那一项,7个基因在一列中 加载R包
library(ggplot2)
library(ggridges)
1.多基因在癌和癌旁的表达
ggplot(
expr_gather,
aes(x = sample, y = Geneexpr,color=sample)
) +
geom_boxplot()+
facet_wrap(~Genenames,nrow = 2)
2.多基因在癌症亚型中的表达
ggplot(
expr_gather,
aes(x = subgroup, y = Geneexpr,color=subgroup)
) +
geom_boxplot()+
facet_wrap(~Genenames,nrow = 2)
如果觉得x轴太挤,还可以使用 coord_flip()
函数转换坐标轴
ggplot(
expr_gather,
aes(x = subgroup, y =Geneexpr ,color=subgroup)
) +
geom_boxplot()+
coord_flip()+
facet_wrap(~Genenames,nrow = 2)
3.把两个因素融合在一起,比如亚型中加入突变信息,在本例中癌和癌旁. facet_grid()
函数可以做到
ggplot(
expr_gather,
aes(x = subgroup, y =Geneexpr ,color=subgroup)
) +
geom_boxplot()+
coord_flip()+
facet_grid(sample~Genenames)
这时候我们发现了一些奇怪的事情,在输入normal的样本,有一部分被Pam50识别成了basal。
4. 使用山脊图展示亚型的信息
ggplot(
expr_gather,
aes(x = Geneexpr, y = subgroup)
) +
geom_density_ridges_gradient(
aes(fill = ..x..), scale = 1, size = 0.3
) +
scale_fill_gradientn(
colours = c("#0D0887FF", "#CC4678FF", "#F0F921FF"),
name = "Temp. [F]"
)+
facet_wrap(~Genenames,nrow = 2)
5.使用山脊图同时表现两个信息,癌和癌旁,亚型
ggplot(
expr_gather,
aes(x = Geneexpr, y = subgroup)
) +
geom_density_ridges_gradient(
aes(fill = ..x..), scale = 1, size = 0.3
) +
scale_fill_gradientn(
colours = c("#0D0887FF", "#CC4678FF", "#F0F921FF"),
name = "Temp. [F]"
)+
facet_grid(sample ~Genenames)
这时候就更容易看出来,nomal那个组中,包含了两个亚组,一个是normal,一个basal。 除了这些信息我们还可以看出来,ER,PR在是个亚型中明显不一样,这个符合事实。 此外,即使在normal组中,我们也发现,有一些基因表达的模式不一样,比如GRB7,这稍微深究一下,就是一个小课题。