美文网首页
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