前几天画了专辑中没有的韦恩图,见:Science杂志同款:高颜值韦恩图绘制细节调整。又有一个人问:这个韦恩图里面现在只能看到数字,如何获取数字交集对应的基因或者分子等特征的列表呢?下面来看看~
插播:我们生信技能树每个月都有一期带领初学者,0基础的生信入门培训,会有各种贴心的答疑,最新一期在8月4号,感兴趣的可以去看看呀:生信入门&数据挖掘线上直播课8月班
我简单搜索了一下,有现成的两个包可以直接提取每一个交集部分的元素!
这个包的功能非常强大,可以绘制各种稀奇古怪形状的韦恩图,地址:
https://github.com/js229/Vennerable/tree/master
他的示例教程在安装后使用 vignette("Venn")
查看,只有这个途径看示例代码
## 使用西湖大学的 Bioconductor镜像
options(BioC_mirror="https://mirrors.westlake.edu.cn/bioconductor")
options("repos"=c(CRAN="https://mirrors.westlake.edu.cn/CRAN/"))
library(devtools)
install_github("js229/Vennerable")
library(Vennerable)
vignette("Venn")
## 四个基因列表集合
data(StemCell)
str(StemCell)
# List of 4
# $ OCT4 : chr [1:623] "AASDH" "ABTB2" "ACCN4" "ACD" ...
# $ SOX2 : chr [1:1279] "182-FIP" "AASDH" "ABCA5" "ABCB10" ...
# $ NANOG: chr [1:1687] "13CDNA73" "AASDH" "ABCA5" "ABCB10" ...
# $ E2F4 : chr [1:1273] "76P" "7h3" "AAMP" "AATF" ...
Vstem4 <- Venn(StemCell,SetNames=names(StemCell))
Vstem4
Vstem3 <- Vstem4[, c("OCT4", "SOX2", "NANOG")]
Vstem3
# 两个韦恩图
Vstem2 <- Vstem4[, c("OCT4", "SOX2")]
Vstem2
# 画图
plot(Vstem2, doWeights = TRUE)
C2 <- compute.Venn(Vstem2, doWeights = TRUE)
set <- C2@IntersectionSets
str(set)
library(GSEAtopics)
set1 <- list_to_data_frame(set)
# 这样就得到了 每个集合的元素啦
# 两种格式任意选择:list与数据框
head(set1)
根据集合名字和数字很快就可以找到每个集合对应的元素列表:
## 三个韦恩图
Vstem3 <- Vstem4[, c("OCT4", "SOX2", "NANOG")]
Vstem3
# 画图
plot(Vstem3, doWeights = TRUE)
C3 <- compute.Venn(Vstem3, doWeights = TRUE)
set <- C3@IntersectionSets
str(set)
library(GSEAtopics)
set1 <- list_to_data_frame(set)
# 这样就得到了 每个集合的元素啦
# 两种格式任意选择:list与数据框
head(set1)
四个集合的各位可以试试看!哈哈哈哈~
这里就看看四个集合的吧:
#韦恩图(VennDiagram 包,适用样本数 2-5)
library(VennDiagram)
# 先绘图,四个的
p <- venn.diagram(StemCell,
filename = NULL,
fill = c("#ff7d82", "#9ad6e6","#c4dfa1","#b797cf"),
cat.col = c("#ff7d82", "#9ad6e6","#c4dfa1","#b797cf"), # 设置类别标签的颜色
imagetype = 'png',
alpha = 0.50,
cat.cex = 1.8,
cat.fontfamily = 'serif',
cex = 1.5,
fontfamily = 'serif')
grid.newpage()
grid.draw(p)
# 获取交集
inter <- get.venn.partitions(StemCell)
head(inter)
inter$..values..[[1]]
inter$..set..[[1]]
set <- inter$..values..
names(set) <- inter$..set..
str(set)
library(GSEAtopics)
set1 <- list_to_data_frame(set)
# 这样就得到了 每个集合的元素啦
# 3种格式任意选择:list与数据框
head(set1)
每个集合的元素:
是不是很简单,今天分享到这~