R语言如何绘制富集气泡图

什么是富集气泡图

气泡图跟散点图相比其实就多了个点大小的维度。

气泡图总共有四个维度,x轴,y轴,点大小,点颜色。

富集气泡图就是把富集结果的ratio,Term名称,富集度或PValue,富集条目个数,映射到气泡图的四个维度上。

绘图前的数据准备

​demo数据可以在https://www.r2omics.cn/res/demodata/bubble.txt下载。

数据来源一般是富集结果。包含四列数据,Term是条目的名称,Size是指定点的大小(一般是富集到该条目的蛋白个数),Ratio是富集到该条目的蛋白个数/该条目的蛋白总个数,Enrichment是-log10(pvalue)用来指定气泡的颜色

# A tibble: 20 x 4
   Term    Size  Ratio Enrichment
   <chr>  <int>  <dbl>      <dbl>
 1 Term1    121 0.240       36.4 
 2 Term2    182 0.169       32.6 
 3 Term3    154 0.182       31.1 
 4 Term4    107 0.204       26.0 
 5 Term5     75 0.262       25.5 
 6 Term6     74 0.261       24.9 
 7 Term7     90 0.223       24.9 
 8 Term8    113 0.179       22.5 
 9 Term9    100 0.173       18.9 
10 Term10   114 0.157       18.0 
11 Term11   266 0.105       14.7 
12 Term12    89 0.144       12.1 
13 Term13   105 0.131       11.5 
14 Term14   157 0.113       11.3 
15 Term15   168 0.110       11.2 
16 Term16    99 0.128       10.4 
17 Term17   262 0.0955      10.2 
18 Term18    28 0.264       10.1 
19 Term19    38 0.208        9.97
20 Term20    38 0.207        9.90

R语言如何绘制富集气泡图

# 代码来源:https://www.r2omics.cn/
library(ggplot2)

# 读取富集气泡图数据文件
df= read.delim("https://www.r2omics.cn/res/demodata/bubble.txt")# 这里读取了网络上的demo数据,将此处换成你自己电脑里的文件

# 绘图
ggplot(df,aes(x = Ratio, 
              y = reorder(Term,Enrichment,sum), # 按照富集度大小排序
              size = Size,
              colour=Enrichment)) +
  geom_point(shape = 16) +                    # 设置点的形状
  labs(x = "Ratio", y = "Pathway")+           # 设置x,y轴的名称
  scale_colour_continuous(                    # 设置颜色图例
    name="Enrichment",                        # 图例名称
    low="green",                              # 设置颜色范围
    high="red")+
  scale_radius(                               # 设置点大小图例
    range=c(2,4),                             # 设置点大小的范围
    name="Size")+                             # 图例名称
  guides(   
    color = guide_colorbar(order = 1),        # 决定图例的位置顺序
    size = guide_legend(order = 2)
  )+
  theme_bw()                                  # 设置主题