diff segmentFracB.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/segmentFracB.R	Fri Apr 10 13:32:59 2020 +0000
+++ b/segmentFracB.R	Tue May 12 13:40:07 2020 +0000
@@ -1,14 +1,70 @@
+#!/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("--settings_type",type="character",default=NULL, dest="settingsType"),
+		make_option("--output_graph",type="character",default=NULL, dest="outputgraph"),
+		make_option("--zip_figures",type="character",default=NULL, dest="zipfigures"),
+		make_option("--settings_tumor",type="character",default=NULL, dest="settingsTypeTumor"),
+		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("--method",type="character",default=NULL, dest="method")
+);
+
+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
+
 args<-commandArgs(TRUE)
 
-chrom=args[1]
-dataset=args[2]
-output=args[3]
-tmp_dir=args[4]
-input=args[5]
-outputfigures=type.convert(args[6])
-tumorcsv=args[7]
-user=args[8]
-method=args[9]
+chrom=opt$chrom
+datasetFile=opt$input
+output=opt$output
+tmp_dir=opt$new_file_path
+input=opt$settingsType
+outputfigures=type.convert(opt$outputgraph)
+tumorcsv=opt$settingsTypeTumor
+user=opt$userid
+method=opt$method
+log=opt$log
+outputlog=opt$outputlog
+outputgraph=opt$outputgraph
+zipfigures=opt$zipfigures
+
+#chrom=opt$chrom
+#datasetFile=opt$input
+#output=opt$output
+#tmp_dir=opt$new_file_path
+#nbcall=as.numeric(opt$nbcall)
+#settingsType=opt$settingsType
+#outputfigures=type.convert(opt$outputgraph)
+#snp=type.convert(opt$snp)
+#tumorcsv=opt$settingsTypeTumor
+#cellularity=as.numeric(opt$cellularity)
+#user=opt$userid
+#method=opt$method
+#log=opt$log
+#outputlog=opt$outputlog
+#outputgraph=opt$outputgraph
+#zipfigures=opt$zipfigures
 
 library(MPAgenomics)
 workdir=file.path(tmp_dir, "mpagenomics",user)
@@ -22,22 +78,67 @@
 	chrom_vec <- as.numeric(chrom_vecstring)
 }
 
-input_tmp <- strsplit(input,",")
-input_tmp_vecstring <-unlist(input_tmp)
+
+if (outputlog){
+	sinklog <- file(log, open = "wt")
+	sink(sinklog ,type = "output")
+	sink(sinklog, type = "message")
+} 
+
+
+inputDataset=read.table(file=datasetFile,stringsAsFactors=FALSE)
+dataset=inputDataset[1,2]
+
 
 
-input_vecstring = sub("^([^.]*).*", "\\1", input_tmp_vecstring) 
+library(MPAgenomics)
+workdir=file.path(tmp_dir, "mpagenomics",user)
+setwd(workdir)
 
-if (dataset == input) {
+if (grepl("all",tolower(chrom)) | chrom=="None") {
+	chrom_vec=c(1:25)
+} else {
+	chrom_tmp <- strsplit(chrom,",")
+	chrom_vecstring <-unlist(chrom_tmp)
+	chrom_vec <- as.numeric(chrom_vecstring)
+}
+
+fig_dir = file.path("mpagenomics", user, "figures", dataset, "segmentation","fracB")
+abs_fig_dir = file.path(tmp_dir, fig_dir)
+
+if (outputgraph) {
+	if (dir.exists(abs_fig_dir)) {
+		system(paste0("rm -r ", abs_fig_dir))
+	}
+}
+
+if (input == 'dataset') {
 	segcall=segFracBSignal(dataset,chromosome=chrom_vec, normalTumorArray=tumorcsv, savePlot=outputfigures, method=method)
 	
 } else {
+	input_tmp <- strsplit(input,",")
+	input_tmp_vecstring <-unlist(input_tmp)
+	input_vecstring = sub("^([^.]*).*", "\\1", input_tmp_vecstring) 
 	segcall=segFracBSignal(dataset,chromosome=chrom_vec, normalTumorArray=tumorcsv, listOfFiles=input_vecstring, savePlot=outputfigures, method=method)
 	
 }
-sink(output)
-print(format(segcall))
-sink()
-#write.table(segcall,output,row.names = FALSE, quote=FALSE, sep = "\t")
+write.table(segcall,output,row.names = FALSE, quote=FALSE, sep = "\t")
+
+if (outputgraph) {	
+	setwd(abs_fig_dir)
+	files2zip <- dir(abs_fig_dir)
+	zip(zipfile = "figures.zip", files = files2zip)
+	file.rename("figures.zip",zipfigures)
+}
 
-quit()
+if (outputlog){
+	sink(type="output")
+	sink(type="message")
+	close(sinklog)
+} 
+
+#sink(output)
+#print(format(segcall))
+#sink()
+
+