comparison loadandplot.xml @ 18:565118df598a draft

Uploaded 20170531
author fabio
date Wed, 31 May 2017 11:07:22 -0400
parents
children 7e5e94fe6b1f
comparison
equal deleted inserted replaced
17:81faa1567178 18:565118df598a
1 <tool id="loadandplot" name="IWTomics Load" version="@VERSION@.0">
2 <description>Smooth and Plot</description>
3 <macros>
4 <import>macros.xml</import>
5 </macros>
6 <expand macro="requirements" />
7 <stdio>
8 <exit_code range="255" source="both" level="fatal" description="Missing IWTomics package. Please be sure to have it installed before using this tool." />
9 <exit_code range="10" source="both" level="fatal" description="An error has occurred reading the header file for regions. Please try again." />
10 <exit_code range="11" source="both" level="fatal" description="Not all region files are present in the first column of header file for regions." />
11 <exit_code range="20" source="both" level="fatal" description="An error has occurred reading the header file for features. Please try again." />
12 <exit_code range="21" source="both" level="fatal" description="Not all feature files are present in the first column of header file for features." />
13 <exit_code range="30" source="both" level="fatal" description="An error has occurred reading the data. Please try again." />
14 <exit_code range="31" source="both" level="fatal" description="Not enough columns in input file." />
15 <exit_code range="32" source="both" level="fatal" description="Duplicated regions in region file." />
16 <exit_code range="33" source="both" level="fatal" description="Duplicated windows in feature file." />
17 <exit_code range="34" source="both" level="fatal" description="Overlapping windows in feature file." />
18 <exit_code range="35" source="both" level="fatal" description="Windows in feature files do not cover all regions in region files." />
19 <exit_code range="36" source="both" level="fatal" description="All windows in a feature file must have the same size." />
20 <exit_code range="40" source="both" level="fatal" description="An error has occurred smoothing the data. Please try again." />
21 <regex match="Error" source="both" level="fatal" description="An error has occurred. Please try again." />
22 </stdio>
23
24 <command>
25 <![CDATA[
26 Rscript $__tool_directory__/loadandplot.R outrdata="${outrdata}" outregions="${outregions}" outfeatures="${outfeatures}" outpdf="${outpdf}"
27
28 #set region_paths = '"\\|"'.join( [ str( $r ) for $r in $regions ] )
29 regionspaths="${region_paths}"
30 #set region_galaxyids = '","'.join( [ str( $r.hid ) for $r in $regions ] )
31 regionsgalaxyids="c(${region_galaxyids})"
32 #set region_names = '"\\|"'.join( [ str( $r.name ) for $r in $regions ] )
33 regionsfilenames="${region_names}"
34 #set region_header = '"\\|"'.join( [ str( $rh.regionsheader ) for $rh in $regionsheaderrepeat ] )
35 #if $region_header != "":
36 regionsheaderfile="${region_header}"
37 #end if
38
39 #set feature_paths = '"\\|"'.join( [ str( $f ) for $f in $features ] )
40 featurespaths="${feature_paths}"
41 #set feature_galaxyids = '","'.join( [ str( $f.hid ) for $f in $features ] )
42 featuresgalaxyids="c(${feature_galaxyids})"
43 #set feature_names = '"\\|"'.join( [ str( $f.name ) for $f in $features ] )
44 featuresfilenames="${feature_names}"
45 #set feature_header = '"\\|"'.join( [ str( $fh.featuresheader ) for $fh in $featuresheaderrepeat ] )
46 #if $feature_header != "":
47 featuresheaderfile="${feature_header}"
48 #end if
49
50 smoothing="'${conditionaltype.smoothing}'"
51 start.are.0based="${zerobased}"
52 #if $conditionaltype.smoothing == 'no':
53 alignment="'${conditionaltype.alignment}'"
54 #elif $conditionaltype.smoothing == 'locpoly':
55 alignment="'${conditionaltype.locpolyconditionalscale.alignment}'"
56 #if $conditionaltype.locpolyconditionalscale.alignment == 'scale':
57 scale="${conditionaltype.locpolyconditionalscale.scalegrid}"
58 #end if
59 bandwidth="${conditionaltype.locpolybandwidth}"
60 degree="${conditionaltype.locpolydegree}"
61 fill_gaps="${conditionaltype.fillgaps}"
62 #elif $conditionaltype.smoothing == 'kernel':
63 alignment="'${conditionaltype.kernelconditionalscale.alignment}'"
64 #if $conditionaltype.kernelconditionalscale.alignment == 'scale':
65 scale="${conditionaltype.kernelconditionalscale.scalegrid}"
66 #end if
67 bandwidth="${conditionaltype.kernelbandwidth}"
68 fill_gaps="${conditionaltype.fillgaps}"
69 #elif $conditionaltype.smoothing == 'splines':
70 alignment="'${conditionaltype.splinesconditionalscale.alignment}'"
71 #if $conditionaltype.splinesconditionalscale.alignment == 'scale':
72 scale="${conditionaltype.splinesconditionalscale.scalegrid}"
73 #end if
74 degree="${conditionaltype.splinesdegree}"
75 dist_knots="${conditionaltype.splinesdistknots}"
76 fill_gaps="${conditionaltype.fillgaps}"
77 #end if
78
79 average="${plotres.average}"
80 size="${plotres.size}"
81 plottype="'${plotres.conditionalplottype.plottype}'"
82 #if $plotres.conditionalplottype.plottype == 'boxplot':
83 #set probs = '","'.join( [ str( $p.prob ) for $p in $plotres.conditionalplottype.probabilitiessection.probabilities ] )
84 #if $probs != "":
85 probs="c(${plotres.conditionalplottype.probabilitiessection.prob0},${plotres.conditionalplottype.probabilitiessection.prob1},${plotres.conditionalplottype.probabilitiessection.prob2},${probs})"
86 #else:
87 probs="c(${plotres.conditionalplottype.probabilitiessection.prob0},${plotres.conditionalplottype.probabilitiessection.prob1},${plotres.conditionalplottype.probabilitiessection.prob2})"
88 #end if
89 #end if
90
91 >& /dev/null
92 ]]>
93 <!--
94 to print the stack add the following line at the end of the command and enable the corresponding entry in output
95 2> "${stackerr}"
96 -->
97 </command>
98
99 <inputs>
100 <!-- regions -->
101 <param format="tabular" name="regions" type="data" label="Select region files" multiple="true" help="" />
102 <repeat name="regionsheaderrepeat" title="Header file for regions (optional)" min="0" max="1" help="Tabular file. Column 1: names of the region files; Column 2: unique identifiers of the region datasets (spaces and special characters are not allowed); Column 3: name of the region datasets to be used in the output.">
103 <param format="tabular" name="regionsheader" type="data" label="Select header file" />
104 </repeat>
105
106 <!-- features -->
107 <param format="tabular" name="features" type="data" label="Select feature files" multiple="true" help="" />
108 <repeat name="featuresheaderrepeat" title="Header file for features (optional)" min="0" max="1" help="Tabular file. Column 1: names of the feature files; Column 2: unique identifiers of the features (spaces and special characters are not allowed); Column 3: name of the features to be used in the output.">
109 <param format="tabular" name="featuresheader" type="data" label="Select header file" />
110 </repeat>
111
112 <!-- zero-base one-base -->
113 <param name="zerobased" type="select" label="Start positions are:" multiple="false" help="">
114 <option value="TRUE">0-based</option>
115 <option value="FALSE">1-based</option>
116 </param>
117
118 <!-- conditional smoothing -->
119 <conditional name="conditionaltype">
120 <!-- smoothing -->
121 <param name="smoothing" type="select" label="Smoothing" help="Type of smoothing to be applied to the feature curves.">
122 <option value="no">No</option>
123 <option value="locpoly">Local Polynomials</option>
124 <option value="kernel">Gaussian Kernel</option>
125 <option value="splines">B-Splines</option>
126 </param>
127 <!-- conditional choice: smoothing=no -->
128 <when value="no">
129 <param name="alignment" type="select" label="Region alignment" help="">
130 <option value="center">Center - Alignment on the central position</option>
131 <option value="left">Left - Alignment on the starting position</option>
132 <option value="right">Right - Alignment on the ending position</option>
133 </param>
134 </when>
135 <!-- conditional choice: smoothing=locpoly -->
136 <when value="locpoly">
137 <!-- conditional region alignment -->
138 <conditional name="locpolyconditionalscale">
139 <param name="alignment" type="select" label="Region alignment" help="">
140 <option value="center">Center - Alignment on the central position</option>
141 <option value="left">Left - Alignment on the starting position</option>
142 <option value="right">Right - Alignment on the ending position</option>
143 <option value="scale">Scale - Scaling all regions to the same length</option>
144 </param>
145 <when value="scale">
146 <param name="scalegrid" type="integer" value="0" min="0" label="Number of grid points" help="Number of equally-spaced grid points over which the smoothed curves are evaluated." />
147 </when>
148 </conditional>
149
150 <param name="locpolybandwidth" type="integer" value="5" min="2" label="Bandwidth for smoothing" help="" />
151 <param name="locpolydegree" type="integer" value="3" min="0" label="Degree of local polynomial" help="" />
152
153 <!-- fill gaps -->
154 <param name="fillgaps" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="True" label="Use smoothing to fill gaps (NA measurements)" help="" />
155 </when>
156 <!-- conditional choice: smoothing=kernel -->
157 <when value="kernel">
158 <!-- conditional region alignment -->
159 <conditional name="kernelconditionalscale">
160 <param name="alignment" type="select" label="Region alignment" help="">
161 <option value="center">Center - Alignment on the central position</option>
162 <option value="left">Left - Alignment on the starting position</option>
163 <option value="right">Right - Alignment on the ending position</option>
164 <option value="scale">Scale - Scaling all regions to the same length</option>
165 </param>
166 <when value="scale">
167 <param name="scalegrid" type="integer" value="0" min="0" label="Number of grid points" help="Number of equally-spaced grid points over which the smoothed curves are evaluated." />
168 </when>
169 </conditional>
170
171 <param name="kernelbandwidth" type="integer" value="5" min="2" label="Bandwidth for smoothing" help="" />
172
173 <!-- fill gaps -->
174 <param name="fillgaps" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="True" label="Use smoothing to fill gaps (NA measurements)" help="" />
175 </when>
176 <!-- conditional choice: smoothing=splines -->
177 <when value="splines">
178 <!-- conditional region alignment -->
179 <conditional name="splinesconditionalscale">
180 <param name="alignment" type="select" label="Region alignment" help="">
181 <option value="center">Center - Alignment on the central position</option>
182 <option value="left">Left - Alignment on the starting position</option>
183 <option value="right">Right - Alignment on the ending position</option>
184 <option value="scale">Scale - Scaling all regions to the same length</option>
185 </param>
186 <when value="scale">
187 <param name="scalegrid" type="integer" value="0" min="0" label="Number of grid points" help="Number of equally-spaced grid points over which the smoothed curves are evaluated." />
188 </when>
189 </conditional>
190
191 <param name="splinesdegree" type="integer" value="3" min="0" label="Degree of B-splines" help="" />
192 <param name="splinesdistknots" type="integer" value="10" min="2" label="Distance between nodes (approximate)" help="" />
193
194 <!-- fill gaps -->
195 <param name="fillgaps" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="True" label="Use smoothing to fill gaps (NA measurements)" help="" />
196 </when>
197 </conditional>
198
199 <!-- plot IWTomics results -->
200 <section name="plotres" title="Plot data" expanded="True">
201 <!-- average -->
202 <param name="average" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="True" label="Plot the mean curves" help="" />
203 <!-- sample size in each position -->
204 <param name="size" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="True" label="Plot sample size in each position" help="" />
205 <!-- conditional plot type -->
206 <conditional name="conditionalplottype">
207 <!-- plot type -->
208 <param name="plottype" type="select" label="Plot type" help="">
209 <option value="boxplot">Pointwise quantile curves (boxplot)</option>
210 <option value="curves">Curves (aligned)</option>
211 </param>
212 <!-- conditional choice: plottype=boxplot -->
213 <when value="boxplot">
214 <section name="probabilitiessection" title="Probabilities" expanded="True" help="Probabilities corresponding to the quantile curves to be drawn.">
215 <param name="prob0" size="3" type="float" value="0.25" min="0.0" max="1.0" label="Probability" />
216 <param name="prob1" size="3" type="float" value="0.5" min="0.0" max="1.0" label="Probability" />
217 <param name="prob2" size="3" type="float" value="0.75" min="0.0" max="1.0" label="Probability" />
218 <repeat name="probabilities" title="Probabilities">
219 <param name="prob" size="3" type="float" value="0.5" min="0.0" max="1.0" label="Probability" />
220 </repeat>
221 </section>
222 </when>
223 </conditional>
224 </section>
225 </inputs>
226
227 <outputs>
228 <!--<data format="txt" name="stackerr" label="iwtomics.loadandplot.stackerr.txt" from_work_dir="iwtomics.loadandplot.stackerr.txt" />-->
229 <data format="rdata" name="outrdata" label="${tool.name} on ${on_string}: IWTomicsData Object" from_work_dir="iwtomics.loadandplot.RData" />
230 <data format="tabular" name="outregions" label="${tool.name} on ${on_string}: Region Dataset IDs" from_work_dir="iwtomics.loadandplot.regions.txt" />
231 <data format="tabular" name="outfeatures" label="${tool.name} on ${on_string}: Feature IDs" from_work_dir="iwtomics.loadandplot.features.txt" />
232 <data format="pdf" name="outpdf" label="${tool.name} on ${on_string}: Plotted Data" from_work_dir="iwtomics.loadandplot.pdf" />
233 </outputs>
234
235 <help>
236 This tool imports a collection of genomic region datasets, and associates to each region
237 multiple genomic feature measurements. It allows to align the regions in multiple ways
238 (center, left, right or scale alignment), to smooth the feature curves (possibly filling gaps in the
239 measurements) and to create a graphical representation of the feature measurements in each
240 region datasets (aligned curves or pointwise quantile curves).
241
242 -----
243
244 **Region datasets**
245
246 Each region dataset can be provided as a BED or Tabular file with tab delimited columns chr
247 start end (extra columns present in the input file are ignored). Regions can be of different
248 length::
249
250 chr2 49960150 50060150
251 chr2 55912445 56012445
252 ...
253
254 -----
255
256 **Feature measurements**
257
258 Feature measurements corresponding to all the regions can be provided as a BED or Tabular
259 file with tab delimited columns chr start end value::
260
261 chr2 49960150 49962150 0.9426
262 chr2 49962150 49964150 0.7816
263 ...
264
265 Each feature must be measured in windows of a fixed size inside all the regions (missing
266 values must be indicated as NA). Another way to import feature measurements is from a
267 Tabular file with the first three columns chr start end corresponding to the different genomic
268 regions, followed on the same row by all the measurements in fixed-size windows::
269
270 chr2 49960150 50060150 0.9426 0.7816 0.8921 ... ... 1.2063
271 chr2 55912445 56012445 0.8719 0.9975 1.1619 ... ... 0.9601
272 ...
273
274 -----
275
276 **Output**
277
278 The tool returns:
279
280 1. RData with the IWTomicsData object, that stores the aligned genomic region datasets, and their associated feature measurements;
281 2. Region dataset identifiers;
282 3. Feature identifiers;
283 4. PDF file with the plotted data.
284
285 1-3 can be used as input of the tool *IWTomics Test and Plot*
286
287 -----
288
289 .. class:: infomark
290
291 **Notes**
292
293 This Galaxy tool has been developed by Fabio Cumbo (Third University of Rome, Italy) and Marzia A. Cremona (The Pennsylvania State University, USA).
294
295 It implements a simplified version of the methods *smooth* and *plot* for *IWTomicsData* objects.
296 The complete version can be found in the *R/Bioconductor* package *IWTomics* (see vignette_).
297
298 .. _vignette: https://bioconductor.org/packages/release/bioc/vignettes/IWTomics/inst/doc/IWTomics.pdf
299 </help>
300
301 <citations>
302 <citation type="bibtex">
303 @ARTICLE{
304 iwt-functional-data,
305 author = {Pini, Alessia and Vantini, Simone},
306 title = {Interval-Wise Testing for functional data},
307 journal = {Journal of Nonparametric Statistics},
308 year = {2017},
309 volume = {29},
310 number = {2},
311 pages = {407-424}
312 }
313 </citation>
314 <citation type="bibtex">
315 @MANUAL{
316 iwtomics,
317 author = {Cremona, Marzia A and Pini, Alessia and Chiaromonte, Francesca and Vantini, Simone},
318 title = {IWTomics: Interval-Wise Testing for Omics Data},
319 note = {R package version 0.99.12},
320 year = {2017}
321 }
322 </citation>
323 </citations>
324
325 </tool>