3

我有四组 A、B、C 和 D,如下所示:

A <- c("ENSG00000103472", "ENSG00000130600", "ENSG00000177335", "ENSG00000177337", 
"ENSG00000178977", "ENSG00000180139", "ENSG00000180539", "ENSG00000187621", 
"ENSG00000188511", "ENSG00000197099", "ENSG00000203446", "ENSG00000203739", 
"ENSG00000203804", "ENSG00000204261", "ENSG00000204282", "ENSG00000204584", 
"ENSG00000205056", "ENSG00000205837", "ENSG00000206337", "ENSG00000213057")

B <- c("ENSG00000146521", "ENSG00000165511", "ENSG00000174171", "ENSG00000176659", 
"ENSG00000179428", "ENSG00000179840", "ENSG00000180539", "ENSG00000204261", 
"ENSG00000204282", "ENSG00000204949", "ENSG00000206337", "ENSG00000223534", 
"ENSG00000223552", "ENSG00000223725", "ENSG00000226252", "ENSG00000226751", 
"ENSG00000226777", "ENSG00000227066", "ENSG00000227260", "ENSG00000227403")

C <- c("ENSG00000167912", "ENSG00000168405", "ENSG00000172965", "ENSG00000177234", 
"ENSG00000177699", "ENSG00000177822", "ENSG00000179428", "ENSG00000179840", 
"ENSG00000180139", "ENSG00000181800", "ENSG00000181908", "ENSG00000183674", 
"ENSG00000189238", "ENSG00000196668", "ENSG00000196979", "ENSG00000197301", 
"ENSG00000203446", "ENSG00000203999", "ENSG00000204261", "ENSG00000206337")

D <- c("ENSG00000122043", "ENSG00000162888", "ENSG00000167912", "ENSG00000176320", 
"ENSG00000177699", "ENSG00000179253", "ENSG00000179428", "ENSG00000179840", 
"ENSG00000180539", "ENSG00000181800", "ENSG00000185433", "ENSG00000188511", 
"ENSG00000189238", "ENSG00000197301", "ENSG00000205056", "ENSG00000205562", 
"ENSG00000213279", "ENSG00000214922", "ENSG00000215533", "ENSG00000218018")

一个upset情节给了我以下结果:

library(UpSetR)
mine <- list("A" = A,
             "B" = B,
             "C" = C,
             "D" = D)

upset(fromList(mine), keep.order = TRUE)

在此处输入图像描述

但我对查看特定集合之间的交叉点很感兴趣。A & B, A & C, A & D. 所以,我这样做如下:

upset(fromList(mine), intersections = list(list("A"),list("B"),list("C"),
                                           list("D"),list("A", "B"), 
                                           list("A", "C"),
                                           list("A", "D")), keep.order = TRUE)

在此处输入图像描述

但是,A 和 B 之间的共同点是 4,A 和 C 是 4,A 和 D 是 3。为什么上面的混乱图显示错误的数字?

如何正确显示正确的常用号码?我不想要所有集合之间的共同点。

4

1 回答 1

2

数字是对的!这个问题非常具体和复杂。

有不同的方法来计算集合的交叉点大小:

  1. “独特”模式
  2. “相交”模式
  3. “联合”模式

UpSetR 使用“不同”模式。

“相交”模式可能是用户所期望的。

ComplexHeatmap 和 ComplexUpset 包允许用户选择使用哪种模式。

我在这里找到了 Jakob Rosenthal 的充分解释https://github.com/hms-dbmi/UpSetR/issues/72特别是这张图:

在此处输入图像描述

于 2021-02-22T22:19:39.757 回答