基因组组装数据分析

你知道韦恩图管谁叫大哥不?

2020-09-24  本文已影响0人  小洁忘了怎么分身

临近国庆节啦,花花9月19号上完了9月的线上课,飞回自己家里当废物啦(不要问我为什么不带豆豆,回家当废物怎么能带豆豆呢,带了豆豆还怎么当废物呢)何况豆豆是一个要按时按点上班的人,不像我,时间自由,地点自由,只要完成了工作任务,老板不管我在哪儿~所以只要我胆子大,天天都放假,不建议大家轻易尝试,因为有的公司旷工三天就要开除啦!(在危险的边缘疯狂试探) 言归正传!upsetplot是进阶版的韦恩图,用于展示多个向量间交集的数量。仔细看一下图,会看懂的。

1.准备R包和数据

library(UpSetR)
x = paste0("gene",1:600)
g = list(g1 = sample(x,450),
         g2 = sample(x,400),
         g3 = sample(x,430),
         g4 = sample(x,410),
         g5 = sample(x,200))
lapply(g,head,3)
## $g1
## [1] "gene457" "gene441" "gene409"
## 
## $g2
## [1] "gene94"  "gene321" "gene313"
## 
## $g3
## [1] "gene382" "gene178" "gene576"
## 
## $g4
## [1] "gene245" "gene69"  "gene535"
## 
## $g5
## [1] "gene403" "gene138" "gene60"

2.极简出图

upset(fromList(g), order.by = "freq")

3.标注出重点关注对象

函数设计的可读性有点……嗯。下面让我们荡起双桨,把所有五个向量的交集那一列标出来。

upset(fromList(g), order.by = "freq",
      queries = list(list(query = intersects,
                          params = list("g1","g2","g3","g4","g5"),
                          color = "darkred",
                          active = T)))

可以标出任意想标的列,几列都可

upset(fromList(g), order.by = "freq",
      queries = list(list(query = intersects,
                          params = list("g2","g3"),
                          color = "purple",
                          active = T),
                     list(query = intersects,
                          params = list("g1","g3","g5"),
                          color = "darkred",
                          active = T)))

4.保持原来的分组顺序

默认按照每个集合数据量大小来排序。我觉得不是很顺眼。可以用sets参数指定顺序,但我发现顺序默认从下往上。也就是说你想要从上向下依次是g1~g5,就必须写成:

rev(names(g))
## [1] "g5" "g4" "g3" "g2" "g1"
upset(fromList(g), 
      order.by = "freq",
      sets = rev(names(g)),
      keep.order = T,
      queries = list(list(query = intersects,
                          params = list("g2","g3"),
                          color = "purple",
                          active = T),
                     list(query = intersects,
                          params = list("g1","g3","g5"),
                          color = "darkred",
                          active = T)))
上一篇下一篇

猜你喜欢

热点阅读