实验设计:对照组,TNF处理组,TGF处理组,IL4处理组,每组3个生物学重复
实验分组:TNF组 vs 对照组;TGF组 vs 对照组;IL4组 vs 对照组
所得数据:三种分组比较下的差异基因
最终需求:直观展示三组差异结果的共同基因及特有基因
以上这类设计和需求是高通量数据后期展示时常见的需求,通常通过绘制韦恩图(Venn图)就可以满足!
如下图左侧,就是典型的韦恩图展示形式,不同的颜色代表不同的来源,它们之间的共有基因或是特有基因数量一目了然,可直观展示出不同来源数据之间的在成分上的异同点。
近几年针对这类需求,又出现了一种更棒的可视化形式,如下图,直观展示7组数据之间的关系,一目了然。
今天呢,来简单演示下火山图的绘制方法,有数据的小伙伴可以试试!数据就以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') #绘图
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热图绘制——高阶篇