diff prinseq.xml @ 0:65f03479b3ba draft

planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/tools/prinseq/ commit 60b4516b1882c91adf8041a586c0a17738f38dbc-dirty
author bebatut
date Tue, 27 Oct 2015 12:43:37 -0400
parents
children 6912790a4287
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/prinseq.xml	Tue Oct 27 12:43:37 2015 -0400
@@ -0,0 +1,460 @@
+<tool id="prinseq" name="PRINSEQ" version="0.1.0">
+    <description>to process quality of sequences</description>
+
+    <requirements>
+        <requirement type="package" version="0.20.4">prinseq</requirement>
+    </requirements>
+
+    <stdio>
+        <exit_code range="1:"   level="fatal"   description="" />
+        <regex match="ERROR"
+               source="stderr"
+               level="fatal"
+               description="" />
+        <regex match="WARNING"
+               source="stderr"
+               level="warning"
+               description="" />
+    </stdio>
+
+    <command><![CDATA[
+        perl prinseq-lite.pl    
+            -fastq $input_sequence_file
+            -out_good stdout
+            -out_bad null
+
+            #if $filter_treatments.apply_filter_treatments :
+                #set length_filter_treatments=$filter_treatments.length_filter_treatments
+                #if $length_filter_treatments.apply_length_filter_treatments :
+                    #set min_length_filter_treatments=$length_filter_treatments.min_length_filter_treatments
+                    #if $min_length_filter_treatments.apply_min_length_filter_treatments :
+                        -min_len $min_length_filter_treatments.value
+                    #end if
+                    #set max_length_filter_treatments=$length_filter_treatments.max_length_filter_treatments
+                    #if $max_length_filter_treatments.apply_max_length_filter_treatments :
+                        -max_len $min_length_filter_treatments.value
+                    #end if
+                #end if
+
+                #set quality_filter_treatments=$filter_treatments.quality_filter_treatments
+                #if $quality_filter_treatments.apply_quality_filter_treatments:
+                    #set min_quality_filter_treatments=$quality_filter_treatments.min_quality_filter_treatments 
+                    #if $min_quality_filter_treatments.apply_min_quality_filter_treatments :
+                        -min_qual_score $min_quality_filter_treatments.value
+                    #end if
+                    #set max_quality_filter_treatments=$quality_filter_treatments.max_quality_filter_treatments
+                    #if $max_quality_filter_treatments.apply_max_quality_filter_treatments :
+                        -max_qual_score $max_quality_filter_treatments.value
+                    #end if
+                    #set mean_quality_filter_treatments=$quality_filter_treatments.mean_quality_filter_treatments
+                    #if $mean_quality_filter_treatments.apply_mean_quality_filter_treatments:
+                        #set min_mean_quality_filter_treatments=$mean_quality_filter_treatments.min_mean_quality_filter_treatments
+                        #if $min_mean_quality_filter_treatments.apply_min_mean_quality_filter_treatments:
+                            -min_qual_mean $min_mean_quality_filter_treatments.value
+                        #end if
+                        #set max_mean_quality_filter_treatments=$mean_quality_filter_treatments.max_mean_quality_filter_treatments
+                        #if $max_mean_quality_filter_treatments.apply_max_mean_quality_filter_treatments:
+                            -max_qual_mean $max_mean_quality_filter_treatments.value
+                        #end if
+                    #end if
+                #end if
+
+                #set base_content_filter_treatments=$filter_treatments.base_content_filter_treatments
+                #if $base_content_filter_treatments.apply_base_content_filter_treatments :
+                    #set GC_perc_content_filter_treatments=$base_content_filter_treatments.GC_perc_content_filter_treatments
+                    #if $GC_perc_content_filter_treatments.apply_GC_perc_content_filter_treatments :
+                        #set min_GC_perc_content_filter_treatments=$GC_perc_content_filter_treatments.min_GC_perc_content_filter_treatments
+                        #if $min_GC_perc_content_filter_treatments.apply_min_GC_perc_content_filter_treatments :
+                            -min_gc $min_GC_perc_content_filter_treatments.value
+                        #end if
+                        set max_GC_perc_content_filter_treatments=$GC_perc_content_filter_treatments.max_GC_perc_content_filter_treatments
+                        #if $max_GC_perc_content_filter_treatments.apply_max_GC_perc_content_filter_treatments :
+                            -max_gc $max_GC_perc_content_filter_treatments.value
+                        #end if
+                    #end if
+                    #set N_number_content_filter_treatments=$base_content_filter_treatments.N_number_content_filter_treatments
+                    #if $N_number_content_filter_treatments.apply_N_number_content_filter_treatments :
+                        -ns_max_n $N_number_content_filter_treatments.value
+                    #end if
+                    #set N_percentage_content_filter_treatments=$base_content_filter_treatments.N_percentage_content_filter_treatments
+                    #if $N_percentage_content_filter_treatments.apply_N_percentage_content_filter_treatments :
+                        -ns_max_p $N_percentage_content_filter_treatments.value
+                    #end if
+                    #if $base_content_filter_treatments.apply_other_base_content_filter_treatments :
+                        -noniupac
+                    #end if
+                #end if
+
+                #set complexity_filter_treatments=$filter_treatments.complexity_filter_treatments
+                #if $complexity_filter_treatments.apply_complexity_filter_treatments :
+                    -lc_method $complexity_filter_treatments.method_complexity_filter_treatments
+                    -lc_threshold $complexity_filter_treatments.threshold_complexity_filter_treatments
+                #end if
+
+            #end if
+
+            #if $trimming_treatments.apply_trimming_treatments :
+                #set length_trimming_treatments=$trimming_treatments.length_trimming_treatments
+                #if $length_trimming_treatments.apply_length_trimming_treatments :
+                    -trim_to_len $length_trimming_treatments.value
+                #end if
+
+                #set position_trimming_treatments=$trimming_treatments.position_trimming_treatments
+                #if $position_trimming_treatments.apply_position_trimming_treatments :
+                    #set nb_position_trimming_treatments=$position_trimming_treatments.nb_position_trimming_treatments
+                    #if $nb_position_trimming_treatments.apply_nb_position_trimming_treatments :
+                        #set left_position_trimming_treatments=$nb_position_trimming_treatments.left_position_trimming_treatments
+                        #if $left_position_trimming_treatments.apply_left_position_trimming_treatments :
+                            -trim_left $left_position_trimming_treatments.value
+                        #end if
+                        #set right_position_trimming_treatments=$nb_position_trimming_treatments.right_position_trimming_treatments
+                        #if $right_position_trimming_treatments.apply_right_position_trimming_treatments :
+                            -trim_right $right_position_trimming_treatments.value
+                        #end if
+                    #end if
+                    #set percentage_position_trimming_treatments=$position_trimming_treatments.percentage_position_trimming_treatments
+                    #if $percentage_position_trimming_treatments.apply_percentage_position_trimming_treatments :
+                        #set left_percentage_position_trimming_treatments=$percentage_position_trimming_treatments.left_percentage_position_trimming_treatments
+                        #if $left_percentage_position_trimming_treatments.apply_left_percentage_position_trimming_treatments :
+                            -trim_left_p $left_percentage_position_trimming_treatments.value
+                        #end if
+                        #set right_percentage_position_trimming_treatments=$percentage_position_trimming_treatments.right_percentage_position_trimming_treatments
+                        #if $right_percentage_position_trimming_treatments.apply_right_percentage_position_trimming_treatments :
+                            -trim_right_p $right_percentage_position_trimming_treatments.value
+                        #end if
+                    #end if
+                #end if
+
+                #set tail_trimming_treatments=$trimming_treatments.tail_trimming_treatments
+                #if $tail_trimming_treatments.apply_tail_trimming_treatments :
+                    #set a_t_tail_trimming_treatments=$tail_trimming_treatments.a_t_tail_trimming_treatments
+                    #if $a_t_tail_trimming_treatments.apply_a_t_tail_trimming_treatments :
+                        #set left_a_t_tail_trimming_treatments=$a_t_tail_trimming_treatments.left_a_t_tail_trimming_treatments
+                        #if $left_a_t_tail_trimming_treatments.apply_left_a_t_tail_trimming_treatments :
+                            -trim_tail_left $left_a_t_tail_trimming_treatments.value
+                        #end if
+                        #set right_a_t_tail_trimming_treatments=$a_t_tail_trimming_treatments.right_a_t_tail_trimming_treatments
+                        #if right_a_t_tail_trimming_treatments.apply_right_a_t_tail_trimming_treatments :
+                            -trim_tail_right $right_a_t_tail_trimming_treatments.value
+                        #end if
+                    #end if
+                    #set ns_tail_trimming_treatments=$tail_trimming_treatments.ns_tail_trimming_treatments
+                    #if $ns_tail_trimming_treatments.apply_ns_tail_trimming_treatments :
+                        #set left_ns_tail_trimming_treatments=$ns_tail_trimming_treatments.left_ns_tail_trimming_treatments
+                        #if $left_ns_tail_trimming_treatments.apply_left_ns_tail_trimming_treatments :
+                            -trim_ns_left $left_ns_tail_trimming_treatments.value
+                        #end if
+                        #set right_ns_tail_trimming_treatments=$ns_tail_trimming_treatments.right_ns_tail_trimming_treatments
+                        #if $right_ns_tail_trimming_treatments.apply_right_ns_tail_trimming_treatments :
+                            -trim_ns_right $right_ns_tail_trimming_treatments.value
+                        #end if
+                    #end if
+                #end if
+
+                #set quality_trimming_treatments=$trimming_treatments.quality_trimming_treatments
+                #if $quality_trimming_treatments.apply_quality_trimming_treatments :
+                    #set left_quality_trimming_treatments=$quality_trimming_treatments.left_quality_trimming_treatments
+                    #if $left_quality_trimming_treatments.apply_left_quality_trimming_treatments :
+                        -trim_qual_left $left_quality_trimming_treatments.value
+                    #end if
+                    #set right_quality_trimming_treatments=$quality_trimming_treatments.right_quality_trimming_treatments
+                    #if $right_quality_trimming_treatments.apply_right_quality_trimming_treatments :
+                        -trim_qual_right $right_quality_trimming_treatments.value
+                    #end if
+                    -trim_qual_type $quality_trimming_treatments.type_quality_trimming_treatments
+                    -trim_qual_rule $quality_trimming_treatments.rule_quality_trimming_treatments
+                    -trim_qual_window $quality_trimming_treatments.window_quality_trimming_treatments
+                    -trim_qual_step $quality_trimming_treatments.step_quality_trimming_treatments
+                #end if
+
+            #end if
+
+            >> $good_sequence_file
+    ]]>
+    </command>
+
+    <inputs>
+        <param name="input_sequence_file" type="data" format="fastq" label="Input sequence file" help="The file must be in fastq format for quality scores"/>
+
+        <conditional name="filter_treatments">
+            <param name='apply_filter_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Apply filter treatments?" help=""/>
+            <when value="yes">
+                <conditional name="length_filter_treatments">
+                    <param name='apply_length_filter_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Filter sequence based on their length?" help="By default, sequences smaller than 60 bp are removed. No top threshold is defined"/> 
+                    <when value="yes">
+                        <conditional name="min_length_filter_treatments">
+                            <param name='apply_min_length_filter_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Filter too small sequences?" help="By default, sequences smaller than 60 bp are removed."/>   
+                            <when value="yes">
+                                <param name="value" type="integer" min="0" max="3000" value="60" label="Minimum length threshold to conserve sequences" help=""/>
+                            </when>
+                        </conditional>  
+                        <conditional name="max_length_filter_treatments">
+                            <param name='apply_max_length_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter too big sequences?" help="By default, no treatment based on a maximal length is made"/>
+                            <when value="yes">
+                                <param name="value" type="integer" min="0" max="3000" value="1000" label="Maximal length threshold to conserve sequences" help=""/>
+                            </when>
+                        </conditional>  
+                    </when>
+                </conditional>  
+                <conditional name="quality_filter_treatments">
+                    <param name='apply_quality_filter_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Filter sequences based on quality score?" help="By default, sequences with a mean score below 15 are removed."/>
+                    <when value="yes">
+                        <conditional name="min_quality_filter_treatments">
+                            <param name='apply_min_quality_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter sequences based on their minimum score?" help="By default, no treatment based on a minimum score is made"/>
+                            <when value="yes">
+                                <param name="value" type="integer" min="0" max="40" value="2" label="Minimum score threshold to conserve sequences" help=""/>
+                            </when>
+                        </conditional>
+                        <conditional name="max_quality_filter_treatments">
+                            <param name='apply_max_quality_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter sequences based on their maximum score?" help="By default, no treatment based on a maximum score is made"/>
+                            <when value="yes">
+                                <param name="value" type="integer" min="0" max="40" value="38" label="Maximum score threshold to conserve sequences" help=""/>
+                            </when>
+                        </conditional>
+                        <conditional name="mean_quality_filter_treatments">
+                            <param name='apply_mean_quality_filter_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Filter sequences based on their mean score?" help="By default, sequences with a mean score below 15 are removed."/>
+                            <when value="yes">
+                                <conditional name="min_mean_quality_filter_treatments">
+                                    <param name='apply_min_mean_quality_filter_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Filter sequences with too small mean score?" help="By default, sequences with a mean score below 15 are removed."/>
+                                    <when value="yes">   
+                                        <param name="value" type="integer" min="0" max="40" value="15" label="Minimum mean score threshold to conserve sequences" help=""/>
+                                    </when>
+                                </conditional>
+                                <conditional name="max_mean_quality_filter_treatments">
+                                    <param name='apply_max_mean_quality_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter sequences with too high mean score?" help="By default, no treatment based on a maximum mean score is made"/>
+                                    <when value="yes">   
+                                        <param name="value" type="integer" min="0" max="40" value="40" label="Maximum mean score threshold to conserve sequences" help=""/>
+                                    </when>
+                                </conditional>
+                            </when>
+                        </conditional>
+                    </when>
+                </conditional>
+                <conditional name="base_content_filter_treatments">
+                    <param name='apply_base_content_filter_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Filter sequences based on their base content?" help="By default, sequences with more than 2% of N bases are removed."/>
+                    <when value="yes">
+                        <conditional name="GC_perc_content_filter_treatments">
+                            <param name='apply_GC_perc_content_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter sequences based on their GC percentage?" help="By default, no treatment based on GC percentage is made."/>
+                            <when value="yes">
+                                <conditional name="min_GC_perc_content_filter_treatments">
+                                    <param name='apply_min_GC_perc_content_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter sequences with too small GC percentage?" help="By default, no treatment based on GC percentage is made."/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="100" value="10" label="Minimal GC percentage threshold to conserve sequences" help=""/>
+                                    </when>
+                                </conditional>
+                                <conditional name="max_GC_perc_content_filter_treatments">
+                                    <param name='apply_max_GC_perc_content_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter sequences with too high GC percentage?" help="By default, no treatment based on GC percentage is made."/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="100" value="90" label="Maximal GC percentage threshold to conserve sequences" help=""/>
+                                    </when>
+                                </conditional>
+                            </when>
+                        </conditional>
+                        <conditional name="N_number_content_filter_treatments">
+                            <param name='apply_N_number_content_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter sequences based on their number of N bases?" help="By default, no treatment based on N number is made."/>
+                            <when value="yes">
+                                <param name="value" type="integer" min="0" max="3000" value="10" label="Maximal N number threshold to conserve sequences" help=""/>
+                            </when>
+                        </conditional>
+                        <conditional name="N_percentage_content_filter_treatments">
+                            <param name='apply_N_percentage_content_filter_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Filter sequences based on their percentage of N bases?" help="By default, sequences with more than 2% of N bases are removed."/>  
+                            <when value="yes">
+                                <param name="value" type="integer" min="0" max="100" value="2" label="Maximal N percentage threshold to conserve sequences" help=""/>
+                            </when>
+                        </conditional>
+                        <param name='apply_other_base_content_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter sequences with characters other than A, T, C, G and N?" help="By default, this treatment is not made."/>
+                    </when>
+                </conditional>
+                <conditional name="complexity_filter_treatments">
+                    <param name='apply_complexity_filter_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Filter sequences based on their complexity?" help="By default, no complexity filter is applied"/>
+                    <when value="yes">
+                        <param name="method_complexity_filter_treatments" type="select" display="radio" label="Method to filter low complexity sequences" help="">
+                            <option value="dust">Dust</option>
+                            <option value="entropy" >Entropy</option>
+                        </param> 
+                        <param name="threshold_complexity_filter_treatments" type="integer" min="0" max="100" value="2" label="Threshold value used to filter sequences by sequence complexity" help="The dust method uses the threshold as maximum allowed score and the entropy method as minimum allowed value."/>
+                    </when>
+                </conditional>
+            </when>
+        </conditional>  
+
+        <conditional name="trimming_treatments">
+            <param name='apply_trimming_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Apply trimming treatments?" help=""/>
+            <when value="yes">
+                <conditional name="length_trimming_treatments">
+                    <param name='apply_length_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim all sequences from the 3'-end to a length?" help="By default, no length trimming is made"/>
+                    <when value="yes">
+                        <param name="value" type="integer" min="0" max="3000" value="100" label="Length of sequences after trimming" help=""/>
+                    </when>
+                </conditional>
+                <conditional name="position_trimming_treatments">
+                    <param name='apply_position_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim all sequences from the ends?" help="By default, no position trimming is made"/>
+                    <when value="yes">
+                        <conditional name="nb_position_trimming_treatments">
+                            <param name='apply_nb_position_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim sequences by a defined number of positions?" help="By default, no position trimming is made"/>
+                            <when value="yes">
+                                <conditional name="left_position_trimming_treatments">
+                                    <param name='apply_left_position_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim sequences at the 5'-end by a defined number of positions?" help="By default, no position trimming is made"/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="3000" value="100" label="Number of positions to trim on 5'-end" help=""/>
+                                    </when>
+                                </conditional>
+                                <conditional name="right_position_trimming_treatments">
+                                    <param name='apply_right_position_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim sequences at the 3'-end by a defined number of positions?" help="By default, no position trimming is made"/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="3000" value="100" label="Number of positions to trim on 3'-end" help=""/>
+                                    </when>
+                                </conditional>
+                            </when>
+                        </conditional>
+                        <conditional name="percentage_position_trimming_treatments">
+                            <param name='apply_percentage_position_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim sequences by a defined percentage of read length?" help="By default, no position trimming is made. The trim length is rounded towards the lower integer"/>
+                            <when value="yes">
+                                <conditional name="left_percentage_position_trimming_treatments">
+                                    <param name='apply_left_percentage_position_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim sequences at the 5'-end by a defined percentage of read length?" help="By default, no position trimming is made. The trim length is rounded towards the lower integer"/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="100" value="2" label="Percentage of positions to trim on 5'-end" help=""/>
+                                    </when>
+                                </conditional>
+                                <conditional name="right_percentage_position_trimming_treatments">
+                                    <param name='apply_right_percentage_position_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim sequences at the 3'-end by a defined percentage of read length?" help="By default, no position trimming is made. The trim length is rounded towards the lower integer"/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="100" value="2" label="Percentage of positions to trim on 3'-end" help=""/>
+                                    </when>
+                                </conditional>
+                            </when>
+                        </conditional>
+                    </when>
+                </conditional>
+                <conditional name="tail_trimming_treatments">
+                    <param name='apply_tail_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim tails?" help="By default, no tail trimming is made"/>
+                    <when value="yes">
+                        <conditional name="a_t_tail_trimming_treatments">
+                            <param name='apply_a_t_tail_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim poly-A/T tail?" help="By default, no poly-A/T tail trimming is made"/>
+                            <when value="yes">
+                                <conditional name="left_a_t_tail_trimming_treatments">
+                                    <param name='apply_left_a_t_tail_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim poly-A/T tail at the 5'-end?" help="By default, no 5'-end poly-A/T tail trimming is made"/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="3000" value="100" label="Minimum length of poly-A/T to trim at the 5'-end" help=""/>
+                                    </when>
+                                </conditional>
+                                <conditional name="right_a_t_tail_trimming_treatments">
+                                    <param name='apply_right_a_t_tail_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim poly-A/T tail at the 5'-end?" help="By default, no 3'-end poly-A/T tail trimming is made"/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="3000" value="100" label="Minimum length of poly-A/T to trim at the 5'-end" help=""/>
+                                    </when>
+                                </conditional>
+                            </when>
+                        </conditional>
+                        <conditional name="ns_tail_trimming_treatments">
+                            <param name='apply_ns_tail_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim poly-N tail?" help="By default, no poly-N tail trimming is made"/>
+                            <when value="yes">
+                                <conditional name="left_ns_tail_trimming_treatments">
+                                    <param name='apply_left_ns_tail_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim poly-N tail at the 5'-end?" help="By default, no 5'-end poly-N tail trimming is made"/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="3000" value="100" label="Minimum length of poly-N to trim at the 5'-end" help=""/>
+                                    </when>
+                                </conditional>
+                                <conditional name="right_ns_tail_trimming_treatments">
+                                    <param name='apply_right_ns_tail_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim poly-N tail at the 5'-end?" help="By default, no 3'-end poly-N tail trimming is made"/>
+                                    <when value="yes">
+                                        <param name="value" type="integer" min="0" max="3000" value="100" label="Minimum length of poly-N to trim at the 5'-end" help=""/>
+                                    </when>
+                                </conditional>
+                            </when>
+                        </conditional>
+                    </when>
+                </conditional>
+                <conditional name="quality_trimming_treatments">
+                    <param name='apply_quality_trimming_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Trim sequence by quality score?" help="By default, a 3'-end trimming is made to remove ends with a minimum quality score over 5 bp below 20"/>
+                    <when value="yes">
+                        <conditional name="left_quality_trimming_treatments">
+                            <param name='apply_left_quality_trimming_treatments' type='boolean' checked="false" truevalue='yes' falsevalue='no' label="Trim sequence by quality score from the 5'-end?" help="By default, no 5'-end quality trimming is made"/>
+                            <when value="yes">
+                                <param name="value" type="integer" min="0" max="40" value="20" label="Quality score threshold to trim positions" help=""/>
+                            </when>
+                        </conditional>
+                        <conditional name="right_quality_trimming_treatments">
+                            <param name='apply_right_quality_trimming_treatments' type='boolean' checked="true" truevalue='yes' falsevalue='no' label="Trim sequence by quality score from the 3'-end?" help="By default, 3'-end trimming is made based on a score of 20"/>
+                            <when value="yes">
+                                <param name="value" type="integer" min="0" max="40" value="20" label="Quality score threshold to trim positions" help=""/>
+                            </when>
+                        </conditional>
+                        <param name="type_quality_trimming_treatments" type="select" display="radio" label="Type of quality score calculation to use" help="By default, min is used">
+                            <option value="min" selected="true">Mininum</option>
+                            <option value="mean" >Mean</option>
+                            <option value="max" >Max</option>
+                            <option value="sum" >Sum</option>
+                        </param>
+                        <param name="rule_quality_trimming_treatments" type="select" display="radio" label="Rule tu use to compare quality score to calculated value" help="By default, 'less than' is used">
+                            <option value="lt" selected="true">Less than</option>
+                            <option value="gt" >Greater than</option>
+                            <option value="et" >Equal to</option>
+                        </param>
+                        <param name="window_quality_trimming_treatments" type="integer" min="0" max="300" value="1" label="Size of the sliding window used to calculated quality score by type" help="To stop at the first base that fails the rule defined, use a window size of 1 (default value)"/>
+                        <param name="step_quality_trimming_treatments" type="integer" min="0" max="300" value="1" label="Step size used to move the sliding window" help="To move the window over all quality scores without missing any, the step size sould be less or equal to the window size. The default value is 1."/>
+                    </when>
+                </conditional>
+            </when>
+        </conditional>
+    </inputs>
+
+    <outputs>
+        <data format="fastq" name="good_sequence_file" metadata_source="input_sequence_file"/>
+    </outputs>
+
+    <tests>
+        <test>
+            <param name="input_sequence_file" value="input_sequences.fastq"/>
+            <output name="good_sequence_file" file="output_sequences.fastq"/>
+        </test>
+    </tests>
+
+    <help><![CDATA[
+
+**What it does**
+
+PRINSEQ is a tool for easy and rapid quality control and data processing of metagenomic and metatranscriptomic datasets.
+This tool allow to process the sequences with filtering and trimming.
+More information on `PRINSEQ manual <http://prinseq.sourceforge.net/manual.html>`_.
+
+-----
+
+**Input**
+
+The input file is sequence file in fastq format (sequences and quality)::
+
+    @HWI-M00234:263:000000000-ADM55:1:1101:7508:4067 1:N:0:ATCACG
+    GGTGCACTAGGATCGTAGTTGGCTACTTTCCCGTTTTCAATGTATACGCAAGGTACACGGTCAGCGGT
+    +
+    CCCCCGFGED8DDCAFDAEE9DFGGGG9CFAFFCC@@CFGFGGCGFGG>GGGFFGDGEFFEFG8>4GF
+
+-----
+
+**Parameters**
+
+The parameters are numerous in PRINSEQ
+
+    - Filtering parameters to eliminate sequences
+        - Filters based on sequence length 
+        - Filters based on quality score
+        - Filters based on base content
+    - Trimming parameters to eliminate sequence parts
+        - Trim of ends
+        - Trim of tails
+        - Trim based quality score
+
+-----
+
+**Output**
+
+The output file is a sequence file with sequences and quality from input file
+which have undergone filter and trimming.
+
+    ]]>
+    </help>
+
+    <citations>
+        <citation type="doi">10.1093/bioinformatics/btr026</citation>
+    </citations>
+</tool>
\ No newline at end of file