Mercurial > repos > sblanck > mpagenomics
comparison 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 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:4d539083cf7f |
|---|---|
| 1 #!/usr/bin/env Rscript | |
| 2 # setup R error handling to go to stderr | |
| 3 options( show.error.messages=F, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } ) | |
| 4 | |
| 5 # we need that to not crash galaxy with an UTF8 error on German LC settings. | |
| 6 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") | |
| 7 | |
| 8 library("optparse") | |
| 9 | |
| 10 ##### Read options | |
| 11 option_list=list( | |
| 12 make_option("--input",type="character",default=NULL, dest="input"), | |
| 13 make_option("--output",type="character",default=NULL, dest="output"), | |
| 14 make_option("--new_file_path",type="character",default=NULL, dest="new_file_path"), | |
| 15 make_option("--response",type="character",default=NULL, dest="response"), | |
| 16 make_option("--loss",type="character",default=NULL, dest="loss"), | |
| 17 make_option("--folds",type="character",default=NULL, dest="folds"), | |
| 18 make_option("--outputlog",type="character",default=NULL, dest="outputlog"), | |
| 19 make_option("--log",type="character",default=NULL, dest="log") | |
| 20 ); | |
| 21 | |
| 22 opt_parser = OptionParser(option_list=option_list); | |
| 23 opt = parse_args(opt_parser); | |
| 24 | |
| 25 if(is.null(opt$input)){ | |
| 26 print_help(opt_parser) | |
| 27 stop("input required.", call.=FALSE) | |
| 28 } | |
| 29 | |
| 30 #loading libraries | |
| 31 | |
| 32 | |
| 33 input=opt$input | |
| 34 response=opt$response | |
| 35 output=opt$output | |
| 36 tmp_dir=opt$new_file_path | |
| 37 nbFolds=as.numeric(opt$folds) | |
| 38 loss=opt$loss | |
| 39 log=opt$log | |
| 40 outputlog=opt$outputlog | |
| 41 | |
| 42 | |
| 43 #args<-commandArgs(TRUE) | |
| 44 # | |
| 45 #input=args[1] | |
| 46 #response=args[2] | |
| 47 #tmp_dir=args[3] | |
| 48 #nbFolds=as.numeric(args[4]) | |
| 49 #loss=args[5] | |
| 50 #output=args[6] | |
| 51 | |
| 52 library(MPAgenomics) | |
| 53 workdir=file.path(tmp_dir, "mpagenomics") | |
| 54 setwd(workdir) | |
| 55 | |
| 56 if (outputlog){ | |
| 57 sinklog <- file(log, open = "wt") | |
| 58 sink(sinklog ,type = "output") | |
| 59 sink(sinklog, type = "message") | |
| 60 } | |
| 61 | |
| 62 CN=read.table(input,header=TRUE,check.names=FALSE) | |
| 63 drops=c("chromosome","position","probeName") | |
| 64 CNsignal=CN[,!(names(CN)%in% drops)] | |
| 65 samples=names(CNsignal) | |
| 66 CNsignalMatrix=t(data.matrix(CNsignal)) | |
| 67 resp=read.table(response,header=TRUE,sep=",") | |
| 68 listOfFile=resp[[1]] | |
| 69 responseValue=resp[[2]] | |
| 70 index = match(listOfFile,rownames(CNsignalMatrix)) | |
| 71 responseValueOrder=responseValue[index] | |
| 72 | |
| 73 result=variableSelection(CNsignalMatrix,responseValueOrder,nbFolds=nbFolds,loss=loss,plot=TRUE) | |
| 74 | |
| 75 CNsignalResult=CN[result$markers.index,(names(CN)%in% drops)] | |
| 76 | |
| 77 CNsignalResult["coefficient"]=result$coefficient | |
| 78 CNsignalResult["index"]=result$markers.index | |
| 79 | |
| 80 if (outputlog){ | |
| 81 sink(type="output") | |
| 82 sink(type="message") | |
| 83 close(sinklog) | |
| 84 } | |
| 85 | |
| 86 #sink(output) | |
| 87 #print(format(CNsignalResult),row.names=FALSE) | |
| 88 #sink() | |
| 89 write.table(CNsignalResult,output,row.names = FALSE, quote=FALSE, sep = "\t") |
