美文网首页
UpSetR作图

UpSetR作图

作者: RaoZC | 来源:发表于2020-05-08 23:31 被阅读0次

    UpSetR的意义

    做Venn图,在4个以下有较好的效果,而花瓣图则信息量较低,现在找到一种叫做UpSetR图(是这么叫吗?看了两篇文章都是这么叫)的方法,可以很好地替代花瓣图。
    先安装

    install.package("UpsetR")
    

    安装好后,设定工作路径,读入包和数据:

    setwd("G:/工作/分析/57. 扩增子分析-蝠蛾24样本/02. 分析/ITS/03.共有特有OTU")
    library(UpSetR)
    a = read.table("UpSetR-16S.txt",header = T)
    head(a)
    

    先观察数据,就是简单的表格即可,但需要先将数据变成0-1形式。
    数据结构如下:


    数据结构

    数据输入后,即可以使用以下代码作图:

    upset(a, nsets=8,  #数据有8个组
          sets = c("ET","DT","CH","CG","BH","BG","AH","AG"), #横bar的顺序
          nintersects = 50,    #设定显示多少个竖bar
          order.by = c("freq","degree"), #柱形图按照什么排序,freq代表频率,degree代表点连接的数量
          decreasing = c("T","F"), #上面两个选项的升降选项
          keep.order = T,   #横bar的顺序,默认是按照size,如果选T则按字母
          matrix.color = "blue",  #点的颜色
          main.bar.color = "#F8766D", #竖bar颜色,#F8766D是R默认的红色,#00BFC4,#00BA38, #619CFF
          sets.bar.color = rainbow(8), #横bar颜色
          shade.alpha = 0.4, #点图中阴影深浅
          matrix.dot.alpha = 1, #灰点的透明值
          mainbar.y.label = "Shared OTU numbers", #竖bar名
          sets.x.label = "Total OTUs numbers", #横bar名
          point.size = 2.2, #点的大小
          line.size = 0.7, #线的粗细
          mb.ratio = c(0.7, 0.3), #竖bar图和点图的比例
          number.angles = 0,   #竖bar数字角度
          att.pos = "bottom",   #位置
          group.by = "degree", #数据按照“degree”或“set”来排序
          scale.intersections = "identity",  #竖bar度量方法,"identity","log10","log2"
          scale.sets = "identity",  #横bar度量方法,"identity","log10","log2"
          text.scale = 1, #字体大小
          set_size.show = TRUE, #显示横bar数字,但不能显示全,不知道怎么搞
          set_size.numbers_size = 6.5   #横bar数字大小
    )
    

    注意:用sets = c(...)修改横bar顺序的时候,要把参数keep.order 设置为“T” ,否则只会按照默认的数量大小进行排列。
    得到的结果如下:

    结果

    如果不嫌麻烦,还可以用下面命令来显示指定组合。

    intersections = list(list("AH","AG"), list("BG","BH"), list("CH","CG"), list("DT","ET"))
    

    存在的问题

    1. 横柱子太长的不能显示数字
    2. 暂时无法 随心所欲地排序柱子,例如想共有的放在第一柱,唯一的放在后面几个柱,接着便按照频率进行排序。可能有方法,但暂时没看到,再仔细研究一下。

    还有一个貌似很神奇的参数:
    set.metadata
    由于无法打开GitHub对应的说明,因此不知道怎么用。

    相关文章

      网友评论

          本文标题:UpSetR作图

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