diff ProbMetab.xml @ 3:abcfa1648b66 draft

planemo upload commit c897279aa8cae0a4ad889bb05b143f32d2b6d712
author lecorguille
date Fri, 07 Apr 2017 07:14:12 -0400
parents c4bd0c40eb3b
children
line wrap: on
line diff
--- a/ProbMetab.xml	Mon Jul 04 11:58:10 2016 -0400
+++ b/ProbMetab.xml	Fri Apr 07 07:14:12 2017 -0400
@@ -1,4 +1,4 @@
-<tool id="Probmetab" name="ProbMetab Tool" version="1.0.1">
+<tool id="Probmetab" name="ProbMetab Tool" version="1.1.0">
 
     <description>Wrapper function for ProbMetab R package.</description>
 
@@ -12,201 +12,243 @@
     <command>
         @COMMAND_CAMERA_SCRIPT@
         #if $acquisition_options.mode == "one":
-            mode_acquisition $acquisition_options.mode xa $acquisition_options.xa
+            mode_acquisition $acquisition_options.mode
+            image '$acquisition_options.image'
             ##if $acquisition_options.xsetnofill_options.option == "show":
-	            ##xsetnofill $acquisition_options.xsetnofill_options.xsetnofill
-     	    ##end if	
+                ##xsetnofill $acquisition_options.xsetnofill_options.xsetnofill
+            ##end if
+
+            @COMMAND_FILE_LOAD_ONE@
+
         #else
-            mode_acquisition $acquisition_options.mode inputs_mode $acquisition_options.input_mode.option
+            mode_acquisition $acquisition_options.mode
+            inputs_mode $acquisition_options.input_mode.option
             #if $acquisition_options.input_mode.option== "two":
 
-	            image_pos $acquisition_options.input_mode.image_pos image_neg $acquisition_options.input_mode.image_neg
-	            ##if $acquisition_options.input_mode.xsetnofill_options.option == "show":
-		            ##xsetPnofill $acquisition_options.input_mode.xsetnofill_options.xsetPnofill xsetNnofill $acquisition_options.input_mode.xsetnofill_options.xsetNnofill
-         		##end if		
+                image_pos '$acquisition_options.input_mode.image_pos'
+                image_neg '$acquisition_options.input_mode.image_neg'
+                ##if $acquisition_options.input_mode.xsetnofill_options.option == "show":
+                    ##xsetPnofill $acquisition_options.input_mode.xsetnofill_options.xsetPnofill
+                    ##xsetNnofill $acquisition_options.input_mode.xsetnofill_options.xsetNnofill
+                ##end if
+
+                @COMMAND_FILE_LOAD_POSITIVE@
+                @COMMAND_FILE_LOAD_NEGATIVE@
             ##else
-	            ##image_combinexsannos $acquisition_options.input_mode.image_combinexsannos image_pos $acquisition_options.input_mode.image_pos
+                ##image_combinexsannos $acquisition_options.input_mode.image_combinexsannos
+                ##image_pos $acquisition_options.input_mode.image_pos
             #end if
 
         #end if
 
-        #if $option_toexclude.option == "show":
-        	toexclude $option_toexclude.toexclude
+        ## Extraction of CAMERA annotation [get.annot]
+        allowMiss $getannot.allowMiss
+        #if $getannot.option_toexclude.option == "show":
+            toexclude $getannot.option_toexclude.toexclude
         #end if
-        allowMiss $allowMiss html $html kegg_db $kegg_db ppm_tol $ppm_tol
-        opt $opt corths $corths corprob $corprob pcorprob $pcorprob prob $prob
-        
-        @COMMAND_ZIPFILE_LOAD@
+
+        ## Database matching [create.reactionM]
+        kegg_db $db.kegg_db
+        ppm_tol $db.ppm_tol
+
+        ## Probability calculations matrix export [export.class.table]
+        prob $export.prob
+        html $export.html
+
+        ## Calculate the correlations and partial correlations and cross reference then with reactions [reac2cor]
+        opt $reac2cor.opt
+        corprob $reac2cor.corprob
+        pcorprob $reac2cor.pcorprob
+        corths $reac2cor.corths
+
+        @COMMAND_LOG_EXIT@
 
     </command>
 
     <inputs>
 
         <conditional name="acquisition_options">
-	        <param name="mode" type="select" label="Choose your acquisition mode" >
-		        <option value="one" selected="true"  >One acquisition charge mode</option>
-            	<option value="two"  >Two acquisition charge mode (positif and negatif)</option>
-	        </param>
-
-	        <!-- One acquisition mode-->
-	        <when value="one">
-		        <param name="xa" type="data" label="Annotate RData" format="rdata.camera.positive,rdata.camera.negative,rdata" help="Output file from annotate step " />
-		        <!--
-		        <conditional name="xsetnofill_options">
-            			<param name="option" type="select" label="RData group step" help="xcmsSet xcms object after missing data replacement, to retrieve SNR to isotopic peaks." >
-             				<option value="show">show</option>
-             				<option value="hide" selected="true">hide</option>
-             			</param>
-             			<when value="show">
-	          			<param name="xsetnofill" type="data" label="Positive or Negative RData from group step before fillpeaks " format="rdata" help=" output from group step" />
-             			</when>
-		
-          			</conditional>
-		        -->
-	        </when>
-	        <!-- Two acquisition modes-->
-	        <when value="two">
+            <param name="mode" type="select" label="Choose your acquisition mode" >
+                <option value="one" selected="true"  >One acquisition charge mode</option>
+                <option value="two"  >Two acquisition charge mode (positif and negatif)</option>
+            </param>
 
-		
-		        <conditional name="input_mode">
-			        <param name="option" type="select" label="Choose your input type method:" >
-				        <!-- Bug combinexsannos TODO <option value="one">Input from combinexsAnnos step</option> -->
-                		<option value="two" selected="true">Rdata inputs from annotate</option>
-			        </param>
-			        <!--
-			        <when value="one">
-				        <param name="image_combinexsannos" type="data" label="RData output from combinexsAnnos step" format="rdata" help="output file from combinexAnnos step " /> 
-				        <param name="image_pos" type="data" label="Positive RData ion mode from annotatediffreport step" format="rdata" help="output file from annotatediffreport step " />
-			        </when>
-			        -->
-			        <when value="two">
-				        <param name="image_pos" type="data" label="Positive annotate RData" format="rdata.camera.positive,rdata" help="output file from annotate step " />
-				        <param name="image_neg" type="data" label="Negative annotate RData" format="rdata.camera.negative,rdata" help="output file from annotate step" />
-				        <!--
-				        <conditional name="xsetnofill_options">
-					        <param name="option" type="select" label="Two RData group step (positive and negative)" help="xcmsSet xcms objects after missing data replacement from your two acquisition modes, to retrieve SNR to isotopic peaks." >
-			         			<option value="show">show</option>
-			         			<option value="hide" selected="true">hide</option>
-			         		</param>
-					        <when value="show">
-						        <param name="xsetPnofill" type="data" label="Positive RData from group step before fillpeaks " format="rdata.xcms.group,rdata" help="" />
-						        <param name="xsetNnofill" type="data" label="Negative RData from group step before fillpeaks" format="rdata.xcms.group,rdata" help="" />
-					        </when>
-				        </conditional>
-				        -->
-			        </when>
-		        </conditional>
-	        </when>	
-	
+            <!-- One acquisition mode-->
+            <when value="one">
+                <param name="image" type="data" label="Annotate RData" format="rdata.camera.positive,rdata.camera.negative,rdata" help="Output file from annotate step " />
+                <!--
+                <conditional name="xsetnofill_options">
+                    <param name="option" type="select" label="RData group step" help="xcmsSet xcms object after missing data replacement, to retrieve SNR to isotopic peaks." >
+                        <option value="show">show</option>
+                        <option value="hide" selected="true">hide</option>
+                    </param>
+                    <when value="show">
+                        <param name="xsetnofill" type="data" label="Positive or Negative RData from group step before fillpeaks " format="rdata" help=" output from group step" />
+                    </when>
+                </conditional>
+                -->
+                <expand macro="input_file_load"/>
+            </when>
+            <!-- Two acquisition modes-->
+            <when value="two">
+                <conditional name="input_mode">
+                    <param name="option" type="select" label="Choose your input type method:" >
+                        <!-- Bug combinexsannos TODO <option value="one">Input from combinexsAnnos step</option> -->
+                        <option value="two" selected="true">Rdata inputs from annotate</option>
+                    </param>
+                    <!--
+                    <when value="one">
+                        <param name="image_combinexsannos" type="data" label="RData output from combinexsAnnos step" format="rdata" help="output file from combinexAnnos step " />
+                        <param name="image_pos" type="data" label="Positive RData ion mode from annotatediffreport step" format="rdata" help="output file from annotatediffreport step " />
+                    </when>
+                    -->
+                    <when value="two">
+                        <param name="image_pos" type="data" label="Positive annotate RData" format="rdata.camera.positive,rdata" help="output file from annotate step " />
+                        <param name="image_neg" type="data" label="Negative annotate RData" format="rdata.camera.negative,rdata" help="output file from annotate step" />
+                        <!--
+                        <conditional name="xsetnofill_options">
+                            <param name="option" type="select" label="Two RData group step (positive and negative)" help="xcmsSet xcms objects after missing data replacement from your two acquisition modes, to retrieve SNR to isotopic peaks." >
+                                 <option value="show">show</option>
+                                 <option value="hide" selected="true">hide</option>
+                             </param>
+                            <when value="show">
+                                <param name="xsetPnofill" type="data" label="Positive RData from group step before fillpeaks " format="rdata.xcms.group,rdata" help="" />
+                                <param name="xsetNnofill" type="data" label="Negative RData from group step before fillpeaks" format="rdata.xcms.group,rdata" help="" />
+                            </when>
+                        </conditional>
+                        -->
+                    </when>
+                </conditional>
+                <expand macro="input_file_load" polarity="Positive"/>
+                <expand macro="input_file_load" polarity="Negative"/>
+            </when>
         </conditional>
 
-
-	    <param name="allowMiss" type="boolean" checked="true" truevalue="TRUE" falsevalue="FALSE" label="Retrieves peaks with no eviendence of adduct or isotope" help=" [allowMiss] (ionAnnot function) Logical, annotate also the peaks as single charged molecules [M+/-H]." />
-        <conditional name="option_toexclude">
-    		<param name="option" type="select" label="Exclude samples" >
-     			<option value="show">show</option>
-     			<option value="hide" selected="true">hide</option>
-     		</param>
-     		<when value="show">
-       		    <param name="toexclude" type="text" value="blank,medium,QC" label="samples to be excluded of peak counting to non-annotated peak selection." help="" />
-     		</when>
-            <when value="hide" />
-  		</conditional>
-        <!--
-        <conditional name="useIso_options">
-	        <param name="option" type="select" label="Calculates the relative isotopic abundance ratio (Carbon 13)" >
-     			<option value="show">Yes</option>
-     			<option value="hide" selected="true">No</option>
-     		</param>
-	        <when value="show">
-           		<param name="var" type="select" label="var (incorporate.isotopes)" help="1 to use standard mean/sd estimators to carbon number prediction, 2 for median/mad estimators." >
-			        <option value="1">1</option>
-     				<option value="2" selected="true">2</option>
-     			</param>
-     		</when>
-        </conditional>
-        -->
-        <param name="html" type="boolean" checked="true" truevalue="TRUE" falsevalue="FALSE" label="Logical, check if you want to generate a HTML ProbMetab report" help=" [html] (export.class.table function).This parameter uses the raw data to plot EICs and may be time consuming." />
+        <section name="getannot" title="Extraction of CAMERA annotation [get.annot]" expanded="True">
+            <param name="allowMiss" type="boolean" checked="true" truevalue="TRUE" falsevalue="FALSE" label="Retrieves peaks with no eviendence of adduct or isotope" help=" [allowMiss] (ionAnnot function) Logical, annotate also the peaks as single charged molecules [M+/-H]." />
+            <conditional name="option_toexclude">
+                <param name="option" type="select" label="Exclude samples" >
+                    <option value="show">show</option>
+                    <option value="hide" selected="true">hide</option>
+                </param>
+                <when value="show">
+                    <param name="toexclude" type="text" value="blank,medium,QC" label="Samples to be excluded of peak counting to non-annotated peak selection." help="[toexclude]" />
+                </when>
+                <when value="hide" />
+            </conditional>
+        </section>
 
-        <param name="kegg_db" type="text" size="40" label="Search on KEGG database or multiple organisms "  help="Search on all KEGG organisms or multiple organisms (id1,id2,id3,...).By default,the value is KEGG which means searching on all KEGG organism. The list of KEGG IDs are available at http://rest.kegg.jp/list/organism" value="KEGG" >
-	        <validator type="empty_field"/>
-        </param>
-        <param name="ppm_tol" type="integer" value="8" label="Parts per million mass tolerance allowed in the mass search" help="[ppm.tol] (create.reactionMfunction) " />
-
-
-        <param name="opt" type="select" label="Correlation option" help="[opt] (reac2cor function) cor for correlation, and pcor for partial correlation." >
-	        <option value="cor" selected="true">cor</option>
-	        <option value="pcor">pcor</option>
-        </param>
-
-
-        <param name="corprob" type="float" value="0.8" label="Probability that the correlation is considered significant" help="[corprob] (reac2cor function) " /> 
-
+        <section name="db" title="Database matching [create.reactionM]" expanded="True">
+            <param name="kegg_db" type="text" size="40" label="Search on KEGG database or multiple organisms "  help="Search on all KEGG organisms or multiple organisms (id1,id2,id3,...).By default,the value is KEGG which means searching on all KEGG organism. The list of KEGG IDs are available at http://rest.kegg.jp/list/organism" value="KEGG" >
+                <validator type="empty_field"/>
+            </param>
+            <param name="ppm_tol" type="integer" value="8" label="Parts per million mass tolerance allowed in the mass search" help="[ppm.tol]" />
+            <!--
+            <conditional name="useIso_options">
+                <param name="option" type="select" label="Calculates the relative isotopic abundance ratio (Carbon 13)" >
+                    <option value="show">Yes</option>
+                    <option value="hide" selected="true">No</option>
+                </param>
+                <when value="show">
+                    <param name="var" type="select" label="var (incorporate.isotopes)" help="1 to use standard mean/sd estimators to carbon number prediction, 2 for median/mad estimators." >
+                        <option value="1">1</option>
+                        <option value="2" selected="true">2</option>
+                    </param>
+                </when>
+            </conditional>
+            -->
+        </section>
 
-        <param name="pcorprob" type="float" value="0.8" label="Probability that the partial correlation is considered significant." help="[pcorprob](reac2cor function)" />
-        <param name="corths" type="float" value="0.75" label="Correlation intensity threshold" help="[corths] (reac2cor function)" />
+        <section name="export" title="Probability calculations matrix export [export.class.table]" expanded="True">
+            <param name="prob" type="select" label=" Calculation of the probability to attribute a mass to a compound" help="[prob] Default is 'count'. See the tool help for more details." >
+                <option value="count" selected="true">Count</option>
+                <option value="mean">Mean</option>
+            </param>
+
+            <param name="html" type="boolean" checked="true" truevalue="TRUE" falsevalue="FALSE" label="Logical, check if you want to generate a HTML ProbMetab report" help="[html] This parameter uses the raw data to plot EICs and may be time consuming." />
+        </section>
 
-        <param name="prob" type="select" label=" Calculation of the probability to attribute a mass to a compound" help="[prob] (export.class.table function). Default is 'count'. See the tool help for more details." >
-	        <option value="count" selected="true">Count</option>
-    		<option value="mean">Mean</option>
-        </param>
+        <section name="reac2cor" title="Calculate the correlations and partial correlations and cross reference then with reactions [reac2cor]" expanded="True">
+            <param name="opt" type="select" label="Correlation option" help="[opt] cor for correlation, and pcor for partial correlation." >
+                <option value="cor" selected="true">cor</option>
+                <option value="pcor">pcor</option>
+            </param>
+
+            <param name="corprob" type="float" value="0.8" label="Probability that the correlation is considered significant" help="[corprob]" />
+
+            <param name="pcorprob" type="float" value="0.8" label="Probability that the partial correlation is considered significant." help="[pcorprob]" />
+            <param name="corths" type="float" value="0.75" label="Correlation intensity threshold" help="[corths]" />
+        </section>
+
         <!--
+        <section name="cytoscape" title="CytoScape options">
             <param name="organismId" type="text" size="40" value="NULL" label="organismIdorganismId" help="(create.pathway.node.attributes function) KEGG organism id (http://www.kegg.jp/kegg/catalog/org_list.html) to filter possible pathways for known pathways for that organism. Only works for KEGG database for now. Default is NULL (all KEGG organisms).
-" />
+            " />
+        </section>
+        -->
 
-         -->
-        
-        <expand macro="zipfile_load"/>
     </inputs>
 
     <outputs>
         <!-- <data name="output_image" format="rdata" from_work_dir="probmetab.RData" label="Probmetab.RData" /> -->
         <data name="html_output" format="html" from_work_dir="AnalysisExample.html" label="Probmetab.Analysis_Report_html" >
-	         <filter>(html)</filter>
+             <filter>(export['html'])</filter>
         </data>
         <data name="tsv_output" format="tabular" from_work_dir="Analysis_Report.tsv" label="Probmetab.CytoScape_output_Attribute_List.tsv" />
         <data name="eics" format="zip" from_work_dir="Analysis_Report.zip" label="Probmetab.Analysis_Report_EICs_plots.zip" >
-            <filter>(html)</filter>
+            <filter>(export['html'])</filter>
         </data>
         <data name="sif_output" format="tabular" from_work_dir="sif.tsv" label="Probmetab.CytoScape_output.sif" />
-        <data name="log" format="txt" from_work_dir="probmetab.log" label="Probmetab.log" />
         <data name="variableMetadata" format="tabular" from_work_dir="variableMetadata.tsv" label="variableMetadata.tsv" >
-	        <filter>(acquisition_options['mode'] == 'one')</filter>
+            <filter>(acquisition_options['mode'] == 'one')</filter>
         </data>
 
         <data name="CombineMolIon" format="tabular" from_work_dir="CombineMolIon.tsv" label="CombineMolIon.tsv" >
-	        <filter>(acquisition_options['mode'] == 'two')</filter>
+            <filter>(acquisition_options['mode'] == 'two')</filter>
         </data>
         <data name="variableMetadata_Positive" format="tabular" from_work_dir="variableMetadata_Positive.tsv" label="variableMetadata_Positive.tsv" >
-	        <filter>(acquisition_options['mode'] == 'two')</filter>
+            <filter>(acquisition_options['mode'] == 'two')</filter>
         </data>
         <data name="variableMetadata_Negative" format="tabular" from_work_dir="variableMetadata_Negative.tsv" label="variableMetadata_Negative.tsv" >
-	        <filter>(acquisition_options['mode'] == 'two')</filter>
+            <filter>(acquisition_options['mode'] == 'two')</filter>
         </data>
 
     </outputs>
 
     <tests>
         <test>
-            <param name="acquisition_options|mode" value="one" />
-            <param name="acquisition_options|xa" value="faahOK.xset.group.retcor.group.fillPeaks.annotate.negative.Rdata" />
-            <param name="zipfile_load_conditional|zipfile_load_select" value="yes" />
-            <param name="zipfile_load_conditional|zip_file" value="faahKO_reduce.zip"  ftype="zip" />
-            <output name="log">
-                <assert_contents>
-                    <has_text text="ko15 ko16 wt15 wt16" />
-                    <has_text text="Step 1... determine cutoff point" />
-                    <has_text text="Step 2... estimate parameters of null distribution and eta0" />
-                    <has_text text="Step 3... compute p-values and estimate empirical PDF/CDF" />
-                    <has_text text="Step 4... compute q-values and local fdr" />
-                </assert_contents>
-            </output>
+            <conditional name="acquisition_options">
+                <param name="mode" value="one" />
+                <param name="image" value="faahOK.xset.group.retcor.group.fillPeaks.annotate.negative.Rdata" />
+            </conditional>
+            <expand macro="test_commun"/>
+            <expand macro="test_file_load_zip"/>
+            <assert_stdout>
+                <has_text text="Step 1... determine cutoff point" />
+                <has_text text="Step 2... estimate parameters of null distribution and eta0" />
+                <has_text text="Step 3... compute p-values and estimate empirical PDF/CDF" />
+                <has_text text="Step 4... compute q-values and local fdr" />
+            </assert_stdout>
+        </test>
+        <test>
+            <conditional name="acquisition_options">
+                <param name="mode" value="one" />
+                <param name="image" value="faahOK-single.xset.merged.group.retcor.group.fillPeaks.annotate.negative.Rdata" />
+            </conditional>
+            <expand macro="test_commun"/>
+            <expand macro="test_file_load_single"/>
+            <assert_stdout>
+                <has_text text="Step 1... determine cutoff point" />
+                <has_text text="Step 2... estimate parameters of null distribution and eta0" />
+                <has_text text="Step 3... compute p-values and estimate empirical PDF/CDF" />
+                <has_text text="Step 4... compute q-values and local fdr" />
+            </assert_stdout>
         </test>
     </tests>
 
 
     <help>
-	
+
 @HELP_AUTHORS@
 
 =========
@@ -225,7 +267,7 @@
 **Details**
 
 ProbMetab assumes peak detection, retention time correction and peak grouping [4, 5] in order to
-perform mass peak to compound assignment. 
+perform mass peak to compound assignment.
 
 Once the initial annotation for different forms of the same ion (adducts and isotopes), is defined,
 one can seek for a non-redundant set of putative molecules (after charge and possible adduct
@@ -235,7 +277,7 @@
 experimental condition. In order to address this issue, a flexible workflow, which allows users to
 integrate different methods, would improve true molecular ions recovery.
 
-The ion annotation table has the following core information: exact mass of putative molecule with experimental error; isotopic pattern associated; adduct form associated, and the original reference to raw data. 
+The ion annotation table has the following core information: exact mass of putative molecule with experimental error; isotopic pattern associated; adduct form associated, and the original reference to raw data.
 
 
 
@@ -250,9 +292,9 @@
 ========================= ========================================== ======= ==========
 Name                      Output file                                Format  Parameter
 ========================= ========================================== ======= ==========
-xcms.annotate             xset.annotate_POS (or NEG).RData RData     RData   file            			
+xcms.annotate             xset.annotate_POS (or NEG).RData RData     RData   file
 ========================= ========================================== ======= ==========
-  
+
 
 **General schema of the metabolomic workflow**
 
@@ -295,7 +337,7 @@
 
 **Calculate**
 
-**intervals** 
+**intervals**
 A vector of SNR numerical intervals, to which different carbon offset should be added to predicted C-number.
 
 **offset**
@@ -309,7 +351,7 @@
 
 Which noise model to use, "erfc" to complementary error function, or "gaussian" to standard gaussian with two sd corresponding to the given p.p.m precision.
 
-**precision** 
+**precision**
 
 Equipment mass accuracy, usually the same used in exact mass search.
 
@@ -384,6 +426,12 @@
 Changelog/News
 --------------
 
+**Version 1.1.0 - 06/04/2017**
+
+- IMPROVEMENT: add some sections within to separate the different parts of the process
+
+- IMPROVEMENT: Probmetab is now compatible with merged individual data from xcms.xcmsSet
+
 **Version 1.0.1 - 16/05/2016**
 
 - TEST: refactoring to pass planemo test using conda dependencies
@@ -393,10 +441,8 @@
 
 - NEW: ProbMetab first version
 
- 
+
     </help>
 
     <expand macro="citation" />
 </tool>
- 
-