Repository 'xcms_fillpeaks'
hg clone https://toolshed.g2.bx.psu.edu/repos/lecorguille/xcms_fillpeaks

Changeset 11:de0d85537ee3 (2017-04-07)
Previous changeset 10:6caa60dcc217 (2017-02-07) Next changeset 12:dcb9041cb9ea (2017-11-29)
Commit message:
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit a6f5f18b3d6130f7d7fbb9f2df856838c6217797
modified:
README.rst
abims_xcms_fillPeaks.xml
lib.r
macros.xml
static/images/xcms_fillpeaks_workflow.png
test-data/faahKO.xset.group.retcor.group.fillPeaks.dataMatrix.tsv
test-data/faahKO.xset.group.retcor.group.fillPeaks.variableMetadata.tsv
xcms.r
added:
test-data/faahKO-single.xset.merged.group.retcor.group.RData
test-data/ko15.CDF
test-data/ko16.CDF
test-data/wt15.CDF
test-data/wt16.CDF
removed:
Makefile
planemo_test.sh
tool_dependencies.xml
b
diff -r 6caa60dcc217 -r de0d85537ee3 Makefile
--- a/Makefile Tue Feb 07 04:05:02 2017 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,23 +0,0 @@
-# USAGE: make [install|clean]
-
-# -------- VARIABLE --------
-
-OBJ=xcms_fillpeaks.tgz
-DEP=abims_xcms_fillPeaks.xml tool_dependencies.xml repository_dependencies.xml static test-data
-
-
-# ------------------------
-
-all: $(OBJ)
-
-$(OBJ): $(DEP)
- tar --exclude=".svn" -zchf $@ $^
-
-# ------------------------
-
-install: $(OBJ)
- mv *.tgz ~
-
-clean:
- rm *.tgz
-
b
diff -r 6caa60dcc217 -r de0d85537ee3 README.rst
--- a/README.rst Tue Feb 07 04:05:02 2017 -0500
+++ b/README.rst Fri Apr 07 07:37:05 2017 -0400
b
@@ -2,6 +2,12 @@
 Changelog/News
 --------------
 
+**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)
+
+- IMPROVEMENT: xcms.fillpeaks can deal with merged individual data
+
 **Version 2.0.8 - 22/12/2016**
 
 - IMPROVEMENT: Add an option to export the peak list at this step without have to wait camara.annotate
@@ -29,15 +35,3 @@
 - IMPROVEMENT: new datatype/dataset formats (rdata.xcms.raw, rdata.xcms.group, rdata.xcms.retcor ...) will facilitate the sequence of tools and so avoid incompatibility errors.
 
 - IMPROVEMENT: parameter labels have changed to facilitate their reading.
-
-
-Test Status
------------
-
-Planemo test using conda: passed
-
-Planemo test using source env.sh: passed
-
-Planemo shed_test : passed
-
-
b
diff -r 6caa60dcc217 -r de0d85537ee3 abims_xcms_fillPeaks.xml
--- a/abims_xcms_fillPeaks.xml Tue Feb 07 04:05:02 2017 -0500
+++ b/abims_xcms_fillPeaks.xml Fri Apr 07 07:37:05 2017 -0400
[
@@ -1,4 +1,4 @@
-<tool id="abims_xcms_fillPeaks" name="xcms.fillPeaks" version="2.0.8">
+<tool id="abims_xcms_fillPeaks" name="xcms.fillPeaks" version="2.1.0">
 
     <description>Integrate a sample's signal in regions where peak groups are not represented to create new peaks in missing areas</description>
 
@@ -12,22 +12,15 @@
     <command><![CDATA[
         @COMMAND_XCMS_SCRIPT@
         xfunction fillPeaks
-        image $image
+        image '$image'
 
-        xsetRdataOutput $xsetRData
+        xsetRdataOutput '$xsetRData'
 
         method $method
 
-        #if $peaklist.peaklistBool
-            variableMetadataOutput $variableMetadata
-            dataMatrixOutput $dataMatrix
-            convertRTMinute $peaklist.convertRTMinute
-            numDigitsMZ $peaklist.numDigitsMZ
-            numDigitsRT $peaklist.numDigitsRT
-            intval $peaklist.intval
-        #end if
+        @COMMAND_PEAKLIST@
 
-        @COMMAND_ZIPFILE_LOAD@
+        @COMMAND_FILE_LOAD@
 
         @COMMAND_LOG_EXIT@
 
@@ -39,32 +32,16 @@
             <option value="chrom" selected="true">chrom</option>
             <option value="MSW" >MSW</option>
         </param>
-        <conditional name="peaklist">
-            <param name="peaklistBool" type="boolean" label="Get a Peak List" />
-            <when value="true">
-              <param name="convertRTMinute" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Convert retention time (seconds) into minutes" help="Convert the columns rtmed, rtmin and rtmax into minutes"/>
-              <param name="numDigitsMZ" type="integer" value="4" label="Number of decimal places for mass values reported in ions' identifiers." help="A minimum of 4 decimal places is recommended. Useful to avoid duplicates within identifiers" />
-              <param name="numDigitsRT" type="integer" value="0" label="Number of decimal places for retention time values reported in ions' identifiers." help="Useful to avoid duplicates within identifiers" />
-              <param name="intval" type="select" label="Reported intensity values" help="[intval] See the help section below">
-                  <option value="into" selected="true">into</option>
-                  <option value="maxo">maxo</option>
-                  <option value="intb">intb</option>
-              </param>
-            </when>
-            <when value="false" />
-        </conditional>
-        <expand macro="zipfile_load"/>
+
+        <expand macro="input_peaklist"/>
+
+        <expand macro="input_file_load"/>
 
     </inputs>
 
     <outputs>
         <data name="xsetRData" format="rdata.xcms.fillpeaks" label="${image.name[:-6]}.fillPeaks.RData" />
-        <data name="variableMetadata" format="tabular" label="${image.name[:-6]}.fillPeaks.variableMetadata.tsv">
-            <filter>(peaklist['peaklistBool'])</filter>
-        </data>
-        <data name="dataMatrix" format="tabular" label="${image.name[:-6]}.fillPeaks.dataMatrix.tsv" >
-            <filter>(peaklist['peaklistBool'])</filter>
-        </data>
+        <expand macro="output_peaklist" function="fillpeaks" />
         <data name="log" format="txt" label="xset.log.txt"  hidden="true" />
     </outputs>
 
@@ -93,8 +70,30 @@
                 <param name="numDigitsMZ" value="4" />
                 <param name="numDigitsRT" value="1" />
             </conditional>
-            <param name="zipfile_load_conditional|zipfile_load_select" value="yes" />
-            <param name="zipfile_load_conditional|zip_file" value="faahKO_reduce.zip"  ftype="zip" />
+            <expand macro="test_file_load_zip"/>
+            <output name="log">
+                <assert_contents>
+                    <has_text text="object with 4 samples" />
+                    <has_text text="Time range: 2506-4484 seconds (41.8-74.7 minutes)" />
+                    <has_text text="Mass range: 200.1-600 m/z" />
+                    <has_text text="Peaks: 32720 (about 8180 per sample)" />
+                    <has_text text="Peak Groups: 8157" />
+                    <has_text text="Sample classes: KO, WT" />
+                </assert_contents>
+            </output>
+            <output name="variableMetadata" file="faahKO.xset.group.retcor.group.fillPeaks.variableMetadata.tsv" />
+            <output name="dataMatrix" file="faahKO.xset.group.retcor.group.fillPeaks.dataMatrix.tsv" />
+        </test>
+        <test>
+            <param name="image" value="faahKO-single.xset.merged.group.retcor.group.RData"/>
+            <param name="method" value="chrom"/>
+            <conditional name="peaklist">
+                <param name="convertRTMinute" value="false" />
+                <param name="peaklistBool" value="true" />
+                <param name="numDigitsMZ" value="4" />
+                <param name="numDigitsRT" value="1" />
+            </conditional>
+            <expand macro="test_file_load_single"/>
             <output name="log">
                 <assert_contents>
                     <has_text text="object with 4 samples" />
@@ -269,6 +268,12 @@
 Changelog/News
 --------------
 
+**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)
+
+- IMPROVEMENT: xcms.fillpeaks can deal with merged individual data
+
 **Version 2.0.8 - 22/12/2016**
 
 - IMPROVEMENT: Add an option to export the peak list at this step without having to wait for CAMERA.annotate
@@ -281,7 +286,6 @@
 
 - TEST: refactoring to pass planemo test using conda dependencies
 
-
 **Version 2.0.5 - 10/02/2016**
 
 - BUGFIX: better management of errors. Datasets remained green although the process failed
b
diff -r 6caa60dcc217 -r de0d85537ee3 lib.r
--- a/lib.r Tue Feb 07 04:05:02 2017 -0500
+++ b/lib.r Fri Apr 07 07:37:05 2017 -0400
[
b'@@ -27,168 +27,165 @@\n \n #@author G. Le Corguille\n #This function format ions identifiers\n-formatIonIdentifiers <- function(dataData, numDigitsRT=0, numDigitsMZ=0) {\n-    return(make.unique(paste0("M",round(dataData[,"mz"],numDigitsMZ),"T",round(dataData[,"rt"],numDigitsRT))))\n+formatIonIdentifiers <- function(variableMetadata, numDigitsRT=0, numDigitsMZ=0) {\n+    splitDeco = strsplit(as.character(variableMetadata$name),"_")\n+    idsDeco = sapply(splitDeco, function(x) { deco=unlist(x)[2]; if (is.na(deco)) return ("") else return(paste0("_",deco)) })\n+    namecustom = make.unique(paste0("M",round(variableMetadata[,"mz"],numDigitsMZ),"T",round(variableMetadata[,"rt"],numDigitsRT),idsDeco))\n+    variableMetadata=cbind(name=variableMetadata$name, namecustom=namecustom, variableMetadata[,!(colnames(variableMetadata) %in% c("name"))])\n+    return(variableMetadata)\n }\n \n #@author G. Le Corguille\n # value: intensity values to be used into, maxo or intb\n getPeaklistW4M <- function(xset, intval="into",convertRTMinute=F,numDigitsMZ=4,numDigitsRT=0,variableMetadataOutput,dataMatrixOutput) {\n-    groups <- xset@groups\n-    values <- groupval(xset, "medret", value=intval)\n-    \n-    # renamming of the column rtmed to rt to fit with camera peaklist function output\n-    colnames(groups)[colnames(groups)=="rtmed"] <- "rt"\n-    colnames(groups)[colnames(groups)=="mzmed"] <- "mz"\n-    \n-    ids <- formatIonIdentifiers(groups, numDigitsRT=numDigitsRT, numDigitsMZ=numDigitsMZ)\n-    groups = RTSecondToMinute(groups, convertRTMinute)\n+    variableMetadata_dataMatrix = peakTable(xset, method="medret", value=intval)\n+    variableMetadata_dataMatrix = cbind(name=groupnames(xset),variableMetadata_dataMatrix)\n+\n+    dataMatrix = variableMetadata_dataMatrix[,(make.names(colnames(variableMetadata_dataMatrix)) %in% c("name", make.names(sampnames(xset))))]\n \n-    rownames(groups) = ids\n-    rownames(values) = ids\n+    variableMetadata = variableMetadata_dataMatrix[,!(make.names(colnames(variableMetadata_dataMatrix)) %in% c(make.names(sampnames(xset))))]\n+    variableMetadata = RTSecondToMinute(variableMetadata, convertRTMinute)\n+    variableMetadata = formatIonIdentifiers(variableMetadata, numDigitsRT=numDigitsRT, numDigitsMZ=numDigitsMZ)\n \n-    #@TODO: add "name" as the first column name\n-    #colnames(groups)[1] = "name"\n-    #colnames(values)[1] = "name"\n-\n-    write.table(groups, file=variableMetadataOutput,sep="\\t",quote=F,row.names = T,col.names = NA)\n-    write.table(values, file=dataMatrixOutput,sep="\\t",quote=F,row.names = T,col.names = NA)\n+    write.table(variableMetadata, file=variableMetadataOutput,sep="\\t",quote=F,row.names=F)\n+    write.table(dataMatrix, file=dataMatrixOutput,sep="\\t",quote=F,row.names=F)\n }\n \n #@author Y. Guitton\n getBPC <- function(file,rtcor=NULL, ...) {\n-  object <- xcmsRaw(file)\n-  sel <- profRange(object, ...)\n-  cbind(if (is.null(rtcor)) object@scantime[sel$scanidx] else rtcor ,xcms:::colMax(object@env$profile[sel$massidx,sel$scanidx,drop=FALSE]))\n-  #plotChrom(xcmsRaw(file), base=T)\n+    object <- xcmsRaw(file)\n+    sel <- profRange(object, ...)\n+    cbind(if (is.null(rtcor)) object@scantime[sel$scanidx] else rtcor ,xcms:::colMax(object@env$profile[sel$massidx,sel$scanidx,drop=FALSE]))\n+    #plotChrom(xcmsRaw(file), base=T)\n }\n \n #@author Y. Guitton\n getBPCs <- function (xcmsSet=NULL, pdfname="BPCs.pdf",rt=c("raw","corrected"), scanrange=NULL) {\n-  cat("Creating BIC pdf...\\n")\n+    cat("Creating BIC pdf...\\n")\n \n-  if (is.null(xcmsSet)) {\n-    cat("Enter an xcmsSet \\n")\n-    stop()\n-  } else {\n-    files <- filepaths(xcmsSet)\n-  }\n+    if (is.null(xcmsSet)) {\n+        cat("Enter an xcmsSet \\n")\n+        stop()\n+    } else {\n+        files <- filepaths(xcmsSet)\n+    }\n \n-  class<-as.vector(levels(xcmsSet@phenoData[,1])) #sometime phenoData have more than 1 column use first as class\n+    phenoDataClass<-as.vector(levels(xcmsSet@phenoData[,1])) #sometime phenoData have more than 1 column use first as class\n \n-  classnam'..b'as.matrix(md5sum(files)))\n+}\n+\n+\n+# This function get the raw file path from the arguments\n+getRawfilePathFromArguments <- function(singlefile, zipfile, listArguments) {    \n+    if (!is.null(listArguments[["zipfile"]]))           zipfile = listArguments[["zipfile"]]\n+    if (!is.null(listArguments[["zipfilePositive"]]))   zipfile = listArguments[["zipfilePositive"]]\n+    if (!is.null(listArguments[["zipfileNegative"]]))   zipfile = listArguments[["zipfileNegative"]]\n+\n+    if (!is.null(listArguments[["singlefile_galaxyPath"]])) {\n+        singlefile_galaxyPaths = listArguments[["singlefile_galaxyPath"]];\n+        singlefile_sampleNames = listArguments[["singlefile_sampleName"]]\n+    }\n+    if (!is.null(listArguments[["singlefile_galaxyPathPositive"]])) {\n+        singlefile_galaxyPaths = listArguments[["singlefile_galaxyPathPositive"]];\n+        singlefile_sampleNames = listArguments[["singlefile_sampleNamePositive"]]\n+    }\n+    if (!is.null(listArguments[["singlefile_galaxyPathNegative"]])) {\n+        singlefile_galaxyPaths = listArguments[["singlefile_galaxyPathNegative"]];\n+        singlefile_sampleNames = listArguments[["singlefile_sampleNameNegative"]]\n+    }\n+    if (exists("singlefile_galaxyPaths")){\n+        singlefile_galaxyPaths = unlist(strsplit(singlefile_galaxyPaths,","))\n+        singlefile_sampleNames = unlist(strsplit(singlefile_sampleNames,","))\n \n-  library(tools)\n+        singlefile=NULL\n+        for (singlefile_galaxyPath_i in seq(1:length(singlefile_galaxyPaths))) {\n+            singlefile_galaxyPath=singlefile_galaxyPaths[singlefile_galaxyPath_i]\n+            singlefile_sampleName=singlefile_sampleNames[singlefile_galaxyPath_i]\n+            singlefile[[singlefile_sampleName]] = singlefile_galaxyPath\n+        }\n+    }\n+    for (argument in c("zipfile","zipfilePositive","zipfileNegative","singlefile_galaxyPath","singlefile_sampleName","singlefile_galaxyPathPositive","singlefile_sampleNamePositive","singlefile_galaxyPathNegative","singlefile_sampleNameNegative")) {\n+        listArguments[[argument]]=NULL\n+    }\n+    return(list(zipfile=zipfile, singlefile=singlefile, listArguments=listArguments))\n+}\n+\n+\n+# This function retrieve the raw file in the working directory\n+#   - if zipfile: unzip the file with its directory tree\n+#   - if singlefiles: set symlink with the good filename\n+retrieveRawfileInTheWorkingDirectory <- function(singlefile, zipfile) {\n+    if(!is.null(singlefile) && (length("singlefile")>0)) {\n+        for (singlefile_sampleName in names(singlefile)) {\n+            singlefile_galaxyPath = singlefile[[singlefile_sampleName]]\n+            if(!file.exists(singlefile_galaxyPath)){\n+                error_message=paste("Cannot access the sample:",singlefile_sampleName,"located:",singlefile_galaxyPath,". Please, contact your administrator ... if you have one!")\n+                print(error_message); stop(error_message)\n+            }\n \n-  #cat("\\n\\n")\n+            file.symlink(singlefile_galaxyPath,singlefile_sampleName)\n+        }\n+        directory = "."\n+\n+    }\n+    if(!is.null(zipfile) && (zipfile!="")) {\n+        if(!file.exists(zipfile)){\n+            error_message=paste("Cannot access the Zip file:",zipfile,". Please, contact your administrator ... if you have one!")\n+            print(error_message)\n+            stop(error_message)\n+        }\n+\n+        #list all file in the zip file\n+        #zip_files=unzip(zipfile,list=T)[,"Name"]\n \n-  return(as.matrix(md5sum(files)))\n+        #unzip\n+        suppressWarnings(unzip(zipfile, unzip="unzip"))\n+\n+        #get the directory name\n+        filesInZip=unzip(zipfile, list=T);\n+        directories=unique(unlist(lapply(strsplit(filesInZip$Name,"/"), function(x) x[1])));\n+        directories=directories[!(directories %in% c("__MACOSX")) & file.info(directories)$isdir]\n+        directory = "."\n+        if (length(directories) == 1) directory = directories\n+\n+        cat("files_root_directory\\t",directory,"\\n")\n+\n+    }\n+    return (directory)\n }\n'
b
diff -r 6caa60dcc217 -r de0d85537ee3 macros.xml
--- a/macros.xml Tue Feb 07 04:05:02 2017 -0500
+++ b/macros.xml Fri Apr 07 07:37:05 2017 -0400
[
@@ -7,6 +7,11 @@
             <requirement type="package" version="1.1_4">r-batch</requirement>
         </requirements>
     </xml>
+    <xml name="requirements_light">
+        <requirements>
+            <requirement type="package" version="1.46.0">bioconductor-xcms</requirement>
+        </requirements>
+    </xml>
     <xml name="stdio">
         <stdio>
             <exit_code range="1" level="fatal" />
@@ -20,41 +25,101 @@
     <token name="@COMMAND_LOG_EXIT@">
         ;
         return=\$?;
-        mv log.txt $log;
-        cat $log;
+        mv log.txt '$log';
+        cat '$log';
         sh -c "exit \$return"
     </token>
 
     <!-- zipfile load for planemo test -->
 
-    <token name="@COMMAND_ZIPFILE_LOAD@">
-        #if $zipfile_load_conditional.zipfile_load_select == "yes":
-            #if $zipfile_load_conditional.zip_file:
-                zipfile $zipfile_load_conditional.zip_file
+    <token name="@COMMAND_FILE_LOAD@">
+        #if $file_load_section.file_load_conditional.file_load_select == "yes":
+            #if $file_load_section.file_load_conditional.input[0].is_of_type("mzxml") or $file_load_section.file_load_conditional.input[0].is_of_type("mzml") or $file_load_section.file_load_conditional.input[0].is_of_type("mzdata") or $file_load_section.file_load_conditional.input[0].is_of_type("netcdf"):
+                #set singlefile_galaxyPath = ','.join( [ str( $single_file ) for $single_file in $file_load_section.file_load_conditional.input ] )
+                #set singlefile_sampleName = ','.join( [ str( $single_file.name ) for $single_file in $file_load_section.file_load_conditional.input ] )
+
+                singlefile_galaxyPath '$singlefile_galaxyPath' singlefile_sampleName '$singlefile_sampleName'
+            #else
+                zipfile '$file_load_section.file_load_conditional.input'
             #end if
         #end if
     </token>
 
-    <xml name="zipfile_load">
-        <conditional name="zipfile_load_conditional">
-            <param name="zipfile_load_select" type="select" label="Resubmit your zip file" help="Use only if you get a message which say that your original zip file have been deleted on the server." >
-                <option value="no" >no need</option>
-                <option value="yes">yes</option>
-            </param>
-            <when value="no">
+    <xml name="input_file_load">
+        <section name="file_load_section" title="Resubmit your raw dataset or your zip file">
+            <conditional name="file_load_conditional">
+                <param name="file_load_select" type="select" label="Resubmit your dataset or your zip file" help="Use only if you get a message which say that your original dataset or zip file have been deleted on the server." >
+                    <option value="no" >no need</option>
+                    <option value="yes" >yes</option>
+                </param>
+                <when value="no">
+                </when>
+                <when value="yes">
+                    <param name="input" type="data" format="mzxml,mzml,mzdata,netcdf,no_unzip.zip,zip" multiple="true" label="File(s) from your history containing your chromatograms" help="Single file mode for the format: mzxml, mzml, mzdata and netcdf. Zip file mode for the format: no_unzip.zip, zip. See the help section below." />
+                </when>
+            </conditional>
+        </section>
+    </xml>
+
+    <xml name="test_file_load_zip">
+        <section name="file_load_section">
+            <conditional name="file_load_conditional">
+                <param name="file_load_select" value="yes" />
+                <param name="input" value="faahKO_reduce.zip" ftype="zip" />
+            </conditional>
+        </section>
+    </xml>
+
+    <xml name="test_file_load_single">
+        <section name="file_load_section">
+            <conditional name="file_load_conditional">
+                <param name="file_load_select" value="yes" />
+                <param name="input" value="wt15.CDF,ko16.CDF,ko15.CDF,wt16.CDF" ftype="netcdf" />
+            </conditional>
+        </section>
+    </xml>
+
+    <token name="@COMMAND_PEAKLIST@">
+        #if $peaklist.peaklistBool
+            variableMetadataOutput '$variableMetadata'
+            dataMatrixOutput '$dataMatrix'
+            convertRTMinute $peaklist.convertRTMinute
+            numDigitsMZ $peaklist.numDigitsMZ
+            numDigitsRT $peaklist.numDigitsRT
+            intval $peaklist.intval
+        #end if
+    </token>
+
+    <xml name="input_peaklist">
+        <conditional name="peaklist">
+            <param name="peaklistBool" type="boolean" label="Get a Peak List" />
+            <when value="true">
+              <param name="convertRTMinute" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Convert retention time (seconds) into minutes" help="Convert the columns rtmed, rtmin and rtmax into minutes"/>
+              <param name="numDigitsMZ" type="integer" value="4" label="Number of decimal places for mass values reported in ions' identifiers." help="A minimum of 4 decimal places is recommended. Useful to avoid duplicates within identifiers" />
+              <param name="numDigitsRT" type="integer" value="0" label="Number of decimal places for retention time values reported in ions' identifiers." help="Useful to avoid duplicates within identifiers" />
+              <param name="intval" type="select" label="Reported intensity values" help="[intval] See the help section below">
+                  <option value="into" selected="true">into</option>
+                  <option value="maxo">maxo</option>
+                  <option value="intb">intb</option>
+              </param>
             </when>
-            <when value="yes">
-                <param name="zip_file" type="data" format="no_unzip.zip,zip" label="Zip file" />
-            </when>
+            <when value="false" />
         </conditional>
     </xml>
 
-
+    <xml name="output_peaklist"  token_function="">
+        <data name="variableMetadata" format="tabular" label="${image.name[:-6]}.@FUNCTION@.variableMetadata.tsv">
+            <filter>(peaklist['peaklistBool'])</filter>
+        </data>
+        <data name="dataMatrix" format="tabular" label="${image.name[:-6]}.@FUNCTION@.dataMatrix.tsv" >
+            <filter>(peaklist['peaklistBool'])</filter>
+        </data>
+    </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 
+**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
 
b
diff -r 6caa60dcc217 -r de0d85537ee3 planemo_test.sh
--- a/planemo_test.sh Tue Feb 07 04:05:02 2017 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,26 +0,0 @@
-# Example of planemo command to launch test
-
-
-# -- Use of installed package environments
-# after having installing package on a local galaxy instance
-source /w/galaxy/dev/shed_tools_tool_dependency_dir/R/3.1.2/iuc/package_r_3_1_2/1ca39eb16186/env.sh
-source /w/galaxy/dev/shed_tools_tool_dependency_dir/bioconductor-xcms/1.44.0/lecorguille/package_bioconductor_xcms_1_44_0/0c38f7d43e08/env.sh
-planemo test --install_galaxy
-
-#All 1 test(s) executed passed.
-#abims_xcms_fillPeaks[0]: passed
-
-
-# -- Use of conda dependencies
-planemo conda_init --conda_prefix /tmp/mc
-planemo conda_install --conda_prefix /tmp/mc . 
-planemo test --install_galaxy --conda_prefix /tmp/mc --conda_dependency_resolution
-
-#All 1 test(s) executed passed.
-#abims_xcms_fillPeaks[0]: passed
-
-
-# -- Use of shed_test
-planemo shed_test --install_galaxy --galaxy_branch "dev" -t testtoolshed
-#All 1 test(s) executed passed.
-#testtoolshed.g2.bx.psu.edu/repos/lecorguille/xcms_fillpeaks/abims_xcms_fillPeaks/2.0.6[0]: passed
b
diff -r 6caa60dcc217 -r de0d85537ee3 static/images/xcms_fillpeaks_workflow.png
b
Binary file static/images/xcms_fillpeaks_workflow.png has changed
b
diff -r 6caa60dcc217 -r de0d85537ee3 test-data/faahKO-single.xset.merged.group.retcor.group.RData
b
Binary file test-data/faahKO-single.xset.merged.group.retcor.group.RData has changed
b
diff -r 6caa60dcc217 -r de0d85537ee3 test-data/faahKO.xset.group.retcor.group.fillPeaks.dataMatrix.tsv
--- a/test-data/faahKO.xset.group.retcor.group.fillPeaks.dataMatrix.tsv Tue Feb 07 04:05:02 2017 -0500
+++ b/test-data/faahKO.xset.group.retcor.group.fillPeaks.dataMatrix.tsv Fri Apr 07 07:37:05 2017 -0400
b
b'@@ -1,8158 +1,8158 @@\n-\tko15\tko16\twt15\twt16\n-M200.1T2873.7\t76871.5724822568\t506848.884266667\t54795.557051693\t70712.7019597617\n-M200.2T3876.7\t1144.01499999999\t508.190132093174\t167.153311923928\t0\n-M200.2T3676.2\t0\t0\t5108.15999999988\t3298.99587926868\n-M200.2T3485.7\t6029.94499999992\t0\t0\t0\n-M200.2T3529.2\t0\t0\t4586.52650000006\t0\n-M200.2T3184.4\t0\t4333.4849999999\t0\t0\n-M200.3T3816.6\t0\t0\t1018.81499999998\t0\n-M200.3T3977.6\t0\t0\t0\t1242.61000000004\n-M200.8T3543.6\t0\t2863.6449999999\t0\t0\n-M200.8T4062.6\t0\t0\t1339.64000000005\t212.633272048894\n-M200.8T3783.3\t0\t0\t1680.81000000006\t0\n-M200.9T3273.9\t0\t1428.56579382624\t4090.91000000014\t2632.56262635375\n-M200.9T2555.9\t0\t14307.2299999999\t0\t0\n-M200.9T3625.9\t0\t1129.74329389996\t846.832572052814\t2931.24499999993\n-M201.1T3138.4\t23998.304598303\t254581.758476187\t61872.928839246\t23938.5867670927\n-M201.2T3509.4\t4023.61499999999\t716.684794188254\t0\t0\n-M201.2T4065.7\t354.759136757153\t120.799333675191\t1275.47500000004\t217.235067034405\n-M201.2T3687.2\t0\t0\t2906.20499999993\t0\n-M201.2T3997.9\t0\t0\t1657.33500000006\t0\n-M201.2T3798.7\t0\t0\t628.988532860297\t3245.80999999992\n-M201.3T3936.4\t0\t0\t1284.72816666668\t0\n-M201.3T4036.9\t0\t0\t0\t1220.69999999998\n-M201.3T4155.1\t0\t774.575999999962\t0\t0\n-M201.3T3882.6\t0\t1220.70000000004\t596.06839236263\t0\n-M201.7T3854.6\t892.050000000031\t0\t0\t0\n-M201.7T4020\t0\t0\t831.015000000029\t0\n-M201.8T3300.5\t2759.095\t0\t203.041783144463\t0\n-M201.8T4068.9\t515.477113310478\t0\t754.233600000007\t0\n-M201.8T3280.2\t0\t3872.96250000005\t0\t0\n-M201.8T3321\t3588.54500000001\t0\t2184.14587440592\t680.752724149015\n-M201.8T3170.8\t7682.58500000004\t0\t0\t0\n-M201.8T3762.7\t0\t0\t1151.71733333335\t0\n-M201.8T3377.2\t9879.84499999977\t0\t0\t0\n-M201.9T3268.7\t77227.3769090911\t4845.50686607645\t43819.3479046752\t9586.93001142395\n-M201.9T4140.9\t0\t0\t0\t732.419999999983\n-M201.9T4032.8\t0\t688.600000000024\t0\t0\n-M201.9T3895.1\t248.545776466807\t841.96999999998\t0\t3098.52044641804\n-M201.9T4009.2\t1147.18712241809\t1629.165\t764.696680521557\t472.632308163321\n-M201.9T3186\t10430.8884626037\t3806.07999999999\t1823.13851904744\t2108.81069363708\n-M202T2899.5\t36435.3079999996\t5925.29111289948\t18920.5714858276\t5543.76952406103\n-M202T3942.7\t0\t0\t1461.71\t131.70361488243\n-M202.2T3292.2\t0\t0\t0\t3372.57500000002\n-M202.6T4038.5\t0\t0\t0\t978.124999999977\n-M202.8T3316.9\t0\t0\t0\t1136.19000000004\n-M202.9T3305.5\t431.124790089052\t1694.89499999996\t0\t2048.62135448795\n-M203.1T3979\t527.419034783012\t0\t2796.65500000002\t2329.6554046415\n-M203.2T4141\t0\t1020.37999999998\t124.572393433318\t691.733108650811\n-M203.2T3348\t0\t2974.74816666671\t0\t0\n-M203.2T3327.3\t3852.53759999981\t0\t0\t0\n-M203.2T2679.2\t0\t0\t0\t6346.07499999991\n-M203.2T4178.6\t257.608663224945\t804.409999999981\t0\t750.373044499613\n-M203.2T3790.1\t0\t2690.23500000009\t374.050323368023\t795.962510881292\n-M203.2T3722.2\t639.681095784589\t0\t0\t3345.96999999992\n-M203.3T4057.1\t0\t0\t832.191847925998\t1550.91499999999\n-M203.7T3522.9\t0\t110.759221778917\t967.169999999987\t0\n-M203.8T3060.6\t3905.96266666662\t0\t0\t0\n-M203.8T4128.5\t0\t0\t0\t793.455000000074\n-M203.8T3665.2\t3002.85120000003\t0\t401.30435850189\t0\n-M203.8T4022.7\t1111.14999999999\t1447.15657402239\t0\t109.024210593649\n-M204.1T4142.4\t0\t0\t0\t1089.24000000004\n-M204.1T3843.4\t0\t419.889287204237\t1676.11500000006\t1632.68532194826\n-M204.2T3397.1\t964.058693506483\t162.861069898986\t691.3363891851\t1586.91\n-M204.2T2627.4\t0\t0\t3518.12000000012\t0\n-M204.3T4075.1\t0\t1062.63500000004\t0\t0\n-M204.4T3703.4\t0\t0\t0\t1446.05999999997\n-M204.4T3596.6\t405.142351380973\t0\t0\t1032.90000000004\n-M204.8T3573.8\t1707.7862088125\t0\t0\t2466.43999999994\n-M204.9T2585.8\t0\t0\t2287.73759999989\t9189.67999999988\n-M205T2787.2\t1924712.01585714\t1757150.9648\t2129885.09357143\t1634341.9855862\n-M205.1T4040.1\t2600.69759999987\t0\t0\t0\n-M205.2T3782.1\t2777.8750000001\t0\t5180.14999999997\t0\n-M205.2T3916.9\t0\t3392.55866666671\t285.445337336418\t910.731294074392\n-M205.2T3761.1\t0\t0\t2425.44000000002\t0\n-M205.3T4064.1\t0\t0\t1198.79000000004\t0\n-M205.7T4079.9\t0\t575.630156425085\t793.454999999982\t0\n-M205.8T3292.2\t0\t0\t0\t1023.50999999998\n-M205.8T3088\t0\t0\t0\t4682.47999999989\n-M205.8T3349.8\t226.392005428193\t0\t641.649999999985\t0'..b'8T3915\t2421.055\t0\t0\t0\n+M598T4240\t780.835199999962\t0\t0\t0\n+M598T3872\t0\t0\t923.232000000008\t0\n+M598T2842\t4328.7899999999\t0\t0\t0\n+M598T2529\t0\t0\t3350.66499999992\t0\n+M598T2738\t0\t1410.85151214631\t3392.92\t0\n+M598T3057\t1964.95661826158\t0\t3904.17600000003\t0\n+M598T2566\t428.80999999999\t704.249999999984\t5259.96499999993\t419.366399999979\n+M598T3685\t0\t0\t0\t2907.39840000003\n+M598T3161\t0\t1976.32135156572\t0\t1547.78500000005\n+M598T3574\t4893.75500000017\t0\t0\t0\n+M598T3247\t0\t0\t11160.015\t0\n+M598T3740\t6735.75999999984\t1507.48470651824\t0\t1204.11021794332\n+M598T2986\t2726.56464877876\t7907.94500000028\t1858.99545730168\t0\n+M598T3721\t7601.78150954762\t29323.4050000004\t0\t48876.8056363635\n+M598T3848\t0\t19344.1924374998\t2689.81421000592\t19147.856234332\n+M598T4223\t0\t0\t0\t852.92499999998\n+M598T3218\t0\t16185.5021250003\t7823.81125148536\t2693.06700579228\n+M598T2831\t5337.7886250001\t2892.25018630074\t2041.28568142639\t0\n+M598T3699\t23655.1372269246\t0\t8555.87680238366\t28572.205000001\n+M598T3811\t10279.2954993742\t201593.909999999\t6054.00661583122\t38867.0801165145\n+M598T3705\t18053.2113055963\t307529.419597421\t16924.3734137891\t65022.6200000009\n+M598T3493\t0\t0\t9308.62000000032\t0\n+M598T3116\t3137.82499999993\t0\t0\t0\n+M598T4234\t1558.64039999994\t0\t433.505000000001\t282.560050600392\n+M598T3368\t6528.77505295252\t0\t0\t7501.04499999995\n+M598T3406\t2523.54098664481\t711.921989369875\t4532.24000000016\t0\n+M598T3822\t910.075584336678\t126881.278714286\t3278.69127651828\t0\n+M598T2677\t0\t2826.02880000002\t0\t0\n+M598T2662\t2139.08160000002\t0\t0\t238.034675483067\n+M598T2956\t5756.0700000002\t1517.11899102972\t0\t0\n+M598T3177\t0\t2838.6076666667\t0\t0\n+M598T2531\t0\t1600.99499999996\t0\t259.78999999999\n+M598T4020\t4444.59999999997\t0\t0\t0\n+M598T2762\t0\t5078.42499999999\t1057.00399020397\t0\n+M599T4229\t0\t267.670604372541\t0\t881.094999999979\n+M599T3183\t0\t0\t0\t2164.39499999999\n+M599T2931\t0\t2557.20999999994\t0\t0\n+M599T2850\t0\t0\t0\t3757.56499999997\n+M599T2619\t0\t2237.94999999995\t0\t1052.80414846231\n+M599T3091\t0\t0\t0\t5745.1150000002\n+M599T2620\t24597.6221333335\t1782.1843965059\t2466.61604554878\t2547.59399043552\n+M599T4187\t136.620679491087\t0\t769.979999999982\t0\n+M599T2881\t5238.07829488764\t1749.21839582845\t2554.91912426183\t3269.28500000002\n+M599T3739\t0\t8220.94499999976\t0\t1042.07319821065\n+M599T4202\t1370.93999999996\t0\t404.178568977319\t115.970242221925\n+M599T4160\t2031.49238929167\t8068.71033333314\t4524.36445961151\t5823.36499999964\n+M599T3701\t0\t0\t55051.9369090907\t0\n+M599T3473\t1906.58949953166\t1115.24697230194\t6239.51160209002\t6298.5500000001\n+M599T4137\t3531.90007828117\t607.713962924625\t13849.6178571426\t0\n+M599T3845\t0\t0\t5238.05500000018\t7674.11104164754\n+M599T3722\t22852.13\t0\t0\t0\n+M599T3978\t0\t15327.6100000005\t2043.71536740086\t0\n+M599T4055\t798856.451441174\t53721.8508316141\t897286.005000001\t60505.2372470137\n+M599T3926\t28263.7381960734\t1934575.64687074\t31095.0992688255\t2271127.28014893\n+M599T3741\t2472129.73859259\t0\t1909653.70493332\t7165.99058468708\n+M599T3433\t35592.8437333336\t1352.22852619787\t0\t7482.12284985986\n+M599T4127\t185983.548870884\t536493.298793183\t75567.9488087375\t707685.939314288\n+M599T3728\t93179.0431097422\t0\t797434.72246154\t0\n+M599T4125\t2425.45826820981\t354770.43852632\t19846.7110475478\t239730.793013582\n+M599T2844\t0\t5415.77280000005\t1593.6345093066\t1186.34708319397\n+M599T2970\t8188.19424252287\t7861.19461826181\t0\t12502.4521250001\n+M599T3812\t79625.6350000028\t11601.8667295452\t19502.9954796907\t1381.41279238145\n+M600T2728\t0\t0\t0\t1760.62499999996\n+M600T3605\t0\t0\t0\t5001.73999999997\n+M600T3410\t3353.79499999992\t0\t0\t0\n+M600T3002\t0\t5849.96999999986\t0\t0\n+M600T2526\t0\t0\t3209.81499999996\t0\n+M600T2559\t0\t2928.1150000001\t0\t0\n+M600T2605\t6022.12000000021\t796.585000000028\t0\t2331.63714285708\n+M600T2778\t0\t0\t0\t2608.74386666668\n+M600T3440\t0\t8782.77999999999\t0\t0\n+M600T3074\t2505.99623596844\t0\t0\t3430.04160000003\n+M600T2840\t0\t0\t0\t1987.33833333336\n+M600T3456\t4671.52499999989\t0\t0\t1358.70443022736\n+M600T3351\t2327.15500000008\t0\t0\t0\n+M600T2539\t0\t3639.80233333338\t0\t1359.81120000001\n+M600T3208\t7784.31000000027\t1147.23597499922\t0\t2048.69405448434\n+M600T2969\t9211.58999999991\t0\t0\t5345.43474031158\n'
b
diff -r 6caa60dcc217 -r de0d85537ee3 test-data/faahKO.xset.group.retcor.group.fillPeaks.variableMetadata.tsv
--- a/test-data/faahKO.xset.group.retcor.group.fillPeaks.variableMetadata.tsv Tue Feb 07 04:05:02 2017 -0500
+++ b/test-data/faahKO.xset.group.retcor.group.fillPeaks.variableMetadata.tsv Fri Apr 07 07:37:05 2017 -0400
b
b'@@ -1,8158 +1,8158 @@\n-\tmz\tmzmin\tmzmax\trt\trtmin\trtmax\tnpeaks\tKO\tWT\n-M200.1T2873.7\t200.100006103516\t200.100006103516\t200.100006103516\t2873.66790279219\t2873.66790279219\t2873.66790279219\t1\t1\t0\n-M200.2T3876.7\t200.199996948242\t200.199996948242\t200.199996948242\t3876.72559155354\t3876.72559155354\t3876.72559155354\t1\t1\t0\n-M200.2T3676.2\t200.199996948242\t200.199996948242\t200.199996948242\t3676.20857473389\t3676.20857473389\t3676.20857473389\t1\t0\t1\n-M200.2T3485.7\t200.199996948242\t200.199996948242\t200.199996948242\t3485.71318236608\t3485.71318236608\t3485.71318236608\t1\t1\t0\n-M200.2T3529.2\t200.199996948242\t200.199996948242\t200.199996948242\t3529.16673849327\t3529.16673849327\t3529.16673849327\t1\t0\t1\n-M200.2T3184.4\t200.199996948242\t200.199996948242\t200.199996948242\t3184.44736675265\t3184.44736675265\t3184.44736675265\t1\t1\t0\n-M200.3T3816.6\t200.300003051758\t200.300003051758\t200.300003051758\t3816.57302395962\t3816.57302395962\t3816.57302395962\t1\t0\t1\n-M200.3T3977.6\t200.300003051758\t200.300003051758\t200.300003051758\t3977.60008277685\t3977.60008277685\t3977.60008277685\t1\t0\t1\n-M200.8T3543.6\t200.800003051758\t200.800003051758\t200.800003051758\t3543.60312635477\t3543.60312635477\t3543.60312635477\t1\t1\t0\n-M200.8T4062.6\t200.800003051758\t200.800003051758\t200.800003051758\t4062.56884383761\t4062.56884383761\t4062.56884383761\t1\t0\t1\n-M200.8T3783.3\t200.800003051758\t200.800003051758\t200.800003051758\t3783.31394298599\t3783.31394298599\t3783.31394298599\t1\t0\t1\n-M200.9T3273.9\t200.900009155273\t200.900009155273\t200.900009155273\t3273.93376916172\t3273.93376916172\t3273.93376916172\t1\t0\t1\n-M200.9T2555.9\t200.900009155273\t200.900009155273\t200.900009155273\t2555.90497459635\t2555.90497459635\t2555.90497459635\t1\t1\t0\n-M200.9T3625.9\t200.900009155273\t200.900009155273\t200.900009155273\t3625.94998801881\t3625.94998801881\t3625.94998801881\t1\t0\t1\n-M201.1T3138.4\t201.100006103516\t201.100006103516\t201.100006103516\t3138.35441665664\t3138.35441665664\t3138.35441665664\t1\t1\t0\n-M201.2T3509.4\t201.199996948242\t201.199996948242\t201.199996948242\t3509.36563736658\t3509.36563736658\t3509.36563736658\t1\t1\t0\n-M201.2T4065.7\t201.199996948242\t201.199996948242\t201.199996948242\t4065.72082744082\t4065.72082744082\t4065.72082744082\t1\t0\t1\n-M201.2T3687.2\t201.199996948242\t201.199996948242\t201.199996948242\t3687.18932031058\t3687.18932031058\t3687.18932031058\t1\t0\t1\n-M201.2T3997.9\t201.199996948242\t201.199996948242\t201.199996948242\t3997.93594451384\t3997.93594451384\t3997.93594451384\t1\t0\t1\n-M201.2T3798.7\t201.199996948242\t201.199996948242\t201.199996948242\t3798.65479588899\t3798.65479588899\t3798.65479588899\t1\t0\t1\n-M201.3T3936.4\t201.300003051758\t201.300003051758\t201.300003051758\t3936.43507866832\t3936.43507866832\t3936.43507866832\t1\t0\t1\n-M201.3T4036.9\t201.300003051758\t201.300003051758\t201.300003051758\t4036.91062955396\t4036.91062955396\t4036.91062955396\t1\t0\t1\n-M201.3T4155.1\t201.300003051758\t201.300003051758\t201.300003051758\t4155.07274902879\t4155.07274902879\t4155.07274902879\t1\t1\t0\n-M201.3T3882.6\t201.300003051758\t201.300003051758\t201.300003051758\t3882.59075902174\t3882.59075902174\t3882.59075902174\t1\t1\t0\n-M201.7T3854.6\t201.699996948242\t201.699996948242\t201.699996948242\t3854.64092716079\t3854.64092716079\t3854.64092716079\t1\t1\t0\n-M201.7T4020\t201.699996948242\t201.699996948242\t201.699996948242\t4020.00883866426\t4020.00883866426\t4020.00883866426\t1\t0\t1\n-M201.8T3300.5\t201.800003051758\t201.800003051758\t201.800003051758\t3300.52179370591\t3300.52179370591\t3300.52179370591\t1\t1\t0\n-M201.8T4068.9\t201.800003051758\t201.800003051758\t201.800003051758\t4068.87273440628\t4068.87273440628\t4068.87273440628\t1\t0\t1\n-M201.8T3280.2\t201.800003051758\t201.800003051758\t201.800003051758\t3280.17819851714\t3280.17819851714\t3280.17819851714\t1\t1\t0\n-M201.8T3321\t201.800003051758\t201.800003051758\t201.800003051758\t3321.03357088832\t3321.03357088832\t3321.03357088832\t1\t1\t0\n-M201.8T3170.8\t201.800003051758\t201.800003051758\t201.800003051758\t3170.77113798805\t3170.77113798805\t3170.77113798805\t1\t1\t0\n-M201.8T3762.7\t201.800003051758\t201.800003051758\t201.800003051758\t3762.71208577947\t3762.71208577947\t3762.71208577947\t1\t0\t1\n'..b'\t599.100036621094\t599.100036621094\t4202.26059093245\t4202.26059093245\t4202.26059093245\t1\t1\t0\n+M599T4160\tM599.2T4160.4\t599.200012207031\t599.200012207031\t599.200012207031\t4160.41504391552\t4156.36374072209\t4164.46634710896\t2\t1\t1\n+M599T3701\tM599.2T3701.2\t599.200012207031\t599.200012207031\t599.200012207031\t3701.23529883703\t3701.23529883703\t3701.23529883703\t1\t0\t1\n+M599T3473\tM599.2T3473\t599.200012207031\t599.200012207031\t599.200012207031\t3473.04133608654\t3473.04133608654\t3473.04133608654\t1\t0\t1\n+M599T4137\tM599.2T4136.6\t599.200012207031\t599.200012207031\t599.200012207031\t4136.64576660025\t4136.64576660025\t4136.64576660025\t1\t0\t1\n+M599T3845\tM599.2T3845\t599.200012207031\t599.200012207031\t599.200012207031\t3844.97719520822\t3844.97719520822\t3844.97719520822\t1\t0\t1\n+M599T3722\tM599.2T3721.5\t599.200012207031\t599.200012207031\t599.200012207031\t3721.5387075449\t3721.5387075449\t3721.5387075449\t1\t1\t0\n+M599T3978\tM599.2T3977.8\t599.200012207031\t599.200012207031\t599.200012207031\t3977.82980682972\t3977.82980682972\t3977.82980682972\t1\t1\t0\n+M599T4055\tM599.3T4054.7\t599.299987792969\t599.299987792969\t599.299987792969\t4054.68845399697\t4054.68845399697\t4059.09018753112\t3\t1\t1\n+M599T3926\tM599.3T3925.8\t599.299987792969\t599.299987792969\t599.299987792969\t3925.84217251709\t3925.84217251709\t3925.84217251709\t2\t0\t1\n+M599T3741\tM599.3T3741.1\t599.299987792969\t599.299987792969\t599.299987792969\t3741.10100087839\t3735.82337194686\t3746.37862980992\t2\t1\t1\n+M599T3433\tM599.3T3433.3\t599.299987792969\t599.299987792969\t599.299987792969\t3433.26624059939\t3433.26624059939\t3433.26624059939\t1\t1\t0\n+M599T4127\tM599.3T4126.9\t599.299987792969\t599.299987792969\t599.299987792969\t4126.89956529202\t4126.89956529202\t4126.89956529202\t1\t0\t1\n+M599T3728\tM599.4T3727.9\t599.400024414062\t599.400024414062\t599.400024414062\t3727.93766242873\t3727.93766242873\t3727.93766242873\t1\t0\t1\n+M599T4125\tM599.4T4125.3\t599.400024414062\t599.400024414062\t599.400024414062\t4125.3114579078\t4125.3114579078\t4125.3114579078\t1\t1\t0\n+M599T2844\tM599.4T2844\t599.400024414062\t599.400024414062\t599.400024414062\t2844.03291905224\t2844.03291905224\t2844.03291905224\t1\t1\t0\n+M599T2970\tM599.4T2969.9\t599.400024414062\t599.400024414062\t599.400024414062\t2969.89649835987\t2969.89649835987\t2969.89649835987\t1\t0\t1\n+M599T3812\tM599.4T3812.2\t599.400024414062\t599.400024414062\t599.400024414062\t3812.23153189745\t3812.23153189745\t3812.23153189745\t1\t1\t0\n+M600T2728\tM599.5T2728.1\t599.5\t599.5\t599.5\t2728.06725194668\t2728.06725194668\t2728.06725194668\t1\t0\t1\n+M600T3605\tM599.5T3604.8\t599.5\t599.5\t599.5\t3604.78487735047\t3604.78487735047\t3604.78487735047\t1\t0\t1\n+M600T3410\tM599.5T3409.6\t599.5\t599.5\t599.5\t3409.6137638498\t3409.6137638498\t3409.6137638498\t1\t1\t0\n+M600T3002\tM599.5T3001.7\t599.5\t599.5\t599.5\t3001.73340037252\t3001.73340037252\t3001.73340037252\t1\t1\t0\n+M600T2526\tM599.8T2525.6\t599.799987792969\t599.799987792969\t599.799987792969\t2525.60208488001\t2525.60208488001\t2525.60208488001\t1\t0\t1\n+M600T2559\tM599.8T2559\t599.799987792969\t599.799987792969\t599.799987792969\t2559.03497459635\t2559.03497459635\t2559.03497459635\t1\t1\t0\n+M600T2605\tM599.9T2604.6\t599.900024414062\t599.900024414062\t599.900024414062\t2604.63847751491\t2599.870668269\t2609.40628676082\t2\t1\t1\n+M600T2778\tM599.9T2777.6\t599.900024414062\t599.900024414062\t599.900024414062\t2777.62270382815\t2777.62270382815\t2777.62270382815\t1\t0\t1\n+M600T3440\tM600T3440.2\t600\t600\t600\t3440.21498381355\t3440.21498381355\t3440.21498381355\t1\t1\t0\n+M600T3074\tM600T3073.9\t600\t600\t600\t3073.93667972513\t3073.93667972513\t3073.93667972513\t1\t0\t1\n+M600T2840\tM600T2840.3\t600\t600\t600\t2840.34223529104\t2840.34223529104\t2840.34223529104\t1\t0\t1\n+M600T3456\tM600T3455.6\t600\t600\t600\t3455.56264424004\t3455.56264424004\t3455.56264424004\t1\t1\t0\n+M600T3351\tM600T3350.9\t600\t600\t600\t3350.85695421667\t3350.85695421667\t3350.85695421667\t1\t1\t0\n+M600T2539\tM600T2538.7\t600\t600\t600\t2538.69097459635\t2538.69097459635\t2538.69097459635\t1\t1\t0\n+M600T3208\tM600T3208.4\t600\t600\t600\t3208.3511612646\t3208.3511612646\t3208.3511612646\t1\t1\t0\n+M600T2969\tM600T2969.5\t600\t600\t600\t2969.47546024467\t2969.47546024467\t2969.47546024467\t1\t1\t0\n'
b
diff -r 6caa60dcc217 -r de0d85537ee3 test-data/ko15.CDF
b
Binary file test-data/ko15.CDF has changed
b
diff -r 6caa60dcc217 -r de0d85537ee3 test-data/ko16.CDF
b
Binary file test-data/ko16.CDF has changed
b
diff -r 6caa60dcc217 -r de0d85537ee3 test-data/wt15.CDF
b
Binary file test-data/wt15.CDF has changed
b
diff -r 6caa60dcc217 -r de0d85537ee3 test-data/wt16.CDF
b
Binary file test-data/wt16.CDF has changed
b
diff -r 6caa60dcc217 -r de0d85537ee3 tool_dependencies.xml
--- a/tool_dependencies.xml Tue Feb 07 04:05:02 2017 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-<tool_dependency>
-    <package name="R" version="3.1.2">
-        <repository changeset_revision="4d2fd1413b56" name="package_r_3_1_2" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-    <package name="bioconductor-xcms" version="1.46.0">
-        <repository changeset_revision="779207ed5674" name="package_bioconductor_xcms_1_46_0" owner="lecorguille" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-</tool_dependency>
b
diff -r 6caa60dcc217 -r de0d85537ee3 xcms.r
--- a/xcms.r Tue Feb 07 04:05:02 2017 -0500
+++ b/xcms.r Fri Apr 07 07:37:05 2017 -0400
[
b'@@ -15,8 +15,8 @@\n #pkgs=c("xcms","batch")\n pkgs=c("parallel","BiocGenerics", "Biobase", "Rcpp", "mzR", "xcms","snow","batch")\n for(pkg in pkgs) {\n-  suppressPackageStartupMessages( stopifnot( library(pkg, quietly=TRUE, logical.return=TRUE, character.only=TRUE)))\n-  cat(pkg,"\\t",as.character(packageVersion(pkg)),"\\n",sep="")\n+    suppressPackageStartupMessages( stopifnot( library(pkg, quietly=TRUE, logical.return=TRUE, character.only=TRUE)))\n+    cat(pkg,"\\t",as.character(packageVersion(pkg)),"\\n",sep="")\n }\n source_local <- function(fname){ argv <- commandArgs(trailingOnly = FALSE); base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)); source(paste(base_dir, fname, sep="/")) }\n cat("\\n\\n");\n@@ -38,7 +38,7 @@\n \n #image is an .RData file necessary to use xset variable given by previous tools\n if (!is.null(listArguments[["image"]])){\n-  load(listArguments[["image"]]); listArguments[["image"]]=NULL\n+    load(listArguments[["image"]]); listArguments[["image"]]=NULL\n }\n \n #Import the different functions\n@@ -61,110 +61,67 @@\n \n xsetRdataOutput = paste(thefunction,"RData",sep=".")\n if (!is.null(listArguments[["xsetRdataOutput"]])){\n-  xsetRdataOutput = listArguments[["xsetRdataOutput"]]; listArguments[["xsetRdataOutput"]]=NULL\n+    xsetRdataOutput = listArguments[["xsetRdataOutput"]]; listArguments[["xsetRdataOutput"]]=NULL\n }\n \n #saving the specific parameters\n rplotspdf = "Rplots.pdf"\n if (!is.null(listArguments[["rplotspdf"]])){\n-  rplotspdf = listArguments[["rplotspdf"]]; listArguments[["rplotspdf"]]=NULL\n+    rplotspdf = listArguments[["rplotspdf"]]; listArguments[["rplotspdf"]]=NULL\n }\n sampleMetadataOutput = "sampleMetadata.tsv"\n if (!is.null(listArguments[["sampleMetadataOutput"]])){\n-  sampleMetadataOutput = listArguments[["sampleMetadataOutput"]]; listArguments[["sampleMetadataOutput"]]=NULL\n+    sampleMetadataOutput = listArguments[["sampleMetadataOutput"]]; listArguments[["sampleMetadataOutput"]]=NULL\n }\n variableMetadataOutput = "variableMetadata.tsv"\n if (!is.null(listArguments[["variableMetadataOutput"]])){\n-  variableMetadataOutput = listArguments[["variableMetadataOutput"]]; listArguments[["variableMetadataOutput"]]=NULL\n+    variableMetadataOutput = listArguments[["variableMetadataOutput"]]; listArguments[["variableMetadataOutput"]]=NULL\n }\n dataMatrixOutput = "dataMatrix.tsv"\n if (!is.null(listArguments[["dataMatrixOutput"]])){\n-  dataMatrixOutput = listArguments[["dataMatrixOutput"]]; listArguments[["dataMatrixOutput"]]=NULL\n+    dataMatrixOutput = listArguments[["dataMatrixOutput"]]; listArguments[["dataMatrixOutput"]]=NULL\n }\n if (!is.null(listArguments[["convertRTMinute"]])){\n-  convertRTMinute = listArguments[["convertRTMinute"]]; listArguments[["convertRTMinute"]]=NULL\n+    convertRTMinute = listArguments[["convertRTMinute"]]; listArguments[["convertRTMinute"]]=NULL\n }\n if (!is.null(listArguments[["numDigitsMZ"]])){\n-  numDigitsMZ = listArguments[["numDigitsMZ"]]; listArguments[["numDigitsMZ"]]=NULL\n+    numDigitsMZ = listArguments[["numDigitsMZ"]]; listArguments[["numDigitsMZ"]]=NULL\n }\n if (!is.null(listArguments[["numDigitsRT"]])){\n   numDigitsRT = listArguments[["numDigitsRT"]]; listArguments[["numDigitsRT"]]=NULL\n }\n if (!is.null(listArguments[["intval"]])){\n-  intval = listArguments[["intval"]]; listArguments[["intval"]]=NULL\n+    intval = listArguments[["intval"]]; listArguments[["intval"]]=NULL\n }\n \n if (thefunction %in% c("xcmsSet","retcor")) {\n-  ticspdf = listArguments[["ticspdf"]]; listArguments[["ticspdf"]]=NULL\n-  bicspdf = listArguments[["bicspdf"]]; listArguments[["bicspdf"]]=NULL\n-}\n-\n-#necessary to unzip .zip file uploaded to Galaxy\n-#thanks to .zip file it\'s possible to upload many file as the same time conserving the tree hierarchy of directories\n-\n-\n-if (!is.null(listArguments[["zipfile"]])){\n-  zipfile= listArguments[["zipfile"]]; listArguments[["zipfile"]]=NULL\n-}\n-\n-if (!is.null(listArguments[["library"]])){\n-  directory=listArguments[["library"]]; listArguments[["library"]]'..b'\n }\n \n cat("\\n\\n")\n@@ -172,8 +129,6 @@\n \n \n \n-\n-\n # ----- MAIN PROCESSING INFO -----\n cat("\\tMAIN PROCESSING INFO\\n")\n \n@@ -181,12 +136,12 @@\n #Verification of a group step before doing the fillpeaks job.\n \n if (thefunction == "fillPeaks") {\n-  res=try(is.null(groupnames(xset)))\n-  if (class(res) == "try-error"){\n-    error<-geterrmessage()\n-    write(error, stderr())\n-    stop("You must always do a group step after a retcor. Otherwise it won\'t work for the fillpeaks step")\n-  }\n+    res=try(is.null(groupnames(xset)))\n+    if (class(res) == "try-error"){\n+        error<-geterrmessage()\n+        write(error, stderr())\n+        stop("You must always do a group step after a retcor. Otherwise it won\'t work for the fillpeaks step")\n+    }\n \n }\n \n@@ -194,7 +149,7 @@\n #dev.new(file="Rplots.pdf", width=16, height=12)\n pdf(file=rplotspdf, width=16, height=12)\n if (thefunction == "group") {\n-  par(mfrow=c(2,2))\n+    par(mfrow=c(2,2))\n }\n #else if (thefunction == "retcor") {\n #try to change the legend display\n@@ -208,6 +163,11 @@\n cat("\\t\\tCOMPUTE\\n")\n xset = do.call(thefunction, listArguments)\n \n+# check if there are no peaks\n+if (nrow(peaks(xset)) == 0) {\n+    stop("No peaks were detected. You should review your settings")\n+}\n+\n \n cat("\\n\\n")\n \n@@ -215,40 +175,38 @@\n \n if (thefunction  == "xcmsSet") {\n \n-  #transform the files absolute pathways into relative pathways\n-  xset@filepaths<-sub(paste(getwd(),"/",sep="") ,"", xset@filepaths)\n+    #transform the files absolute pathways into relative pathways\n+    xset@filepaths<-sub(paste(getwd(),"/",sep="") ,"", xset@filepaths)\n+    if(exists("zipfile") && !is.null(zipfile) && (zipfile!="")) {\n \n-  if(exists("zipfile") && (zipfile!="")) {\n+        #Modify the samples names (erase the path)\n+        for(i in 1:length(sampnames(xset))){\n \n-    #Modify the samples names (erase the path)\n-    for(i in 1:length(sampnames(xset))){\n+            sample_name=unlist(strsplit(sampnames(xset)[i], "/"))\n+            sample_name=sample_name[length(sample_name)]\n+            sample_name= unlist(strsplit(sample_name,"[.]"))[1]\n+            sampnames(xset)[i]=sample_name\n \n-      sample_name=unlist(strsplit(sampnames(xset)[i], "/"))\n-      sample_name=sample_name[length(sample_name)]\n-      sample_name= unlist(strsplit(sample_name,"[.]"))[1]\n-      sampnames(xset)[i]=sample_name\n+        }\n \n     }\n \n-  }\n-\n }\n \n # -- TIC --\n if (thefunction == "xcmsSet") {\n-  cat("\\t\\tGET TIC GRAPH\\n")\n-  sampleNamesList = getSampleMetadata(xcmsSet=xset, sampleMetadataOutput=sampleMetadataOutput)\n-  getTICs(xcmsSet=xset, pdfname=ticspdf,rt="raw")\n-  getBPCs(xcmsSet=xset,rt="raw",pdfname=bicspdf)\n+    cat("\\t\\tGET TIC GRAPH\\n")\n+    sampleNamesList = getSampleMetadata(xcmsSet=xset, sampleMetadataOutput=sampleMetadataOutput)\n+    getTICs(xcmsSet=xset, pdfname=ticspdf,rt="raw")\n+    getBPCs(xcmsSet=xset,rt="raw",pdfname=bicspdf)\n } else if (thefunction == "retcor") {\n-  cat("\\t\\tGET TIC GRAPH\\n")\n-  getTICs(xcmsSet=xset, pdfname=ticspdf,rt="corrected")\n-  getBPCs(xcmsSet=xset,rt="corrected",pdfname=bicspdf)\n+    cat("\\t\\tGET TIC GRAPH\\n")\n+    getTICs(xcmsSet=xset, pdfname=ticspdf,rt="corrected")\n+    getBPCs(xcmsSet=xset,rt="corrected",pdfname=bicspdf)\n }\n \n-if (thefunction == "fillPeaks" && exists("intval")) {\n-  cat("\\t\\tGET THE PEAK LIST\\n")\n-  getPeaklistW4M(xset,intval,convertRTMinute,numDigitsMZ,numDigitsRT,variableMetadataOutput,dataMatrixOutput)\n+if ((thefunction == "group" || thefunction == "fillPeaks") && exists("intval")) {\n+    getPeaklistW4M(xset,intval,convertRTMinute,numDigitsMZ,numDigitsRT,variableMetadataOutput,dataMatrixOutput)\n }\n \n \n@@ -262,7 +220,7 @@\n \n \n #saving R data in .Rdata file to save the variables used in the present tool\n-objects2save = c("xset","zipfile","listOFlistArguments","md5sumList","sampleNamesList")\n+objects2save = c("xset","zipfile","singlefile","listOFlistArguments","md5sumList","sampleNamesList")\n save(list=objects2save[objects2save %in% ls()], file=xsetRdataOutput)\n \n cat("\\n\\n")\n'