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)