| 
0
 | 
     1 #Setup R error handling to go to stderr
 | 
| 
 | 
     2 options( show.error.messages = FALSE, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
 | 
| 
 | 
     3 
 | 
| 
 | 
     4 # we need that to not crash galaxy with an UTF8 error on German LC settings.
 | 
| 
 | 
     5 Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
 | 
| 
 | 
     6 
 | 
| 
 | 
     7 suppressMessages(library('getopt'))
 | 
| 
 | 
     8 
 | 
| 
 | 
     9 #get options, using the spec as defined by the enclosed list.
 | 
| 
 | 
    10 #we read the options from the default: commandArgs(TRUE).
 | 
| 
 | 
    11 spec = matrix(c(
 | 
| 
 | 
    12     'help' , 'h', 0, "logical",
 | 
| 
 | 
    13     'input', 'i', 1, "character",
 | 
| 
 | 
    14     'transcript', 't', 1, "character",
 | 
| 
 | 
    15     'method', 'm', 2, "character",
 | 
| 
 | 
    16     'cutoff', 'c', 2, "double",
 | 
| 
 | 
    17     'type', 'p', 2, "character",
 | 
| 
 | 
    18     'output', 'o', 1, "character"
 | 
| 
 | 
    19 ), byrow=TRUE, ncol=4);
 | 
| 
 | 
    20 
 | 
| 
 | 
    21 opt = getopt(spec);
 | 
| 
 | 
    22 
 | 
| 
 | 
    23 suppressMessages(require(RNAstr))
 | 
| 
 | 
    24 
 | 
| 
 | 
    25 #Read and convert input to GRanges object
 | 
| 
 | 
    26 data <- read.table(opt$input, header = TRUE)
 | 
| 
 | 
    27 dataGR <- norm_df2GR(data)
 | 
| 
 | 
    28 
 | 
| 
 | 
    29 #Check if given transcript exists in input file
 | 
| 
 | 
    30 if ( ! opt$transcript %in% data$RNAid ) { stop("Transript not found. Check input file.") }
 | 
| 
 | 
    31 
 | 
| 
 | 
    32 pdf(opt$output)
 | 
| 
 | 
    33 for (method in strsplit(opt$method, ",")[[1]] ) {
 | 
| 
 | 
    34 
 | 
| 
 | 
    35     #Check if columns exists in data file
 | 
| 
 | 
    36     if (! method %in% colnames(data)) { next } 
 | 
| 
 | 
    37 
 | 
| 
 | 
    38     plotRNA(dataGR, opt$transcript, method, stat_cutoff = opt$cutoff, type = opt$type,
 | 
| 
 | 
    39         main=paste(opt$transcript,": ", method, sep=""))
 | 
| 
 | 
    40 }
 | 
| 
 | 
    41 dev.off()
 |