美文网首页
R-韦恩图系列-UpSetR

R-韦恩图系列-UpSetR

作者: 小贝学生信 | 来源:发表于2021-11-01 15:07 被阅读0次

R-韦恩图系列-ggVennDiagram - 简书 (jianshu.com)
R-韦恩图系列-VennDiagram - 简书 (jianshu.com)
R-韦恩图系列-UpSetR - 简书 (jianshu.com)

当可视化多个(>5)集合的交集情况时,传统韦恩图的效果就比较复杂,不够直观。UpSetR包可进行相对更加高效的展示,而且用法也很简单。
参考:https://cran.r-project.org/web/packages/UpSetR/vignettes/

# install.packages("UpSetR")
library(UpSetR)
  • upset()绘图函数默认接受的集合对象为表格;如果我们提供为list,包装在fromList()函数内部即可
genes <- paste0("gene",1:1000)
set.seed(202111001)
gene_list <- list(set_A = sample(genes,100),
                  set_B = sample(genes,200),
                  set_C = sample(genes,300),
                  set_D = sample(genes,200),
                  set_E = sample(genes,300),
                  set_F = sample(genes,300))
upset(fromList(gene_list))

如上图分为三个部分

1.1、左下角:为原始各个集合大小的柱状图

默认选择Size Top 5的集合,其次集合排列顺序从上到下为size从小到大的顺序

  • nsets =参数可以设置展示集合的数目;
  • sets = 可以直接指定选择哪些set集合纳入分析;keep.order = F参数可以设置是否按照提供数据的集合顺序展示;
upset(fromList(gene_list), 
      sets = names(gene_list), keep.order = TRUE)

2、右上角:各组排列组合的交集数目柱状图展示

  • 如上图,纳入6种集合应该有很多种交集可能,但是默认最多展示40种intersect。
    nintersects可指定展示的intersect 种类数,如果设置为nintersects = NA则展示所有的可能组合。
    另外默认不会展示size为0的intersect,可通过设置empty.intersections = "on"进行展示
upset(fromList(gene_list), sets = names(gene_list),
      nintersects =NA, empty.intersections = "on")

  • 选取的标准默认是首先按照 intersect 构成集合数由低到高,然后再按照intersect size由高到低(即group.by = "degree", 如果group.by = "sets"则表示按照集合组成排序)。
upset(movies, group.by = "sets", cutoff = 3)

order.by = "freq" 表示仅按照intersect size由高到低排序;order.by = "degree" 表示仅按照intersect 来源集合数由高到低排序;另外可进一步配合decreasing参数设置是否逆序。
参数表示

upset(fromList(gene_list), order.by = "freq", decreasing = F)

3 格式设置

upset(fromList(gene_list), 
      number.angles = 30,  
      point.size = 3.5, #左下角的点
      line.size = 2, #左下角的线
      mainbar.y.label = "Gene Sets Intersections", 
      sets.x.label = "Genes Per Set",
      mb.ratio = c(0.7, 0.3),
      text.scale = c(1.5, 1.1, 1.5, 1, 1.2, 1.5)) #见下图箭头
      #intersection size title, intersection size tick labels, 
      #set size title, set size tick labels, 
      #set names, numbers above bars)

以上是UpSetR的基础用法,此外还提供了三种高级作图技巧,下面仅展示效果,具体有需要时再学习。

[1] query 注释 感兴趣的intersect
[2] Attribute Plots
[3] Set Metadata

相关文章

网友评论

      本文标题:R-韦恩图系列-UpSetR

      本文链接:https://www.haomeiwen.com/subject/iwyzaltx.html