82
|
1 <tool id="iwtomics_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
|
|
8 <command detect_errors="exit_code">
|
|
9 <![CDATA[
|
|
10 Rscript '$__tool_directory__/loadandplot.R' outrdata='${outrdata}' outregions='${outregions}' outfeatures='${outfeatures}' outpdf='${outpdf}'
|
|
11
|
|
12 #set region_paths = '|'.join( [ str( $r ) for $r in $regions ] )
|
|
13 regionspaths='${region_paths}'
|
|
14 #set region_galaxyids = ','.join( [ str( $r.hid ) for $r in $regions ] )
|
|
15 regionsgalaxyids='c(${region_galaxyids})'
|
|
16 #set region_names = '|'.join( [ str( $r.name ) for $r in $regions ] )
|
|
17 regionsfilenames='${region_names}'
|
|
18 #set region_header = str( $regionsheader )
|
|
19 #if $region_header != "None":
|
|
20 regionsheaderfile='${region_header}'
|
|
21 #end if
|
|
22
|
|
23 #set feature_paths = '|'.join( [ str( $f ) for $f in $features ] )
|
|
24 featurespaths='${feature_paths}'
|
|
25 #set feature_galaxyids = ','.join( [ str( $f.hid ) for $f in $features ] )
|
|
26 featuresgalaxyids='c(${feature_galaxyids})'
|
|
27 #set feature_names = '|'.join( [ str( $f.name ) for $f in $features ] )
|
|
28 featuresfilenames='${feature_names}'
|
|
29 #set feature_header = str( $featuresheader )
|
|
30 #if $feature_header != "None":
|
|
31 featuresheaderfile='${feature_header}'
|
|
32 #end if
|
|
33
|
|
34 smoothing="'${conditionaltype.smoothing}'"
|
|
35 start.are.0based='${zerobased}'
|
|
36 #if $conditionaltype.smoothing == 'no':
|
|
37 alignment="'${conditionaltype.alignment}'"
|
|
38 #elif $conditionaltype.smoothing == 'locpoly':
|
|
39 bandwidth='${conditionaltype.locpolybandwidth}'
|
|
40 degree='${conditionaltype.locpolydegree}'
|
|
41 alignment="'${conditionaltype.conditionalscale.alignment}'"
|
|
42 #elif $conditionaltype.smoothing == 'kernel':
|
|
43 bandwidth='${conditionaltype.kernelbandwidth}'
|
|
44 alignment="'${conditionaltype.conditionalscale.alignment}'"
|
|
45 #elif $conditionaltype.smoothing == 'splines':
|
|
46 degree='${conditionaltype.splinesdegree}'
|
|
47 dist_knots='${conditionaltype.splinesdistknots}'
|
|
48 alignment="'${conditionaltype.conditionalscale.alignment}'"
|
|
49 #end if
|
|
50
|
|
51 #if $conditionaltype.smoothing != 'no':
|
|
52 #if $conditionaltype.conditionalscale.alignment == 'scale':
|
|
53 scale='${conditionaltype.conditionalscale.scalegrid}'
|
|
54 fill_gaps='TRUE'
|
|
55 #else
|
|
56 fill_gaps='${conditionaltype.conditionalscale.fillgaps}'
|
|
57 #end if
|
|
58 #end if
|
|
59
|
|
60 average='${plotres.average}'
|
|
61 size='${plotres.size}'
|
|
62 plottype="'${plotres.conditionalplottype.plottype}'"
|
|
63 #if $plotres.conditionalplottype.plottype == 'boxplot':
|
|
64 #set probs = ','.join( [ str( $p.prob ) for $p in $plotres.conditionalplottype.probabilitiessection.probabilities ] )
|
|
65 #if $probs != "":
|
|
66 probs='c(${plotres.conditionalplottype.probabilitiessection.prob0},${plotres.conditionalplottype.probabilitiessection.prob1},${plotres.conditionalplottype.probabilitiessection.prob2},${probs})'
|
|
67 #else:
|
|
68 probs='c(${plotres.conditionalplottype.probabilitiessection.prob0},${plotres.conditionalplottype.probabilitiessection.prob1},${plotres.conditionalplottype.probabilitiessection.prob2})'
|
|
69 #end if
|
|
70 #end if
|
|
71 ]]>
|
|
72 </command>
|
|
73
|
|
74 <inputs>
|
|
75 <!-- regions -->
|
|
76 <param format="tabular" name="regions" type="data" label="Select region files" multiple="true" help="" />
|
|
77 <param format="tabular" name="regionsheader" type="data" label="Insert header file for regions (optional)" optional="true" 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." />
|
|
78
|
|
79 <!-- features -->
|
|
80 <param format="tabular" name="features" type="data" label="Select feature files" multiple="true" help="" />
|
|
81 <param format="tabular" name="featuresheader" type="data" label="Insert header file for features (optional)" optional="true" 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." />
|
|
82
|
|
83 <!-- zero-base one-base -->
|
|
84 <param name="zerobased" type="select" label="Start positions are:" multiple="false" help="">
|
|
85 <option value="TRUE">0-based</option>
|
|
86 <option value="FALSE">1-based</option>
|
|
87 </param>
|
|
88
|
|
89 <!-- conditional smoothing -->
|
|
90 <conditional name="conditionaltype">
|
|
91 <!-- smoothing -->
|
|
92 <param name="smoothing" type="select" label="Smoothing" help="Type of smoothing to be applied to the feature curves.">
|
|
93 <option value="no">No</option>
|
|
94 <option value="locpoly">Local Polynomials</option>
|
|
95 <option value="kernel">Gaussian Kernel</option>
|
|
96 <option value="splines">B-Splines</option>
|
|
97 </param>
|
|
98 <!-- conditional choice: smoothing=no -->
|
|
99 <when value="no">
|
|
100 <expand macro="alignment" />
|
|
101 </when>
|
|
102 <!-- conditional choice: smoothing=locpoly -->
|
|
103 <when value="locpoly">
|
|
104 <param name="locpolybandwidth" type="integer" value="5" min="2" label="Bandwidth for smoothing" help="" />
|
|
105 <param name="locpolydegree" type="integer" value="3" min="0" label="Degree of local polynomial" help="" />
|
|
106 <!-- conditional region alignment -->
|
|
107 <expand macro="alignment-s" />
|
|
108 </when>
|
|
109 <!-- conditional choice: smoothing=kernel -->
|
|
110 <when value="kernel">
|
|
111 <param name="kernelbandwidth" type="integer" value="5" min="2" label="Bandwidth for smoothing" help="" />
|
|
112 <!-- conditional region alignment -->
|
|
113 <expand macro="alignment-s" />
|
|
114 </when>
|
|
115 <!-- conditional choice: smoothing=splines -->
|
|
116 <when value="splines">
|
|
117 <param name="splinesdegree" type="integer" value="3" min="0" label="Degree of B-splines" help="" />
|
|
118 <param name="splinesdistknots" type="integer" value="10" min="2" label="Distance between nodes (approximate)" help="" />
|
|
119 <!-- conditional region alignment -->
|
|
120 <expand macro="alignment-s" />
|
|
121 </when>
|
|
122 </conditional>
|
|
123
|
|
124 <!-- plot IWTomics results -->
|
|
125 <section name="plotres" title="Plot data" expanded="True">
|
|
126 <expand macro="plot-params" />
|
|
127 </section>
|
|
128 </inputs>
|
|
129
|
|
130 <outputs>
|
|
131 <data format="rdata" name="outrdata" label="${tool.name} on ${on_string}: IWTomicsData Object" from_work_dir="iwtomics.loadandplot.RData" />
|
|
132 <data format="tabular" name="outregions" label="${tool.name} on ${on_string}: Region Dataset IDs" from_work_dir="iwtomics.loadandplot.regions.txt" />
|
|
133 <data format="tabular" name="outfeatures" label="${tool.name} on ${on_string}: Feature IDs" from_work_dir="iwtomics.loadandplot.features.txt" />
|
|
134 <data format="pdf" name="outpdf" label="${tool.name} on ${on_string}: Plotted Data" from_work_dir="iwtomics.loadandplot.pdf" />
|
|
135 </outputs>
|
|
136
|
|
137 <tests>
|
|
138 <test>
|
|
139 <param name="regions" value="input/Controls_regions.bed,input/Elements1_regions.bed,input/Elements2_regions.bed,input/Elements3_regions.bed" ftype="bed" />
|
|
140 <param name="regionsheader" value="input/regions.header.txt" ftype="tabular" />
|
|
141 <param name="features" value="input/Feature1.bed,input/Feature2.bed" ftype="bed" />
|
|
142 <param name="featuresheader" value="input/features.header.bed.txt" ftype="tabular" />
|
|
143 <param name="zerobased" value="TRUE" />
|
|
144 <param name="smoothing" value="kernel" />
|
|
145 <param name="alignment" value="center" />
|
|
146 <param name="kernelbandwidth" value="5" />
|
|
147 <param name="fillgaps" value="TRUE" />
|
|
148 <param name="average" value="TRUE" />
|
|
149 <param name="size" value="TRUE" />
|
|
150 <param name="plottype" value="boxplot" />
|
|
151 <param name="prob0" value="0.25" />
|
|
152 <param name="prob1" value="0.5" />
|
|
153 <param name="prob2" value="0.75" />
|
|
154 <output name="outrdata" file="output_loadandplot/iwtomics.loadandplot.RData" compare="sim_size" />
|
|
155 <output name="outregions" file="output_loadandplot/iwtomics.loadandplot.regions.txt" />
|
|
156 <output name="outfeatures" file="output_loadandplot/iwtomics.loadandplot.features.txt" />
|
|
157 <output name="outpdf" file="output_loadandplot/iwtomics.loadandplot.pdf" compare="sim_size" />
|
|
158 </test>
|
|
159 </tests>
|
|
160
|
|
161 <help><![CDATA[
|
|
162 This tool imports a collection of genomic region datasets, and associates to each region
|
|
163 multiple genomic feature measurements. It allows to align the regions in multiple ways
|
|
164 (center, left, right or scale alignment), to smooth the feature curves (possibly filling gaps in the
|
|
165 measurements) and to create a graphical representation of the feature measurements in each
|
|
166 region datasets (aligned curves or pointwise quantile curves).
|
|
167
|
|
168 -----
|
|
169
|
|
170 **Region datasets**
|
|
171
|
|
172 Each region dataset can be provided as a BED or Tabular file with tab delimited columns chr
|
|
173 start end (extra columns present in the input file are ignored). Regions can be of different
|
|
174 length::
|
|
175
|
|
176 chr2 49960150 50060150
|
|
177 chr2 55912445 56012445
|
|
178 ...
|
|
179
|
|
180 -----
|
|
181
|
|
182 **Feature measurements**
|
|
183
|
|
184 Feature measurements corresponding to all the regions can be provided as a BED or Tabular
|
|
185 file with tab delimited columns chr start end value::
|
|
186
|
|
187 chr2 49960150 49962150 0.9426
|
|
188 chr2 49962150 49964150 0.7816
|
|
189 ...
|
|
190
|
|
191 Each feature must be measured in windows of a fixed size inside all the regions (missing
|
|
192 values must be indicated as NA). Another way to import feature measurements is from a
|
|
193 Tabular file with the first three columns chr start end corresponding to the different genomic
|
|
194 regions, followed on the same row by all the measurements in fixed-size windows::
|
|
195
|
|
196 chr2 49960150 50060150 0.9426 0.7816 0.8921 ... ... 1.2063
|
|
197 chr2 55912445 56012445 0.8719 0.9975 1.1619 ... ... 0.9601
|
|
198 ...
|
|
199
|
|
200 -----
|
|
201
|
|
202 **Output**
|
|
203
|
|
204 The tool returns:
|
|
205
|
|
206 1. RData with the IWTomicsData object, that stores the aligned genomic region datasets, and their associated feature measurements;
|
|
207 2. Region dataset identifiers;
|
|
208 3. Feature identifiers;
|
|
209 4. PDF file with the plotted data.
|
|
210
|
|
211 1-3 can be used as input of the tool *IWTomics Test and Plot*
|
|
212
|
|
213 -----
|
|
214
|
|
215 .. class:: infomark
|
|
216
|
|
217 **Notes**
|
|
218
|
|
219 This Galaxy tool has been developed by Fabio Cumbo (Third University of Rome, Italy - fabio.cumbo@iasi.cnr.it) and Marzia A. Cremona (The Pennsylvania State University, USA - mac78@psu.edu).
|
|
220
|
|
221 It implements a simplified version of the methods *smooth* and *plot* for *IWTomicsData* objects.
|
|
222 The complete version can be found in the *R/Bioconductor* package *IWTomics* (see vignette_).
|
|
223
|
|
224 .. _vignette: https://bioconductor.org/packages/release/bioc/vignettes/IWTomics/inst/doc/IWTomics.pdf
|
|
225
|
|
226 Example data can be found at:
|
|
227
|
|
228 1. Simulated_data_
|
|
229 2. ETn_data_
|
|
230
|
|
231 .. _Simulated_data: https://usegalaxy.org/u/fabio-cumbo/h/iwtomics-example
|
|
232 .. _ETn_data: https://usegalaxy.org/u/fabio-cumbo/h/iwtomics-etn-example
|
|
233 ]]></help>
|
|
234
|
|
235 <expand macro="citations" />
|
|
236
|
|
237 </tool>
|