
谢大飞
V1
2023/05/01阅读:27主题:默认主题
UpSetR绘制韦恩图
UpsetR 绘制韦恩图
安装加载需要的R包
#### 1.安装加载需要的R包
install.packages("UpSetR")
library("UpSetR")
install.packages("ggVennDiagram")
library("ggVennDiagram")
## 加载需要的剩余的R包
require(ggplot2)
require(plyr)
require(gridExtra)
require(grid)

测试数据绘图
movies <- read.csv(system.file("extdata","movies.csv",package = "UpSetR"), header = TRUE, sep=";")
upset(movies, nsets = 7, nintersects = 30, mb.ratio = c(0.5, 0.5),
order.by = "freq", decreasing = c(TRUE,FALSE),keep.order = TRUE)
upset(movies, sets = c("Action", "Adventure", "Comedy", "Drama", "Mystery",
"Thriller", "Romance", "War", "Western"), mb.ratio = c(0.55, 0.45), order.by = "freq",
keep.order = TRUE)
upset(movies, nintersects = 70, group.by = "sets", cutoff = 7)
between <- function(row, min, max){
newData <- (row["ReleaseDate"] < max) & (row["ReleaseDate"] > min)
}
upset(movies, sets=c("Drama","Comedy","Action","Thriller","Western","Documentary"),
queries = list(list(query = intersects, params = list("Drama", "Thriller")),
list(query = between, params=list(1970,1980), color="red", active=TRUE)))
upset(movies,attribute.plots=list(gridrows=60,plots=list(list(plot=scatter_plot, x="ReleaseDate", y="AvgRating"),
list(plot=scatter_plot, x="ReleaseDate", y="Watches"),list(plot=scatter_plot, x="Watches", y="AvgRating"),
list(plot=histogram, x="ReleaseDate")), ncols = 2))
input <- c(
"MAQ"=144600,
"FaSD"=16532,
"Bcftools"=283,
"GATK"=15160,
"MAQ&FaSD"=16323,
"MAQ&Bcftools"=636,
"Bcftools&GATK"=65435,
"FaSD&GATK"=33874,
"MAQ&FaSD&Bcftools"=114,
"MAQ&FaSD&GATK"=41858,
"MAQ&Bcftools&GATK"=4,
"FaSD&Bcftools&GATK"=6603,
"MAQ&FaSD&Bcftools&GATK"=8357
)
data <- fromExpression(input)
upset(data)

导入数据
分别导入需要进行可视化的差异表达分析的结果数据,并取出基因ID
导入需要分析的差异数据,并且取出需要的ID信息
雌花不同时期比较差异数据
##2.导入数据
FD2vsFD1 <- read.table("FD.lrt_St2vsSt1.DElist.txt",sep = "\t",header = TRUE)
FD2vsFD1 <- rownames(FD2vsFD1) ##取出需要的ID
head(FD2vsFD1)
FD3vsFD1 <- read.table("FD.lrt_St3vsSt1.DElist.txt",sep = "\t",header = TRUE)
FD3vsFD1 <- rownames(FD3vsFD1)
head(FD3vsFD1)
FD3vsFD2 <- read.table("FD.lrt_St3vsSt2.DElist.txt",sep = "\t",header = TRUE)
FD3vsFD2 <- rownames(FD3vsFD2)
head(FD3vsFD2)
雄花的不同时期差异数据
MD2vsMD1 <- read.table("MD.lrt_St2vsSt1.DElist.txt",sep = "\t",header = TRUE)
MD2vsMD1 <- rownames(MD2vsMD1)
head(MD2vsMD1)
MD3vsMD1 <- read.table("MD.lrt_St3vsSt1.DElist.txt",sep = "\t",header = TRUE)
MD3vsMD1 <- rownames(MD3vsMD1)
head(MD3vsMD1)
MD3vsMD2 <- read.table("MD.lrt_St3vsSt2.DElist.txt",sep = "\t",header = TRUE)
MD3vsMD2 <- rownames(MD3vsMD2)
head(MD3vsMD2)
雌雄花不同时期的对比数据
MD1vsFD1 <- read.table("FMD.lrt_St1.DElist.txt",sep = "\t",header = TRUE)
MD1vsFD1 <- rownames(MD1vsFD1)
MD2vsFD2 <- read.table("FMD.lrt_St2.DElist.txt",sep = "\t",header = TRUE)
MD2vsFD2 <- rownames(MD2vsFD2)
MD3vsFD3 <- read.table("FMD.lrt_St3.DElist.txt",sep = "\t",header = TRUE)
MD3vsFD3 <- rownames(MD3vsFD3)
venn_list_S2vS1 <- list( MD2vsMD1 = MD2vsMD1,FD2vsFD1= FD2vsFD1)

转换数据格式
UpsetR需要的是1,0格式,但是我们导入的数据之后得到的都是基因ID所以需要转换成需要的格式
#### 3. 使用list函数将所有数据整合成一个list
input <- c(
"FD2vsFD1"=FD2vsFD1,
"FD3vsFD1"=FD3vsFD1,
"FD3vsFD2"=FD3vsFD2,
"MD2vsMD1"=MD2vsMD1,
"MD3vsMD1"=MD3vsMD1,
"MD3vsMD2"=MD3vsMD2,
"MD1vsFD1"=MD1vsFD1,
"MD2vsFD2"=MD2vsFD2,
"MD3vsFD3"=MD3vsFD3
)
list <- list(FD2vsFD1=FD2vsFD1,FD3vsFD1=FD3vsFD1,FD3vsFD2=FD3vsFD2,MD2vsMD1=MD2vsMD1, MD3vsMD1=MD3vsMD1,MD3vsMD2=MD3vsMD2,MD1vsFD1=MD1vsFD1,MD2vsFD2=MD2vsFD2,MD3vsFD3=MD3vsFD3)

4. 将结果转置成UpsetR需要的数据格式
data <- fromList(list)

5.使用UpSetR进行结果可视化
upset(data,sets = c("FD2vsFD1","FD3vsFD1","FD3vsFD2","MD2vsMD1","MD3vsMD1","MD3vsMD2","MD1vsFD1","MD2vsFD2","MD3vsFD3"))

参考文章
xuzhougeng:UpSetR:集合可视化神包(https://www.jianshu.com/p/324aae3d5ea4)
欧阳松:统计多个基因列表交集并画韦恩图和Upset图(https://www.jianshu.com/p/5e94e5562378)
作者介绍

谢大飞
V1