changeset 0:47f9b1fd5ce6 draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit a6f5f18b3d6130f7d7fbb9f2df856838c6217797
author lecorguille
date Thu, 20 Apr 2017 05:41:32 -0400
parents
children 090cf284d9ff
files macros.xml repository_dependencies.xml static/images/xcms_merge_workflow.png test-data/MM14-xset.RData test-data/MM8-xset.RData test-data/ko15-xset.RData test-data/ko16-xset.RData test-data/sampleMetadata.tab test-data/wt15-xset.RData test-data/wt16-xset.RData xcms_merge.xml
diffstat 11 files changed, 377 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Thu Apr 20 05:41:32 2017 -0400
@@ -0,0 +1,141 @@
+<?xml version="1.0"?>
+<macros>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="0.4_1">r-snow</requirement>
+            <requirement type="package" version="1.46.0">bioconductor-xcms</requirement>
+            <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" />
+        </stdio>
+    </xml>
+
+    <token name="@COMMAND_XCMS_SCRIPT@">
+        LANG=C Rscript $__tool_directory__/xcms.r
+    </token>
+
+    <token name="@COMMAND_LOG_EXIT@">
+        ;
+        return=\$?;
+        mv log.txt '$log';
+        cat '$log';
+        sh -c "exit \$return"
+    </token>
+
+    <!-- zipfile load for planemo test -->
+
+    <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="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="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
+
+.. 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]
+
+ | Contact support@workflow4metabolomics.org for any questions or concerns about the Galaxy implementation of this tool.
+
+---------------------------------------------------
+
+    </token>
+
+
+    <xml name="citation">
+        <citations>
+            <citation type="doi">10.1021/ac051437y</citation>
+            <citation type="doi">10.1093/bioinformatics/btu813</citation>
+        </citations>
+    </xml>
+</macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/repository_dependencies.xml	Thu Apr 20 05:41:32 2017 -0400
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<repositories>
+    <repository changeset_revision="7800ba9a4c1e" name="no_unzip_datatype" owner="lecorguille" toolshed="https://toolshed.g2.bx.psu.edu" />
+	<repository changeset_revision="d64562a4ebb3" name="rdata_xcms_datatypes" owner="lecorguille" toolshed="https://toolshed.g2.bx.psu.edu" />
+</repositories>
Binary file static/images/xcms_merge_workflow.png has changed
Binary file test-data/MM14-xset.RData has changed
Binary file test-data/MM8-xset.RData has changed
Binary file test-data/ko15-xset.RData has changed
Binary file test-data/ko16-xset.RData has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/sampleMetadata.tab	Thu Apr 20 05:41:32 2017 -0400
@@ -0,0 +1,6 @@
+wt16	WT
+ko16	KO
+wt15	WT
+ko15	KO
+ko10	KO
+foobar01	FOOBAR
Binary file test-data/wt15-xset.RData has changed
Binary file test-data/wt16-xset.RData has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xcms_merge.xml	Thu Apr 20 05:41:32 2017 -0400
@@ -0,0 +1,225 @@
+<tool id="xcms_merge" name="xcms.xcmsSet Merger" version="1.0.0">
+    <description>Merge xcms.xcmsSet xset in one to be used by group</description>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_light"/>
+    <expand macro="stdio"/>
+
+    <command><![CDATA[
+        Rscript $script_file
+    ]]></command>
+
+    <configfiles>
+        <configfile name="script_file"><![CDATA[
+suppressPackageStartupMessages(library(xcms, quietly=TRUE))
+
+images=c(
+"${"\",\"".join(map(str, $images))}"
+)
+
+
+cat("\tXSET MERGING...\n")
+
+for(image in images) {
+    load(image)
+    cat(sampleNamesList\$sampleNamesOrigin,"\n")
+    if (!exists("xset_merged")) {
+        xset_merged=xset
+        singlefile_merged=singlefile
+        listOFlistArguments_merged=listOFlistArguments
+        md5sumList_merged=md5sumList
+        sampleNamesList_merged=sampleNamesList
+    } else {
+        xset_merged=c(xset_merged,xset)
+        singlefile_merged=c(singlefile_merged,singlefile)
+        listOFlistArguments_merged=c(listOFlistArguments_merged,listOFlistArguments)
+        md5sumList_merged\$origin=rbind(md5sumList_merged\$origin,md5sumList\$origin)
+        sampleNamesList_merged\$sampleNamesOrigin=c(sampleNamesList_merged\$sampleNamesOrigin,sampleNamesList\$sampleNamesOrigin)
+        sampleNamesList_merged\$sampleNamesMakeNames=c(sampleNamesList_merged\$sampleNamesMakeNames,sampleNamesList\$sampleNamesMakeNames)
+    }
+}
+rm(image)
+xset=xset_merged; rm(xset_merged)
+singlefile=singlefile_merged; rm(singlefile_merged)
+listOFlistArguments=listOFlistArguments_merged; rm(listOFlistArguments_merged)
+md5sumList=md5sumList_merged; rm(md5sumList_merged)
+sampleNamesList=sampleNamesList_merged; rm(sampleNamesList_merged)
+
+#if str($sampleMetadata) != 'None':
+    cat("\tXSET PHENODATA SETTING...\n")
+    sampleMetadata=read.table("$sampleMetadata", h=F, sep=";", stringsAsFactors=F)
+    if (ncol(sampleMetadata) < 2) sampleMetadata=read.table("$sampleMetadata", h=F, sep="\t", stringsAsFactors=F)
+    if (ncol(sampleMetadata) < 2) sampleMetadata=read.table("$sampleMetadata", h=F, sep=",", stringsAsFactors=F)
+    if (ncol(sampleMetadata) < 2) {
+        error_message="Your sampleMetadata file seems not well formatted. The column separators accepted are ; , and tabulation"
+        print(error_message)
+        stop(error_message)
+    }
+
+    sampclass(xset)=sampleMetadata\$V2[match(rownames(xset@phenoData),sampleMetadata\$V1)]
+#end if
+
+
+
+cat("\tXSET OBJECT INFO\n")
+
+print(xset@phenoData)
+print(xset)
+
+cat("\tSAVE RData\n")
+save.image("$xsetRData")
+
+        ]]></configfile>
+    </configfiles>
+
+    <inputs>
+        <param name="images" type="data" format="rdata.xcms.raw,rdata" label="xset RData / xcms.xcmsSet file" help="output file from another xcms.xcmsSet" multiple="true" />
+        <param name="sampleMetadata" label="Sample metadata file " format="tabular" type="data" optional="true" help="must contain at least one column with the sample id and one column with the sample class"/>
+    </inputs>
+
+    <outputs>
+        <data name="xsetRData" format="rdata.xcms.raw" label="xset.merged.RData" />
+    </outputs>
+
+    <tests>
+        <test>
+            <param name="images" value="ko15-xset.RData,ko16-xset.RData,wt15-xset.RData,wt16-xset.RData" />
+            <assert_stdout>
+                <has_text text="object with 4 samples" />
+                <has_text text="Time range: 2506.1-4477.9 seconds (41.8-74.6 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: ." />
+            </assert_stdout>
+        </test>
+        <test>
+            <param name="images" value="ko15-xset.RData,ko16-xset.RData,wt15-xset.RData,wt16-xset.RData" />
+            <param name="sampleMetadata" value="sampleMetadata.tab" />
+            <assert_stdout>
+                <has_text text="ko15    KO" />
+                <has_text text="ko16    KO" />
+                <has_text text="wt15    WT" />
+                <has_text text="wt16    WT" />
+                <has_text text="object with 4 samples" />
+                <has_text text="Time range: 2506.1-4477.9 seconds (41.8-74.6 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_stdout>
+        </test>
+        <test>
+            <param name="images" value="MM8-xset.RData,MM14-xset.RData" />
+            <assert_stdout>
+                <has_text text="object with 2 samples" />
+                <has_text text="Time range: 19.7-307.3 seconds (0.3-5.1 minutes)" />
+                <has_text text="Mass range: 117.0357-936.7059 m/z" />
+                <has_text text="Peaks: 236 (about 118 per sample)" />
+                <has_text text="Peak Groups: 0" />
+                <has_text text="Sample classes: ." />
+            </assert_stdout>
+        </test>
+    </tests>
+
+    <help><![CDATA[
+
+@HELP_AUTHORS@
+
+===================
+Xcms.xcmsSet Merger
+===================
+
+-----------
+Description
+-----------
+
+This tool will allow you to run one xcms.xcmsSet process per sample in parallel and then to merge all RData images in one.
+The result is then suitable for xcms.group.
+
+You can provide a sampleMetadata table to attribute phenotypic value to your samples.
+
+
+-----------------
+Workflow position
+-----------------
+
+**Upstream tools**
+
+========================= ================= =================== ==========
+Name                      output file       format              parameter
+========================= ================= =================== ==========
+xcms.xcmsSet              xset.RData        rdata.xcms.raw      RData file
+------------------------- ----------------- ------------------- ----------
+xcms.xcmsSet              xset.RData        rdata.xcms.raw      RData file
+------------------------- ----------------- ------------------- ----------
+xcms.xcmsSet              xset.RData        rdata.xcms.raw      RData file
+------------------------- ----------------- ------------------- ----------
+...                       ...               ...                 ...
+========================= ================= =================== ==========
+
+
+**Downstream tools**
+
++---------------------------+--------------------+-----------------+
+| Name                      | Output file        | Format          |
++===========================+====================+=================+
+|xcms.group                 | xset.RData         | rdata.xcms.raw  |
++---------------------------+--------------------+-----------------+
+
+.. image:: xcms_merge_workflow.png
+
+-----------
+Input files
+-----------
+
++---------------------------+-----------------------+
+| Parameter : num + label   |   Format              |
++===========================+=======================+
+| 1 : RData file            |   rdata.xcms.raw      |
++---------------------------+-----------------------+
+| 2 : RData file            |   rdata.xcms.raw      |
++---------------------------+-----------------------+
+| N : RData file            |   rdata.xcms.raw      |
++---------------------------+-----------------------+
+| Optional : sampleMetadata |   tsv or csv          |
++---------------------------+-----------------------+
+
+Example of a sampleMetadata:
+
++---------------------------+------------+
+|HU_neg_028                 |   bio      |
++---------------------------+------------+
+|HU_neg_034                 |   bio      |
++---------------------------+------------+
+|Blanc04                    |   blank    |
++---------------------------+------------+
+|Blanc06                    |   blank    |
++---------------------------+------------+
+|Blanc09                    |   blank    |
++---------------------------+------------+
+
+------------
+Output files
+------------
+
+xset.merged.RData: rdata.xcms.raw format
+
+    | Rdata file that is necessary in the next step of the workflow "xcms.group".
+
+---------------------------------------------------
+
+Changelog/News
+--------------
+
+**Version 1.0.0 - 03/02/2017**
+
+- NEW: a new tool to merge individual xcmsSet outputs to be used by xcms.group
+
+    ]]></help>
+
+    <expand macro="citation" />
+</tool>