多组基因差异表达后如何进行Veen,这时可以用到Upset

安装包

1
BiocManager::install(c('UpSetR','dplyr','tidyr'))

输入文件

image-20211215201102881

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
rm(list=ls())
library(UpSetR)
library(dplyr)
library(tidyr)
library(openxlsx)
# 读取6个分组的差异分析结果
DEG_DESeq2_Heart_vs_Fat = read.xlsx("condition_Heart_vs_Fat_FC_2_Padj0.05.xlsx",sheet = 1)
DEG_DESeq2_Liver_vs_Fat = read.xlsx("condition_Liver_vs_Fat_FC_2_Padj0.05.xlsx",sheet = 1)
DEG_DESeq2_Spleen_vs_Fat = read.xlsx("condition_Spleen_vs_Fat_FC_2_Padj0.05.xlsx",sheet = 1)
DEG_DESeq2_Lung_vs_Fat = read.xlsx("condition_Lung_vs_Fat_FC_2_Padj0.05.xlsx",sheet = 1)
DEG_DESeq2_Kidney_vs_Fat = read.xlsx("condition_Kidney_vs_Fat_FC_2_Padj0.05.xlsx",sheet = 1)
DEG_DESeq2_Muscle_vs_Fat = read.xlsx("condition_Muscle_vs_Fat_FC_2_Padj0.05.xlsx",sheet = 1)
ls()

# 提取所有差异表达的基因名

DEG_DESeq2_Muscle_vs_Fat <- DEG_DESeq2_Muscle_vs_Fat[DEG_DESeq2_Muscle_vs_Fat$Change!="Stable",1] #提取差异表达组,去除不显著的Stable
DEG_DESeq2_Muscle_vs_Fat = na.omit(DEG_DESeq2_Muscle_vs_Fat) #由于表达值有NA,去除NA 如果没有NA可省略
DEG_DESeq2_Liver_vs_Fat <- DEG_DESeq2_Liver_vs_Fat[DEG_DESeq2_Liver_vs_Fat$Change!="Stable",1]
DEG_DESeq2_Liver_vs_Fat = na.omit(DEG_DESeq2_Liver_vs_Fat)
DEG_DESeq2_Spleen_vs_Fat <- DEG_DESeq2_Spleen_vs_Fat[DEG_DESeq2_Spleen_vs_Fat$Change!="Stable",1]
DEG_DESeq2_Spleen_vs_Fat = na.omit(DEG_DESeq2_Spleen_vs_Fat)
DEG_DESeq2_Lung_vs_Fat <- DEG_DESeq2_Lung_vs_Fat[DEG_DESeq2_Lung_vs_Fat$Change!="Stable",1]
DEG_DESeq2_Lung_vs_Fat = na.omit(DEG_DESeq2_Lung_vs_Fat)
DEG_DESeq2_Kidney_vs_Fat <- DEG_DESeq2_Kidney_vs_Fat[DEG_DESeq2_Kidney_vs_Fat$Change!="Stable",1]
DEG_DESeq2_Kidney_vs_Fat = na.omit(DEG_DESeq2_Kidney_vs_Fat)
DEG_DESeq2_Heart_vs_Fat <- DEG_DESeq2_Heart_vs_Fat[DEG_DESeq2_Heart_vs_Fat$Change!="Stable",1]
DEG_DESeq2_Heart_vs_Fat = na.omit(DEG_DESeq2_Heart_vs_Fat)


data <- list(Heart_vs_Fat = DEG_DESeq2_Heart_vs_Fat,
Kidney_vs_Fat = DEG_DESeq2_Kidney_vs_Fat,
Lung_vs_Fat = DEG_DESeq2_Lung_vs_Fat,
Spleen_vs_Fat = DEG_DESeq2_Spleen_vs_Fat,
Liver_vs_Fat = DEG_DESeq2_Liver_vs_Fat,
Muscle_vs_Fat = DEG_DESeq2_Muscle_vs_Fat)

#作图
#nsets: 最多展示多少个集合数据。
#nintersects: 展示多少交集。
#mb.ratio: 点点图和条形图的比例。
#order.by: 交集如何排序。这里先根据freq,然后根据degree
#decreasing: 变量如何排序。这里表示freq降序,degree升序

upset(fromList(data),nsets = 6, order.by = "freq")

setsBarColors <-c('#EA4335', '#FBBC05', '#34A853', '#4285F4', '#F0E68C', '#BC8F8F')
p = upset(fromList(data), nsets = 6, order.by = c("freq", "degree"), decreasing = c(TRUE,FALSE),
sets.bar.color=setsBarColors,
queries = list(#如果有需要标注的颜色,就在list后面按格式加就是了
list(
query = intersects,
params = list("Muscle_vs_Fat", "Liver_vs_Fat", "Heart_vs_Fat"),
color = "#DA70D6",
active = T),
list(
query = intersects,
params = list("Muscle_vs_Fat", "Liver_vs_Fat"),
color = "#FFA500",
active = T),
list(
query = intersects,
params = list("Muscle_vs_Fat"),
color = "#4169E1"),
list(
query = intersects,
params = list("Muscle_vs_Fat"),
color = "#F0E68C"),
list(
query = intersects,
params = list("Muscle_vs_Fat"),
color = "#D2B48C")
)
)

tiff(file = "UPset_veen.tiff",width = 10,height =6,units = "in",res = 300,pointsize = 6)
print(p)
dev.off()