diff testandplot.xml @ 18:565118df598a draft

Uploaded 20170531
author fabio
date Wed, 31 May 2017 11:07:22 -0400
parents
children d49031ef33d5
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testandplot.xml	Wed May 31 11:07:22 2017 -0400
@@ -0,0 +1,239 @@
+<tool id="testandplot" name="IWTomics Test" version="@VERSION@.0">
+  <description>and Plot</description>
+  <macros>
+    <import>macros.xml</import>
+  </macros>
+  <expand macro="requirements" />
+  <stdio>
+    <exit_code range="-1" source="both" level="fatal" description="Missing IWTomics package. Please be sure to have it installed before using this tool." />
+    <exit_code range="10" source="both" level="fatal" description="Wrong region ids." />
+    <exit_code range="20" source="both" level="fatal" description="Wrong feature ids." />
+    <exit_code range="30" source="both" level="fatal" description="Same test repeated multiple times." />
+    <exit_code range="40" source="both" level="fatal" description="Testing error." />
+    <regex match="Error" source="both" level="fatal" description="An error has occurred. Please try again." />
+  </stdio>
+
+  <command>
+<![CDATA[
+    Rscript $__tool_directory__/testandplot.R adjustedpvaluematrix="${adjustedpvaluematrix}" iwtomicsrespdf="${iwtomicsrespdf}" iwtomicssumpdf="${iwtomicssumpdf}" iwtomicsrdata="${iwtomicsrdata}" iwtomicstests="${iwtomicstests}" iwtomicsselectedfeatures="${iwtomicsselectedfeatures}"
+      regionids="${regionids}"
+      featureids="${featureids}"
+      rdatafile="${rdata}"
+
+      #set region1 = '","'.join( [ str( $r.region0 ) for $r in $regionssection.regions ] )
+      #set region2 = '","'.join( [ str( $r.region1 ) for $r in $regionssection.regions ] )
+      region1="c(${region1})"
+      region2="c(${region2})"
+
+      features_subset="c(${featureslist})"
+
+      statistics="'${conditionalstatistics.statistics}'"
+      #if $conditionalstatistics.statistics == "quantile":
+        #set probabilities = '","'.join( [ str( $p.qprob ) for $p in $conditionalstatistics.quantilesection.qprobabilities ] )
+        testprobs="c(${probabilities})"
+      #end if
+
+      B="${permutations}"
+
+      testalpha="${plotres.alpha}"
+      average="${plotres.average}"
+      size="${plotres.size}"
+      plottype="'${plotres.conditionalplottype.plottype}'"
+      #if $plotres.conditionalplottype.plottype == 'boxplot':
+        #set probs = '","'.join( [ str( $p.prob ) for $p in $plotres.conditionalplottype.probabilitiessection.probabilities ] )
+        #if $probs != "":
+          probs="c(${plotres.conditionalplottype.probabilitiessection.prob0},${plotres.conditionalplottype.probabilitiessection.prob1},${plotres.conditionalplottype.probabilitiessection.prob2},${probs})"
+        #else:
+          probs="c(${plotres.conditionalplottype.probabilitiessection.prob0},${plotres.conditionalplottype.probabilitiessection.prob1},${plotres.conditionalplottype.probabilitiessection.prob2})"
+        #end if
+      #end if
+
+      groupby="'${plotsum.conditionalgroupby.groupby}'"
+      #if $plotsum.conditionalgroupby.groupby == "test":
+        summaryalpha="${plotsum.conditionalgroupby.testalphaplot}"
+        only_significant="${plotsum.conditionalgroupby.testonlysig}"
+      #elif $plotsum.conditionalgroupby.groupby == "feature":
+        summaryalpha="${plotsum.conditionalgroupby.featurealphaplot}"
+        only_significant="${plotsum.conditionalgroupby.featureonlysig}"
+      #end if
+
+     >& /dev/null
+]]>
+    <!--
+    to print the stack add the following line at the end of the command and enable the corresponding entry in output
+    2> "${stackerr}"
+    -->
+  </command>
+
+  <inputs>
+    <!-- RData -->
+    <param format="rdata" name="rdata" type="data" label="Select IWTomicsData object" help="File created by 'IWTomics Load Smooth and Plot'." />
+    <!-- region IDs -->
+    <param format="tabular" name="regionids" type="data" label="Select region dataset IDs" help="File created by 'IWTomics Load Smooth and Plot'." />
+    <!-- feature IDs -->
+    <param format="tabular" name="featureids" type="data" label="Select feature IDs" help="File created by 'IWTomics Load Smooth and Plot'." />
+
+    <!-- repeat region ids -->
+    <section name="regionssection" title="Select regions for Interval-Wise Testing" expanded="True" help="IDs of the region datasets to be tested.">
+      <repeat name="regions" title="Two-sample test" min="1">
+        <param name="region0" type="data_column" data_ref="regionids" numerical="False" label="Region 1" multiple="False" use_header_names="True" />
+        <param name="region1" type="data_column" data_ref="regionids" numerical="False" label="Region 2" multiple="False" use_header_names="True" />
+      </repeat>
+    </section>
+
+    <!-- feature ids list -->
+    <param name="featureslist" type="data_column" data_ref="featureids" numerical="False" label="Select features" multiple="True" use_header_names="True" help="IDs of the features to be tested." />
+
+    <!-- conditional statistics -->
+    <conditional name="conditionalstatistics">
+      <!-- statistics -->
+      <param name="statistics" type="select" label="Test statistics">
+        <option value="mean">Mean difference</option>
+        <option value="median">Median difference</option>
+        <option value="variance">Variance ratio</option>
+        <option value="quantile">Quantile difference(s)</option>
+      </param>
+      <!-- conditional choice: statistics=quantile -->
+      <when value="quantile">
+        <section name="quantilesection" title="Probabilities" expanded="True" help="Probabilities corresponding to the quantiles in test statistics.">
+          <repeat name="qprobabilities" title="Probabilities" min="1">
+            <param name="qprob" size="4" type="float" value="0.5" min="0.0" max="1.0" label="Probability" />
+          </repeat>
+        </section>
+      </when>
+    </conditional>
+
+    <!-- permutations -->
+    <param name="permutations" type="integer" value="1000" min="1" label="Number of permutations" />
+
+    <!-- plot IWTomics results -->
+    <section name="plotres" title="Plot IWTomics test results" expanded="True">
+      <!-- alpha -->
+      <param name="alpha" size="3" type="float" value="0.05" min="0.0" max="1.0" label="Level of the test (alpha)" />
+      <!-- average -->
+      <param name="average" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="True" label="Plot the mean curves" />
+      <!-- average -->
+      <param name="size" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="True" label="Plot sample size in each position" />
+      <!-- conditional plot type -->
+      <conditional name="conditionalplottype">
+        <!-- plot type -->
+        <param name="plottype" type="select" label="Plot type">
+          <option value="boxplot">Pointwise quantile curves (boxplot)</option>
+          <option value="curves">Curves (aligned)</option>
+        </param>
+        <!-- conditional choice: plottype=boxplot -->
+        <when value="boxplot">
+          <section name="probabilitiessection" title="Probabilities" expanded="True" help="Probabilities corresponding to the quantile curves to be drawn.">
+            <param name="prob0" size="3" type="float" value="0.25" min="0.0" max="1.0" label="Probability" />
+            <param name="prob1" size="3" type="float" value="0.5" min="0.0" max="1.0" label="Probability" />
+            <param name="prob2" size="3" type="float" value="0.75" min="0.0" max="1.0" label="Probability" />
+            <repeat name="probabilities" title="Probabilities">
+              <param name="prob" size="3" type="float" value="0.5" min="0.0" max="1.0" label="Probability" />
+            </repeat>
+          </section>
+        </when>
+      </conditional>
+    </section>
+
+    <!-- summary plot -->
+    <section name="plotsum" title="Summary plot" expanded="True">
+      <!-- conditional group by -->
+      <conditional name="conditionalgroupby">
+        <!-- group by -->
+        <param name="groupby" type="select" label="Group by" help="How tests should be grouped.">
+          <option value="none">No plot</option>
+          <option value="test">Group by test</option>
+          <option value="feature">Group by feature</option>
+        </param>
+        <when value="test">
+          <param name="testalphaplot" size="3" type="float" value="0.05" min="0.0" max="1.0" label="Level of the test (alpha)" />
+          <param name="testonlysig" type="boolean" truevalue="TRUE" falsevalue="FALSE" label="Plot only significant tests" />
+        </when>
+        <when value="feature">
+          <param name="featurealphaplot" size="3" type="float" value="0.05" min="0.0" max="1.0" label="Level of the test (alpha)" />
+          <param name="featureonlysig" type="boolean" truevalue="TRUE" falsevalue="FALSE" label="Plot only significant tests" />
+        </when>
+      </conditional>
+    </section>
+  </inputs>
+
+  <outputs>
+    <!--<data format="txt" name="stackerr" label="iwtomics.testandplot.stackerr.txt" from_work_dir="iwtomics.testandplot.stackerr.txt" />-->
+    <data format="txt" name="adjustedpvaluematrix" label="${tool.name} on ${on_string}: Adjusted p-value Matrix" from_work_dir="iwtomics.testandplot.adjustedpvalue.matrix.txt" />
+    <data format="pdf" name="iwtomicsrespdf" label="${tool.name} on ${on_string}: Plotted Test Results" from_work_dir="iwtomics.testandplot.iwtomicstestresults.pdf" />
+    <data format="pdf" name="iwtomicssumpdf" label="${tool.name} on ${on_string}: Summary Plot" from_work_dir="iwtomics.testandplot.summaryplot.pdf" />
+    <data format="rdata" name="iwtomicsrdata" label="${tool.name} on ${on_string}: IWTomicsData Object with Test Results" from_work_dir="iwtomics.testandplot.RData" />
+    <data format="tabular" name="iwtomicstests" label="${tool.name} on ${on_string}: Test IDs" from_work_dir="iwtomics.testandplot.tests.txt" />
+    <data format="tabular" name="iwtomicsselectedfeatures" label="${tool.name} on ${on_string}: Feature IDs" from_work_dir="iwtomics.testandplot.selectedfeatures.txt" />
+  </outputs>
+
+  <help>
+This tool statistically evaluates differences in genomic features between groups of regions along the genome.
+In particular, it implements the Interval-Wise Testing for omics data, an extended version of the Interval-Wise
+Testing for functional data presented in Pini and Vantini (2017). It allows to perform multiple two sample permutation
+tests between pairs of region datasets, on several features. It returns the adjusted p-value curves for every test
+and all possible scales. Moreover, it creates a graphical representation of the Interval-Wise Testing results
+and a summary plot (optional) with p-values at the maximum scale. The tool *IWTomics Plot with Threshold on Test Scale*
+permits to select the scale to be used in the plots.
+
+-----
+
+**Input files**
+
+RData file with the IWTomicsData object, tabular files with region dataset IDs and feature IDs.
+These files are created by the tool *IWTomics Load Smooth and Plot*.
+
+-----
+
+**Output**
+
+The tool returns:
+
+1. TXT file with an adjusted p-value matrix for every test performed. Each matrix contains a p-value curve (row) for every scale considered in the test;
+2. PDF file with the plotted test results;
+3. PDF file with the summary plot;
+4. RData with the IWTomicsData object with the test results;
+5. Test identifiers;
+6. Feature identifiers.
+
+4-6 can be used as input of the tool *IWTomics Plot with Threshold on Test Scale*
+
+-----
+
+.. class:: infomark
+
+**Notes**
+
+This Galaxy tool has been developed by Fabio Cumbo (Third University of Rome, Italy) and Marzia A. Cremona (The Pennsylvania State University, USA).
+
+It implements a simplified version of the function *IWTomicsTest*, *plotTest* and *plotSummary* for *IWTomicsData* objects.
+The complete version can be found in the *R/Bioconductor* package *IWTomics* (see vignette_).
+
+.. _vignette: https://bioconductor.org/packages/release/bioc/vignettes/IWTomics/inst/doc/IWTomics.pdf
+  </help>
+
+  <citations>
+    <citation type="bibtex">
+      @ARTICLE{
+               iwt-functional-data,
+               author = {A Pini and S. Vantini},
+               title = {Interval-Wise Testing for functional data},
+               journal = {Journal of Nonparametric Statistics},
+               year = {2017},
+               volume = {29},
+               number = {2},
+               pages = {407-424}
+      }
+    </citation>
+    <citation type="bibtex">
+      @MANUAL{
+               iwtomics,
+               author = {Cremona, Marzia A and Pini, Alessia and Chiaromonte, Francesca and Vantini, Simone},
+               title = {IWTomics: Interval-Wise Testing for Omics Data},
+               note = {R package version 0.99.12},
+               year = {2017}
+      }
+    </citation>
+  </citations>
+
+</tool>