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
     }
Binary file static/images/xcms_plot_chromatogram_workflow.png has changed
--- /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