tests_not_run/test-upset.R

set.seed(123)
lt = list(a = sample(letters, 10),
	      b = sample(letters, 15),
	      c = sample(letters, 20))

m = make_comb_mat(lt)
t(m)
set_name(m)
comb_name(m)
set_size(m)
comb_size(m)
lapply(comb_name(m), function(x) extract_comb(m, x))
UpSet(m)
UpSet(m, comb_col = c(rep(2, 3), rep(3, 3), 1))
UpSet(t(m))

set_name(t(m))
comb_name(t(m))
set_size(t(m))
comb_size(t(m))
lapply(comb_name(t(m)), function(x) extract_comb(t(m), x))

m = make_comb_mat(lt, mode = "intersect")
lapply(comb_name(m), function(x) extract_comb(m, x))
UpSet(m)

m = make_comb_mat(lt, mode = "union")
lapply(comb_name(m), function(x) extract_comb(m, x))
UpSet(m)


movies <- read.csv(system.file("extdata", "movies.csv", package = "UpSetR"), 
    header = T, sep = ";")
m = make_comb_mat(movies, top_n_sets = 6)
t(m)
set_name(m)
comb_name(m)
set_size(m)
comb_size(m)
lapply(comb_name(m), function(x) extract_comb(m, x))

set_name(t(m))
comb_name(t(m))
set_size(t(m))
comb_size(t(m))
lapply(comb_name(t(m)), function(x) extract_comb(t(m), x))

UpSet(m)
UpSet(t(m))

m = make_comb_mat(movies, top_n_sets = 6, mode = "intersect")
m = make_comb_mat(movies, top_n_sets = 6, mode = "union")


library(circlize)
library(GenomicRanges)
lt = lapply(1:4, function(i) generateRandomBed())
lt = lapply(lt, function(df) GRanges(seqnames = df[, 1], ranges = IRanges(df[, 2], df[, 3])))
names(lt) = letters[1:4]
m = make_comb_mat(lt)


set.seed(123)
lt = list(a = sample(letters, 10),
	      b = sample(letters, 15),
	      c = sample(letters, 20))
v = gplots::venn(lt, show.plot = FALSE)
rownames(v) = apply(v[, -1], 1, paste, collapse = "")
m = make_comb_mat(lt)
cs = structure(comb_size(m), names = comb_name(m))

library(testthat)
test_that("test to the output from gplots::venn", {
	expect_that(cs[["111"]], equals(v["111", 1]))
	expect_that(cs[["110"]], equals(v["110", 1]))
	expect_that(cs[["101"]], equals(v["101", 1]))
	expect_that(cs[["011"]], equals(v["011", 1]))
	expect_that(cs[["100"]], equals(v["100", 1]))
	expect_that(cs[["010"]], equals(v["010", 1]))
	expect_that(cs[["001"]], equals(v["001", 1]))
})

m = make_comb_mat(lt, mode = "intersect")
cs = structure(comb_size(m), names = comb_name(m))
test_that("test to the output from gplots::venn", {
	expect_that(cs[["111"]], equals(v["111", 1]))
	expect_that(cs[["110"]], equals(v["110", 1] + v["111", 1]))
	expect_that(cs[["101"]], equals(v["101", 1] + v["111", 1]))
	expect_that(cs[["011"]], equals(v["011", 1] + v["111", 1]))
	expect_that(cs[["100"]], equals(v["100", 1] + v["110", 1] + v["101", 1] + v["111", 1]))
	expect_that(cs[["010"]], equals(v["010", 1] + v["110", 1] + v["111", 1] + v["011", 1]))
	expect_that(cs[["001"]], equals(v["001", 1] + v["111", 1] + v["101", 1] + v["011", 1]))
})

m = make_comb_mat(lt, mode = "union")
cs = structure(comb_size(m), names = comb_name(m))
test_that("test to the output from gplots::venn", {
	expect_that(cs[["111"]], equals(sum(v[, 1])))
	expect_that(cs[["110"]], equals(sum(v[, 1]) - v["001", 1]))
	expect_that(cs[["101"]], equals(sum(v[, 1]) - v["010", 1]))
	expect_that(cs[["011"]], equals(sum(v[, 1]) - v["100", 1]))
	expect_that(cs[["100"]], equals(v["100", 1] + v["101", 1] + v["110", 1] + v["111", 1]))
	expect_that(cs[["010"]], equals(v["010", 1] + v["110", 1] + v["011", 1] + v["111", 1]))
	expect_that(cs[["001"]], equals(v["001", 1] + v["101", 1] + v["011", 1] + v["111", 1]))
})

m = make_comb_mat(lt)
cs = comb_size(m)
test_that("test comb_size and extract_comb", {
	expect_that(cs, equals(unname(sapply(comb_name(m), function(nm) length(extract_comb(m, nm))))))
})



movies <- read.csv(system.file("extdata", "movies.csv", package = "UpSetR"), 
    header = T, sep = ";")
genre = c("Action", "Romance", "Horror", "Children", "SciFi", "Documentary")
rate = cut(movies$AvgRating, c(0, 1, 2, 3, 4, 5))
m_list = tapply(seq_len(nrow(movies)), rate, function(ind) {
	make_comb_mat(movies[ind, genre, drop = FALSE])
})
m_list2 = normalize_comb_mat(m_list)

lapply(m_list2, set_name)
lapply(m_list2, set_size)
lapply(m_list2, comb_name)
lapply(m_list2, comb_size)

lapply(1:length(m_list), function(i) {
	n1 = comb_name(m_list[[i]])
	x1 = comb_size(m_list[[i]])
	n2 = comb_name(m_list2[[i]])
	x2 = comb_size(m_list2[[i]])
	l = n2 %in% n1
	x2[!l]
})
zhongmicai/complexHeatmap documentation built on May 7, 2019, 6:11 a.m.