comparison xcms_merge.r @ 7:dca722aecb67 draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
author lecorguille
date Thu, 01 Mar 2018 04:15:19 -0500
parents
children 6b5504f877ff
comparison
equal deleted inserted replaced
6:5c7a7484dc51 7:dca722aecb67
1 #!/usr/bin/env Rscript
2
3 #Import the different functions
4 source_local <- function(fname){ argv <- commandArgs(trailingOnly=FALSE); base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)); source(paste(base_dir, fname, sep="/")) }
5 source_local("lib.r")
6
7 pkgs <- c("xcms","batch")
8 loadAndDisplayPackages(pkgs)
9 cat("\n\n");
10
11 args <- parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects
12
13 # Handle infiles
14 if (!exists("singlefile")) singlefile <- NULL
15 if (!exists("zipfile")) zipfile <- NULL
16 rawFilePath <- getRawfilePathFromArguments(singlefile, zipfile, args)
17 zipfile <- rawFilePath$zipfile
18 singlefile <- rawFilePath$singlefile
19 args <- rawFilePath$args
20 directory <- retrieveRawfileInTheWorkingDirectory(singlefile, zipfile)
21
22 cat("\tXSET MERGING...\n")
23
24 for(image in args$images) {
25 load(image)
26 cat(sampleNamesList$sampleNamesOrigin,"\n")
27 if (!exists("xdata_merged")) {
28 xdata_merged <- xdata
29 singlefile_merged <- singlefile
30 md5sumList_merged <- md5sumList
31 sampleNamesList_merged <- sampleNamesList
32 } else {
33 xdata_merged <- c(xdata_merged,xdata)
34 singlefile_merged <- c(singlefile_merged,singlefile)
35 md5sumList_merged$origin <- rbind(md5sumList_merged$origin,md5sumList$origin)
36 sampleNamesList_merged$sampleNamesOrigin <- c(sampleNamesList_merged$sampleNamesOrigin,sampleNamesList$sampleNamesOrigin)
37 sampleNamesList_merged$sampleNamesMakeNames <- c(sampleNamesList_merged$sampleNamesMakeNames,sampleNamesList$sampleNamesMakeNames)
38 }
39 }
40 rm(image)
41 xdata <- xdata_merged; rm(xdata_merged)
42 singlefile <- singlefile_merged; rm(singlefile_merged)
43 md5sumList <- md5sumList_merged; rm(md5sumList_merged)
44 sampleNamesList <- sampleNamesList_merged; rm(sampleNamesList_merged)
45
46 if (!is.null(args$sampleMetadata)) {
47 cat("\tXSET PHENODATA SETTING...\n")
48 sampleMetadataFile <- args$sampleMetadata
49 sampleMetadata <- read.table(sampleMetadataFile, h=F, sep=";", stringsAsFactors=F)
50 if (ncol(sampleMetadata) < 2) sampleMetadata <- read.table(sampleMetadataFile, h=F, sep="\t", stringsAsFactors=F)
51 if (ncol(sampleMetadata) < 2) sampleMetadata <- read.table(sampleMetadataFile, h=F, sep=",", stringsAsFactors=F)
52 if (ncol(sampleMetadata) < 2) {
53 error_message="Your sampleMetadata file seems not well formatted. The column separators accepted are ; , and tabulation"
54 print(error_message)
55 stop(error_message)
56 }
57 xdata@phenoData@data$sample_group=sampleMetadata$V2[match(xdata@phenoData@data$sample_name,sampleMetadata$V1)]
58
59 if (any(is.na(pData(xdata)$sample_group))) {
60 sample_missing <- pData(xdata)$sample_name[is.na(pData(xdata)$sample_group)]
61 error_message <- paste("Those samples are missing in your sampleMetadata:", paste(sample_missing, collapse=" "))
62 print(error_message)
63 stop(error_message)
64 }
65 }
66 save.image()
67
68 cat("\tXCMSnExp OBJECT INFO\n")
69 print(pData(xdata))
70 print(xdata)
71 cat("\n\n")
72
73 cat("\txcmsSet OBJECT INFO\n")
74 # Get the legacy xcmsSet object
75 xset <- getxcmsSetObject(xdata)
76 print(xset@phenoData)
77 print(xset)
78 cat("\n\n")
79
80 cat("\tSAVE RData\n")
81 #saving R data in .Rdata file to save the variables used in the present tool
82 objects2save <- c("xdata", "zipfile", "singlefile", "md5sumList", "sampleNamesList")
83 save(list=objects2save[objects2save %in% ls()], file="merged.RData")