changeset 12:27e7da5f6848 draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit a6f5f18b3d6130f7d7fbb9f2df856838c6217797
author lecorguille
date Fri, 07 Apr 2017 07:37:23 -0400 (2017-04-07)
parents cb599006715f
children a5347d57899f
files Makefile README.rst abims_xcms_summary.xml macros.xml planemo_test.sh static/images/xcms_summary_workflow.png test-data/faahKO-single.xset.merged.group.retcor.group.fillpeaks.RData test-data/faahKO-single.xset.merged.group.retcor.group.fillpeaks.summary.html test-data/faahKO.xset.group.retcor.group.fillpeaks.summary.html test-data/summary.html tool_dependencies.xml xcms_summary.r
diffstat 12 files changed, 349 insertions(+), 207 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Mon Jan 30 08:54:06 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-# USAGE: make [install|clean]
-
-# -------- VARIABLE --------
-
-OBJ=xcms_summary.tgz
-DEP=abims_xcms_summary.xml xcms_summary.r tool_dependencies.xml repository_dependencies.xml test-data
-
-
-# ------------------------
-
-all: $(OBJ)
-
-$(OBJ): $(DEP)
-	tar --exclude=".svn" -zchf $@ $^
-
-# ------------------------
-
-install: $(OBJ)
-	mv *.tgz ~
-
-clean:
-	rm *.tgz
-
--- a/README.rst	Mon Jan 30 08:54:06 2017 -0500
+++ b/README.rst	Fri Apr 07 07:37:23 2017 -0400
@@ -2,6 +2,10 @@
 Changelog/News
 --------------
 
+**Version 1.0.3 - 03/02/2017**
+
+- IMPROVEMENT: xcms.summary can deal with merged individual data
+
 **Version 1.0.2 - 06/07/2016**
 
 - UPGRADE: upgrate the xcms version from 1.44.0 to 1.46.0
@@ -16,12 +20,3 @@
 - NEW: Create a summary of XCMS analysis
 
 
-Test Status
------------
-
-Planemo test using conda: failed
-
-Planemo test using source env.sh: passed
-
-Planemo shed_test : passed
-
--- a/abims_xcms_summary.xml	Mon Jan 30 08:54:06 2017 -0500
+++ b/abims_xcms_summary.xml	Fri Apr 07 07:37:23 2017 -0400
@@ -1,46 +1,50 @@
-<tool id="abims_xcms_summary" name="xcms.summary" version="1.0.2">
-    
+<tool id="abims_xcms_summary" name="xcms.summary" version="1.0.3">
+
     <description>Create a summary of XCMS analysis</description>
 
     <macros>
         <import>macros.xml</import>
-    </macros>    
+    </macros>
 
     <requirements>
         <requirement type="package" version="1.26.0">bioconductor-camera</requirement>
         <requirement type="package" version="1.1_4">r-batch</requirement>
     </requirements>
-    
+
     <expand macro="stdio"/>
-    
+
     <command><![CDATA[
         $__tool_directory__/xcms_summary.r
 
-        image $image 
-        htmlOutput $htmlOutput
+        image '$image'
+        htmlOutput '$htmlOutput'
         user_email $__user_email__
-       
+
     ]]></command>
-    
+
     <inputs>
 
         <param name="image" type="data" format="rdata.xcms.raw,rdata.xcms.group,rdata.xcms.retcor,rdata.xcms.fillpeaks,rdata.camera.quick,rdata.camera.positive,rdata.camera.negative,rdata" label="xset RData file" help="output file from another function xcms (xcmsSet, group, retcor, fillpeaks etc.)" />
 
     </inputs>
-    
+
     <outputs>
         <data name="htmlOutput" format="html" label="xcms summary html" />
     </outputs>
-    
+
     <tests>
         <test>
             <param name="image" value="faahKO.xset.group.retcor.group.fillpeaks.RData" />
-            <output name="htmlOutput" file="summary.html" />
+            <output name="htmlOutput" file="faahKO.xset.group.retcor.group.fillpeaks.summary.html" />
+        </test>
+        <test>
+            <param name="image" value="faahKO-single.xset.merged.group.retcor.group.fillpeaks.RData" />
+            <output name="htmlOutput" file="faahKO-single.xset.merged.group.retcor.group.fillpeaks.summary.html" />
         </test>
     </tests>
-    
+
     <help><![CDATA[
-        
+
 @HELP_AUTHORS@
 
 ============
@@ -51,14 +55,40 @@
 Description
 -----------
 
-This tool provide a HTML summary which summarizes your analysis using the [W4M] XCMS and CAMERA tools 
+This tool provide a HTML summary which summarizes your analysis using the [W4M] XCMS and CAMERA tools
+
+-----------------
+Workflow position
+-----------------
+
+**Upstream tools**
 
+========================= ================= ===================== ==========
+Name                      output file       format                parameter
+========================= ================= ===================== ==========
+xcms.xcmsSet              xset.RData        rdata.xcms.raw        RData file
+------------------------- ----------------- --------------------- ----------
+xcms.group                xset.RData        rdata.xcms.group      RData file
+------------------------- ----------------- --------------------- ----------
+xcms.retcor               xset.RData        rdata.xcms.retcor     RData file
+------------------------- ----------------- --------------------- ----------
+xcms.fillpeaks            xset.RData        rdata.xcms.fillpeaks  RData file
+------------------------- ----------------- --------------------- ----------
+CAMERA.annotate           xset.RData        rdata.camera.*        RData file
+========================= ================= ===================== ==========
+
+
+.. image:: xcms_summary_workflow.png
 
 ---------------------------------------------------
 
 Changelog/News
 --------------
 
+**Version 1.0.3 - 03/02/2017**
+
+- IMPROVEMENT: xcms.summary can deal with merged individual data
+
 **Version 1.0.2 - 06/07/2016**
 
 - UPGRADE: upgrate the xcms version from 1.44.0 to 1.46.0
--- a/macros.xml	Mon Jan 30 08:54:06 2017 -0500
+++ b/macros.xml	Fri Apr 07 07:37:23 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
 
--- a/planemo_test.sh	Mon Jan 30 08:54:06 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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-camera/1.22.0/lecorguille/package_bioconductor_camera_1_22_0/22cec61d66c2/env.sh
-planemo test --install_galaxy
-
-#All 1 test(s) executed passed.
-#abims_xcms_summary[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_summary[0]: passed
-
-
-# -- Use of shed_test
-planemo shed_test --install_galaxy
-
-#All 1 test(s) executed passed.
-#toolshed.g2.bx.psu.edu/repos/lecorguille/xcms_summary/abims_xcms_summary/1.0.0[0]: passed
-
-
Binary file static/images/xcms_summary_workflow.png has changed
Binary file test-data/faahKO-single.xset.merged.group.retcor.group.fillpeaks.RData has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/faahKO-single.xset.merged.group.retcor.group.fillpeaks.summary.html	Fri Apr 07 07:37:23 2017 -0400
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<HTML lang='en'>
+<HEAD>
+<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
+<title>[W4M] XCMS analysis summary</title>
+<style>
+table, tr, td, th { border: 1px solid #000000; border-collapse:collapse; }
+td,th { padding: 5px; padding-right: 12px; }
+th { background: #898989; text-align:left;color: white;}
+h2 { color: #FFA212; }
+ul li { margin-bottom:10px; }
+</style>
+</HEAD>
+<BODY>
+<div><h1>___ XCMS analysis summary using Workflow4Metabolomics ___</h1>
+</div>
+<h2>Samples used:</h2>
+<div><table>
+<tr><th>sample</th><th>filename</th><th>md5sum<sup>*</sup></th></tr>
+<tr> <td> ko15 </td> <td> ./ko15.CDF </td> <td> 4698c36c0b3af007faf70975c04ccf2a </td> </tr><tr> <td> ko16 </td> <td> ./ko16.CDF </td> <td> afaeed94ced3140bc042d5ab6aeb16c1 </td> </tr><tr> <td> wt15 </td> <td> ./wt15.CDF </td> <td> d58a27fad7c04ddddb0359ddc2b7ba68 </td> </tr><tr> <td> wt16 </td> <td> ./wt16.CDF </td> <td> 29654e9f8ad48c1fbe2a41b9ba578f6e </td> </tr>
+</table>
+<br/><sup>*</sup>The program md5sum is designed to verify data integrity. So you can check if the data were uploaded correctly or if the data were changed during the process.
+</div>
+<h2>Function launched:</h2>
+<div><table>
+<tr><th>timestamp<sup>***</sup></th><th>function</th><th>argument</th><th>value</th></tr>
+<tr><td rowspan='4'>170203-11:04:42</td><td rowspan='4'>xcmsSet</td>
+<td>nSlaves</td><td>1</td></tr>
+<tr><td>method</td><td>centWave</td></tr>
+<tr><td>ppm</td><td>25</td></tr>
+<tr><td>peakwidth</td><td>2050</td></tr>
+<tr><td rowspan='4'>170203-11:05:21</td><td rowspan='4'>xcmsSet</td>
+<td>nSlaves</td><td>1</td></tr>
+<tr><td>method</td><td>centWave</td></tr>
+<tr><td>ppm</td><td>25</td></tr>
+<tr><td>peakwidth</td><td>2050</td></tr>
+<tr><td rowspan='4'>170203-11:06:21</td><td rowspan='4'>xcmsSet</td>
+<td>nSlaves</td><td>1</td></tr>
+<tr><td>method</td><td>centWave</td></tr>
+<tr><td>ppm</td><td>25</td></tr>
+<tr><td>peakwidth</td><td>2050</td></tr>
+<tr><td rowspan='4'>170203-11:06:59</td><td rowspan='4'>xcmsSet</td>
+<td>nSlaves</td><td>1</td></tr>
+<tr><td>method</td><td>centWave</td></tr>
+<tr><td>ppm</td><td>25</td></tr>
+<tr><td>peakwidth</td><td>2050</td></tr>
+<tr><td rowspan='6'>170203-14:38:53</td><td rowspan='6'>group</td>
+<td>method</td><td>density</td></tr>
+<tr><td>sleep</td><td>0.001</td></tr>
+<tr><td>minfrac</td><td>0.3</td></tr>
+<tr><td>bw</td><td>5</td></tr>
+<tr><td>mzwid</td><td>0.01</td></tr>
+<tr><td>max</td><td>50</td></tr>
+<tr><td rowspan='7'>170203-14:51:16</td><td rowspan='7'>retcor</td>
+<td>method</td><td>peakgroups</td></tr>
+<tr><td>smooth</td><td>loess</td></tr>
+<tr><td>extra</td><td>1</td></tr>
+<tr><td>missing</td><td>1</td></tr>
+<tr><td>span</td><td>0.2</td></tr>
+<tr><td>family</td><td>gaussian</td></tr>
+<tr><td>plottype</td><td>deviation</td></tr>
+<tr><td rowspan='6'>170203-15:27:58</td><td rowspan='6'>group</td>
+<td>method</td><td>density</td></tr>
+<tr><td>sleep</td><td>0.001</td></tr>
+<tr><td>minfrac</td><td>0.3</td></tr>
+<tr><td>bw</td><td>5</td></tr>
+<tr><td>mzwid</td><td>0.01</td></tr>
+<tr><td>max</td><td>50</td></tr>
+<tr><td rowspan='5'>170203-15:44:50</td><td rowspan='5'>fillPeaks</td>
+<td>method</td><td>chrom</td></tr>
+<tr><td>convertRTMinute</td><td>FALSE</td></tr>
+<tr><td>numDigitsMZ</td><td>4</td></tr>
+<tr><td>numDigitsRT</td><td>1</td></tr>
+<tr><td>intval</td><td>into</td></tr>
+</table>
+<br/><sup>***</sup>timestamp format: yymmdd-hh:mm:ss
+</div>
+<h2>Informations about the xcmsSet object:</h2>
+<div><pre>
+An "xcmsSet" object with 4 samples
+
+Time range: 2506-4484 seconds (41.8-74.7 minutes)
+Mass range: 200.1-600 m/z
+Peaks: 32720 (about 8180 per sample)
+Peak Groups: 8157 
+Sample classes: KO, WT 
+
+Peak picking was performed on MS1.
+Profile settings: method = bin
+                  step = 0.1
+
+Memory usage: 4.25 MB
+</pre></div>
+<h2>Citations:</h2>
+<div><ul>
+<li>To cite the <b>XCMS</b> package in publications use:
+<ul>
+<li>Smith, C.A. and Want, E.J. and O'Maille, G. and Abagyan,R. and Siuzdak, G.XCMS: Processing mass spectrometry data for metabolite profiling using nonlinear peak alignment, matching and identification, Analytical Chemistry, 78:779-787 (2006)</li>
+<li>Ralf Tautenhahn, Christoph Boettcher, Steffen Neumann: Highly sensitive feature detection for high resolution LC/MS BMC Bioinformatics, 9:504 (2008)</li>
+<li>H. Paul Benton, Elizabeth J. Want and Timothy M. D. Ebbels Correction of mass calibration gaps in liquid chromatography-mass spectrometry metabolomics data Bioinformatics, 26:2488 (2010)</li>
+</ul>
+</li>
+<li>To cite the <b>CAMERA</b> package in publications use:
+<ul>
+<li>Kuhl, C., Tautenhahn, R., Boettcher, C., Larson, T. R. and Neumann,S. CAMERA: an integrated strategy for compound spectra extraction and annotation of liquid chromatography/mass spectrometry data sets. Analytical Chemistry, 84:283-289 (2012)</li>
+</ul>
+</li>
+<li>To cite the <b>Workflow4Metabolimics (W4M)</b> project in publications use:
+<ul>
+<li>Franck Giacomoni, Gildas Le Corguillé, Misharl Monsoor, Marion Landi, Pierre Pericard, Mélanie Pétéra, Christophe Duperier, Marie Tremblay-Franco, Jean-François Martin, Daniel Jacob, Sophie Goulitquer, Etienne A. Thévenot and Christophe Caron (2014). Workflow4Metabolomics: A collaborative research infrastructure for computational metabolomics. Bioinformatics  doi:10.1093/bioinformatics/btu813</li>
+</ul>
+</li>
+</ul></div>
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/faahKO.xset.group.retcor.group.fillpeaks.summary.html	Fri Apr 07 07:37:23 2017 -0400
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<HTML lang='en'>
+<HEAD>
+<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
+<title>[W4M] XCMS analysis summary</title>
+<style>
+table, tr, td, th { border: 1px solid #000000; border-collapse:collapse; }
+td,th { padding: 5px; padding-right: 12px; }
+th { background: #898989; text-align:left;color: white;}
+h2 { color: #FFA212; }
+ul li { margin-bottom:10px; }
+</style>
+</HEAD>
+<BODY>
+<div><h1>___ XCMS analysis summary using Workflow4Metabolomics ___</h1>
+</div>
+<h2>Samples used:</h2>
+<div><table>
+<tr><th>sample</th><th>filename</th><th>md5sum<sup>*</sup></th></tr>
+<tr> <td> ko15 </td> <td> faahKO_reduce/KO/ko15.CDF </td> <td> 4698c36c0b3af007faf70975c04ccf2a </td> </tr><tr> <td> ko16 </td> <td> faahKO_reduce/KO/ko16.CDF </td> <td> afaeed94ced3140bc042d5ab6aeb16c1 </td> </tr><tr> <td> wt15 </td> <td> faahKO_reduce/WT/wt15.CDF </td> <td> d58a27fad7c04ddddb0359ddc2b7ba68 </td> </tr><tr> <td> wt16 </td> <td> faahKO_reduce/WT/wt16.CDF </td> <td> 29654e9f8ad48c1fbe2a41b9ba578f6e </td> </tr>
+</table>
+<br/><sup>*</sup>The program md5sum is designed to verify data integrity. So you can check if the data were uploaded correctly or if the data were changed during the process.
+</div>
+<h2>Function launched:</h2>
+<div><table>
+<tr><th>timestamp<sup>***</sup></th><th>function</th><th>argument</th><th>value</th></tr>
+<tr><td rowspan='4'>160420-14:09:46</td><td rowspan='4'>xcmsSet</td>
+<td>nSlaves</td><td>1</td></tr>
+<tr><td>method</td><td>centWave</td></tr>
+<tr><td>ppm</td><td>25</td></tr>
+<tr><td>peakwidth</td><td>2050</td></tr>
+<tr><td rowspan='6'>160420-15:07:14</td><td rowspan='6'>group</td>
+<td>method</td><td>density</td></tr>
+<tr><td>sleep</td><td>0.001</td></tr>
+<tr><td>minfrac</td><td>0.3</td></tr>
+<tr><td>bw</td><td>5</td></tr>
+<tr><td>mzwid</td><td>0.01</td></tr>
+<tr><td>max</td><td>50</td></tr>
+<tr><td rowspan='7'>160421-11:10:32</td><td rowspan='7'>retcor</td>
+<td>method</td><td>peakgroups</td></tr>
+<tr><td>smooth</td><td>loess</td></tr>
+<tr><td>extra</td><td>1</td></tr>
+<tr><td>missing</td><td>1</td></tr>
+<tr><td>span</td><td>0.2</td></tr>
+<tr><td>family</td><td>gaussian</td></tr>
+<tr><td>plottype</td><td>deviation</td></tr>
+<tr><td rowspan='6'>160421-11:19:31</td><td rowspan='6'>group</td>
+<td>method</td><td>density</td></tr>
+<tr><td>sleep</td><td>0.001</td></tr>
+<tr><td>minfrac</td><td>0.3</td></tr>
+<tr><td>bw</td><td>5</td></tr>
+<tr><td>mzwid</td><td>0.01</td></tr>
+<tr><td>max</td><td>50</td></tr>
+<tr><td rowspan='1'>160421-11:50:48</td><td rowspan='1'>fillPeaks</td>
+<td>method</td><td>chrom</td></tr>
+</table>
+<br/><sup>***</sup>timestamp format: yymmdd-hh:mm:ss
+</div>
+<h2>Informations about the xcmsSet object:</h2>
+<div><pre>
+An "xcmsSet" object with 4 samples
+
+Time range: 2506-4484 seconds (41.8-74.7 minutes)
+Mass range: 200.1-600 m/z
+Peaks: 32720 (about 8180 per sample)
+Peak Groups: 8157 
+Sample classes: KO, WT 
+
+Profile settings: method = bin
+                  step = 0.1
+
+Memory usage: 4.25 MB
+</pre></div>
+<h2>Citations:</h2>
+<div><ul>
+<li>To cite the <b>XCMS</b> package in publications use:
+<ul>
+<li>Smith, C.A. and Want, E.J. and O'Maille, G. and Abagyan,R. and Siuzdak, G.XCMS: Processing mass spectrometry data for metabolite profiling using nonlinear peak alignment, matching and identification, Analytical Chemistry, 78:779-787 (2006)</li>
+<li>Ralf Tautenhahn, Christoph Boettcher, Steffen Neumann: Highly sensitive feature detection for high resolution LC/MS BMC Bioinformatics, 9:504 (2008)</li>
+<li>H. Paul Benton, Elizabeth J. Want and Timothy M. D. Ebbels Correction of mass calibration gaps in liquid chromatography-mass spectrometry metabolomics data Bioinformatics, 26:2488 (2010)</li>
+</ul>
+</li>
+<li>To cite the <b>CAMERA</b> package in publications use:
+<ul>
+<li>Kuhl, C., Tautenhahn, R., Boettcher, C., Larson, T. R. and Neumann,S. CAMERA: an integrated strategy for compound spectra extraction and annotation of liquid chromatography/mass spectrometry data sets. Analytical Chemistry, 84:283-289 (2012)</li>
+</ul>
+</li>
+<li>To cite the <b>Workflow4Metabolimics (W4M)</b> project in publications use:
+<ul>
+<li>Franck Giacomoni, Gildas Le Corguillé, Misharl Monsoor, Marion Landi, Pierre Pericard, Mélanie Pétéra, Christophe Duperier, Marie Tremblay-Franco, Jean-François Martin, Daniel Jacob, Sophie Goulitquer, Etienne A. Thévenot and Christophe Caron (2014). Workflow4Metabolomics: A collaborative research infrastructure for computational metabolomics. Bioinformatics  doi:10.1093/bioinformatics/btu813</li>
+</ul>
+</li>
+</ul></div>
+</BODY>
+</HTML>
--- a/test-data/summary.html	Mon Jan 30 08:54:06 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<HTML lang='en'>
-<HEAD>
-<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
-<title>[W4M] XCMS analysis summary</title>
-<style>
-table, tr, td, th { border: 1px solid #000000; border-collapse:collapse; }
-td,th { padding: 5px; padding-right: 12px; }
-th { background: #898989; text-align:left;color: white;}
-h2 { color: #FFA212; }
-ul li { margin-bottom:10px; }
-</style>
-</HEAD>
-<BODY>
-<div><h1>___ XCMS analysis summary using Workflow4Metabolomics ___</h1>
-</div>
-<h2>Samples used:</h2>
-<div><table>
-<tr><th>sample</th><th>filename</th><th>md5sum<sup>*</sup></th></tr>
-<tr> <td> ko15 </td> <td> faahKO_reduce/KO/ko15.CDF </td> <td> 4698c36c0b3af007faf70975c04ccf2a </td> </tr><tr> <td> ko16 </td> <td> faahKO_reduce/KO/ko16.CDF </td> <td> afaeed94ced3140bc042d5ab6aeb16c1 </td> </tr><tr> <td> wt15 </td> <td> faahKO_reduce/WT/wt15.CDF </td> <td> d58a27fad7c04ddddb0359ddc2b7ba68 </td> </tr><tr> <td> wt16 </td> <td> faahKO_reduce/WT/wt16.CDF </td> <td> 29654e9f8ad48c1fbe2a41b9ba578f6e </td> </tr>
-</table>
-<br/><sup>*</sup>The program md5sum is designed to verify data integrity. So you can check if the data were uploaded correctly or if the data were chancged during the process.
-</div>
-<h2>Function launched:</h2>
-<div><table>
-<tr><th>timestamp<sup>***</sup></th><th>function</th><th>argument</th><th>value</th></tr>
-<tr><td rowspan='4'>160420-14:09:46</td><td rowspan='4'>xcmsSet</td>
-<td>nSlaves</td><td>1</td></tr>
-<tr><td>method</td><td>centWave</td></tr>
-<tr><td>ppm</td><td>25</td></tr>
-<tr><td>peakwidth</td><td>2050</td></tr>
-<tr><td rowspan='6'>160420-15:07:14</td><td rowspan='6'>group</td>
-<td>method</td><td>density</td></tr>
-<tr><td>sleep</td><td>0.001</td></tr>
-<tr><td>minfrac</td><td>0.3</td></tr>
-<tr><td>bw</td><td>5</td></tr>
-<tr><td>mzwid</td><td>0.01</td></tr>
-<tr><td>max</td><td>50</td></tr>
-<tr><td rowspan='7'>160421-11:10:32</td><td rowspan='7'>retcor</td>
-<td>method</td><td>peakgroups</td></tr>
-<tr><td>smooth</td><td>loess</td></tr>
-<tr><td>extra</td><td>1</td></tr>
-<tr><td>missing</td><td>1</td></tr>
-<tr><td>span</td><td>0.2</td></tr>
-<tr><td>family</td><td>gaussian</td></tr>
-<tr><td>plottype</td><td>deviation</td></tr>
-<tr><td rowspan='6'>160421-11:19:31</td><td rowspan='6'>group</td>
-<td>method</td><td>density</td></tr>
-<tr><td>sleep</td><td>0.001</td></tr>
-<tr><td>minfrac</td><td>0.3</td></tr>
-<tr><td>bw</td><td>5</td></tr>
-<tr><td>mzwid</td><td>0.01</td></tr>
-<tr><td>max</td><td>50</td></tr>
-<tr><td rowspan='1'>160421-11:50:48</td><td rowspan='1'>fillPeaks</td>
-<td>method</td><td>chrom</td></tr>
-</table>
-<br/><sup>***</sup>timestamp format: yymmdd-hh:mm:ss
-</div>
-<h2>Informations about the xcmsSet object:</h2>
-<div><pre>
-An "xcmsSet" object with 4 samples
-
-Time range: 2506-4484 seconds (41.8-74.7 minutes)
-Mass range: 200.1-600 m/z
-Peaks: 32720 (about 8180 per sample)
-Peak Groups: 8157 
-Sample classes: KO, WT 
-
-Profile settings: method = bin
-                  step = 0.1
-
-Memory usage: 4.25 MB
-</pre></div>
-<h2>Citations:</h2>
-<div><ul>
-<li>To cite the <b>XCMS</b> package in publications use:
-<ul>
-<li>Smith, C.A. and Want, E.J. and O'Maille, G. and Abagyan,R. and Siuzdak, G.XCMS: Processing mass spectrometry data for metabolite profiling using nonlinear peak alignment, matching and identification, Analytical Chemistry, 78:779-787 (2006)</li>
-<li>Ralf Tautenhahn, Christoph Boettcher, Steffen Neumann: Highly sensitive feature detection for high resolution LC/MS BMC Bioinformatics, 9:504 (2008)</li>
-<li>H. Paul Benton, Elizabeth J. Want and Timothy M. D. Ebbels Correction of mass calibration gaps in liquid chromatography-mass spectrometry metabolomics data Bioinformatics, 26:2488 (2010)</li>
-</ul>
-</li>
-<li>To cite the <b>CAMERA</b> package in publications use:
-<ul>
-<li>Kuhl, C., Tautenhahn, R., Boettcher, C., Larson, T. R. and Neumann,S. CAMERA: an integrated strategy for compound spectra extraction and annotation of liquid chromatography/mass spectrometry data sets. Analytical Chemistry, 84:283-289 (2012)</li>
-</ul>
-</li>
-<li>To cite the <b>Workflow4Metabolimics (W4M)</b> project in publications use:
-<ul>
-<li>Franck Giacomoni, Gildas Le Corguillé, Misharl Monsoor, Marion Landi, Pierre Pericard, Mélanie Pétéra, Christophe Duperier, Marie Tremblay-Franco, Jean-François Martin, Daniel Jacob, Sophie Goulitquer, Etienne A. Thévenot and Christophe Caron (2014). Workflow4Metabolomics: A collaborative research infrastructure for computational metabolomics. Bioinformatics  doi:10.1093/bioinformatics/btu813</li>
-</ul>
-</li>
-</ul></div>
-</BODY>
-</HTML>
--- a/tool_dependencies.xml	Mon Jan 30 08:54:06 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -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-camera" version="1.22.0">
-        <repository changeset_revision="845eb883bd1b" name="package_r_camera_1_22_0" owner="lecorguille" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-</tool_dependency>
--- a/xcms_summary.r	Mon Jan 30 08:54:06 2017 -0500
+++ b/xcms_summary.r	Fri Apr 07 07:37:23 2017 -0400
@@ -6,7 +6,7 @@
 
 # ----- ARGUMENTS BLACKLIST -----
 #xcms.r
-argBlacklist=c("zipfile","xfunction","xsetRdataOutput","sampleMetadataOutput","ticspdf","bicspdf","rplotspdf")
+argBlacklist=c("zipfile","singlefile_galaxyPath","singlefile_sampleName","xfunction","xsetRdataOutput","sampleMetadataOutput","ticspdf","bicspdf","rplotspdf")
 #CAMERA.r
 argBlacklist=c(argBlacklist,"dataMatrixOutput","variableMetadataOutput","new_file_path")
 
@@ -57,7 +57,7 @@
     writehtml("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />")
 
     writehtml("<title>[W4M] XCMS analysis summary</title>")
-    
+
     writehtml("<style>")
         writehtml("table, tr, td, th { border: 1px solid #000000; border-collapse:collapse; }")
         writehtml("td,th { padding: 5px; padding-right: 12px; }")
@@ -84,8 +84,8 @@
         } else {
             sampleNameHeaderHtml = paste("<th>sample</th><th>sample renamed</th>")
             sampleNameHtml = paste("<td>",sampnames(xset),"</td><td>",sampleNamesList$sampleNamesMakeNames,"</td>")
-        } 
-        
+        }
+
         if (!exists("md5sumList")) {
             md5sumHeaderHtml = ""
             md5sumHtml = ""
@@ -93,16 +93,16 @@
         } else if (is.null(md5sumList$removalBadCharacters)) {
             md5sumHeaderHtml = paste("<th>md5sum<sup>*</sup></th>")
             md5sumHtml = paste("<td>",md5sumList$origin,"</td>")
-            md5sumLegend = "<br/><sup>*</sup>The program md5sum is designed to verify data integrity. So you can check if the data were uploaded correctly or if the data were chancged during the process."
+            md5sumLegend = "<br/><sup>*</sup>The program md5sum is designed to verify data integrity. So you can check if the data were uploaded correctly or if the data were changed during the process."
         } else {
             md5sumHeaderHtml = paste("<th>md5sum<sup>*</sup></th><th>md5sum<sup>**</sup> after bad characters removal</th>")
             md5sumHtml = paste("<td>",md5sumList$origin,"</td><td>",md5sumList$removalBadCharacters,"</td>")
-            md5sumLegend = "<br/><sup>*</sup>The program md5sum is designed to verify data integrity. So you can check if the data were uploaded correctly or if the data were chancged during the process.<br/><sup>**</sup>Because some bad characters (eg: accent) were removed from your original file, the checksum have changed too.<br/>"
+            md5sumLegend = "<br/><sup>*</sup>The program md5sum is designed to verify data integrity. So you can check if the data were uploaded correctly or if the data were changed during the process.<br/><sup>**</sup>Because some bad characters (eg: accent) were removed from your original file, the checksum have changed too.<br/>"
         } 
         
         writehtml("<tr>",sampleNameHeaderHtml,"<th>filename</th>",md5sumHeaderHtml,"</tr>")
         writehtml(paste("<tr>",sampleNameHtml,"<td>",xset@filepaths,"</td>",md5sumHtml,"</tr>"))
-        
+
     writehtml("</table>")
     writehtml(md5sumLegend)
     writehtml("</div>")
@@ -170,4 +170,3 @@
 writehtml("</BODY>")
 
 writehtml("</HTML>")
-