comparison cialign.xml @ 0:9dce901753b9 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/cialign commit bab03e73ec98fc53e8c0eb899ab8144a775d331a
author iuc
date Mon, 02 Mar 2026 15:36:38 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:9dce901753b9
1 <tool id="cialign" name="CIAlign" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="25.0">
2 <description>clean, visualise and analyse a multiple sequence alignment</description>
3 <macros>
4 <import>macros.xml</import>
5 </macros>
6 <expand macro="requirements"/>
7 <version_command>CIAlign --version</version_command>
8 <command detect_errors="exit_code"><![CDATA[
9 #if str($input.extension) == "fasta.gz":
10 gunzip -c '$input' > input.fasta &&
11 CIAlign --infile input.fasta
12 #else:
13 CIAlign --infile '$input'
14 #end if
15 --outfile_stem 'output'
16
17 ###### Basic Options
18 $basic_options.all
19 $basic_options.clean
20 $basic_options.visualise
21 $basic_options.interpret
22
23 ###### Cleaning Options
24 ### Remove Divergent options
25 #if str($cleaning_options.remove_divergent_cond.remove_divergent_param) == "true":
26 --remove_divergent
27 --remove_divergent_minperc $cleaning_options.remove_divergent_cond.remove_divergent_minperc
28 #for $s in $cleaning_options.remove_divergent_cond.remove_divergent_retain_seqs
29 --remove_divergent_retain '$s.remove_divergent_retain'
30 #end for
31 #for $s in $cleaning_options.remove_divergent_cond.remove_divergent_retain_strings
32 --remove_divergent_retain_str '$s.remove_divergent_retain_str'
33 #end for
34 #end if
35
36 ### Remove Insertions options
37 #if str($cleaning_options.remove_insertions_cond.remove_insertions_param) == "true":
38 --remove_insertions
39 --insertion_min_size $cleaning_options.remove_insertions_cond.insertion_min_size
40 --insertion_max_size $cleaning_options.remove_insertions_cond.insertion_max_size
41 --insertion_min_flank $cleaning_options.remove_insertions_cond.insertion_min_flank
42 --insertion_min_perc $cleaning_options.remove_insertions_cond.insertion_min_perc
43 #end if
44
45 ### Crop Ends options
46 #if str($cleaning_options.crop_ends_cond.crop_ends_param) == "true":
47 --crop_ends
48 --crop_ends_mingap_perc $cleaning_options.crop_ends_cond.crop_ends_mingap_perc
49 --crop_ends_redefine_perc $cleaning_options.crop_ends_cond.crop_ends_redefine_perc
50 #for $s in $cleaning_options.crop_ends_cond.crop_ends_retain_seqs
51 --crop_ends_retain '$s.crop_ends_retain'
52 #end for
53 #for $s in $cleaning_options.crop_ends_cond.crop_ends_retain_strings
54 --crop_ends_retain_str '$s.crop_ends_retain_str'
55 #end for
56 #end if
57
58 ### Remove Short options
59 #if str($cleaning_options.remove_short_cond.remove_short_param) == "true":
60 --remove_short
61 --remove_min_length $cleaning_options.remove_short_cond.remove_min_length
62 #for $s in $cleaning_options.remove_short_cond.remove_short_retain_seqs
63 --remove_short_retain '$s.remove_short_retain'
64 #end for
65 #for $s in $cleaning_options.remove_short_cond.remove_short_retain_strings
66 --remove_short_retain_str '$s.remove_short_retain_str'
67 #end for
68 #end if
69
70 ### Crop Divergent options
71 #if str($cleaning_options.crop_divergent_cond.crop_divergent_param) == "true":
72 --crop_divergent
73 --crop_divergent_min_prop_ident $cleaning_options.crop_divergent_cond.crop_divergent_min_prop_ident
74 --crop_divergent_min_prop_nongap $cleaning_options.crop_divergent_cond.crop_divergent_min_prop_nongap
75 --crop_divergent_buffer_size $cleaning_options.crop_divergent_cond.crop_divergent_buffer_size
76 #end if
77
78 ### Retain options
79 #if str($cleaning_options.retain_cond.retain_param) == "true":
80 #for $s in $cleaning_options.retain_cond.retain_seqs
81 --retain '$s.retain'
82 #end for
83 #for $s in $cleaning_options.retain_cond.retain_strings
84 --retain_str '$s.retain_str'
85 #end for
86 #end if
87
88 ### Keep Gap only
89 $cleaning_options.keep_gaponly
90
91 ###### Visualisation Options
92 ### basic visualisation options
93 $visualisation_options.basic_visualisation_options.plot_input
94 $visualisation_options.basic_visualisation_options.plot_output
95 $visualisation_options.basic_visualisation_options.plot_markup
96 $visualisation_options.basic_visualisation_options.plot_consensus_identity
97 $visualisation_options.basic_visualisation_options.plot_consensus_similarity
98 #if str($visualisation_options.output_settings_cond.output_settings_param) == "true":
99 --plot_width $visualisation_options.basic_visualisation_options.output_settings_cond.plot_width
100 --plot_height $visualisation_options.basic_visualisation_options.output_settings_cond.plot_height
101 --plot_dpi $visualisation_options.basic_visualisation_options.output_settings_cond.plot_dpi
102 $visualisation_options.basic_visualisation_options.output_settings_cond.plot_keep_numbers
103 $visualisation_options.basic_visualisation_options.output_settings_cond.plot_force_numbers
104 --plot_identity_palette '$visualisation_options.basic_visualisation_options.output_settings_cond.plot_identity_palette'
105 --plot_identity_gap_col '$visualisation_options.basic_visualisation_options.output_settings_cond.plot_identity_gap_col'
106 --plot_similarity_palette '$visualisation_options.basic_visualisation_options.output_settings_cond.plot_similarity_palette'
107 --plot_similarity_gap_col '$visualisation_options.basic_visualisation_options.output_settings_cond.plot_similarity_gap_col'
108 --plot_sub_matrix_name '$visualisation_options.basic_visualisation_options.output_settings_cond.plot_sub_matrix_name'
109 --palette '$visualisation_options.basic_visualisation_options.output_settings_cond.palette'
110 #end if
111
112 ### Sequence logos
113 #if str($visualisation_options.sequence_logo_cond.sequence_logo_param) == "true":
114 --make_sequence_logo
115 --sequence_logo_type "$visualisation_options.sequence_logo_cond.sequence_logo_type"
116 --sequence_logo_dpi $visualisation_options.sequence_logo_cond.sequence_logo_dpi
117 --sequence_logo_font '$visualisation_options.sequence_logo_cond.sequence_logo_font'
118 --sequence_logo_nt_per_row $visualisation_options.sequence_logo_cond.sequence_logo_nt_per_row
119 #if $visualisation_options.sequence_logo_cond.logo_start:
120 --logo_start $visualisation_options.sequence_logo_cond.logo_start
121 #end if
122 #if $visualisation_options.sequence_logo_cond.logo_end:
123 --logo_end $visualisation_options.sequence_logo_cond.logo_end
124 #end if
125 #end if
126
127 ### Statistics Plots
128 $visualisation_options.statistics_plots.plot_stats_input
129 $visualisation_options.statistics_plots.plot_stats_output
130 #if $visualisation_options.statistics_plots.plot_stats_input or $visualisation_options.statistics_plots.plot_stats_output
131 --plot_stats_dpi $visualisation_options.statistics_plots.stats_settings.plot_stats_dpi
132 --plot_stats_height $visualisation_options.statistics_plots.stats_settings.plot_stats_width
133 --plot_stats_width $visualisation_options.statistics_plots.stats_settings.plot_stats_height
134 --plot_stats_colour '$visualisation_options.statistics_plots.stats_settings.plot_stats_colour'
135 #end if
136
137 ###### Interpretation Functions
138 ### consensus sequences
139 #if str($interpretation_options.consensus_sequences_cond.consensus_sequences_param) == "true":
140 --make_consensus
141 --consensus_type '$interpretation_options.consensus_sequences_cond.consensus_type'
142 $interpretation_options.consensus_sequences_cond.consensus_keep_gaps
143 #end if
144
145 ### Position Matrices
146 $interpretation_options.position_matrices.pwm_input
147 $interpretation_options.position_matrices.pwm_output
148 #if $interpretation_options.position_matrices.matrices_settings.pwm_start:
149 --pwm_start $interpretation_options.position_matrices.matrices_settings.pwm_start
150 #end if
151 #if $interpretation_options.position_matrices.matrices_settings.pwm_end:
152 --pwm_end $interpretation_options.position_matrices.matrices_settings.pwm_end
153 #end if
154 #if $interpretation_options.position_matrices.pwm_input or $interpretation_options.position_matrices.pwm_output:
155 --pwm_freqtype '$interpretation_options.position_matrices.matrices_settings.pwm_freqtype'
156 --pwm_alphatype '$interpretation_options.position_matrices.matrices_settings.pwm_alphatype'
157 --pwm_alphaval $interpretation_options.position_matrices.matrices_settings.pwm_alphaval
158 #end if
159 $interpretation_options.position_matrices.pwm_output_blamm
160 $interpretation_options.position_matrices.pwm_output_meme
161
162 ### Similarity Matrices
163 $interpretation_options.similarity_matrices.make_similarity_matrix_input
164 $interpretation_options.similarity_matrices.make_similarity_matrix_output
165 #if $interpretation_options.similarity_matrices.make_similarity_matrix_input or $interpretation_options.similarity_matrices.make_similarity_matrix_output:
166 --make_simmatrix_keepgaps $interpretation_options.similarity_matrices.similarity_matrices_settings.make_simmatrix_keepgaps
167 --make_simmatrix_dp $interpretation_options.similarity_matrices.similarity_matrices_settings.make_simmatrix_dp
168 --make_simmatrix_minoverlap $interpretation_options.similarity_matrices.similarity_matrices_settings.make_simmatrix_minoverlap
169 #end if
170
171
172 ###### Editing Functions
173 #if str($editing_functions.get_section_cond.get_section_param) == "true":
174 --get_section
175 --section_start $editing_functions.get_section_cond.section_start
176 --section_end $editing_functions.get_section_cond.section_end
177 #end if
178 $editing_functions.replace_input_tu
179 $editing_functions.replace_input_ut
180 $editing_functions.replace_output_tu
181 $editing_functions.replace_output_ut
182 ### Unaligning
183 $editing_functions.unalign_input
184 $editing_functions.unalign_output
185 ### Removing Duplicates
186 $editing_functions.deduplicate_ids
187 #if str($editing_functions.deduplicate_ids)
188 --duporder '$editing_functions.duporder'
189 #end if
190 ]]></command>
191 <inputs>
192 <param name="input" type="data" format="fasta,fasta.gz" label="Input FASTA" help="Upload a multiple sequence alignment in FASTA or compressed FASTA (.gz) format."/> <!-- BASIC options -->
193 <section name="basic_options" title="Basic Options" expanded="yes">
194 <param argument="--all" type="boolean" truevalue="--all" falsevalue="" checked="false" label="Use All Functions" help="Enable all available functions with default parameters unless overridden."/>
195 <param argument="--clean" type="boolean" truevalue="--clean" falsevalue="" checked="false" label="Use All Cleaning Functions" help="Use all available cleaning functions with default parameters unless overridden."/>
196 <param argument="--visualise" type="boolean" truevalue="--visualise" falsevalue="" checked="false" label="Use All Visualisation Functions" help="Use all available mini alignment visualisation functions with default parameters unless overridden."/>
197 <param argument="--interpret" type="boolean" truevalue="--interpret" falsevalue="" checked="false" label="Use All Interpretation Functions" help="Use all available interpretation functions with default parameters unless overridden."/>
198 <param name="log_out" type="boolean" checked="false" label="Output log file" help="Outputs the log file."/>
199 </section>
200
201 <section name="cleaning_options" title="Cleaning Options" expanded="false">
202 <!-- Remove divergent options -->
203 <conditional name="remove_divergent_cond">
204 <param name="remove_divergent_param" type="select" label="Remove divergent" help="Remove sequences with identity below a specified proportion of conserved positions.">
205 <option value="true">Yes</option>
206 <option value="false" selected="true">No</option>
207 </param>
208 <when value="true">
209 <param argument="--remove_divergent_minperc" type="float" value="0.65" min="0" max="1" label="Minimum Identity Proportion" help="Minimum proportion of positions that must match the most common base or amino acid for a sequence to be kept."/>
210 <repeat name="remove_divergent_retain_seqs" title="sequences to retain" min="0">
211 <param argument="--remove_divergent_retain" type="text" value="" label="Retain Sequence by Name" help="Always keep the sequence with this exact name. (must match a seq name)">
212 <validator type="empty_field"/>
213 </param>
214 </repeat>
215 <repeat name="remove_divergent_retain_strings" title="strings to retain" min="0">
216 <param argument="--remove_divergent_retain_str" type="text" value="" label="Retain Sequences Containing Text" help="Always keep sequences whose names contain this text.">
217 <validator type="empty_field"/>
218 </param>
219 </repeat>
220 </when>
221 <when value="false"/>
222 </conditional>
223
224 <!-- Remove Insertions options -->
225 <conditional name="remove_insertions_cond">
226 <param name="remove_insertions_param" type="select" label="Remove Rare Insertions" help="Remove insertions not present in the majority of sequences.">
227 <option value="true">Yes</option>
228 <option value="false" selected="true">No</option>
229 </param>
230 <when value="true">
231 <param argument="--insertion_min_size" type="integer" value="3" min="1" label="Minimum Insertion Size" help="Only remove insertions larger than this number of residues. Must be less than or equal to the number of columns in your alignment."/>
232 <param argument="--insertion_max_size" type="integer" value="200" min="1" max="10000" label="Maximum Insertion Size" help="Only remove insertions smaller than this number of residues."/>
233 <param argument="--insertion_min_flank" type="integer" value="5" min="0" label="Minimum Flank Size" help="Minimum number of bases required on each side of an insertion. Must be less than half the alignment length."/>
234 <param argument="--insertion_min_perc" type="float" value="0.5" min="0" max="1" label="Minimum Presence Proportion" help="Remove insertions found in less than this proportion of sequences."/>
235 </when>
236 <when value="false"/>
237 </conditional>
238
239 <!-- Crop Ends options -->
240 <conditional name="crop_ends_cond">
241 <param name="crop_ends_param" type="select" label="Crop Sequence Ends" help="Trim ends of sequences if they are poorly aligned.">
242 <option value="true">Yes</option>
243 <option value="false" selected="true">No</option>
244 </param>
245 <when value="true">
246 <param argument="--crop_ends_mingap_perc" type="float" value="0.05" min="0" max="0.6" label="Minimum Gap Change Threshold" help="Minimum proportion of sequence length (excluding gaps) used to detect significant change in gap numbers."/>
247 <param argument="--crop_ends_redefine_perc" type="float" value="0.1" min="0" max="0.5" label="Region Proportion to Check" help="Proportion of the sequence (excluding gaps) checked at each end to redefine cropping boundaries."/>
248 <repeat name="crop_ends_retain_seqs" title="sequences to retain" min="0">
249 <param argument="--crop_ends_retain" type="text" value="" label="Retain Sequence by Name" help="Do not crop the sequence with this exact name. (must match a seq name)">
250 <validator type="empty_field"/>
251 </param>
252 </repeat>
253 <repeat name="crop_ends_retain_strings" title="strings to retain" min="0">
254 <param argument="--crop_ends_retain_str" type="text" value="" label="Retain Sequences Containing Text" help="Do not crop sequences whose names contain this text. Case-sensitive.">
255 <validator type="empty_field"/>
256 </param>
257 </repeat>
258 </when>
259 <when value="false"/>
260 </conditional>
261
262 <!-- Remove Short options -->
263 <conditional name="remove_short_cond">
264 <param name="remove_short_param" type="select" label="Remove Short Sequences" help="Remove sequences shorter than a specified length (excluding gaps).">
265 <option value="true">Yes</option>
266 <option value="false" selected="true">No</option>
267 </param>
268 <when value="true">
269 <param argument="--remove_min_length" type="integer" value="50" min="0" label="Minimum Sequence Length" help="Remove sequences shorter than this length, excluding gaps."/>
270 <repeat name="remove_short_retain_seqs" title="sequences to retain" min="0">
271 <param argument="--remove_short_retain" type="text" value="" label="Retain Sequences by Name" help="Do not remove the sequence with this exact name. (must match a seq name)">
272 <validator type="empty_field"/>
273 </param>
274 </repeat>
275 <repeat name="remove_short_retain_strings" title="strings to retain" min="0">
276 <param argument="--remove_short_retain_str" type="text" value="" label="Retain Sequences Containing Text" help="Do not remove sequences whose names contain this text. Case-sensitive.">
277 <validator type="empty_field"/>
278 </param>
279 </repeat>
280 </when>
281 <when value="false"/>
282 </conditional>
283
284 <!-- Crop Divergent options -->
285 <conditional name="crop_divergent_cond">
286 <param name="crop_divergent_param" type="select" label="Crop Divergent Sequences" help="Remove highly divergent regions to improve alignment quality by focusing on more conserved parts.">
287 <option value="true">Yes</option>
288 <option value="false" selected="true">No</option>
289 </param>
290 <when value="true">
291 <param argument="--crop_divergent_min_prop_ident" type="float" value="0.5" min="0.01" max="1" label="Minimum Identity Proportion" help="Minimum proportion of sequences that must share the same residue in a column."/>
292 <param argument="--crop_divergent_min_prop_nongap" type="float" value="0.5" min="0.01" max="1" label="Minimum Non-Gap Proportion" help="Minimum proportion of sequences that must contain a non-gap residue in a column."/>
293 <param argument="--crop_divergent_buffer_size" type="integer" value="5" min="1" label="Buffer Size" help="Number of consecutive columns that must meet the identity and non-gap criteria to retain a region."/>
294 </when>
295 <when value="false"/>
296 </conditional>
297
298 <!-- Retain options -->
299 <conditional name="retain_cond">
300 <param name="retain_param" type="select" label="Retain Specific Sequences" help="Specify sequences that should not be edited or removed during row-wise functions.">
301 <option value="true">Yes</option>
302 <option value="false" selected="true">No</option>
303 </param>
304 <when value="true">
305 <repeat name="retain_seqs" title="sequences to retain" min="0">
306 <param argument="--retain" type="text" value="" label="Retain Sequence with this Name" help="Do not edit or remove the sequence with this exact name during row-wise functions. Can be used multiple times. (must match a seq name)">
307 <validator type="empty_field"/>
308 </param>
309 </repeat>
310 <repeat name="retain_strings" title="strings to retain" min="0">
311 <param argument="--retain_str" type="text" value="" label="Retain Sequences Containing this String" help="Do not edit or remove sequences with names containing this text. Case-sensitive.">
312 <validator type="empty_field"/>
313 </param>
314 </repeat>
315 </when>
316 <when value="false"/>
317 </conditional>
318
319 <param argument="--keep_gaponly" type="boolean" truevalue="--keep_gaponly" falsevalue="" checked="false" label="Keep Gap-Only Columns" help=" Keep columns in the alignment that consist entirely of gaps."/>
320 </section>
321
322 <section name="visualisation_options" title="Visualisation Options" expanded="false">
323 <!-- Visualisation options -->
324 <section name="basic_visualisation_options" title="Basic Visualisation Options" expanded="false">
325 <param argument="--plot_input" type="boolean" checked="false" falsevalue="" truevalue="--plot_input" label="Plot input alignment" help="Visualisation of the input alignment"/>
326 <param argument="--plot_output" type="boolean" checked="false" falsevalue="" truevalue="--plot_output" label="Plot output alignment" help="Visualisation of the cleaned output alignment"/>
327 <param argument="--plot_markup" type="boolean" checked="false" falsevalue="" truevalue="--plot_markup" label="Plot markup" help="Visualisation of the input alignment with deleted rows and columns marked"/>
328 <param argument="--plot_consensus_identity" type="boolean" checked="false" falsevalue="" truevalue="--plot_consensus_identity" label="Plot consensus identity" help="Plot a mini alignment showing positions which are identical to or differ from the consensus."/>
329 <param argument="--plot_consensus_similarity" type="boolean" checked="false" falsevalue="" truevalue="--plot_consensus_similarity" label="Plot consensus similarity" help="Plot a mini alignment showing positions based on their score when when compared via a substitution matrix to the consensus."/>
330 <conditional name="output_settings_cond">
331 <param name="output_settings_param" type="select" label="Change output settings?" help="Change the output settings.">
332 <option value="true">Yes</option>
333 <option value="false" selected="true">No</option>
334 </param>
335 <when value="true">
336 <param argument="--plot_width" type="integer" value="5" min="2" max="20" label="Plot width" help="Mini alignment width in inches."/>
337 <param argument="--plot_height" type="integer" value="3" min="2" max="15" label="Plot height" help="Mini alignment height in inches."/>
338 <param argument="--plot_dpi" type="integer" min="72" max="1200" value="300" label="Plot DPI" help="DPI for mini alignments"/>
339 <param argument="--plot_keep_numbers" type="boolean" checked="false" falsevalue="" truevalue="--plot_keep_numbers" label="Plot keep numbers" help="If specified, for mini alignments based on CIAlign output with smaller than 10 sequences (or if force_numbers is switched on) the rows will be labelled based on the input alignment, rather than renumbered."/>
340 <param argument="--plot_force_numbers" type="boolean" checked="false" falsevalue="" truevalue="--plot_force_numbers" label="Plot force numbers" help="Force all rows to be numbered on the mini alignments rather than labelling e.g. every 10th row for larger plots. Will cause labels to overlap on large plots."/>
341 <param argument="--plot_identity_palette" type="text" value="bone" label="Plot identity palette" help="Matplotlib palette name for identity mini alignments.">
342 <validator type="regex">^[a-zA-Z_]+$</validator>
343 </param>
344 <param argument="--plot_identity_gap_col" type="color" value="#ffffff" label="Plot identity gap col" help="Colour for gaps in identity mini alignments.">
345 <sanitizer invalid_char="">
346 <valid initial="string.ascii_letters,string.digits">
347 <add value="#" />
348 </valid>
349 </sanitizer>
350 </param>
351 <param argument="--plot_similarity_palette" type="text" value="bone" label="Plot similarity palette" help="Matplotlib palette name for similarity mini alignments.">
352 <validator type="regex">^[a-zA-Z_]+$</validator>
353 </param>
354 <param argument="--plot_similarity_gap_col" type="color" value="#ffffff" label="Plot similarity gap col" help="Colour for gaps in similarity mini alignments.">
355 <sanitizer invalid_char="">
356 <valid initial="string.ascii_letters,string.digits">
357 <add value="#" />
358 </valid>
359 </sanitizer>
360 </param>
361 <param argument="--plot_sub_matrix_name" type="select" label="Substitution matrix to use for similarity plots" help="BLOSUM62 for amino acid, NUC.4.4 for nucleotide">
362 <option value="BLOSUM62">BLOSUM62</option>
363 <option value="NUC.4.4" selected="true">NUC.4.4</option>
364 </param>
365 <param argument="--palette" type="select" value="CBS" label="Colour palette" help="Colour palette. Currently implemented CBS (colour blind safe) or bright.">
366 <option value="CBS" selected="true">CBS</option>
367 </param>
368 </when>
369 <when value="false"/>
370 </conditional>
371 </section>
372
373 <!-- Sequence Logos -->
374 <conditional name="sequence_logo_cond">
375 <param name="sequence_logo_param" type="select" label="Make sequence logo?" help="Draw a sequence logo.">
376 <option value="true">Yes</option>
377 <option value="false" selected="true">No</option>
378 </param>
379 <when value="true">
380 <param argument="--sequence_logo_type" type="select" label="Type of sequence logo" help="Type of sequence logo to plot">
381 <option value="bar">Bar</option>
382 <option value="text" selected="true">Text</option>
383 <option value="both">Both (Bar and Text)</option>
384 </param>
385 <param argument="--sequence_logo_dpi" type="integer" min="72" max="1200" value="300" label="Resolution (DPI)" help="DPI (dots per inch) for sequence logo."/>
386 <param argument="--sequence_logo_font" type="text" value="monospace" label="Logo Font" help="Font for bases / amino acids in a text based sequence logo">
387 <validator type="regex">^[a-zA-Z\- ]+$</validator>
388 </param>
389 <param argument="--sequence_logo_nt_per_row" type="integer" value="50" label="Number of Bases/amino acids per row" help="Number of bases / amino acids to show per row in the sequence logo, where the logo is too large to show on a single line"/>
390 <param argument="--logo_start" type="integer" optional="true" label="Logo Start" help="Start sequence logo"/>
391 <param argument="--logo_end" type="integer" optional="true" label="Logo End" help="End sequence logo"/>
392 </when>
393 <when value="false"/>
394 </conditional>
395
396 <!-- Statistics Plots -->
397 <section name="statistics_plots" title="Statistics Plots" expanded="false">
398 <param argument="--plot_stats_input" type="boolean" checked="false" falsevalue="" truevalue="--plot_stats_input" label="Plot stats input" help="Plot the statistics for the input MSA"/>
399 <param argument="--plot_stats_output" type="boolean" checked="false" falsevalue="" truevalue="--plot_stats_output" label="Plot stats output" help="Plot the statistics for the output MSA"/>
400 <section name="stats_settings" title="Statistics Plots Settings" expanded="false">
401 <param argument="--plot_stats_dpi" type="integer" value="300" min="72" max="1200" label="DPI" help="DPI for coverage plot"/>
402 <param argument="--plot_stats_width" type="integer" min="2" max="20" value="5" label="Plot width" help="Width for coverage plot (inches)"/>
403 <param argument="--plot_stats_height" type="integer" min="2" max="15" value="3" label="Plot height" help="Height for coverage plot (inches)"/>
404 <param argument="--plot_stats_colour" type="text" value="#0000ff" label="Colour" help="Colour for coverage plot (hex code or name)">
405 <sanitizer invalid_char="">
406 <valid initial="string.ascii_letters,string.digits">
407 <add value="#" />
408 </valid>
409 </sanitizer>
410 </param>
411 </section>
412 </section>
413 </section>
414
415
416 <section name="interpretation_options" title="Interpretation Options" expanded="false">
417 <!-- Consensus Sequences -->
418 <conditional name="consensus_sequences_cond">
419 <param name="consensus_sequences_param" type="select" label="Consensus Sequences" help="This generates a consensus sequence based on the cleaned alignment.">
420 <option value="true">Yes</option>
421 <option value="false" selected="true">No</option>
422 </param>
423 <when value="true">
424 <!-- consensus_sequences -->
425 <param argument="--consensus_type" type="select" label="Type of consensus sequence" help="Can be majority, to use the most common character at each position in the consensus, even if this is a gap, or majority_nongap, to use the most common non-gap character at each position">
426 <option value="majority" selected="true">majority</option>
427 <option value="majority_nongap">majority_nongap</option>
428 </param>
429 <param argument="--consensus_keep_gaps" type="boolean" truevalue="--consensus_keep_gaps" falsevalue="" checked="false" label="Include gaps?" help="Should gaps be included in the consensus"/>
430 </when>
431 <when value="false"/>
432 </conditional>
433
434 <!-- Position Matrices -->
435 <section name="position_matrices" title="Position Matrices" expanded="false">
436 <param argument="--pwm_input" type="boolean" checked="false" falsevalue="" truevalue="--pwm_input" label="Generate input matrices" help="Generate a position frequency matrix, position probability matrix and position weight matrix based on the input alignment"/>
437 <param argument="--pwm_output" type="boolean" checked="false" falsevalue="" truevalue="--pwm_output" label="Generate output matrices" help="Generate a position frequency matrix, position probability matrix and position weight matrix based on the cleaned output alignment"/>
438 <section name="matrices_settings" title="Position Matrices Settings" expanded="false">
439 <param argument="--pwm_start" type="integer" optional="true" label="Start the PWM" help="Start the PWM and other matrices from this column of the input alignment"/>
440 <param argument="--pwm_end" type="integer" optional="true" label="End the PWM" help="End the PWM and other matrices at this column of the input alignment"/>
441 <param argument="--pwm_freqtype" type="select" label="Background frequency matrix" help="Choose how to compute background frequencies for the PWM: - equal: assume all residues are equally common
442 - calc: derive from the input PFM - calc2: derive from the full alignment (same as calc if no bounds) - user: provide your own frequencies (check https://davetang.org/muse/2013/10/01/position-weight-matrix/)">
443 <option value="user">user</option>
444 <option value="equal" selected="true">equal</option>
445 <option value="calc">calc</option>
446 <option value="calc2">calc2</option>
447 </param>
448 <param argument="--pwm_alphatype" type="select" label="Pseudocount type" help="If alphatype is 'calc', alpha is calculated as frequency(base), If alpha type is 'user' the user provides the value of alpha as pwm_alphatype. To run without pseudocounts set pwm_alphatype as user and pwm_alphaval as 0.">
449 <option value="user">user</option>
450 <option value="calc" selected="true">calc</option>
451 </param>
452 <param argument="--pwm_alphaval" type="integer" value="1" label="Alpha value" help="User defined value of the alpha parameter to use as a pseudocount in the PPM."/>
453 </section>
454 <param argument="--pwm_output_blamm" type="boolean" checked="false" falsevalue="" truevalue="--pwm_output_blamm" label="Output for BLAM" help="Output PPM formatted for BLAMM software"/>
455 <param argument="--pwm_output_meme" type="boolean" checked="false" falsevalue="" truevalue="--pwm_output_meme" label="Output for MEME" help="Output PPM formatted for MEME software"/>
456 </section>
457
458 <!-- Similarity Matrices -->
459 <section name="similarity_matrices" title="Similarity Matrices" expanded="false">
460 <param argument="--make_similarity_matrix_input" type="boolean" checked="false" falsevalue="" truevalue="--make_similarity_matrix_input" label="Input similarity matrix" help="Make a similarity matrix for the input alignment"/>
461 <param argument="--make_similarity_matrix_output" type="boolean" checked="false" falsevalue="" truevalue="--make_similarity_matrix_output" label="Output similarity matrix" help="Make a similarity matrix for the output alignment"/>
462 <section name="similarity_matrices_settings" title="Similarity Matrices Settings" expanded="false">
463 <param argument="--make_simmatrix_keepgaps" type="select" label="Keep gaps" help="0 - exclude positions which are gaps in either or both sequences from similarity calculations, 1 - exclude positions which are gaps in both sequences, 2 - include all positions">
464 <option value="0" selected="true">0</option>
465 <option value="1">1</option>
466 <option value="2">2</option>
467 </param>
468 <param argument="--make_simmatrix_dp" type="integer" min="0" max="10" value="4" label="Decimal places" help="Number of decimal places to display in the similarity matrix output file"/>
469 <param argument="--make_simmatrix_minoverlap" type="integer" value="1" label="Minimum overlap" help="Minimum overlap between two sequences to have non-zero similarity in the similarity matrix"/>
470 </section>
471 </section>
472 </section>
473
474 <!-- Editing Functions -->
475 <section name="editing_functions" title="Editing Options" expanded="false">
476 <!-- get section -->
477 <conditional name="get_section_cond">
478 <param name="get_section_param" type="select" label="Retrieve and process a section of the alignment?">
479 <option value="true" >Yes</option>
480 <option value="false" selected="true">No</option>
481 </param>
482 <when value="true">
483 <param argument="--section_start" value="" type="integer" label="Section start" help="Start position in the original alignment for the section to be extracted"/>
484 <param argument="--section_end" value="" type="integer" label="Section end" help="End position in the original alignment for the section to be extracted"/>
485 </when>
486 <when value="false"/>
487 </conditional>
488 <!-- replace bases-->
489 <param argument="--replace_input_tu" type="boolean" checked="false" falsevalue="" truevalue="--replace_input_tu" label="Replace input T - U " help="Generates a copy of the input alignment with U's instead of T's"/>
490 <param argument="--replace_input_ut" type="boolean" checked="false" falsevalue="" truevalue="--replace_input_ut" label="Replace input U - T " help="Generates a copy of the input alignment with T's instead of U's"/>
491 <param argument="--replace_output_tu" type="boolean" checked="false" falsevalue="" truevalue="--replace_output_tu" label="Replace output T - U " help="Generates a copy of the output alignment with U's instead of T's"/>
492 <param argument="--replace_output_ut" type="boolean" checked="false" falsevalue="" truevalue="--replace_output_ut" label="Replace output U -T " help="Generates a copy of the output alignment with T's instead of U's"/>
493 <!-- Unaligning -->
494 <param argument="--unalign_input" type="boolean" checked="false" falsevalue="" truevalue="--unalign_input" label="Input alignment with no gaps " help="Generates a copy of the input alignment with no gaps"/>
495 <param argument="--unalign_output" type="boolean" checked="false" falsevalue="" truevalue="--unalign_output" label="Out alignment with no gaps " help="Generates a copy of the output alignment with no gaps"/>
496 <param argument="--deduplicate_ids" type="boolean" checked="false" falsevalue="" truevalue="--deduplicate_ids" label="Remove duplicates" help="Remove sequences with duplicate names from the input."/>
497 <param argument="--duporder" type="select" label="Duplicates order" help="Set to first to keep the first instance of the sequence name and last to keep the last">
498 <option value="first" selected="true">first</option>
499 <option value="last">last</option>
500 </param>
501 </section>
502 </inputs>
503
504 <outputs>
505 <data name="output_cleaned" format="fasta" from_work_dir="output_cleaned.fasta" label="${tool.name} on ${on_string}: Cleaned Alignment"/>
506 <data name="output_removed" format="txt" from_work_dir="output_removed.txt" label="${tool.name} on ${on_string}: Removed Sequences"/>
507 <data name="output_log" format="txt" from_work_dir="output_log.txt" label="${tool.name} on ${on_string}: Log File">
508 <filter>basic_options['log_out']</filter>
509 </data>
510 <!-- Visualisation Options Simple Outputs -->
511 <data name="plot_input" format="png" from_work_dir="output_input.png" label="${tool.name} on ${on_string}: Input Plot">
512 <filter>visualisation_options['basic_visualisation_options']['plot_input'] or basic_options['visualise'] or basic_options['all']</filter>
513 </data>
514 <data name="plot_output" format="png" from_work_dir="output_output.png" label="${tool.name} on ${on_string}: Output Plot">
515 <filter>visualisation_options['basic_visualisation_options']['plot_output'] or basic_options['visualise'] or basic_options['all']</filter>
516 </data>
517 <data name="plot_markup" format="png" from_work_dir="output_markup.png" label="${tool.name} on ${on_string}: Markup Plot">
518 <filter>visualisation_options['basic_visualisation_options']['plot_markup'] or basic_options['visualise'] or basic_options['all']</filter>
519 </data>
520 <data name="plot_markup_legend" format="png" from_work_dir="output_markup_legend.png" label="${tool.name} on ${on_string}: Markup Legend">
521 <filter>visualisation_options['basic_visualisation_options']['plot_markup'] or basic_options['visualise'] or basic_options['all']</filter>
522 </data>
523 <data name="plot_consensus_identity" format="png" from_work_dir="output_consensus_identity.png" label="${tool.name} on ${on_string}: Consensus Identity Plot">
524 <filter>visualisation_options['basic_visualisation_options']['plot_consensus_identity'] or basic_options['all']</filter>
525 </data>
526 <data name="plot_consensus_similarity" format="png" from_work_dir="output_consensus_similarity.png" label="${tool.name} on ${on_string}: Consensus Similarity Plot">
527 <filter>visualisation_options['basic_visualisation_options']['plot_consensus_similarity']</filter>
528 </data>
529 <!-- Visualisation Options Outputs -->
530 <data name="logo_bar" format="png" from_work_dir="output_logo_bar.png" label="${tool.name} on ${on_string}: Logo Bar Chart">
531 <filter>(visualisation_options['sequence_logo_cond']['sequence_logo_param'] == 'true' and (visualisation_options['sequence_logo_cond']['sequence_logo_type'] == 'bar' or visualisation_options['sequence_logo_cond']['sequence_logo_type'] == 'both'))</filter>
532 </data>
533 <data name="logo_text" format="png" from_work_dir="output_logo_text.png" label="${tool.name} on ${on_string}: Logo Text Chart">
534 <filter>(visualisation_options['sequence_logo_cond']['sequence_logo_param'] == 'true' and (visualisation_options['sequence_logo_cond']['sequence_logo_type'] == 'text' or visualisation_options['sequence_logo_cond']['sequence_logo_type'] == 'both'))</filter>
535 </data>
536
537 <!-- Statistics plots of the input -->
538 <collection name="plot_stats_input" type="list" label="Input stats plots">
539 <discover_datasets pattern="(output_input_)(?P&lt;designation&gt;.+)\.png$" format="png" directory="." visible="false"/>
540 <filter>visualisation_options['statistics_plots']['plot_stats_input'] or basic_options['interpret'] or basic_options['all']</filter>
541 </collection>
542
543 <!-- Statistics plots of the output -->
544 <collection name="plot_stats_outputs" type="list" label="Output stats plots">
545 <discover_datasets pattern="(output_output_)(?P&lt;designation&gt;.+)\.png$" format="png" directory="." visible="false"/>
546 <filter>visualisation_options['statistics_plots']['plot_stats_output'] or basic_options['interpret'] or basic_options['all']</filter>
547 </collection>
548
549 <!-- Interpretaion Options Outputs -->
550 <data name="output_consensus" format="fasta" from_work_dir="output_consensus.fasta" label="${tool.name} on ${on_string}: Consensus Sequence">
551 <filter>interpretation_options['consensus_sequences_cond']['consensus_sequences_param'] == 'true' or basic_options['interpret'] or basic_options['all']</filter>
552 </data>
553 <data name="output_with_consensus" format="fasta" from_work_dir="output_with_consensus.fasta" label="${tool.name} on ${on_string}: Cleaned + Consensus">
554 <filter>interpretation_options['consensus_sequences_cond']['consensus_sequences_param'] == 'true' or basic_options['interpret'] or basic_options['all']</filter>
555 </data>
556 <data name="pwm_input" format="txt" from_work_dir="output_pwm_input.txt" label="${tool.name} on ${on_string}: PWM Input">
557 <filter>interpretation_options['position_matrices']['pwm_input']</filter>
558 </data>
559 <data name="ppm_input" format="txt" from_work_dir="output_ppm_input.txt" label="${tool.name} on ${on_string}: PPM Input">
560 <filter>interpretation_options['position_matrices']['pwm_input']</filter>
561 </data>
562 <data name="pfm_input" format="txt" from_work_dir="output_pfm_input.txt" label="${tool.name} on ${on_string}: PFM Input">
563 <filter>interpretation_options['position_matrices']['pwm_input']</filter>
564 </data>
565 <data name="ppm_meme_input" format="txt" from_work_dir="output_ppm_meme_input.txt" label="${tool.name} on ${on_string}: PPM for MEME (Input)">
566 <filter>interpretation_options['position_matrices']['pwm_input'] and interpretation_options['position_matrices']['pwm_output_meme']</filter>
567 </data>
568 <data name="blamm_input" format="txt" from_work_dir="output_pfm_blamm_input.txt" label="${tool.name} on ${on_string}: PFM for BLAMM (Input)">
569 <filter>interpretation_options['position_matrices']['pwm_input'] and interpretation_options['position_matrices']['pwm_output_blamm']</filter>
570 </data>
571 <data name="pwm_output" format="txt" from_work_dir="output_pwm_output.txt" label="${tool.name} on ${on_string}: PWM Output">
572 <filter>interpretation_options['position_matrices']['pwm_output']</filter>
573 </data>
574 <data name="ppm_output" format="txt" from_work_dir="output_ppm_output.txt" label="${tool.name} on ${on_string}: PPM Output">
575 <filter>interpretation_options['position_matrices']['pwm_output']</filter>
576 </data>
577 <data name="pfm_output" format="txt" from_work_dir="output_pfm_output.txt" label="${tool.name} on ${on_string}: PFM Output">
578 <filter>interpretation_options['position_matrices']['pwm_output']</filter>
579 </data>
580 <data name="ppm_meme_output" format="txt" from_work_dir="output_ppm_meme_output.txt" label="${tool.name} on ${on_string}: PPM for MEME (Output)">
581 <filter>interpretation_options['position_matrices']['pwm_output'] and interpretation_options['position_matrices']['pwm_output_meme']</filter>
582 </data>
583 <data name="blamm_output" format="txt" from_work_dir="output_pfm_blamm_output.txt" label="${tool.name} on ${on_string}: PFM for BLAMM (Output)">
584 <filter>interpretation_options['position_matrices']['pwm_output'] and interpretation_options['position_matrices']['pwm_output_blamm']</filter>
585 </data>
586 <data name="input_similarity" format="tsv" from_work_dir="output_input_similarity.tsv" label="${tool.name} on ${on_string}: Input Similarity">
587 <filter>interpretation_options['similarity_matrices']['make_similarity_matrix_input'] or basic_options['interpret'] or basic_options['all']</filter>
588 </data>
589 <data name="output_similarity" format="tsv" from_work_dir="output_output_similarity.tsv" label="${tool.name} on ${on_string}: Output Similarity">
590 <filter>interpretation_options['similarity_matrices']['make_similarity_matrix_output'] or basic_options['interpret'] or basic_options['all']</filter>
591 </data>
592 <data name="output_output_column_stats" format="tsv" from_work_dir="output_output_column_stats.tsv" label="${tool.name} on ${on_string}: Output column stats">
593 <filter>basic_options['interpret'] or basic_options['all']</filter>
594 </data>
595 <data name="output_input_column_stats" format="tsv" from_work_dir="output_output_column_stats.tsv" label="${tool.name} on ${on_string}: Input column stats">
596 <filter>basic_options['interpret'] or basic_options['all']</filter>
597 </data>
598 <!-- Editing Options Outputs -->
599 <data name="U_input" format="fasta" from_work_dir="output_U_input.fasta" label="${tool.name} on ${on_string}: Input: U instead of T">
600 <filter>editing_functions['replace_input_tu']</filter>
601 </data>
602 <data name="T_input" format="fasta" from_work_dir="output_T_input.fasta" label="${tool.name} on ${on_string}: Input: T instead of U">
603 <filter>editing_functions['replace_input_ut']</filter>
604 </data>
605 <data name="U_output" format="fasta" from_work_dir="output_U_output.fasta" label="${tool.name} on ${on_string}: Output: U instead of T">
606 <filter>editing_functions['replace_output_tu']</filter>
607 </data>
608 <data name="T_output" format="fasta" from_work_dir="output_T_output.fasta" label="${tool.name} on ${on_string}: Output: T instead of U">
609 <filter>editing_functions['replace_output_ut']</filter>
610 </data>
611 <data name="unaligned_input" format="fasta" from_work_dir="output_unaligned_input.fasta" label="${tool.name} on ${on_string}: Unaligned Input">
612 <filter>editing_functions['unalign_input']</filter>
613 </data>
614 <data name="unaligned_output" format="fasta" from_work_dir="output_unaligned_output.fasta" label="${tool.name} on ${on_string}: Unaligned Output">
615 <filter>editing_functions['unalign_output']</filter>
616 </data>
617 </outputs>
618 <tests>
619 <!-- Test 1 gzip files -->
620 <test expect_num_outputs="3">
621 <param name="input" value="example3.fasta.gz" ftype="fasta"/>
622 <section name="basic_options">
623 <param name="log_out" value="true"/>
624 </section>
625 <output name="output_cleaned" ftype="fasta">
626 <assert_contents>
627 <has_n_lines n="4"/>
628 </assert_contents>
629 </output>
630 <output name="output_removed" ftype="txt">
631 <assert_contents>
632 <has_n_lines n="0"/>
633 </assert_contents>
634 </output>
635 <output name="output_log">
636 <assert_contents>
637 <has_text text="Command Line Args:"/>
638 </assert_contents>
639 </output>
640 </test>
641 <!-- Test 2 to check clean mode -->
642 <test expect_num_outputs="3">
643 <param name="input" value="example1.fasta" ftype="fasta"/>
644 <section name="basic_options">
645 <param name="clean" value="true"/>
646 <param name="log_out" value="true"/>
647 </section>
648 <output name="output_cleaned" ftype="fasta">
649 <assert_contents>
650 <has_n_lines n="10"/>
651 <has_line_matching expression="AUUCUAUCUGGGUGACUAUUCGUUAUCUCUACUUACUAUCUUACUUACUUACUUACGCUACGUACUAGCUUACGUACUGACUU" />
652 </assert_contents>
653 </output>
654 <output name="output_removed" ftype="txt">
655 <assert_contents>
656 <has_n_lines n="7"/>
657 <has_line_matching expression="remove_gap_only\s+89,90,91" />
658 </assert_contents>
659 </output>
660 <output name="output_log">
661 <assert_contents>
662 <has_text text="Command Line Args:"/>
663 </assert_contents>
664 </output>
665 </test>
666 <!-- Test 3 to clean amino acid -->
667 <test expect_num_outputs="3">
668 <param name="input" value="example2.fasta" ftype="fasta"/>
669 <section name="basic_options">
670 <param name="clean" value="true"/>
671 <param name="log_out" value="true"/>
672 </section>
673 <section name="cleaning_options">
674 <conditional name="retain_cond">
675 <param name="retain_param" value="true"/>
676 <repeat name="retain_seqs">
677 <param name="retain" value="seq1"/>
678 </repeat>
679 </conditional>
680 </section>
681 <output name="output_cleaned" ftype="fasta">
682 <assert_contents>
683 <has_n_lines n="2"/>
684 <has_line_matching expression="MKTAIKDLGTEYKLTVAEYFR" />
685 </assert_contents>
686 </output>
687 <output name="output_removed" ftype="txt">
688 <assert_contents>
689 <has_n_lines n="2"/>
690 <has_line_matching expression="remove_gap_only\s+3,4" />
691 </assert_contents>
692 </output>
693 <output name="output_log">
694 <assert_contents>
695 <has_text text="Amino acid alignment detected"/>
696 </assert_contents>
697 </output>
698 </test>
699 <!-- Test 4 to check visualise mode -->
700 <test expect_num_outputs="7">
701 <param name="input" value="example1.fasta" ftype="fasta"/>
702 <section name="basic_options">
703 <param name="visualise" value="true"/>
704 <param name="log_out" value="true"/>
705 </section>
706 <output name="output_cleaned" ftype="fasta">
707 <assert_contents>
708 <has_n_lines n="14"/>
709 <has_line_matching expression="AGUCUAUCUGGGGUACUAUCUA------UCGCUACGUACUAGCUUACGUACUGACUUA--CGCUACGUACUAGCUUACGUACUGACUUA----"/>
710 </assert_contents>
711 </output>
712 <output name="output_removed" ftype="txt">
713 <assert_contents>
714 <has_n_lines n="1"/>
715 <has_line_matching expression="remove_gap_only\s+89,90,91" />
716 </assert_contents>
717 </output>
718 <output name="output_log">
719 <assert_contents>
720 <has_text text="Command Line Args:"/>
721 </assert_contents>
722 </output>
723 <output name="plot_input">
724 <assert_contents>
725 <has_image_height height="870"/>
726 <has_image_width width="1469"/>
727 </assert_contents>
728 </output>
729 <output name="plot_output">
730 <assert_contents>
731 <has_image_channels channels="4"/>
732 <has_image_height height="870"/>
733 <has_image_width width="1470"/>
734 </assert_contents>
735 </output>
736 <output name="plot_output">
737 <assert_contents>
738 <has_image_channels channels="4"/>
739 <has_image_height height="870"/>
740 <has_image_width width="1470"/>
741 </assert_contents>
742 </output>
743 <output name="plot_markup">
744 <assert_contents>
745 <has_image_channels channels="4"/>
746 <has_image_height height="870"/>
747 <has_image_width width="1469"/>
748 </assert_contents>
749 </output>
750 <output name="plot_markup_legend">
751 <assert_contents>
752 <has_image_channels channels="4"/>
753 <has_image_height height="174"/>
754 <has_image_width width="187"/>
755 </assert_contents>
756 </output>
757 </test>
758 <!-- Test 5 "remove divergent"" -->
759 <test expect_num_outputs="2">
760 <param name="input" value="example1.fasta" ftype="fasta"/>
761 <section name="cleaning_options">
762 <conditional name="remove_divergent_cond">
763 <param name="remove_divergent_param" value="true"/>
764 <param name="remove_divergent_minperc" value="0.9"/>
765 <repeat name="remove_divergent_retain_seqs">
766 <param name="remove_divergent_retain" value="Seq1"/>
767 </repeat>
768 <repeat name="remove_divergent_retain_seqs">
769 <param name="remove_divergent_retain" value="Seq2"/>
770 </repeat>
771 </conditional>
772 </section>
773 <output name="output_cleaned" ftype="fasta">
774 <assert_contents>
775 <has_n_lines n="10"/>
776 <not_has_text text="Seq4"/>
777 </assert_contents>
778 </output>
779 <output name="output_removed" ftype="txt">
780 <assert_contents>
781 <has_n_lines n="2"/>
782 <has_text text="remove_divergent"/>
783 </assert_contents>
784 </output>
785 </test>
786 <!-- Test 6 "remove rare insertion"" -->
787 <test expect_num_outputs="2">
788 <param name="input" value="example1.fasta" ftype="fasta"/>
789 <section name="cleaning_options">
790 <conditional name="remove_insertions_cond">
791 <param name="remove_insertions_param" value="true"/>
792 <param name="insertion_min_size" value="3"/>
793 <param name="insertion_max_size" value="150"/>
794 <param name="insertion_min_flank" value="5"/>
795 <param name="insertion_min_perc" value="0.6"/>
796 </conditional>
797 </section>
798 <output name="output_cleaned" ftype="fasta">
799 <assert_contents>
800 <has_n_lines n="14"/>
801 <has_line_matching expression="AGUCUAUCUGGGGUACUAUCUAUCGCUACGUACUAGCUUACGUACUGACUUA--CGCUACGUACUAGCUUACGUACUGACUUA----"/>
802 </assert_contents>
803 </output>
804 <output name="output_removed" ftype="txt">
805 <assert_contents>
806 <has_n_lines n="2"/>
807 <has_line_matching expression="remove_gap_only\s+89,90,91"/>
808 </assert_contents>
809 </output>
810 </test>
811 <!-- Test 7 "Crop Sequence Ends"" -->
812 <test expect_num_outputs="2">
813 <param name="input" value="example1.fasta" ftype="fasta"/>
814 <section name="cleaning_options">
815 <conditional name="crop_ends_cond">
816 <param name="crop_ends_param" value="true"/>
817 <param name="crop_ends_mingap_perc" value="0.05"/>
818 <param name="crop_ends_redefine_perc" value="0.1"/>
819 <repeat name="crop_ends_retain_strings">
820 <param name="crop_ends_retain_str" value="q7"/>
821 </repeat>
822 </conditional>
823 </section>
824 <output name="output_cleaned" ftype="fasta">
825 <assert_contents>
826 <has_n_lines n="14"/>
827 <has_line_matching expression="AUUCUAUCUGGGUACUAUUGGG------UUAUCUCUACUUACUAUCUUACAGACUUGGUUA----------------------------AAAA"/>
828 </assert_contents>
829 </output>
830 <output name="output_removed" ftype="txt">
831 <assert_contents>
832 <has_n_lines n="2"/>
833 <has_line_matching expression="remove_gap_only\s+89,90,91"/>
834 </assert_contents>
835 </output>
836 </test>
837 <!-- Test 8 "Remove Short Sequences"" -->
838 <test expect_num_outputs="2">
839 <param name="input" value="example1.fasta" ftype="fasta"/>
840 <section name="cleaning_options">
841 <conditional name="remove_short_cond">
842 <param name="remove_short_param" value="true"/>
843 <param name="remove_min_length" value="70"/>
844 <repeat name="remove_short_retain_seqs">
845 <param name="remove_short_retain" value="Seq1"/>
846 </repeat>
847 <repeat name="remove_short_retain_strings">
848 <param name="remove_short_retain_str" value="q2"/>
849 </repeat>
850 </conditional>
851 </section>
852 <output name="output_cleaned" ftype="fasta">
853 <assert_contents>
854 <has_n_lines n="8"/>
855 <not_has_text text="Seq5"/>
856 </assert_contents>
857 </output>
858 <output name="output_removed" ftype="txt">
859 <assert_contents>
860 <has_n_lines n="2"/>
861 <has_text text="remove_too_short"/>
862 </assert_contents>
863 </output>
864 </test>
865 <!-- Test 9 "Crop Divergent" -->
866 <test expect_num_outputs="2">
867 <param name="input" value="example1.fasta" ftype="fasta"/>
868 <section name="cleaning_options">
869 <conditional name="crop_divergent_cond">
870 <param name="crop_divergent_param" value="true"/>
871 <param name="crop_divergent_min_prop_ident" value="0.5"/>
872 <param name="crop_divergent_min_prop_nongap" value="0.5"/>
873 <param name="crop_divergent_buffer_size" value="5"/>
874 </conditional>
875 </section>
876 <output name="output_cleaned" ftype="fasta">
877 <assert_contents>
878 <has_n_lines n="14"/>
879 <has_line_matching expression="AUUCUAUC------UAUUGG--------UUAUCU-------------------------------------------------------"/>
880 </assert_contents>
881 </output>
882 <output name="output_removed" ftype="txt">
883 <assert_contents>
884 <has_n_lines n="1"/>
885 <has_line_matching expression="crop_divergent\s+89,90,91,92,93,94,95"/>
886 </assert_contents>
887 </output>
888 </test>
889 <!-- Test 10 "Retain" -->
890 <test expect_num_outputs="2">
891 <param name="input" value="example1.fasta" ftype="fasta"/>
892 <section name="cleaning_options">
893 <conditional name="remove_short_cond">
894 <param name="remove_short_param" value="true"/>
895 <param name="remove_min_length" value="90"/>
896 </conditional>
897 <conditional name="retain_cond">
898 <param name="retain_param" value="true"/>
899 <repeat name="retain_seqs">
900 <param name="retain" value="Seq1"/>
901 </repeat>
902 <repeat name="retain_strings">
903 <param name="retain_str" value="q2"/>
904 </repeat>
905 </conditional>
906 <param name="keep_gaponly" value="true"/>
907 </section>
908 <output name="output_cleaned" ftype="fasta">
909 <assert_contents>
910 <has_n_lines n="4"/>
911 <not_has_text text="Seq3"/>
912 </assert_contents>
913 </output>
914 <output name="output_removed" ftype="txt">
915 <assert_contents>
916 <has_n_lines n="1"/>
917 <has_text text="remove_too_short"/>
918 </assert_contents>
919 </output>
920 </test>
921 <!-- Test 11 "Visualise basic options + settings" -->
922 <test expect_num_outputs="6">
923 <param name="input" value="example1.fasta" ftype="fasta"/>
924 <section name="visualisation_options">
925 <section name="basic_visualisation_options">
926 <param name="plot_consensus_identity" value="true"/>
927 <param name="plot_consensus_similarity" value="true"/>
928 <param name="plot_markup" value="true"/>
929 <conditional name="output_settings_cond">
930 <param name="output_settings_param" value="true"/>
931 <param name="plot_width" value="5"/>
932 <param name="plot_height" value="3"/>
933 <param name="plot_dpi" value="300"/>
934 <param name="plot_keep_numbers" value="true"/>
935 <param name="plot_force_numbers" value="false"/>
936 <param name="plot_identity_palette" value="bone"/>
937 <param name="plot_identity_gap_col" value="#ffffff"/>
938 <param name="plot_similarity_palette" value="bone"/>
939 <param name="plot_similarity_gap_col" value="#ffffff"/>
940 <param name="palette" value="CBS"/>
941 </conditional>
942 </section>
943 </section>
944 <output name="output_cleaned" ftype="fasta">
945 <assert_contents>
946 <has_n_lines n="14"/>
947 <has_line_matching expression=">Seq1"/>
948 </assert_contents>
949 </output>
950 <output name="output_removed" ftype="txt">
951 <assert_contents>
952 <has_n_lines n="1"/>
953 <has_line_matching expression="remove_gap_only\s+89,90,91"/>
954 </assert_contents>
955 </output>
956 <output name="plot_consensus_identity" ftype="png">
957 <assert_contents>
958 <has_image_channels channels="4"/>
959 <has_image_height height="870"/>
960 <has_image_width width="1470"/>
961 </assert_contents>
962 </output>
963 <output name="plot_consensus_similarity" ftype="png">
964 <assert_contents>
965 <has_image_channels channels="4"/>
966 <has_image_height height="870"/>
967 <has_image_width width="1470"/>
968 </assert_contents>
969 </output>
970 <output name="plot_markup" ftype="png">
971 <assert_contents>
972 <has_image_channels channels="4"/>
973 <has_image_height height="870"/>
974 <has_image_width width="1469"/>
975 </assert_contents>
976 </output>
977 <output name="plot_markup_legend" ftype="png">
978 <assert_contents>
979 <has_image_channels channels="4"/>
980 <has_image_height height="174"/>
981 <has_image_width width="187"/>
982 </assert_contents>
983 </output>
984 </test>
985 <!-- Test 12 "Visualise statistics plots and settings" -->
986 <test expect_num_outputs="3">
987 <param name="input" value="example1.fasta" ftype="fasta"/>
988 <section name="visualisation_options">
989 <section name="statistics_plots">
990 <param name="plot_stats_input" value="true"/>
991 <section name="stats_settings">
992 <param name="plot_stats_dpi" value="300"/>
993 <param name="plot_stats_width" value="5"/>
994 <param name="plot_stats_height" value="3"/>
995 </section>
996 </section>
997 </section>
998 <output name="output_cleaned" ftype="fasta">
999 <assert_contents>
1000 <has_n_lines n="14"/>
1001 <has_line_matching expression=">Seq1"/>
1002 </assert_contents>
1003 </output>
1004 <output name="output_removed" ftype="txt">
1005 <assert_contents>
1006 <has_n_lines n="1"/>
1007 </assert_contents>
1008 </output>
1009 <output_collection name="plot_stats_input" type="list" count="5">
1010 <element name="changefreq" ftype="png">
1011 <assert_contents>
1012 <has_image_channels channels="4"/>
1013 <has_image_height height="1340" delta="100"/>
1014 <has_image_width width="2331"/>
1015 </assert_contents>
1016 </element>
1017 <element name="coverage" ftype="png">
1018 <assert_contents>
1019 <has_image_channels channels="4"/>
1020 <has_image_height height="1470"/>
1021 <has_image_width width="869"/>
1022 </assert_contents>
1023 </element>
1024 <element name="information_content" ftype="png">
1025 <assert_contents>
1026 <has_image_channels channels="4"/>
1027 <has_image_height height="1470"/>
1028 <has_image_width width="869"/>
1029 </assert_contents>
1030 </element>
1031 <element name="shannon_entropy" ftype="png">
1032 <assert_contents>
1033 <has_image_channels channels="4"/>
1034 <has_image_height height="1470"/>
1035 <has_image_width width="869"/>
1036 </assert_contents>
1037 </element>
1038 <element name="resfreq" ftype="png">
1039 <assert_contents>
1040 <has_image_channels channels="4"/>
1041 <has_image_height height="1403"/>
1042 <has_image_width width="1008"/>
1043 </assert_contents>
1044 </element>
1045 </output_collection>
1046 </test>
1047 <!-- Test 13 "Consensus Sequences" -->
1048 <test expect_num_outputs="4">
1049 <param name="input" value="example1.fasta" ftype="fasta"/>
1050 <section name="interpretation_options">
1051 <conditional name="consensus_sequences_cond">
1052 <param name="consensus_sequences_param" value="true"/>
1053 <param name="consensus_type" value="majority"/>
1054 <param name="consensus_keep_gaps" value="true"/>
1055 </conditional>
1056 </section>
1057 <output name="output_cleaned" ftype="fasta">
1058 <assert_contents>
1059 <has_n_lines n="14"/>
1060 <has_line_matching expression=">Seq1"/>
1061 </assert_contents>
1062 </output>
1063 <output name="output_removed" ftype="txt">
1064 <assert_contents>
1065 <has_n_lines n="1"/>
1066 </assert_contents>
1067 </output>
1068 <output name="output_consensus" ftype="fasta">
1069 <assert_contents>
1070 <has_n_lines n="2"/>
1071 <has_line_matching expression=">consensus"/>
1072 </assert_contents>
1073 </output>
1074 <output name="output_with_consensus" ftype="fasta">
1075 <assert_contents>
1076 <has_n_lines n="16"/>
1077 <has_line_matching expression=">consensus"/>
1078 </assert_contents>
1079 </output>
1080 </test>
1081 <!-- Test 14 "Position Matrices" -->
1082 <test expect_num_outputs="7">
1083 <param name="input" value="example1.fasta" ftype="fasta"/>
1084 <section name="interpretation_options">
1085 <section name="position_matrices">
1086 <param name="pwm_input" value="true"/>
1087 <section name="matrices_settings">
1088 <param name="pwm_start" value="1"/>
1089 <param name="pwm_end" value="100"/>
1090 <param name="pwm_freqtype" value="equal"/>
1091 <param name="pwm_alphatype" value="calc"/>
1092 <param name="pwm_alphaval" value="1"/>
1093 </section>
1094 <param name="pwm_output_blamm" value="true"/>
1095 <param name="pwm_output_meme" value="true"/>
1096 </section>
1097 </section>
1098 <output name="output_cleaned" ftype="fasta">
1099 <assert_contents>
1100 <has_n_lines n="14"/>
1101 <has_line_matching expression=">Seq1"/>
1102 </assert_contents>
1103 </output>
1104 <output name="output_removed" ftype="txt">
1105 <assert_contents>
1106 <has_n_lines n="1"/>
1107 </assert_contents>
1108 </output>
1109 <output name="pwm_input" ftype="txt">
1110 <assert_contents>
1111 <has_n_lines n="5"/>
1112 </assert_contents>
1113 </output>
1114 <output name="ppm_input" ftype="txt">
1115 <assert_contents>
1116 <has_n_lines n="5"/>
1117 </assert_contents>
1118 </output>
1119 <output name="pfm_input" ftype="txt">
1120 <assert_contents>
1121 <has_n_lines n="5"/>
1122 </assert_contents>
1123 </output>
1124 <output name="ppm_meme_input" ftype="txt">
1125 <assert_contents>
1126 <has_n_lines n="103"/>
1127 </assert_contents>
1128 </output>
1129 <output name="blamm_input" ftype="txt">
1130 <assert_contents>
1131 <has_n_lines n="5"/>
1132 </assert_contents>
1133 </output>
1134 </test>
1135 <!-- Test 15 "Similarity Sequences" -->
1136 <test expect_num_outputs="3">
1137 <param name="input" value="example1.fasta" ftype="fasta"/>
1138 <section name="interpretation_options">
1139 <section name="similarity_matrices">
1140 <param name="make_similarity_matrix_input" value="true"/>
1141 <section name="similarity_matrices_settings">
1142 <param name="make_simmatrix_keepgaps" value="0"/>
1143 <param name="make_simmatrix_dp" value="4"/>
1144 <param name="make_simmatrix_minoverlap" value="1"/>
1145 </section>
1146 </section>
1147 </section>
1148 <output name="output_cleaned" ftype="fasta">
1149 <assert_contents>
1150 <has_n_lines n="14"/>
1151 <has_line_matching expression=">Seq1"/>
1152 </assert_contents>
1153 </output>
1154 <output name="output_removed" ftype="txt">
1155 <assert_contents>
1156 <has_n_lines n="1"/>
1157 </assert_contents>
1158 </output>
1159 <output name="input_similarity" ftype="tsv">
1160 <assert_contents>
1161 <has_n_lines n="8"/>
1162 </assert_contents>
1163 </output>
1164 </test>
1165 <!-- Test 16 "Extract Part of Alignment" -->
1166 <test expect_num_outputs="2">
1167 <param name="input" value="example1.fasta" ftype="fasta"/>
1168 <section name="editing_functions">
1169 <conditional name="get_section_cond">
1170 <param name="get_section_param" value="true"/>
1171 <param name="section_start" value="10"/>
1172 <param name="section_end" value="50"/>
1173 </conditional>
1174 </section>
1175 <output name="output_cleaned" ftype="fasta">
1176 <assert_contents>
1177 <has_n_lines n="14"/>
1178 <has_line_matching expression=">Seq1"/>
1179 </assert_contents>
1180 </output>
1181 <output name="output_removed" ftype="txt">
1182 <assert_contents>
1183 <has_n_lines n="1"/>
1184 </assert_contents>
1185 </output>
1186 </test>
1187 <!-- Test 17 "Replace U ↔ T" -->
1188 <test expect_num_outputs="3">
1189 <param name="input" value="example1.fasta" ftype="fasta"/>
1190 <section name="editing_functions">
1191 <param name="replace_input_ut" value="true"/>
1192 </section>
1193 <output name="output_cleaned" ftype="fasta">
1194 <assert_contents>
1195 <has_n_lines n="14"/>
1196 </assert_contents>
1197 </output>
1198 <output name="output_removed" ftype="txt">
1199 <assert_contents>
1200 <has_n_lines n="1"/>
1201 </assert_contents>
1202 </output>
1203 <output name="T_input" ftype="fasta">
1204 <assert_contents>
1205 <not_has_text text="U"/>
1206 </assert_contents>
1207 </output>
1208 </test>
1209 <!-- Test 18 "Unalign (remove gaps)" -->
1210 <test expect_num_outputs="3">
1211 <param name="input" value="example1.fasta" ftype="fasta"/>
1212 <section name="editing_functions">
1213 <param name="unalign_input" value="true"/>
1214 </section>
1215 <output name="output_cleaned" ftype="fasta">
1216 <assert_contents>
1217 <has_n_lines n="14"/>
1218 <has_line_matching expression=">Seq1"/>
1219 </assert_contents>
1220 </output>
1221 <output name="output_removed" ftype="txt">
1222 <assert_contents>
1223 <has_n_lines n="1"/>
1224 </assert_contents>
1225 </output>
1226 <output name="unaligned_input" ftype="fasta">
1227 <assert_contents>
1228 <not_has_text text="-"/>
1229 </assert_contents>
1230 </output>
1231 </test>
1232 <!-- Test 19 "Remove Duplicates" -->
1233 <test expect_num_outputs="2">
1234 <param name="input" value="example1.fasta" ftype="fasta"/>
1235 <section name="editing_functions">
1236 <param name="deduplicate_ids" value="true"/>
1237 </section>
1238 <output name="output_cleaned" ftype="fasta">
1239 <assert_contents>
1240 <has_n_lines n="14"/>
1241 <has_line_matching expression=">Seq1"/>
1242 </assert_contents>
1243 </output>
1244 <output name="output_removed" ftype="txt">
1245 <assert_contents>
1246 <has_n_lines n="1"/>
1247 </assert_contents>
1248 </output>
1249 </test>
1250 </tests>
1251 <expand macro="help"/>
1252 <expand macro="citations"/>
1253 <expand macro="creator"/>
1254 </tool>