R绘图|韦恩图的常见绘制方法

实验设计:对照组,TNF处理组,TGF处理组,IL4处理组,每组3个生物学重复
实验分组:TNF组 vs 对照组;TGF组 vs 对照组;IL4组 vs 对照组
所得数据:三种分组比较下的差异基因
最终需求:直观展示三组差异结果的共同基因及特有基因

以上这类设计和需求是高通量数据后期展示时常见的需求,通常通过绘制韦恩图(Venn图)就可以满足!

如下图左侧,就是典型的韦恩图展示形式,不同的颜色代表不同的来源,它们之间的共有基因或是特有基因数量一目了然,可直观展示出不同来源数据之间的在成分上的异同点。

近几年针对这类需求,又出现了一种更棒的可视化形式,如下图,直观展示7组数据之间的关系,一目了然。

image

今天呢,来简单演示下火山图的绘制方法,有数据的小伙伴可以试试!数据就以TNF组 vs 对照组;TGF组 vs 对照组;IL4组 vs 对照组三组差异基因来做案例。

vennR包绘制韦恩图

首先清除环境,安装并加载所需要的R包

rm(list = ls()) #清除环境内存
install.packages("readxl")  #安装readxl包
install.packages('venn')  #安装venn包
library(readxl)  #加载readxl包
library(venn)

读入数据并对数据做简单处理

读入IFN组差异数据

data<-read_excel("venn.xls",1)    #读入excel数据
IFN<-data$`Gene Symbol`

读入TNF组数据

data<-read_excel("venn.xls",2)    #读入excel数据
TNF<-data$`Gene Symbol

读入IL4组差异数据

data<-read_excel("venn.xls",3)    #读入excel数据
IL4<-data$`Gene Symbol`

将3组数据构建成list

x <- list(IFN=IFN, TNF=TNF, IL4=IL4) # list内元素为元素型,不可以是表达矩阵
# 或者也可以把数据放在一起直接载入为data
# x <- list(IFN=data$IFN, TNF=data$TNF, IL4=data$IL4) # 这样构建数据也可以

用venn包绘图


?venn #查看venn函数的使用方法
venn(x,zcolor='style')  #绘图
image

venn.dragram R包绘制韦恩图

首先清除环境,安装并加载所需要的R包

rm(list = ls()) #清除环境内存
#install.packages("readxl")  #安装readxl包
#install.packages('VennDiagram')
library(readxl)  #加载readxl包
library(VennDiagram)

读入数据并对数据做简单处理

读入3组汇总数据

data<-read_excel("venn.xls",4)    #读入excel数据
data<-as.data.frame(data)    #将data转换为data.frame格式
data[is.na(data)]<- 0  #将NA值替换为0

用venn.diagram绘图

?venn.diagram #查看具体参数和使用方法
venn.plot <-venn.diagram(
  list(IFN = data$IFN,TNF = data$TNF,IL4 = data$IL4),
  filename = "Venn.PDF",
  fill = c("red","blue","green"),
  alpha = 0.5,
  cex = 1,
  lwd=0,
  lty=0,
  fontfamily = "serif",
  fontface = "bold",
  cat.default.pos = "text",
  cat.col = c("red","blue","green"),
  cat.cex = 1.5,
  cat.fontfamily = "serif",
  cat.dist = c(0.2, 0.2, -0.15),
  cat.pos = 0)

UpsetR包绘制韦恩图

首先清除环境,安装并加载所需要的R包

rm(list = ls()) #清除环境内存
install.packages("UpSetR") 
install.packages("readxl")  #安装readxl包
library(readxl)  #加载readxl包
library(UpSetR)

读入数据并对数据做简单处理

读入3组汇总数据

data<-read_excel("venn.xls",4)    #读入excel数据
data<-as.data.frame(data) # 将data转换为data.frame格式
data[is.na(data)]<- 0 #将NA值替换为0
X=list(IFN = data$IFN,TNF = data$TNF,IL4 = data$IL4) #将3组数据汇总成list

用upsetR 绘图

p=upset(fromList(X),nsets = 3, order.by = "freq",
      point.size = 5, 
      line.size = 1.3, 
      mainbar.y.label = "IntersectionSize", 
      sets.x.label = "",
      mb.ratio = c(0.60, 0.40),
      text.scale = c(2, 2, 2, 2,2, 2))
p

更多内容可关注公共号“YJY技能修炼”~~~

往期回顾
R绘图|ggplot2火山图的绘制
R绘图|ggplot2散点图的绘制
R绘图|pheatmap热图绘制——基础篇
R绘图|pheatmap热图绘制——中阶篇
R绘图|pheatmap热图绘制——高阶篇

你可能感兴趣的:(R绘图|韦恩图的常见绘制方法)