From 951b7a2433163dfca86d3ab4738b4d6c0bde7eb1 Mon Sep 17 00:00:00 2001 From: chartl Date: Mon, 15 Feb 2010 16:51:47 +0000 Subject: [PATCH] First of what will be an increasingly useful set of tools, compiled into one command-line runnable library -- the goal is to have one plotting library that's callable because of limitations on the number of files you can package with a GenePattern module. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2841 348d0f76-0448-11de-a6fe-93d51630548a --- R/plotting_library.R | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 R/plotting_library.R diff --git a/R/plotting_library.R b/R/plotting_library.R new file mode 100644 index 000000000..e1ffc6d31 --- /dev/null +++ b/R/plotting_library.R @@ -0,0 +1,54 @@ +#!/broad/tools/apps/R-2.6.0/bin/Rscript + +args <- commandArgs(TRUE) +fileToRead <- args[1] +functionToRun <- args[2] +functionSpecificArgs <- args[3] + +## load the function to run + +if ( funtionToRun == "PlotInterleavedRows" ) { +### PLOT INTERLEAVED ROWS FUNCTION ### +# - expects a file of the form +# +# sample_a \t 0.8 \t 0.6 \t 0.5 +# sample_a \t 0 \t 1 \t 3 +# sample_b \t 0.5 \t 0.3 \t 0.1 +# sample_b \t 1 \t 2 \t 4 +# +# and an argument string +# x_label;y_label;plot_title;base_name_for_pdf +# - end of info - +### PLOT INTERLEAVED ROWS FUNCTION ### +PlotInterleavedRows <- function(inFile,args) { + arglist = unlist(strsplit(args,";")) + xlabel = arglist[1] + ylabel = arglist[2] + title = arglist[3] + outFileBase = arglist[4] + + allPoints <- as.matrix(read.table(inFile)) + # set up colors + colors = rainbow(ncol(allPoints)-1,s=0.8,v=0.8,gamma=0.6,start=0.0,end=0.9) + styles = c(rep(1,ncol(allPoints)-1)) + evalPoints = matrix(nrow=nrow(allPoints)/2,ncol=ncol(allPoints)) + funcVal = matrix(nrow=nrow(allPoints)/2,ncol=ncol(allPoints)) + # convert to two matrices by de-interleaving and transposing + for ( i in 1:(nrow(allPoints)/2) ) { + evalPoints[i,] <- allPoints[2*i,] + funcVal[i,] <- allPoints[2*i-1,] + } + + evalPoints <- t(evalPoints) + funcVal <- t(funcVal) + # plot and put legend on + pdf(paste(outFileBase,"_rplot",".pdf",sep="")) + matplot(evalPoints,funcVal,col=colors,lty=styles,"l",xlab=xlabel,ylab=ylabel) + legend("topright",funcVal[1,],lty=styles,col=colors) + # save + dev.off() +} + +PlotInterleavedRows(fileToRead,functionSpecificArgs) + +} \ No newline at end of file