diff xcms_merge.xml @ 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 3a5204f14fff
line wrap: on
line diff
--- /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>