Mercurial > repos > sblanck > mpagenomics_wrappers
diff selection.R @ 8:d5ed62b4d3ac draft default tip
planemo upload for repository https://github.com/sblanck/MPAgenomics4Galaxy/tree/master/mpagenomics_wrappers commit 689d0d8dc899a683ee18700ef385753559850233
author | sblanck |
---|---|
date | Tue, 12 May 2020 13:40:07 +0000 |
parents | af4f63f27c77 |
children |
line wrap: on
line diff
--- a/selection.R Fri Apr 10 13:32:59 2020 +0000 +++ b/selection.R Tue May 12 13:40:07 2020 +0000 @@ -1,26 +1,71 @@ -args<-commandArgs(TRUE) +#!/usr/bin/env Rscript +# setup R error handling to go to stderr +options( show.error.messages=F, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } ) + +# we need that to not crash galaxy with an UTF8 error on German LC settings. +loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") + +library("optparse") + +##### Read options +option_list=list( + make_option("--chrom",type="character",default=NULL, dest="chrom"), + make_option("--input",type="character",default=NULL, dest="input"), + make_option("--output",type="character",default=NULL, dest="output"), + make_option("--new_file_path",type="character",default=NULL, dest="new_file_path"), + make_option("--response",type="character",default=NULL, dest="response"), + make_option("--settingsType",type="character",default=NULL, dest="settingsType"), + make_option("--outputgraph",type="character",default=NULL, dest="outputgraph"), + make_option("--settingsSnp",type="character",default=NULL, dest="settingsSnp"), + make_option("--settingsSignal",type="character",default=NULL, dest="settingsSignal"), + make_option("--settingsLoss",type="character",default=NULL, dest="settingsLoss"), + make_option("--pdffigures",type="character",default=NULL, dest="pdffigures"), + make_option("--folds",type="character",default=NULL, dest="folds"), + make_option("--outputlog",type="character",default=NULL, dest="outputlog"), + make_option("--log",type="character",default=NULL, dest="log"), + make_option("--userId",type="character",default=NULL, dest="userid"), + make_option("--settingsPackage",type="character",default=NULL, dest="settingsPackage") +); -input=args[1] -dataResponse=args[2] -chrom=args[3] -tmp_dir=args[4] -signal=args[5] -snp=type.convert(args[6]) -settingsType=args[7] -tumor=args[8] -fold=as.integer(args[9]) -loss=args[10] -plot=type.convert(args[11]) -output=args[12] -user=args[13] -package=args[14] +opt_parser = OptionParser(option_list=option_list); +opt = parse_args(opt_parser); + +if(is.null(opt$input)){ + print_help(opt_parser) + stop("input required.", call.=FALSE) +} + +#loading libraries + + +chrom=opt$chrom +dataset=opt$input +dataResponse=opt$response +output=opt$output +tmp_dir=opt$new_file_path +signal=opt$settingsSignal +settingsType=opt$settingsType +outputfigures=type.convert(opt$outputgraph) +snp=type.convert(opt$settingsSnp) +user=opt$userid +folds=as.numeric(opt$folds) +loss=opt$settingsLoss +log=opt$log +outputlog=opt$outputlog +outputgraph=opt$outputgraph +pdffigures=opt$pdffigures +package=opt$settingsPackage library(MPAgenomics) library(glmnet) library(spikeslab) library(lars) + +inputDataset=read.table(file=dataset,stringsAsFactors=FALSE) +input=inputDataset[1,2] workdir=file.path(tmp_dir, "mpagenomics",user) +print(workdir) setwd(workdir) if (grepl("all",tolower(chrom)) | chrom=="None") { @@ -31,18 +76,23 @@ chrom_vec <- as.numeric(chrom_vecstring) } - +if (outputlog){ + sinklog <- file(log, open = "wt") + sink(sinklog ,type = "output") + sink(sinklog, type = "message") +} + if (settingsType == "tumor") { if (signal=="CN") { - res=markerSelection(input,dataResponse, chromosome=chrom_vec, signal=signal, normalTumorArray=tumor, onlySNP=snp, loss=loss, plot=plot, nbFolds=fold, pkg=package) + res=markerSelection(input,dataResponse, chromosome=chrom_vec, signal=signal, normalTumorArray=tumor, onlySNP=snp, loss=loss, plot=outputfigures, nbFolds=folds, pkg=package) } else { - res=markerSelection(input,dataResponse, chromosome=chrom_vec,signal=signal,normalTumorArray=tumor, loss=loss, plot=plot, nbFolds=fold,pkg=package) + res=markerSelection(input,dataResponse, chromosome=chrom_vec,signal=signal,normalTumorArray=tumor, loss=loss, plot=outputfigures, nbFolds=folds,pkg=package) } } else { if (signal=="CN") { - res=markerSelection(input,dataResponse, chromosome=chrom_vec, signal=signal, onlySNP=snp, loss=loss, plot=plot, nbFolds=fold,pkg=package) + res=markerSelection(input,dataResponse, chromosome=chrom_vec, signal=signal, onlySNP=snp, loss=loss, plot=outputfigures, nbFolds=folds,pkg=package) } else { - res=markerSelection(input,dataResponse, chromosome=chrom_vec, signal=signal, loss=loss, plot=plot, nbFolds=fold,pkg=package) + res=markerSelection(input,dataResponse, chromosome=chrom_vec, signal=signal, loss=loss, plot=outputfigures, nbFolds=folds,pkg=package) } } @@ -63,12 +113,22 @@ } } +if (outputgraph){ + file.rename(file.path(tmp_dir,"mpagenomics",user,"Rplots.pdf"), pdffigures) +} + +if (outputlog){ + sink(type="output") + sink(type="message") + close(sinklog) +} + if (markerSelected) { colnames(df) <- c("chr","position","index","names","coefficient") - sink(output) - print(format(df),row.names=FALSE) - sink() - #write.table(df,output,row.names = FALSE, quote = FALSE, sep = "\t") + #sink(output) + #print(format(df),row.names=FALSE) + #sink() + write.table(df,output,row.names = FALSE, quote = FALSE, sep = "\t") } else writeLines("no SNP selected", output)