diff selectionExtracted.R @ 0:4d539083cf7f draft

planemo upload for repository https://github.com/sblanck/MPAgenomics4Galaxy/tree/master/mpagenomics_wrappers commit 689d0d8dc899a683ee18700ef385753559850233-dirty
author sblanck
date Tue, 12 May 2020 10:40:36 -0400
parents
children 3fcbb8030fcc
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/selectionExtracted.R	Tue May 12 10:40:36 2020 -0400
@@ -0,0 +1,89 @@
+#!/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("--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("--loss",type="character",default=NULL, dest="loss"),
+		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")
+);
+
+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
+
+
+input=opt$input
+response=opt$response
+output=opt$output
+tmp_dir=opt$new_file_path
+nbFolds=as.numeric(opt$folds)
+loss=opt$loss
+log=opt$log
+outputlog=opt$outputlog
+
+
+#args<-commandArgs(TRUE)
+#
+#input=args[1]
+#response=args[2]
+#tmp_dir=args[3]
+#nbFolds=as.numeric(args[4])
+#loss=args[5]
+#output=args[6]
+
+library(MPAgenomics)
+workdir=file.path(tmp_dir, "mpagenomics")
+setwd(workdir)
+
+if (outputlog){
+	sinklog <- file(log, open = "wt")
+	sink(sinklog ,type = "output")
+	sink(sinklog, type = "message")
+} 
+
+CN=read.table(input,header=TRUE,check.names=FALSE)
+drops=c("chromosome","position","probeName")
+CNsignal=CN[,!(names(CN)%in% drops)]
+samples=names(CNsignal)
+CNsignalMatrix=t(data.matrix(CNsignal))
+resp=read.table(response,header=TRUE,sep=",")
+listOfFile=resp[[1]]
+responseValue=resp[[2]]
+index = match(listOfFile,rownames(CNsignalMatrix))
+responseValueOrder=responseValue[index]
+
+result=variableSelection(CNsignalMatrix,responseValueOrder,nbFolds=nbFolds,loss=loss,plot=TRUE)
+
+CNsignalResult=CN[result$markers.index,(names(CN)%in% drops)]
+
+CNsignalResult["coefficient"]=result$coefficient
+CNsignalResult["index"]=result$markers.index
+
+if (outputlog){
+	sink(type="output")
+	sink(type="message")
+	close(sinklog)
+} 
+
+#sink(output)
+#print(format(CNsignalResult),row.names=FALSE)
+#sink()
+write.table(CNsignalResult,output,row.names = FALSE, quote=FALSE, sep = "\t")