Mercurial > repos > iuc > ggupset
comparison upset.R @ 0:889d574acce8 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:52:54 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:889d574acce8 |
|---|---|
| 1 library(tidyverse) | |
| 2 library(ggupset) | |
| 3 | |
| 4 args <- commandArgs(trailingOnly = TRUE) | |
| 5 n_int <- as.integer(args[1]) | |
| 6 x_lab <- as.character(args[2]) | |
| 7 y_lab <- as.character(args[3]) | |
| 8 width <- as.integer(args[4]) | |
| 9 height <- as.integer(args[5]) | |
| 10 files <- tail(args, -5) | |
| 11 | |
| 12 # gene, (list of matching conditions) | |
| 13 data <- list() | |
| 14 for (idx in seq_along(files)) { | |
| 15 k <- files[idx] | |
| 16 data[k] <- read_tsv(k, col_names = c("genes")) | |
| 17 } | |
| 18 | |
| 19 all_genes <- c() | |
| 20 for (gene_list in data){ | |
| 21 for (gene in gene_list){ | |
| 22 all_genes <- append(all_genes, gene) | |
| 23 } | |
| 24 } | |
| 25 all_genes <- unique(sort(all_genes)) | |
| 26 | |
| 27 trans <- tibble(gene = character(), files = character()) | |
| 28 for (gene_idx in seq_along(all_genes)) { | |
| 29 gene <- all_genes[gene_idx] | |
| 30 files <- names(data)[grep(gene, data)] | |
| 31 files <- paste(files, sep = ",", collapse = ",") | |
| 32 trans <- trans %>% add_row(gene = gene, files = files) | |
| 33 } | |
| 34 | |
| 35 write_tsv(trans, "upset.tsv") | |
| 36 trans$f <- str_split(trans$files, ",") | |
| 37 | |
| 38 pl <- trans %>% ggplot(aes(x = f)) + geom_bar() + | |
| 39 scale_x_upset(n_intersections = n_int, order_by = "freq") + | |
| 40 xlab(x_lab) + ylab(y_lab) | |
| 41 ggsave("upset-freq.png", width = width, height = height, units = "px") | |
| 42 pl <- trans %>% ggplot(aes(x = f)) + geom_bar() + | |
| 43 scale_x_upset(n_intersections = n_int, order_by = "degree") + | |
| 44 xlab(x_lab) + ylab(y_lab) | |
| 45 ggsave("upset-degree.png", width = width, height = height, units = "px") |
