上一篇我们讲了传统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)
|