Mercurial > repos > lecorguille > camera_annotate
diff CAMERA.r @ 9:7da9252dd983 draft
planemo upload commit 9d47e3b467dbbe0af0d90a937c5e9f2c4b958c4b
author | lecorguille |
---|---|
date | Mon, 25 Apr 2016 11:06:25 -0400 |
parents | |
children | 1c30ff90f3ae |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CAMERA.r Mon Apr 25 11:06:25 2016 -0400 @@ -0,0 +1,175 @@ +#!/usr/bin/env Rscript +# CAMERA.r version="2.2.1" + + + +# ----- PACKAGE ----- +cat("\tPACKAGE INFO\n") + +setRepositories(graphics=F, ind=31) + +#pkgs=c("xcms","batch") +pkgs=c("parallel","BiocGenerics", "Biobase", "Rcpp", "mzR", "xcms","snow","igraph","CAMERA","multtest","batch") +for(p in pkgs) { + suppressPackageStartupMessages(suppressWarnings(library(p, quietly=TRUE, logical.return=TRUE, character.only=TRUE))) + cat(p,"\t",as.character(packageVersion(p)),"\n",sep="") +} +source_local <- function(fname){ argv <- commandArgs(trailingOnly = FALSE); base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)); source(paste(base_dir, fname, sep="/")) } + +cat("\n\n"); + + + +# ----- ARGUMENTS ----- +cat("\tARGUMENTS INFO\n") + +listArguments = parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects +write.table(as.matrix(listArguments), col.names=F, quote=F, sep='\t') + +cat("\n\n"); + + +# ----- PROCESSING INFILE ----- +cat("\tINFILE PROCESSING INFO\n") + +#image is an .RData file necessary to use xset variable given by previous tools +if (!is.null(listArguments[["image"]])){ + load(listArguments[["image"]]); listArguments[["image"]]=NULL +} + +if (listArguments[["xfunction"]] %in% c("combinexsAnnos")) { + load(listArguments[["image_pos"]]) + xaP=xa + listOFlistArgumentsP=listOFlistArguments + if (exists("xsAnnotate_object")) xaP=xsAnnotate_object + + diffrepP=NULL + if (exists("diffrep")) diffrepP=diffrep + + load(listArguments[["image_neg"]]) + xaN=xa + listOFlistArgumentsN=listOFlistArguments + if (exists("xsAnnotate_object")) xaN=xsAnnotate_object + + diffrepN=NULL + if (exists("diffrep")) diffrepN=diffrep +} + + +cat("\n\n") + + +# ----- ARGUMENTS PROCESSING ----- +cat("\tARGUMENTS PROCESSING INFO\n") + +# Save arguments to generate a report +if (!exists("listOFlistArguments")) listOFlistArguments=list() +listOFlistArguments[[paste(format(Sys.time(), "%y%m%d-%H:%M:%S_"),listArguments[["xfunction"]],sep="")]] = listArguments + + +#saving the commun parameters +thefunction = listArguments[["xfunction"]] +listArguments[["xfunction"]]=NULL #delete from the list of arguments + +xsetRdataOutput = paste(thefunction,"RData",sep=".") +if (!is.null(listArguments[["xsetRdataOutput"]])){ + xsetRdataOutput = listArguments[["xsetRdataOutput"]]; listArguments[["xsetRdataOutput"]]=NULL +} + +rplotspdf = "Rplots.pdf" +if (!is.null(listArguments[["rplotspdf"]])){ + rplotspdf = listArguments[["rplotspdf"]]; listArguments[["rplotspdf"]]=NULL +} + +dataMatrixOutput = "dataMatrix.tsv" +if (!is.null(listArguments[["dataMatrixOutput"]])){ + dataMatrixOutput = listArguments[["dataMatrixOutput"]]; listArguments[["dataMatrixOutput"]]=NULL +} + +variableMetadataOutput = "variableMetadata.tsv" +if (!is.null(listArguments[["variableMetadataOutput"]])){ + variableMetadataOutput = listArguments[["variableMetadataOutput"]]; listArguments[["variableMetadataOutput"]]=NULL +} + +if (!is.null(listArguments[["new_file_path"]])){ + new_file_path = listArguments[["new_file_path"]]; listArguments[["new_file_path"]]=NULL +} + +#Import the different functions +source_local("lib.r") + +#necessary to unzip .zip file uploaded to Galaxy +#thanks to .zip file it's possible to upload many file as the same time conserving the tree hierarchy of directories + + +if (!is.null(listArguments[["zipfile"]])){ + zipfile= listArguments[["zipfile"]]; listArguments[["zipfile"]]=NULL +} + +# We unzip automatically the chromatograms from the zip files. +if (thefunction %in% c("annotatediff")) { + if(exists("zipfile") && (zipfile!="")) { + if(!file.exists(zipfile)){ + error_message=paste("Cannot access the Zip file:",zipfile,". Please, contact your administrator ... if you have one!") + print(error_message) + stop(error_message) + } + + #unzip + suppressWarnings(unzip(zipfile, unzip="unzip")) + + #get the directory name + filesInZip=unzip(zipfile, list=T); + directories=unique(unlist(lapply(strsplit(filesInZip$Name,"/"), function(x) x[1]))); + directories=directories[!(directories %in% c("__MACOSX")) & file.info(directories)$isdir] + directory = "." + if (length(directories) == 1) directory = directories + + cat("files_root_directory\t",directory,"\n") + } +} + + + +#addition of xset object to the list of arguments in the first position +if (exists("xset") != 0){ + listArguments=append(list(xset), listArguments) +} + +cat("\n\n") + + + + +# ----- PROCESSING INFO ----- +cat("\tMAIN PROCESSING INFO\n") + +#change the default display settings +pdf(file=rplotspdf, width=16, height=12) + + +if (thefunction %in% c("annotatediff")) { + results_list=annotatediff(xset=xset,listArguments=listArguments,variableMetadataOutput=variableMetadataOutput,dataMatrixOutput=dataMatrixOutput,new_file_path=new_file_path) + xa=results_list[["xa"]] + diffrep=results_list[["diffrep"]] + variableMetadata=results_list[["variableMetadata"]] + + cat("\n\n") + cat("\tXSET OBJECT INFO\n") + print(xa) +} + +if (thefunction %in% c("combinexsAnnos")) { + cAnnot=combinexsAnnos_function(xaP=xaP,xaN=xaN,listOFlistArgumentsP=listOFlistArgumentsP,listOFlistArgumentsN=listOFlistArgumentsN,diffrepP=diffrepP,diffrepN=diffrepN,convert_param=listArguments[["convert_param"]],pos=listArguments[["pos"]],tol=listArguments[["tol"]],ruleset=listArguments[["ruleset"]],keep_meta=listArguments[["keep_meta"]],variableMetadataOutput=variableMetadataOutput) +} + +dev.off() + + +#saving R data in .Rdata file to save the variables used in the present tool +objects2save = c("xa","variableMetadata","diffrep","cAnnot","listOFlistArguments","zipfile") +save(list=objects2save[objects2save %in% ls()], file=xsetRdataOutput) + +cat("\n\n") + +cat("\tDONE\n")