韋恩圖(Venn)是一種用于展示各樣本之間共有或特有元素?cái)?shù)量的圖形绳锅。今天,小編就結(jié)合R語(yǔ)言中的Venn包和VennDiagram包給大家展示一下如何繪制Venn圖并導(dǎo)出其中的交集元素酝掩!
安裝并加載R包
rm(list=ls())#clear Global Environment
setwd('D:\\桌面\\Venn')#設(shè)置工作路徑
#安裝包
#install.packages("venn")
# install.packages("VennDiagram")
#加載R包
library(VennDiagram)
library (venn)
加載并處理數(shù)據(jù)
1、加載數(shù)據(jù)
#加載數(shù)據(jù)期虾,為OTU水平的豐度表
data <- read.table(file="otu.txt",sep="\t",header=T,check.names=FALSE,row.names = 1)
2原朝、處理數(shù)據(jù)
#組內(nèi)合并
df <- data.frame(A=rowSums(data[,c(1:3)]),
B=rowSums(data[,c(4:6)]),
C=rowSums(data[,c(7:9)]),
D=rowSums(data[,c(10:12)]))
head(df)
#創(chuàng)建空列表
df1 <- list()
#獲取每個(gè)樣本(組)中所有的OTU
for (i in 1:length(colnames(df))){
group<- colnames(df)[i]
df1[[group]] <- rownames(df)[which(df[,i]!= 0)]
}
繪圖
#Venn包繪制
venn(df1, #數(shù)據(jù)
zcolor=c('red','yellow','blue','green'),#顏色設(shè)置镶苞,可選擇自帶的“style”或者無(wú)色‘bw’
opacity = 0.5,#顏色透明度
box=F,#邊框去除
sncs=1.5,#組名字體大小
ilcs=0.8)#圖片中數(shù)字大小
提取交集元素
使用VennDiagram包中的get.venn.partitions函數(shù)查看并導(dǎo)出交集結(jié)果:
df_inter <- get.venn.partitions(df1)
for (i in 1:nrow(df_inter)) df_inter[i,'values'] <- paste(df_inter[[i,'..values..']], collapse = ', ')
df_inter[-c(5, 6)]
write.table(df_inter, 'df_Venn.txt', row.names = FALSE, sep = '\t', quote = FALSE)