Mercurial > repos > artbio > small_rna_signatures
view signature.r @ 13:124f404b0fe7 draft
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_signatures commit bc672cf9d5fe9c1f7eaf02abdc906cf2c1763668
author | artbio |
---|---|
date | Sat, 25 Feb 2023 09:54:28 +0000 |
parents | aa5e2c64dff8 |
children | 5150d641d515 |
line wrap: on
line source
## Setup R error handling to go to stderr options(show.error.messages = FALSE, error = function() { cat(geterrmessage(), file = stderr()) q("no", 1, FALSE) } ) warnings() library(RColorBrewer) library(lattice) library(latticeExtra) library(grid) library(gridExtra) library(optparse) option_list <- list( make_option("--h_dataframe", type = "character", help = "path to h-signature dataframe"), make_option("--z_dataframe", type = "character", help = "path to z-signature dataframe"), make_option("--plot_method", type = "character", help = "How data should be plotted (global or lattice)"), make_option("--pdf", type = "character", help = "path to the pdf file with plots"), make_option("--title", type = "character", help = "Graph Title") ) parser <- OptionParser(usage = "%prog [options] file", option_list = option_list) args <- parse_args(parser) # data frames implementation h_dataframe <- read.delim(args$h_dataframe, header = FALSE) colnames(h_dataframe) <- c("chrom", "overlap", "sig", "z-score") h_dataframe$sig <- h_dataframe$sig * 100 # to get probs in % z_dataframe <- read.delim(args$z_dataframe, header = FALSE) colnames(z_dataframe) <- c("chrom", "overlap", "sig", "z-score") # functions globalgraph <- function() { pdf(args$pdf) par(mfrow = c(2, 2), oma = c(0, 0, 3, 0)) plot(z_dataframe[z_dataframe$chrom == "all_chromosomes", c(2, 3)], type = "h", main = "Numbers of pairs", cex.main = 1, xlab = "overlap (nt)", ylab = "Numbers of pairs", col = "darkslateblue", lwd = 4) plot(z_dataframe[z_dataframe$chrom == "all_chromosomes", c(2, 4)], type = "l", main = "Number of pairs Z-scores", cex.main = 1, xlab = "overlap (nt)", ylab = "z-score", pch = 19, cex = 0.2, col = "darkslateblue", lwd = 2) plot(h_dataframe[h_dataframe$chrom == "all_chromosomes", c(2, 3)], type = "l", main = "Overlap probabilities", cex.main = 1, xlab = "overlap (nt)", ylab = "Probability [%]", ylim = c(0, 50), pch = 19, col = "darkslateblue", lwd = 2) plot(h_dataframe[h_dataframe$chrom == "all_chromosomes", c(2, 4)], type = "l", main = "Overlap Probability Z-scores", cex.main = 1, xlab = "overlap (nt)", ylab = "z-score", pch = 19, cex = 0.2, col = "darkslateblue", lwd = 2) mtext(args$title, outer = TRUE, cex = 1) dev.off() } treillisgraph <- function(df, ...) { pdf(args$pdf, paper = "special", height = 11.69, width = 6) p <- xyplot(sig ~ overlap | factor(method, levels = unique(method)) + chrom, data = df, type = "l", col = "darkblue", cex = 0.5, scales = list(y = list(tick.number = 4, relation = "free", cex = 0.6, rot = 0), x = list(cex = 0.6, alternating = FALSE)), xlab = "Overlap", ylab = "signature (Nbr of pairs / Overlap prob.)", main = args$title, par.strip.text = list(cex = .5), pch = 19, lwd = 2, as.table = TRUE, layout = c(2, 12), newpage = TRUE, ...) plot(p) dev.off() } # main if (args$plot_method == "global") { globalgraph() } if (args$plot_method == "lattice") { # rearrange dataframes h_sig <- h_dataframe[, c(1, 2, 3)] h_sig <- cbind(rep("Overlap Prob (%)", length(h_sig[, 1])), h_sig) colnames(h_sig) <- c("method", "chrom", "overlap", "sig") z_pairs <- z_dataframe[, c(1, 2, 3)] z_pairs <- cbind(rep("Nbr of pairs", length(z_pairs[, 1])), z_pairs) colnames(z_pairs) <- c("method", "chrom", "overlap", "sig") lattice_df <- rbind(z_pairs, h_sig) par_settings_treillis <- list(strip.background = list( col = c("lightblue", "lightgreen"))) treillisgraph(lattice_df, par.settings = par_settings_treillis) }