Mercurial > repos > lecorguille > xcms_plot_chromatogram
changeset 6:e0b5c547925d draft
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 088699d00f7e45bebb7da07bebc005c68df058d8
author | lecorguille |
---|---|
date | Wed, 05 Sep 2018 05:57:13 -0400 |
parents | a5ba342e72e0 |
children | a4a1143a202a |
files | lib.r static/images/xcms_plot_chromatogram_workflow.png test-data/sampleMetadata.tab xcms_plot_chromatogram.r xcms_plot_chromatogram.xml |
diffstat | 5 files changed, 54 insertions(+), 30 deletions(-) [+] |
line wrap: on
line diff
--- a/lib.r Fri Aug 31 08:59:44 2018 -0400 +++ b/lib.r Wed Sep 05 05:57:13 2018 -0400 @@ -29,18 +29,21 @@ #@author G. Le Corguille # This function merge several chromBPI or chromTIC into one. -mergeChrom <- function(chromTIC_merged, chromTIC, xdata_merged) { - if (is.null(chromTIC_merged)) return(NULL) - chromTIC_merged@.Data <- cbind(chromTIC_merged@.Data, chromTIC@.Data) - chromTIC_merged@phenoData <- xdata_merged@phenoData - return(chromTIC_merged) +mergeChrom <- function(chrom_merged, chrom) { + if (is.null(chrom_merged)) return(NULL) + chrom_merged@.Data <- cbind(chrom_merged@.Data, chrom@.Data) + return(chrom_merged) } #@author G. Le Corguille # This function merge several xdata into one. mergeXData <- function(args) { - chromTIC <- NULL; chromBPI <- NULL + chromTIC <- NULL + chromBPI <- NULL + chromTIC_adjusted <- NULL + chromBPI_adjusted <- NULL for(image in args$images) { + load(image) # Handle infiles if (!exists("singlefile")) singlefile <- NULL @@ -49,9 +52,12 @@ zipfile <- rawFilePath$zipfile singlefile <- rawFilePath$singlefile retrieveRawfileInTheWorkingDirectory(singlefile, zipfile) + if (exists("raw_data")) xdata <- raw_data if (!exists("xdata")) stop("\n\nERROR: The RData doesn't contain any object called 'xdata'. This RData should have been created by an old version of XMCS 2.*") + cat(sampleNamesList$sampleNamesOrigin,"\n") + if (!exists("xdata_merged")) { xdata_merged <- xdata singlefile_merged <- singlefile @@ -59,16 +65,21 @@ sampleNamesList_merged <- sampleNamesList chromTIC_merged <- chromTIC chromBPI_merged <- chromBPI + chromTIC_adjusted_merged <- chromTIC_adjusted + chromBPI_adjusted_merged <- chromBPI_adjusted } else { if (is(xdata, "XCMSnExp")) xdata_merged <- c(xdata_merged,xdata) else if (is(xdata, "OnDiskMSnExp")) xdata_merged <- .concatenate_OnDiskMSnExp(xdata_merged,xdata) else stop("\n\nERROR: The RData either a OnDiskMSnExp object called raw_data or a XCMSnExp object called 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) - chromTIC_merged <- mergeChrom(chromTIC_merged, chromTIC, xdata_merged) - chromBPI_merged <- mergeChrom(chromBPI_merged, chromBPI, xdata_merged) + chromTIC_merged <- mergeChrom(chromTIC_merged, chromTIC) + chromBPI_merged <- mergeChrom(chromBPI_merged, chromBPI) + chromTIC_adjusted_merged <- mergeChrom(chromTIC_adjusted_merged, chromTIC_adjusted) + chromBPI_adjusted_merged <- mergeChrom(chromBPI_adjusted_merged, chromBPI_adjusted) } } rm(image) @@ -76,8 +87,6 @@ singlefile <- singlefile_merged; rm(singlefile_merged) md5sumList <- md5sumList_merged; rm(md5sumList_merged) sampleNamesList <- sampleNamesList_merged; rm(sampleNamesList_merged) - chromTIC <- chromTIC_merged; rm(chromTIC_merged) - chromBPI <- chromBPI_merged; rm(chromBPI_merged) if (!is.null(args$sampleMetadata)) { cat("\tXSET PHENODATA SETTING...\n") @@ -92,7 +101,13 @@ stop(error_message) } } - return(list("xdata"=xdata, "singlefile"=singlefile, "md5sumList"=md5sumList,"sampleNamesList"=sampleNamesList, "chromTIC"=chromTIC, "chromBPI"=chromBPI)) + + if (!is.null(chromTIC_merged)) { chromTIC <- chromTIC_merged; chromTIC@phenoData <- xdata@phenoData } + if (!is.null(chromBPI_merged)) { chromBPI <- chromBPI_merged; chromBPI@phenoData <- xdata@phenoData } + if (!is.null(chromTIC_adjusted_merged)) { chromTIC_adjusted <- chromTIC_adjusted_merged; chromTIC_adjusted@phenoData <- xdata@phenoData } + if (!is.null(chromBPI_adjusted_merged)) { chromBPI_adjusted <- chromBPI_adjusted_merged; chromBPI_adjusted@phenoData <- xdata@phenoData } + + return(list("xdata"=xdata, "singlefile"=singlefile, "md5sumList"=md5sumList,"sampleNamesList"=sampleNamesList, "chromTIC"=chromTIC, "chromBPI"=chromBPI, "chromTIC_adjusted"=chromTIC_adjusted, "chromBPI_adjusted"=chromBPI_adjusted)) } #@author G. Le Corguille @@ -192,6 +207,9 @@ return(myDataFrame) } +#@author G. Le Corguille +# Draw the BPI and TIC graphics +# colored by sample names or class names getPlotChromatogram <- function(chrom, xdata, pdfname="Chromatogram.pdf", aggregationFun = "max") { if (aggregationFun == "sum") @@ -408,7 +426,7 @@ for (singlefile_galaxyPath_i in seq(1:length(singlefile_galaxyPaths))) { singlefile_galaxyPath <- singlefile_galaxyPaths[singlefile_galaxyPath_i] singlefile_sampleName <- singlefile_sampleNames[singlefile_galaxyPath_i] - # In case, an url is used to import data within Galaxy + # In case, an url is used to import data within Galaxy singlefile_sampleName <- tail(unlist(strsplit(singlefile_sampleName,"/")), n=1) singlefile[[singlefile_sampleName]] <- singlefile_galaxyPath }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/sampleMetadata.tab Wed Sep 05 05:57:13 2018 -0400 @@ -0,0 +1,6 @@ +wt16 WT +ko16 KO +wt15 WT +ko15 KO +ko10 KO +foobar01 FOOBAR
--- a/xcms_plot_chromatogram.r Fri Aug 31 08:59:44 2018 -0400 +++ b/xcms_plot_chromatogram.r Wed Sep 05 05:57:13 2018 -0400 @@ -1,10 +1,5 @@ #!/usr/bin/env Rscript -# ----- LOG FILE ----- -log_file=file("log.txt", open = "wt") -sink(log_file) -sink(log_file, type = "output") - # ----- PACKAGE ----- cat("\tSESSION INFO\n") @@ -41,6 +36,8 @@ sampleNamesList <- mergeXDataReturn$sampleNamesList chromTIC <- mergeXDataReturn$chromTIC chromBPI <- mergeXDataReturn$chromBPI +chromTIC_adjusted <- mergeXDataReturn$chromTIC_adjusted +chromBPI_adjusted <- mergeXDataReturn$chromBPI_adjusted cat("\n\n") @@ -51,11 +48,11 @@ cat("\t\tDRAW GRAPHICS\n") -if (!exists("chromTIC") || is.null(chromTIC)) { cat("\t\t\tCompute TIC\n"); chromTIC <- chromatogram(xdata, aggregationFun = "sum") } -if (!exists("chromBPI") || is.null(chromBPI)) { cat("\t\t\tCompute BPI\n"); chromBPI <- chromatogram(xdata, aggregationFun = "max") } +if (!is.null(chromTIC) || is.null(chromTIC)) { cat("\t\t\tCompute TIC\n"); chromTIC <- chromatogram(xdata, aggregationFun = "sum") } +if (!is.null(chromBPI) || is.null(chromBPI)) { cat("\t\t\tCompute BPI\n"); chromBPI <- chromatogram(xdata, aggregationFun = "max") } -if (exists("chromTIC_adjusted")) chromTIC <- chromTIC_adjusted -if (exists("chromBPI_adjusted")) chromBPI <- chromBPI_adjusted +if (!is.null(chromTIC_adjusted)) chromTIC <- chromTIC_adjusted +if (!is.null(chromBPI_adjusted)) chromBPI <- chromBPI_adjusted getPlotChromatogram(chromTIC, xdata, pdfname="TICs.pdf", aggregationFun = "sum") getPlotChromatogram(chromBPI, xdata, pdfname="BPIs.pdf", aggregationFun = "max")
--- a/xcms_plot_chromatogram.xml Fri Aug 31 08:59:44 2018 -0400 +++ b/xcms_plot_chromatogram.xml Wed Sep 05 05:57:13 2018 -0400 @@ -37,6 +37,7 @@ <test> <param name="images" value="faahKO-single.xset.merged.group.retcor.RData" ftype="rdata"/> <expand macro="test_file_load_single"/> + <param name="sampleMetadata" value="sampleMetadata.tab" ftype="tabular"/> <output name="ticsPdf" value="TICs.pdf" ftype="pdf" compare="sim_size" delta="600" /> <output name="bpisPdf" value="BPIs.pdf" ftype="pdf" compare="sim_size" delta="600" /> </test> @@ -71,15 +72,17 @@ **Upstream tools** -========================= ================= ============================== ========== -Name output file format parameter -========================= ================= ============================== ========== -MSnbase readMSData raw.RData rdata.msnbase.raw RData file -------------------------- ----------------- ------------------------------ ---------- -xcms.xcmsSet xset.RData rdata.xcms.findchrompeaks RData file -------------------------- ----------------- ------------------------------ ---------- -xcms.retcor xset.RData rdata.xcms.retcor RData file -========================= ================= ============================== ========== +=========================== ======================== ============================== +Name Output file Format +=========================== ======================== ============================== +MSnbase.readMSData ``*``.raw.RData rdata.msnbase.raw +--------------------------- ------------------------ ------------------------------ +xcms.findChromPeaks ``*``.raw.xset.RData rdata.xcms.findchrompeaks +--------------------------- ------------------------ ------------------------------ +xcms.findChromPeaks Merger xset.merged.RData rdata.xcms.retcor +--------------------------- ------------------------ ------------------------------ +xcms.adjustRtime ``*``.adjustRtime.RData rdata.xcms.retcor +=========================== ======================== ============================== .. image:: xcms_plot_chromatogram_workflow.png