Mercurial > repos > lecorguille > xcms_fillpeaks
annotate xcms.r @ 12:1009f0279137 draft
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit ec6f0c17bb277ea34f898d96d12d3357220f73d4
| author | lecorguille | 
|---|---|
| date | Wed, 06 Jul 2016 17:43:43 -0400 | 
| parents | f00e39a4b0fb | 
| children | 1c78d61fd646 | 
| rev | line source | 
|---|---|
| 6 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 1 #!/usr/bin/env Rscript | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 2 # xcms.r version="2.2.0" | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 3 #Authors ABIMS TEAM | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 4 #BPC Addition from Y.guitton | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 5 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 6 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 7 # ----- LOG FILE ----- | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 8 log_file=file("log.txt", open = "wt") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 9 sink(log_file) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 10 sink(log_file, type = "output") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 11 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 12 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 13 # ----- PACKAGE ----- | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 14 cat("\tPACKAGE INFO\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 15 #pkgs=c("xcms","batch") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 16 pkgs=c("parallel","BiocGenerics", "Biobase", "Rcpp", "mzR", "xcms","snow","batch") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 17 for(pkg in pkgs) { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 18 suppressPackageStartupMessages( stopifnot( library(pkg, quietly=TRUE, logical.return=TRUE, character.only=TRUE))) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 19 cat(pkg,"\t",as.character(packageVersion(pkg)),"\n",sep="") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 20 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 21 source_local <- function(fname){ argv <- commandArgs(trailingOnly = FALSE); base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)); source(paste(base_dir, fname, sep="/")) } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 22 cat("\n\n"); | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 23 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 24 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 25 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 26 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 27 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 28 # ----- ARGUMENTS ----- | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 29 cat("\tARGUMENTS INFO\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 30 listArguments = parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 31 write.table(as.matrix(listArguments), col.names=F, quote=F, sep='\t') | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 32 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 33 cat("\n\n"); | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 34 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 35 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 36 # ----- ARGUMENTS PROCESSING ----- | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 37 cat("\tINFILE PROCESSING INFO\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 38 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 39 #image is an .RData file necessary to use xset variable given by previous tools | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 40 if (!is.null(listArguments[["image"]])){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 41 load(listArguments[["image"]]); listArguments[["image"]]=NULL | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 42 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 43 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 44 #Import the different functions | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 45 source_local("lib.r") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 46 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 47 cat("\n\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 48 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 49 #Import the different functions | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 50 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 51 # ----- PROCESSING INFILE ----- | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 52 cat("\tARGUMENTS PROCESSING INFO\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 53 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 54 # Save arguments to generate a report | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 55 if (!exists("listOFlistArguments")) listOFlistArguments=list() | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 56 listOFlistArguments[[paste(format(Sys.time(), "%y%m%d-%H:%M:%S_"),listArguments[["xfunction"]],sep="")]] = listArguments | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 57 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 58 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 59 #saving the commun parameters | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 60 thefunction = listArguments[["xfunction"]]; listArguments[["xfunction"]]=NULL #delete from the list of arguments | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 61 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 62 xsetRdataOutput = paste(thefunction,"RData",sep=".") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 63 if (!is.null(listArguments[["xsetRdataOutput"]])){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 64 xsetRdataOutput = listArguments[["xsetRdataOutput"]]; listArguments[["xsetRdataOutput"]]=NULL | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 65 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 66 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 67 rplotspdf = "Rplots.pdf" | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 68 if (!is.null(listArguments[["rplotspdf"]])){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 69 rplotspdf = listArguments[["rplotspdf"]]; listArguments[["rplotspdf"]]=NULL | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 70 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 71 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 72 sampleMetadataOutput = "sampleMetadata.tsv" | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 73 if (!is.null(listArguments[["sampleMetadataOutput"]])){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 74 sampleMetadataOutput = listArguments[["sampleMetadataOutput"]]; listArguments[["sampleMetadataOutput"]]=NULL | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 75 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 76 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 77 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 78 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 79 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 80 if (thefunction %in% c("xcmsSet","retcor")) { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 81 ticspdf = listArguments[["ticspdf"]]; listArguments[["ticspdf"]]=NULL | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 82 bicspdf = listArguments[["bicspdf"]]; listArguments[["bicspdf"]]=NULL | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 83 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 84 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 85 #necessary to unzip .zip file uploaded to Galaxy | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 86 #thanks to .zip file it's possible to upload many file as the same time conserving the tree hierarchy of directories | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 87 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 88 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 89 if (!is.null(listArguments[["zipfile"]])){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 90 zipfile= listArguments[["zipfile"]]; listArguments[["zipfile"]]=NULL | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 91 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 92 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 93 if (!is.null(listArguments[["library"]])){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 94 directory=listArguments[["library"]]; listArguments[["library"]]=NULL | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 95 if(!file.exists(directory)){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 96 error_message=paste("Cannot access the directory:",directory,". Please verify if the directory exists or not.") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 97 print(error_message) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 98 stop(error_message) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 99 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 100 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 101 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 102 # We unzip automatically the chromatograms from the zip files. | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 103 if (thefunction %in% c("xcmsSet","retcor","fillPeaks")) { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 104 if(exists("zipfile") && (zipfile!="")) { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 105 if(!file.exists(zipfile)){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 106 error_message=paste("Cannot access the Zip file:",zipfile,". Please, contact your administrator ... if you have one!") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 107 print(error_message) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 108 stop(error_message) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 109 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 110 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 111 #list all file in the zip file | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 112 #zip_files=unzip(zipfile,list=T)[,"Name"] | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 113 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 114 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 115 #unzip | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 116 suppressWarnings(unzip(zipfile, unzip="unzip")) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 117 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 118 #get the directory name | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 119 filesInZip=unzip(zipfile, list=T); | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 120 directories=unique(unlist(lapply(strsplit(filesInZip$Name,"/"), function(x) x[1]))); | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 121 directories=directories[!(directories %in% c("__MACOSX")) & file.info(directories)$isdir] | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 122 directory = "." | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 123 if (length(directories) == 1) directory = directories | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 124 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 125 cat("files_root_directory\t",directory,"\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 126 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 127 # | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 128 md5sumList=list("origin"=getMd5sum(directory)) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 129 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 130 # Check and fix if there are non ASCII characters. If so, they will be removed from the *mzXML mzML files. | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 131 # Remove because can create issue with some clean files | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 132 #@TODO: fix me | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 133 #if (deleteXmlBadCharacters(directory)) { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 134 # md5sumList=list("removalBadCharacters"=getMd5sum(directory)) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 135 #} | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 136 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 137 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 138 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 139 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 140 #addition of the directory to the list of arguments in the first position | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 141 if (thefunction == "xcmsSet") { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 142 checkXmlStructure(directory) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 143 checkFilesCompatibilityWithXcms(directory) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 144 listArguments=append(directory, listArguments) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 145 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 146 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 147 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 148 #addition of xset object to the list of arguments in the first position | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 149 if (exists("xset")){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 150 listArguments=append(list(xset), listArguments) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 151 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 152 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 153 cat("\n\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 154 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 155 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 156 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 157 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 158 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 159 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 160 # ----- MAIN PROCESSING INFO ----- | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 161 cat("\tMAIN PROCESSING INFO\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 162 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 163 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 164 #Verification of a group step before doing the fillpeaks job. | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 165 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 166 if (thefunction == "fillPeaks") { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 167 res=try(is.null(groupnames(xset))) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 168 if (class(res) == "try-error"){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 169 error<-geterrmessage() | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 170 write(error, stderr()) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 171 stop("You must always do a group step after a retcor. Otherwise it won't work for the fillpeaks step") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 172 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 173 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 174 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 175 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 176 #change the default display settings | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 177 #dev.new(file="Rplots.pdf", width=16, height=12) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 178 pdf(file=rplotspdf, width=16, height=12) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 179 if (thefunction == "group") { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 180 par(mfrow=c(2,2)) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 181 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 182 #else if (thefunction == "retcor") { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 183 #try to change the legend display | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 184 # par(xpd=NA) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 185 # par(xpd=T, mar=par()$mar+c(0,0,0,4)) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 186 #} | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 187 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 188 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 189 #execution of the function "thefunction" with the parameters given in "listArguments" | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 190 xset = do.call(thefunction, listArguments) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 191 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 192 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 193 cat("\n\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 194 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 195 dev.off() #dev.new(file="Rplots.pdf", width=16, height=12) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 196 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 197 if (thefunction == "xcmsSet") { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 198 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 199 #transform the files absolute pathways into relative pathways | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 200 xset@filepaths<-sub(paste(getwd(),"/",sep="") ,"", xset@filepaths) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 201 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 202 if(exists("zipfile") && (zipfile!="")) { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 203 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 204 #Modify the samples names (erase the path) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 205 for(i in 1:length(sampnames(xset))){ | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 206 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 207 sample_name=unlist(strsplit(sampnames(xset)[i], "/")) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 208 sample_name=sample_name[length(sample_name)] | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 209 sample_name= unlist(strsplit(sample_name,"[.]"))[1] | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 210 sampnames(xset)[i]=sample_name | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 211 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 212 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 213 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 214 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 215 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 216 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 217 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 218 # -- TIC -- | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 219 if (thefunction == "xcmsSet") { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 220 sampleNamesList = getSampleMetadata(xcmsSet=xset, sampleMetadataOutput=sampleMetadataOutput) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 221 getTICs(xcmsSet=xset, pdfname=ticspdf,rt="raw") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 222 getBPCs(xcmsSet=xset,rt="raw",pdfname=bicspdf) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 223 } else if (thefunction == "retcor") { | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 224 getTICs(xcmsSet=xset, pdfname=ticspdf,rt="corrected") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 225 getBPCs(xcmsSet=xset,rt="corrected",pdfname=bicspdf) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 226 } | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 227 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 228 cat("\n\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 229 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 230 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 231 # ----- EXPORT ----- | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 232 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 233 cat("\tXSET OBJECT INFO\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 234 print(xset) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 235 #delete the parameters to avoid the passage to the next tool in .RData image | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 236 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 237 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 238 #saving R data in .Rdata file to save the variables used in the present tool | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 239 objects2save = c("xset","zipfile","listOFlistArguments","md5sumList","sampleNamesList") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 240 save(list=objects2save[objects2save %in% ls()], file=xsetRdataOutput) | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 241 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 242 cat("\n\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 243 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 244 | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 245 cat("\tDONE\n") | 
| 
f00e39a4b0fb
planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
 lecorguille parents: diff
changeset | 246 | 
