数据集较多(超过5个)时,使用常规的韦恩图进行交集可视化时就显得捉襟见肘了。UpSetR包可以很好地解决这个问题。
UpSetR
支持两种数据形式的输入,直接命令行输入和文件形式输入。直接命令行输入也有两种形式的表达方式,一种是直接输入要比较的列表即可,另一种是输入已经计算好交互数量的值。
- 安装或者加载UpSetR包
# install.packages('UpSetR')
library(UpSetR)
- 示例数据
expressionInput <- c(one = 2, two = 1, three = 2,
`one&two` = 1, `one&three` = 4, `two&three` = 1, `one&two&three` = 2)
upset(fromExpression(expressionInput))
UpSetR_fig1.png
-
UpSetR
自带的示例文件(mutations.csv)能够很方便地帮助我们学习其支持的文件输入格式。该文件存储以逗号分隔的矩阵数据,包含100个gene的283个特性,其中“1”表示该基因有此特性,“0”表示该基因无此特性。UpSetR会计算全部基因中特性为1的交集个数。在默认情况下,UpSetR默认输出交集个数大于0的组合。
mutations <- read.csv(system.file("extdata", "mutations.csv",
package = "UpSetR"), header = T, sep = ",")
upset(mutations)
UpSetR_fig2.png
- 除了默认模式,UpSetR还支持指定需要交互的列以及输出交集个数为0的组合。
upset(mutations, sets = c("PTEN", "TP53", "EGFR", "PIK3R1", "RB1", "SPTA1"),
sets.bar.color = "red",order.by = "freq", empty.intersections = "on")
UpSetR_fig3.png
在这个示例中,我们指定了6个待交互的元素,并设置颜色为红色,同时令交互个数为0的组合也显示出来,并按照交集个数由大到小排列。
参考资料:
超过六个元素的韦恩图你就玩不转了? (微信公众号:生信草堂)
网友评论