diff signature.r @ 0:a35e6f9c1d34 draft

planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_signatures commit 6719543c5017d581ae012b864d7c9088f0767fc8
author artbio
date Mon, 28 Aug 2017 09:29:47 -0400
parents
children 8d3ca9652a5b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/signature.r	Mon Aug 28 09:29:47 2017 -0400
@@ -0,0 +1,99 @@
+## Setup R error handling to go to stderr
+#options(show.error.messages=F,
+        #error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
+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=F)
+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=F)
+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 ) # 8.2677
+          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 = T,
+                   ...)
+           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)    
+}