R繪圖|韋恩圖的常見繪制方法

實驗設(shè)計:對照組,TNF處理組,TGF處理組,IL4處理組,每組3個生物學(xué)重復(fù)
實驗分組:TNF組 vs 對照組;TGF組 vs 對照組;IL4組 vs 對照組
所得數(shù)據(jù):三種分組比較下的差異基因
最終需求:直觀展示三組差異結(jié)果的共同基因及特有基因

以上這類設(shè)計和需求是高通量數(shù)據(jù)后期展示時常見的需求,通常通過繪制韋恩圖(Venn圖)就可以滿足!

如下圖左側(cè),就是典型的韋恩圖展示形式,不同的顏色代表不同的來源,它們之間的共有基因或是特有基因數(shù)量一目了然,可直觀展示出不同來源數(shù)據(jù)之間的在成分上的異同點。

近幾年針對這類需求,又出現(xiàn)了一種更棒的可視化形式,如下圖,直觀展示7組數(shù)據(jù)之間的關(guān)系,一目了然。

image

今天呢,來簡單演示下火山圖的繪制方法,有數(shù)據(jù)的小伙伴可以試試!數(shù)據(jù)就以TNF組 vs 對照組;TGF組 vs 對照組;IL4組 vs 對照組三組差異基因來做案例。

vennR包繪制韋恩圖

首先清除環(huán)境,安裝并加載所需要的R包

rm(list = ls()) #清除環(huán)境內(nèi)存
install.packages("readxl")  #安裝readxl包
install.packages('venn')  #安裝venn包
library(readxl)  #加載readxl包
library(venn)

讀入數(shù)據(jù)并對數(shù)據(jù)做簡單處理

讀入IFN組差異數(shù)據(jù)

data<-read_excel("venn.xls",1)    #讀入excel數(shù)據(jù)
IFN<-data$`Gene Symbol`

讀入TNF組數(shù)據(jù)

data<-read_excel("venn.xls",2)    #讀入excel數(shù)據(jù)
TNF<-data$`Gene Symbol

讀入IL4組差異數(shù)據(jù)

data<-read_excel("venn.xls",3)    #讀入excel數(shù)據(jù)
IL4<-data$`Gene Symbol`

將3組數(shù)據(jù)構(gòu)建成list

x <- list(IFN=IFN, TNF=TNF, IL4=IL4) # list內(nèi)元素為元素型,不可以是表達矩陣
# 或者也可以把數(shù)據(jù)放在一起直接載入為data
# x <- list(IFN=data$IFN, TNF=data$TNF, IL4=data$IL4) # 這樣構(gòu)建數(shù)據(jù)也可以

用venn包繪圖


?venn #查看venn函數(shù)的使用方法
venn(x,zcolor='style')  #繪圖
image

venn.dragram R包繪制韋恩圖

首先清除環(huán)境,安裝并加載所需要的R包

rm(list = ls()) #清除環(huán)境內(nèi)存
#install.packages("readxl")  #安裝readxl包
#install.packages('VennDiagram')
library(readxl)  #加載readxl包
library(VennDiagram)

讀入數(shù)據(jù)并對數(shù)據(jù)做簡單處理

讀入3組匯總數(shù)據(jù)

data<-read_excel("venn.xls",4)    #讀入excel數(shù)據(jù)
data<-as.data.frame(data)    #將data轉(zhuǎn)換為data.frame格式
data[is.na(data)]<- 0  #將NA值替換為0

用venn.diagram繪圖

?venn.diagram #查看具體參數(shù)和使用方法
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包繪制韋恩圖

首先清除環(huán)境,安裝并加載所需要的R包

rm(list = ls()) #清除環(huán)境內(nèi)存
install.packages("UpSetR") 
install.packages("readxl")  #安裝readxl包
library(readxl)  #加載readxl包
library(UpSetR)

讀入數(shù)據(jù)并對數(shù)據(jù)做簡單處理

讀入3組匯總數(shù)據(jù)

data<-read_excel("venn.xls",4)    #讀入excel數(shù)據(jù)
data<-as.data.frame(data) # 將data轉(zhuǎn)換為data.frame格式
data[is.na(data)]<- 0 #將NA值替換為0
X=list(IFN = data$IFN,TNF = data$TNF,IL4 = data$IL4) #將3組數(shù)據(jù)匯總成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

更多內(nèi)容可關(guān)注公共號“YJY技能修煉”~~~

往期回顧
R繪圖|ggplot2火山圖的繪制
R繪圖|ggplot2散點圖的繪制
R繪圖|pheatmap熱圖繪制——基礎(chǔ)篇
R繪圖|pheatmap熱圖繪制——中階篇
R繪圖|pheatmap熱圖繪制——高階篇

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。