Mercurial > repos > fabio > iwtomics
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> |