changeset 30:6b5ed508f81f draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 73791d74546087b2a872d9279df960f5bc207298
author lecorguille
date Tue, 13 Feb 2018 04:44:47 -0500
parents f6d3e6be4ea3
children 8fd5b5afa24d
files README.rst abims_xcms_fillPeaks.xml lib.r macros.xml xcms.r
diffstat 5 files changed, 79 insertions(+), 153 deletions(-) [+]
line wrap: on
line diff
--- a/README.rst	Tue Oct 24 11:48:31 2017 -0400
+++ b/README.rst	Tue Feb 13 04:44:47 2018 -0500
@@ -2,6 +2,10 @@
 Changelog/News
 --------------
 
+**Version 2.1.1 - 29/11/2017**
+
+- BUGFIX: To avoid issues with accented letter in the parentFile tag of the mzXML files, we changed a hidden mechanim to LC_ALL=C
+
 **Version 2.1.0 - 07/02/2017**
 
 - IMPROVEMENT: change the management of the peaklist ids. The main ids remain the same as xcms generated. The export setiings now only add custom names in the variableMetadata tab (namecustom)
--- a/abims_xcms_fillPeaks.xml	Tue Oct 24 11:48:31 2017 -0400
+++ b/abims_xcms_fillPeaks.xml	Tue Feb 13 04:44:47 2018 -0500
@@ -1,4 +1,4 @@
-<tool id="abims_xcms_fillPeaks" name="xcms.fillPeaks" version="2.1.0">
+<tool id="abims_xcms_fillPeaks" name="xcms.fillPeaks" version="2.1.1">
 
     <description>Integrate a sample's signal in regions where peak groups are not represented to create new peaks in missing areas</description>
 
@@ -117,6 +117,7 @@
 Xcms.fillPeaks
 ==============
 
+-----------
 Description
 -----------
 
@@ -133,17 +134,18 @@
 
 
 
+-----------------
 Workflow position
 -----------------
 
 
 **Upstream tools**
 
-+------------------------+------------------+--------------------+------------+
-| Name                   | output file      | format             | parameter  |
-+========================+==================+====================+============+
-| xcms.group             | xset.group.RData | rdata.xcms.group   | RData file |
-+------------------------+------------------+--------------------+------------+
+========================= ================= ================== ==========
+Name                      output file       format             parameter
+========================= ================= ================== ==========
+xcms.group                xset.group.RData  rdata.xcms.group   RData file
+========================= ================= ================== ==========
 
 
 **Downstream tools**
@@ -156,11 +158,14 @@
 |xcms.summary               | xset.retcor.RData| rdata.xcms.fillpeaks  |
 +---------------------------+------------------+-----------------------+
 
+The output file **xset.fillpeaks** is a RData file. You can continue your analysis using it in **CAMERA.annotate** or **xcms.summary** tool as a following step of your workflow.
+
+
 **General schema of the metabolomic workflow**
 
 .. image:: xcms_fillpeaks_workflow.png
 
----------------------------------------------------
+
 
 -----------
 Input files
@@ -190,7 +195,26 @@
 
     | "MSW" is used for peaklists without retention-time information like those from direct-infusion spectra.
 
-@HELP_GET_PEAK_LIST@
+
+Get a Peak List
+---------------
+
+If 'true', the module generates two additional files corresponding to the peak list:
+- the variable metadata file (corresponding to information about extracted ions such as mass or retention time)
+- the data matrix (corresponding to related intensities)
+
+**decimal places for [mass or retention time] values in identifiers**
+
+    | Ions' identifiers are constructed as MxxxTyyy where 'xxx' is the ion median mass and 'yyy' the ion median retention time.
+    | Two parameters are used to adjust the number of decimal places wanted in identifiers for mass and retention time respectively.
+    | Theses parameters do not affect decimal places in columns other than the identifier one.
+
+**Reported intensity values**
+
+    | This parameter determines which values should be reported as intensities in the dataMatrix table; it correspond to xcms 'intval' parameter:
+    | - into: integrated area of original (raw) peak
+    | - maxo: maximum intensity of original (raw) peak
+    | - intb: baseline corrected integrated peak area (only available if peak detection was done by ‘findPeaks.centWave’)
 
 ------------
 Output files
@@ -200,7 +224,19 @@
 
     | Rdata file that will be used in the **CAMERA.annotate** or **xcms.summary** step of the workflow.
 
-@HELP_GET_PEAK_LIST_OUTPUTS@
+xset.variableMetadata.tsv : tabular format
+
+    | Table containing information about ions; can be used as one input of **Quality_Metrics** or **Generic_filter** modules.
+
+xset.dataMatrix.tsv : tabular format
+
+    | Table containing ions' intensities; can be used as one input of **Quality_Metrics** or **Generic_filter** modules.
+
+------
+
+.. class:: infomark
+
+The output file is a xset.fillPeaks.RData file. You can continue your analysis using it in **CAMERA.annotate** or **xcms.summary** tool.
 
 
 ---------------------------------------------------
@@ -217,7 +253,14 @@
 Parameters
 ----------
 
-    | **method**: chrom
+    | method -> **chrom**
+    | Get a Peak List -> **false**
+
+
+Output files
+------------
+
+    | **xset.fillPeaks.RData: RData file**
 
 
 ---------------------------------------------------
@@ -225,6 +268,10 @@
 Changelog/News
 --------------
 
+**Version 2.1.1 - 29/11/2017**
+
+- BUGFIX: To avoid issues with accented letter in the parentFile tag of the mzXML files, we changed a hidden mechanim to LC_ALL=C
+
 **Version 2.1.0 - 07/02/2017**
 
 - IMPROVEMENT: change the management of the peaklist ids. The main ids remain the same as xcms generated. The export setiings now only add custom names in the variableMetadata tab (namecustom)
--- a/lib.r	Tue Oct 24 11:48:31 2017 -0400
+++ b/lib.r	Tue Feb 13 04:44:47 2018 -0500
@@ -51,42 +51,6 @@
     write.table(dataMatrix, file=dataMatrixOutput,sep="\t",quote=F,row.names=F)
 }
 
-#@author G. Le Corguille
-exportTicBpcTabular <- function(dataset, filenameBase, ticORbpc, rt='raw') {
-
-        rawORcorrected = ''
-        title = ''
-        if (rt=='corrected') {
-            rawORcorrected = '_corrected'
-            title = ' corrected by retcor'
-        }
-
-        if (ticORbpc == "TIC") {
-            section_name = paste0('TIC',rawORcorrected)
-            title = paste0('Total Ion Current (TIC) chromatogram',title)
-            description = 'Sum of intensity (Y) of all ions detected at each retention time(X)'
-        } else if (ticORbpc == "BPC") {
-            section_name = paste0('BPC',rawORcorrected)
-            title = paste0('Base Peak Chromatogram (BPC)',title)
-            description = 'Sum of intensity (Y) of the most intense peaks at each retention time(X)'
-        }
-
-        filename=paste0(basename(file_path_sans_ext(filenameBase)),"-",ticORbpc,rawORcorrected,"_mqc.out")
-
-        # Headers for MultiQC
-        cat("# file_format: 'tsv'\n", sep="", file = filename)
-        cat("# section_name: '",section_name,"'\n", sep="", file = filename, append = T)
-        cat("# title: '",title,"'\n", sep="", file = filename, append = T)
-        cat("# description: '",description,"'\n", sep="", file = filename, append = T)
-        cat("# plot_type: 'linegraph'\n", sep="", file = filename, append = T)
-        cat("# pconfig:\n", sep="", file = filename, append = T)
-        cat("#     id: '",ticORbpc,rawORcorrected,"_lineplot'\n", sep="", file = filename, append = T)
-        cat("#     ylab: 'Base Peak Intensity'\n", sep="", file = filename, append = T)
-        cat("#     xlab: 'Retention Time'\n", sep="", file = filename, append = T)
-        cat("Intensity\tRT\n", file = filename, append = T)
-        write.table(dataset, filename ,row.names = F, col.names = F, sep = "\t", append = T, quote = F)
-}
-
 #@author Y. Guitton
 getBPC <- function(file,rtcor=NULL, ...) {
     object <- xcmsRaw(file)
@@ -130,9 +94,6 @@
             rtcor <- NULL
 
         TIC[[j]] <- getBPC(files[j],rtcor=rtcor)
-
-        exportTicBpcTabular(TIC[[j]], files[j], "BPC", rt=rt)
-
         # TIC[[j]][,1]<-rtcor
     }
 
@@ -260,8 +221,6 @@
             rtcor <- xcmsSet@rt$corrected[[i]] else
         rtcor <- NULL
         TIC[[i]] <- getTIC(files[i],rtcor=rtcor)
-
-        exportTicBpcTabular(TIC[[i]], files[i], "TIC", rt=rt)
     }
 
     pdf(pdfname,w=16,h=10)
@@ -517,7 +476,7 @@
 
 
 # This function get the raw file path from the arguments
-getRawfilePathFromArguments <- function(singlefile, zipfile, listArguments) {
+getRawfilePathFromArguments <- function(singlefile, zipfile, listArguments) {    
     if (!is.null(listArguments[["zipfile"]]))           zipfile = listArguments[["zipfile"]]
     if (!is.null(listArguments[["zipfilePositive"]]))   zipfile = listArguments[["zipfilePositive"]]
     if (!is.null(listArguments[["zipfileNegative"]]))   zipfile = listArguments[["zipfileNegative"]]
--- a/macros.xml	Tue Oct 24 11:48:31 2017 -0400
+++ b/macros.xml	Tue Feb 13 04:44:47 2018 -0500
@@ -12,7 +12,6 @@
             <requirement type="package" version="1.46.0">bioconductor-xcms</requirement>
         </requirements>
     </xml>
-
     <xml name="stdio">
         <stdio>
             <exit_code range="1" level="fatal" />
@@ -20,7 +19,7 @@
     </xml>
 
     <token name="@COMMAND_XCMS_SCRIPT@">
-        LANG=C Rscript $__tool_directory__/xcms.r
+        LC_ALL=C Rscript $__tool_directory__/xcms.r
     </token>
 
     <token name="@COMMAND_LOG_EXIT@">
@@ -117,55 +116,14 @@
         </data>
     </xml>
 
-    <xml name="input_tic_bpc_pdf">
-        <param name="tic_bpc_pdf" type="boolean" checked="False" label="Do you want TIC and BCP in PDF Format" help="Whatever, you will be able to use MultiQC tools on the tabular files" />
-    </xml>
-
-    <xml name="test_retcor_param">
-        <param name="methods|method" value="peakgroups"/>
-        <param name="methods|smooth" value="loess"/>
-        <param name="methods|extra" value="1"/>
-        <param name="methods|missing" value="1"/>
-        <param name="methods|options|option" value="show"/>
-        <param name="methods|options|span" value="0.2"/>
-        <param name="methods|options|family" value="gaussian"/>
-        <param name="methods|options|plottype" value="deviation"/>
-    </xml>
-
-    <xml name="test_retcor_output" token_raworcorrected="">
-        <output name="log">
-            <assert_contents>
-                <has_text text="object with 4 samples" />
-                <has_text text="Time range: 2507.7-4481.7 seconds (41.8-74.7 minutes)" />
-                <has_text text="Mass range: 200.1-600 m/z" />
-                <has_text text="Peaks: 9251 (about 2313 per sample)" />
-                <has_text text="Peak Groups: 0" />
-                <has_text text="Sample classes: KO, WT" />
-            </assert_contents>
-        </output>
-        <output_collection name="ticsCorrectedTabCollection" type="list">
-            <element name="ko15" value="ko15-TIC@RAWORCORRECTED@_mqc.out" />
-            <element name="ko16" value="ko16-TIC@RAWORCORRECTED@_mqc.out" />
-            <element name="wt15" value="wt15-TIC@RAWORCORRECTED@_mqc.out" />
-            <element name="wt16" value="wt16-TIC@RAWORCORRECTED@_mqc.out" />
-        </output_collection>
-        <output_collection name="bpcsCorrectedTabCollection" type="list">
-            <element name="ko15" value="ko15-BPC@RAWORCORRECTED@_mqc.out" />
-            <element name="ko16" value="ko16-BPC@RAWORCORRECTED@_mqc.out" />
-            <element name="wt15" value="wt15-BPC@RAWORCORRECTED@_mqc.out" />
-            <element name="wt16" value="wt16-BPC@RAWORCORRECTED@_mqc.out" />
-        </output_collection>
-    </xml>
-
     <token name="@HELP_AUTHORS@">
-
 .. class:: infomark
 
 **Authors**  Colin A. Smith csmith@scripps.edu, Ralf Tautenhahn rtautenh@gmail.com, Steffen Neumann sneumann@ipb-halle.de, Paul Benton hpaul.benton08@imperial.ac.uk and Christopher Conley cjconley@ucdavis.edu
 
 .. class:: infomark
 
-**Galaxy integration** ABiMS TEAM - UPMC/CNRS - Station Biologique de Roscoff and Yann Guitton yann.guitton@oniris-nantes.fr - part of Workflow4Metabolomics.org [W4M]
+**Galaxy integration** ABiMS TEAM - UPMC/CNRS - Station biologique de Roscoff and Yann Guitton yann.guitton@oniris-nantes.fr - part of Workflow4Metabolomics.org [W4M]
 
  | Contact support@workflow4metabolomics.org for any questions or concerns about the Galaxy implementation of this tool.
 
@@ -173,57 +131,6 @@
 
     </token>
 
-    <token name="@HELP_BCP_TIC@">
-
-BPCs and TICs: tabular
-
-    | "Base Peak Chromatograms" and "Total Ion Chromatograms" graphs
-    | Import BPC and TIC from xcmsSet and retcor [at once] within MultiQC_ (in or outside Galaxy) to display and navigate in the graphs.
-    | - In MultiQC: as tool, use the Custom Content
-
-.. _MultiQC: http://multiqc.info/
-
-BPCs and TICs: pdf [if using zip]
-
-    | "Base Peak Chromatograms" and "Total Ion Chromatograms" graphs in pdf format.
-
-    </token>
-
-    <token name="@HELP_GET_PEAK_LIST@">
-
-Get a Peak List
----------------
-
-If 'true', the module generates two additional files corresponding to the peak list:
-- the variable metadata file (corresponding to information about extracted ions such as mass or retention time)
-- the data matrix (corresponding to related intensities)
-
-**decimal places for [mass or retention time] values in identifiers**
-
-    | Ions' identifiers are constructed as MxxxTyyy where 'xxx' is the ion median mass and 'yyy' the ion median retention time.
-    | Two parameters are used to adjust the number of decimal places wanted in identifiers for mass and retention time respectively.
-    | Theses parameters do not affect decimal places in columns other than the identifier one.
-
-**Reported intensity values**
-
-    | This parameter determines which values should be reported as intensities in the dataMatrix table; it correspond to xcms 'intval' parameter:
-    | - into: integrated area of original (raw) peak
-    | - maxo: maximum intensity of original (raw) peak
-    | - intb: baseline corrected integrated peak area (only available if peak detection was done by ‘findPeaks.centWave’)
-
-    </token>
-
-    <token name="@HELP_GET_PEAK_LIST_OUTPUTS@">
-
-xset.variableMetadata.tsv : tabular format [If Get a Peak List == Yes]
-
-    | Table containing information about ions - Can be used in **Normalisation/Generic_filter** and **Statitics** tools.
-
-xset.dataMatrix.tsv : tabular format
-
-    | Table containing ions' intensities - Can be used **Normalisation/Generic_filter** and **Statitics** tools.
-
-    </token>
 
     <xml name="citation">
         <citations>
--- a/xcms.r	Tue Oct 24 11:48:31 2017 -0400
+++ b/xcms.r	Tue Feb 13 04:44:47 2018 -0500
@@ -13,7 +13,7 @@
 # ----- PACKAGE -----
 cat("\tPACKAGE INFO\n")
 #pkgs=c("xcms","batch")
-pkgs=c("tools","parallel","BiocGenerics", "Biobase", "Rcpp", "mzR", "xcms","snow","batch")
+pkgs=c("parallel","BiocGenerics", "Biobase", "Rcpp", "mzR", "xcms","snow","batch")
 for(pkg in pkgs) {
     suppressPackageStartupMessages( stopifnot( library(pkg, quietly=TRUE, logical.return=TRUE, character.only=TRUE)))
     cat(pkg,"\t",as.character(packageVersion(pkg)),"\n",sep="")
@@ -65,6 +65,10 @@
 }
 
 #saving the specific parameters
+rplotspdf = "Rplots.pdf"
+if (!is.null(listArguments[["rplotspdf"]])){
+    rplotspdf = listArguments[["rplotspdf"]]; listArguments[["rplotspdf"]]=NULL
+}
 sampleMetadataOutput = "sampleMetadata.tsv"
 if (!is.null(listArguments[["sampleMetadataOutput"]])){
     sampleMetadataOutput = listArguments[["sampleMetadataOutput"]]; listArguments[["sampleMetadataOutput"]]=NULL
@@ -90,6 +94,11 @@
     intval = listArguments[["intval"]]; listArguments[["intval"]]=NULL
 }
 
+if (thefunction %in% c("xcmsSet","retcor")) {
+    ticspdf = listArguments[["ticspdf"]]; listArguments[["ticspdf"]]=NULL
+    bicspdf = listArguments[["bicspdf"]]; listArguments[["bicspdf"]]=NULL
+}
+
 
 if (thefunction %in% c("xcmsSet","retcor","fillPeaks"))  {
     if (!exists("singlefile")) singlefile=NULL
@@ -138,7 +147,7 @@
 
 #change the default display settings
 #dev.new(file="Rplots.pdf", width=16, height=12)
-pdf(file="Rplots.pdf", width=16, height=12)
+pdf(file=rplotspdf, width=16, height=12)
 if (thefunction == "group") {
     par(mfrow=c(2,2))
 }
@@ -188,12 +197,12 @@
 if (thefunction == "xcmsSet") {
     cat("\t\tGET TIC GRAPH\n")
     sampleNamesList = getSampleMetadata(xcmsSet=xset, sampleMetadataOutput=sampleMetadataOutput)
-    getTICs(xcmsSet=xset, rt="raw")
-    getBPCs(xcmsSet=xset, rt="raw")
+    getTICs(xcmsSet=xset, pdfname=ticspdf,rt="raw")
+    getBPCs(xcmsSet=xset,rt="raw",pdfname=bicspdf)
 } else if (thefunction == "retcor") {
     cat("\t\tGET TIC GRAPH\n")
-    getTICs(xcmsSet=xset, rt="corrected")
-    getBPCs(xcmsSet=xset, rt="corrected")
+    getTICs(xcmsSet=xset, pdfname=ticspdf,rt="corrected")
+    getBPCs(xcmsSet=xset,rt="corrected",pdfname=bicspdf)
 }
 
 if ((thefunction == "group" || thefunction == "fillPeaks") && exists("intval")) {