文章目录
- 前言
- 一、数据准备
- 二、可视化
- 1.二维
- 2.三维
- 3.数据保存
- 总结
前言
韦恩图(Venn diagram)是一种用于可视化集合之间关系的图形工具。它是由英国逻辑学家约翰·韦恩于1880年引入的。
韦恩图由一组圆和它们的交集区域组成。每个圆代表一个集合,而交集区域则代表这些集合之间的共同元素。韦恩图可以用来比较不同集合之间的相似性和差异性。
优点:
可视化:韦恩图能够直观地展示集合之间的关系,使人们更容易理解和比较不同集合的共同和独有元素。
分类和分析:韦恩图可以帮助人们对集合进行分类和分析,从而更好地理解集合的特征和属性。
决策支持:韦恩图可以帮助人们作出决策,在不同集合之间找出共同点和不同点,从而更好地制定策略和计划。
一、数据准备
# 需要根据自己的数据进行处理一下
library(readxl)
library(VennDiagram)
setwd('G:/R/TCGA/venn')
COVIN_24_wpi_DEGs <- read_xlsx('long_CONVID_19_deg.xlsx',sheet='24 wpi DEGs')
COVIN_16_wpi_DEGs <- read_xlsx('long_CONVID_19_deg.xlsx',sheet='16 wpi DEGs')
COVIN_12_wpi_DEGs <- read_xlsx('long_CONVID_19_deg.xlsx',sheet='12 wpi DEGs')# 这里做一个数据处理的演示
COVIN_12_wpi_DEGs <- read.csv('COVIN_12_wpi_DEGs.csv',header = T,row.names = 1)
COVIN_12_wpi_DEGs <- data.frame(COVIN_12_wpi_DEGs$external_gene_name, row.names = rownames(COVIN_12_wpi_DEGs))
colnames(COVIN_12_wpi_DEGs) <- c('gene_id')
write.csv(COVIN_12_wpi_DEGs,'COVIN_12_wpi_gene.csv')# 转置
set1 <- t(COVIN_12_wpi_DEGs)
set2 <- t(COVIN_16_wpi_DEGs)
set3 <- t(COVIN_24_wpi_DEGs)
head(set1)
# gene_id
# OTUD1 OTUD1
# RTKN2 RTKN2
# FAM107A FAM107A
# EPAS1 EPAS1
# SPAAR SPAAR
# SEMA3G SEMA3G
二、可视化
1.二维
代码如下(示例):
# 二维
p <- venn.diagram(x=list(set1,set2),scaled = F, # 根据比例显示大小alpha= 0.5, #透明度lwd=1,lty=1,col=c('#FFFFCC','#CCFFFF'), #圆圈线条粗细、形状、颜色;1 实线, 2 虚线, blank无线条label.col ='black' , # 数字颜色abel.col=c('#FFFFCC','#CCFFFF',......)根据不同颜色显示数值颜色cex = 2, # 数字大小fontface = "bold", # 字体粗细;加粗boldfill=c('#FFFFCC','#CCFFFF'), # 填充色 配色https://www.58pic.com/category.names = c("LUAD", "COVID") , #标签名cat.dist = 0.02, # 标签距离圆圈的远近cat.pos = -180, # 标签相对于圆圈的角度cat.pos = c(-10, 10, 135)cat.cex = 2, #标签字体大小cat.fontface = "bold", # 标签字体加粗cat.col='black' , #cat.col=c('#FFFFCC','#CCFFFF',.....)根据相应颜色改变标签颜色cat.default.pos = "outer", # 标签位置, outer内;text 外output=TRUE,filename='LUAD_COVID_wpi.png',# 文件保存imagetype="png", # 类型(tiff png svg)resolution = 400, # 分辨率compression = "lzw"# 压缩算法
)
2.三维
代码如下(示例):
venn.diagram(x=list(set1,set2,set3),category.names = c("12_wpi", "16_wpi",'24_wpi') , #标签名filename='LUAD_COVID.png',# 文件保存output=TRUE,main = "COVID_DEGs",# 设置输出参数imagetype="png", # 类型(tiff png svg)resolution = 400, # 分辨率compression = "lzw", # 压缩算法# 圆的调整scaled = F, # 根据比例显示大小alpha= 0.5, #透明度lwd=1, # 描边粗细lty=1,col=c('#FFFFCC','#CCFFFF',"#FFCCCC"), #圆圈线条粗细、形状、颜色;1 实线, 2 虚线, blank无线条label.col ='black' , # 数字颜色abel.col=c('#FFFFCC','#CCFFFF',......)根据不同颜色显示数值颜色# 文字大小cex = 1, # 字体大小fontface = "bold", # 字体粗细;加粗boldfill=c('#FFFFCC','#CCFFFF',"#FFCCCC"), # 填充色 配色https://www.58pic.com/#每个集合的名称:cat.cex=1.2,cat.default.pos="outer", # 集合名称位置:outer --外部;text --内部cat.pos=c(-27,27,180), # 集合名称分别在圈圈的什么角度cat.dist=c(0.055,0.055,0.055), # 外部多少距离cat.col='black' , # cat.col=c('#FFFFCC','#CCFFFF',.....)根据相应颜色改变标签颜色cat.fontfamily="sans",rotation=1 # 旋转
)
3.数据保存
# 查看交集详情,并导出结果
# 只导出交集基因
inter <- get.venn.partitions(LUAD_COVID)inter <- get.venn.partitions(list(set1,set2,set3))# i=1
values <- as.data.frame(inter[[i,'..values..']])
colnames(values) <- c('gene_name')
write.csv(values, "all_common_difference_gene.csv")# 导出全部
inter <- get.venn.partitions(LUAD_COVID)
for (i in 1:nrow(inter)) inter[i,'values'] <- paste(inter[[i,'..values..']], collapse = '|')inter <- subset(inter, select = -..values.. )
inter <- subset(inter, select = -..set.. )
write.table(inter, "result_16_wpi.csv", row.names = FALSE, sep = ',', quote = FALSE)
总结
本文用到的数据如有需要,请私我发送!