Mercurial > repos > lecorguille > xcms_merge
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xcms_merge.r Thu Mar 01 04:15:19 2018 -0500 @@ -0,0 +1,83 @@ +#!/usr/bin/env Rscript + +#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.r") + +pkgs <- c("xcms","batch") +loadAndDisplayPackages(pkgs) +cat("\n\n"); + +args <- parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects + +# Handle infiles +if (!exists("singlefile")) singlefile <- NULL +if (!exists("zipfile")) zipfile <- NULL +rawFilePath <- getRawfilePathFromArguments(singlefile, zipfile, args) +zipfile <- rawFilePath$zipfile +singlefile <- rawFilePath$singlefile +args <- rawFilePath$args +directory <- retrieveRawfileInTheWorkingDirectory(singlefile, zipfile) + +cat("\tXSET MERGING...\n") + +for(image in args$images) { + load(image) + cat(sampleNamesList$sampleNamesOrigin,"\n") + if (!exists("xdata_merged")) { + xdata_merged <- xdata + singlefile_merged <- singlefile + md5sumList_merged <- md5sumList + sampleNamesList_merged <- sampleNamesList + } else { + xdata_merged <- c(xdata_merged,xdata) + singlefile_merged <- c(singlefile_merged,singlefile) + md5sumList_merged$origin <- rbind(md5sumList_merged$origin,md5sumList$origin) + sampleNamesList_merged$sampleNamesOrigin <- c(sampleNamesList_merged$sampleNamesOrigin,sampleNamesList$sampleNamesOrigin) + sampleNamesList_merged$sampleNamesMakeNames <- c(sampleNamesList_merged$sampleNamesMakeNames,sampleNamesList$sampleNamesMakeNames) + } +} +rm(image) +xdata <- xdata_merged; rm(xdata_merged) +singlefile <- singlefile_merged; rm(singlefile_merged) +md5sumList <- md5sumList_merged; rm(md5sumList_merged) +sampleNamesList <- sampleNamesList_merged; rm(sampleNamesList_merged) + +if (!is.null(args$sampleMetadata)) { + cat("\tXSET PHENODATA SETTING...\n") + sampleMetadataFile <- args$sampleMetadata + sampleMetadata <- read.table(sampleMetadataFile, h=F, sep=";", stringsAsFactors=F) + if (ncol(sampleMetadata) < 2) sampleMetadata <- read.table(sampleMetadataFile, h=F, sep="\t", stringsAsFactors=F) + if (ncol(sampleMetadata) < 2) sampleMetadata <- read.table(sampleMetadataFile, h=F, sep=",", stringsAsFactors=F) + if (ncol(sampleMetadata) < 2) { + error_message="Your sampleMetadata file seems not well formatted. The column separators accepted are ; , and tabulation" + print(error_message) + stop(error_message) + } + xdata@phenoData@data$sample_group=sampleMetadata$V2[match(xdata@phenoData@data$sample_name,sampleMetadata$V1)] + + if (any(is.na(pData(xdata)$sample_group))) { + sample_missing <- pData(xdata)$sample_name[is.na(pData(xdata)$sample_group)] + error_message <- paste("Those samples are missing in your sampleMetadata:", paste(sample_missing, collapse=" ")) + print(error_message) + stop(error_message) + } +} +save.image() + +cat("\tXCMSnExp OBJECT INFO\n") +print(pData(xdata)) +print(xdata) +cat("\n\n") + +cat("\txcmsSet OBJECT INFO\n") +# Get the legacy xcmsSet object +xset <- getxcmsSetObject(xdata) +print(xset@phenoData) +print(xset) +cat("\n\n") + +cat("\tSAVE RData\n") +#saving R data in .Rdata file to save the variables used in the present tool +objects2save <- c("xdata", "zipfile", "singlefile", "md5sumList", "sampleNamesList") +save(list=objects2save[objects2save %in% ls()], file="merged.RData")