基因组数据绘图

【R画图学习6.2】Venn图---VennDetail

2022-10-19  本文已影响0人  jjjscuedu

上一篇我们讲了传统venn图的画法,今天测试另外一个包VennDetail,有点还是它综合了upset,从而能处理大于5维的数据。

首先没有安装的话,安装这个包。

library(devtools)

install_github("guokai8/VennDetail")

我们这次测试用的是T2DM的测试数据。T2DM 数据包括三组差异表达基因 (DEGs)。通过比较 db/db 糖尿病小鼠和进行吡格列酮治疗的db/db小鼠,在三种不同的组织、肾皮质、肾小球和坐骨神经中获得了三个DEGs数据集。通过使用 Cuffdiff 确定差异表达,错误发现率 (FDR)< 0.05。

library(VennDetail)

data(T2DM)

venn <- venndetail(list(Cortex=T2DM$Cortex$Entrez,SCN=T2DM$SCN$Entrez,Glom=T2DM$Glom$Entrez))

plot(venn)

plot(venn, type = "vennpie")

这里可以以多层pie图的形式显示。

plot(venn, type = "upset")

也可以画成upset的模式,这个在数据量大时,展示就比较清晰了。

比如我们上面一个帖子里面测试的5维数据:

set1 <- paste(rep("test_" , 200) , sample(c(1:10000) , 200 , replace=F) , sep="")

set2 <- paste(rep("test_" , 500) , sample(c(1:10000) , 500 , replace=F) , sep="")

set3 <- paste(rep("test_" , 300) , sample(c(1:10000) , 300 , replace=F) , sep="")

set4 <- paste(rep("test_" , 500) , sample(c(1:10000) , 500 , replace=F) , sep="")

set5 <- paste(rep("test_" , 300) , sample(c(1:10000) , 300 , replace=F) , sep="")

venn <- venndetail(list(Set1=set1,Set2=set2,Set3=set3,Set4=set4,Set5=set5))

plot(venn, type = "upset")

用upset的格式展示就比较清晰了。

当然这个包最大的特点是方便你提取你感兴趣的部分的详细信息,例如你想知道几个组织共有的以及在某一个中特有的基因是哪些基因等。就可以通过函数getSet来实现:

head(getSet(venn, subset = c("Set4_Set5", "Set1")),10)

当然这些信息也可以很方便的通过result功能获得。

head(result(venn))

head(result(venn,wide=TRUE))

也支持wide模式,展示更丰富的信息。

其中vennpie支持多种定制化的方式展现结果,例如只展现只在任何一个组织中出现的基因,其它的group用灰色。

vennpie(venn, any = 1, revcolor = "lightgrey")

vennpie(venn, any = 2, revcolor = "lightgrey")

这个就展示只在2个group中的基因。

vennpie(venn, min=2)

利用min则可以展示至少在2个group中出现的list

也可以画柱状图,其实自己提取venn的结果,也可以画这个图。用默认的测试数据为例:

dplot(venn, order = TRUE, textsize = 4)

上一篇 下一篇

猜你喜欢

热点阅读