Mercurial > repos > workflow4metabolomics > metams_plot
diff metaMS_plot.r @ 0:b60dc620bd14 draft
planemo upload for repository https://github.com/workflow4metabolomics/metaMS commit 174a1713024f246c1485cbd75218577e89353522
author | workflow4metabolomics |
---|---|
date | Wed, 03 Jul 2019 05:08:14 -0400 |
parents | |
children | 96debae917e4 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/metaMS_plot.r Wed Jul 03 05:08:14 2019 -0400 @@ -0,0 +1,152 @@ +#!/usr/bin/env Rscript +# metaMS_plot.r version="1.0.0" +#created by Yann GUITTON and updated by Julien SAINT-VANNE + + +# ----- LOG FILE ----- +#log_file <- file("log.txt", open = "wt") +#sink(log_file) +#sink(log_file, type = "output") + + +# ----- PACKAGE ----- +cat("\tSESSION INFO\n") + +#Import the different functions +source_local <- function(fname) { + argv <- commandArgs(trailingOnly = FALSE) + base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)) + source(paste(base_dir, fname, sep="/")) +} +source_local("lib_metams.r") + +pkgs <- c("metaMS","batch") #"batch" necessary for parseCommandArgs function +loadAndDisplayPackages(pkgs) + +cat("\n") + +modNamC <- "plot_metaMS" ## module name + +cat("\nStart of the '", modNamC, "' Galaxy module call: ", format(Sys.time(), "%a %d %b %Y %X"), "\n\n", sep="") + + +# ----- ARGUMENTS ----- +cat("\tARGUMENTS INFO\n\n") +args = parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects +#write.table(as.matrix(args), col.names=F, quote=F, sep='\t\t') +print(cbind(value = unlist(args))) + + +# ----- PROCESSING INFILE ----- +cat("\n\n\tARGUMENTS PROCESSING INFO\n\n") + +# Loading RData file +load(args$metaMS) +if (!exists("resGC")) stop("\n\nERROR: The RData doesn't contain any object called 'resGC' which is provided by the tool: new_metaMS.runGC") + +if(args$selecteic) { + #Unknown EIC parameter + if (args$unkn[1] != "NULL") { + #When unkn = 0 user want to process all unknowns + if(args$unkn[1] == 0) { + args$unkn <- c(1:nrow(resGC$PeakTable)) + print("User want to process on all unknown(s) found in metaMS process") + } + #TODO find the biggest number of unkn ask by user cause it can write "1,15,9,8" with a max of 11 unkn. With this code it finds the 8 and it will pass + #Verify that there is not more user's unkn than metaMS unkn (find in resGC$PeakTable) + cat("Number of unknown after metaMS process :",nrow(resGC$PeakTable),"\n") + cat("Number of the last unknown ask by user :",args$unkn[length(args$unkn)],"\n") + cat("Number of unknown ask by user :",length(args$unkn),"\n") + if(args$unkn[length(args$unkn)] <= nrow(resGC$PeakTable)) { + unknarg <- args$unkn + } else { + error_message="Too much unkn compare metaMS results" + print(error_message) + stop(error_message) + } + } else { + error_message <- "No EIC selected !" + print(error_message) + stop(error_message) + } +} + +cat("\n\n") + + +# ----- INFILE PROCESSING ----- +cat("\tINFILE PROCESSING INFO\n\n") + +# Handle infiles +if (!exists("singlefile")) singlefile <- NULL +if (!exists("zipfile")) zipfile <- NULL +rawFilePath <- getRawfilePathFromArguments(singlefile, zipfile, args) +zipfile <- rawFilePath$zipfile +singlefile <- rawFilePath$singlefile +directory <- retrieveRawfileInTheWorkingDirectory(singlefile, zipfile) + + +# ----- MAIN PROCESSING INFO ----- +cat("\n\n\tMAIN PROCESSING INFO\n") + + +cat("\t\tCOMPUTE\n") + +#Use getTIC2s and getBPC2s because getTICs and getBPCs can exists due to transfert of function in Rdata + +if(!is.null(singlefile)) { + files <- paste("./",names(singlefile),sep="") + if(!is.null(files)){ + if(args$selectbpc){ + cat("\n\tProcessing BPC(s) from XCMS files...\n") + c <- getBPC2s(files = files, xset = xset, rt="raw", pdfname="BPCs_raw.pdf") + cat("BPC(s) created...\n") + } + if(args$selecttic){ + cat("\n\tProcessing TIC(s) from XCMS files...\n") + b <- getTIC2s(files = files, xset = xset, rt="raw", pdfname="TICs_raw.pdf") + cat("TIC(s) created...\n") + } + if(args$selecteic){ + cat("\n\tProcessing EIC(s) from XCMS files...\n") + cat(length(unknarg),"unknown(s) will be process !\n") + plotUnknowns(resGC=resGC, unkn=unknarg, DB=DBgc, fileFrom="singlefile") + cat("EIC(s) created...\n") + #Merge pdf + system(paste('gs -o GCMS_EIC.pdf -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress Unknown_*.pdf')) + } + } else { + error_message <- paste("Can't find",files,"!") + print(error_message) + stop(error_message) + } +} +if(!is.null(zipfile)) { + files <- getMSFiles(directory) + if(!is.null(files)) { + if(args$selectbpc) { + cat("\n\tProcessing BPC(s) from raw files...\n") + c <- getBPC2s(files = files, rt="raw", pdfname="BPCs_raw.pdf") + cat("BPC(s) created...\n") + } + if(args$selecttic) { + cat("\n\tProcessing TIC(s) from raw files...\n") + b <- getTIC2s(files = files, rt="raw", pdfname="TICs_raw.pdf") + cat("TIC(s) created...\n") + } + if(args$selecteic) { + cat("\n\tProcessing EIC(s) from XCMS files...\n") + cat(length(unknarg),"unknown(s) will be process !\n") + plotUnknowns(resGC=resGC, unkn=unknarg, DB=DBgc, fileFrom="zipfile") + cat("EIC(s) created...\n") + #Merge pdf + system(paste('gs -sOutputFile=GCMS_EIC.pdf -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress Unknown_*.pdf')) + } + } else { + error_message <- paste("Can't find",files,"!") + print(error_message) + stop(error_message) + } +} + +cat("\nEnd of '", modNamC, "' Galaxy module call: ", as.character(Sys.time()), "\n", sep = "") \ No newline at end of file