Mercurial > repos > iuc > ggupset
diff upset.R @ 0:f005c350af7f draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ggupset commit 517bf38557204e91a3652046a9412fb635257c8f
| author | iuc |
|---|---|
| date | Sat, 17 Dec 2022 16:53:08 +0000 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upset.R Sat Dec 17 16:53:08 2022 +0000 @@ -0,0 +1,45 @@ +library(tidyverse) +library(ggupset) + +args <- commandArgs(trailingOnly = TRUE) +n_int <- as.integer(args[1]) +x_lab <- as.character(args[2]) +y_lab <- as.character(args[3]) +width <- as.integer(args[4]) +height <- as.integer(args[5]) +files <- tail(args, -5) + +# gene, (list of matching conditions) +data <- list() +for (idx in seq_along(files)) { + k <- files[idx] + data[k] <- read_tsv(k, col_names = c("genes")) +} + +all_genes <- c() +for (gene_list in data){ + for (gene in gene_list){ + all_genes <- append(all_genes, gene) + } +} +all_genes <- unique(sort(all_genes)) + +trans <- tibble(gene = character(), files = character()) +for (gene_idx in seq_along(all_genes)) { + gene <- all_genes[gene_idx] + files <- names(data)[grep(gene, data)] + files <- paste(files, sep = ",", collapse = ",") + trans <- trans %>% add_row(gene = gene, files = files) +} + +write_tsv(trans, "upset.tsv") +trans$f <- str_split(trans$files, ",") + +pl <- trans %>% ggplot(aes(x = f)) + geom_bar() + + scale_x_upset(n_intersections = n_int, order_by = "freq") + + xlab(x_lab) + ylab(y_lab) +ggsave("upset-freq.png", width = width, height = height, units = "px") +pl <- trans %>% ggplot(aes(x = f)) + geom_bar() + + scale_x_upset(n_intersections = n_int, order_by = "degree") + + xlab(x_lab) + ylab(y_lab) +ggsave("upset-degree.png", width = width, height = height, units = "px")
