gatk-3.8/R/plotting_library.R

54 lines
1.5 KiB
R
Raw Normal View History

#!/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)
}