diff selection.R @ 6:7dc6ce39fb89 default tip

add selection tool
author blanck
date Wed, 29 Apr 2015 10:08:52 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/selection.R	Wed Apr 29 10:08:52 2015 +0200
@@ -0,0 +1,75 @@
+args<-commandArgs(TRUE)
+
+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]
+
+
+library(MPAgenomics)
+library(glmnet)
+library(spikeslab)
+library(lars)
+workdir=file.path(tmp_dir, "mpagenomics",user)
+setwd(workdir)
+
+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)
+	}
+
+	
+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)
+		} else {
+			res=markerSelection(input,dataResponse, chromosome=chrom_vec,signal=signal,normalTumorArray=tumor, loss=loss, plot=plot, nbFolds=fold,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)
+		} else {
+  		res=markerSelection(input,dataResponse, chromosome=chrom_vec, signal=signal, loss=loss, plot=plot, nbFolds=fold,pkg=package)
+		}
+}
+
+res
+
+df=data.frame()
+list_chr=names(res)
+markerSelected=FALSE
+
+for (i in list_chr) {
+  chr_data=res[[i]]
+  len=length(chr_data$markers.index)
+  if (len != 0)
+  {
+	markerSelected=TRUE
+	chrdf=data.frame(rep(i,len),chr_data$markers.position,chr_data$markers.index,chr_data$markers.names,chr_data$coefficient)
+  	df=rbind(df,chrdf)
+  }
+}
+
+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")
+} else 
+	writeLines("no SNP selected", output)
+
+