comparison trimmomatic.xml @ 6:141bba0e9a77 draft

Uploaded v0.36.2 (adds support for compressed fastq inputs)
author pjbriggs
date Fri, 24 Feb 2017 05:12:32 -0500
parents f80107cdc406
children 6eeacf19a38e
comparison
equal deleted inserted replaced
5:f80107cdc406 6:141bba0e9a77
1 <tool id="trimmomatic" name="Trimmomatic" version="0.36.1"> 1 <tool id="trimmomatic" name="Trimmomatic" version="0.36.2">
2 <description>flexible read trimming tool for Illumina NGS data</description> 2 <description>flexible read trimming tool for Illumina NGS data</description>
3 <macros> 3 <macros>
4 <import>trimmomatic_macros.xml</import> 4 <import>trimmomatic_macros.xml</import>
5 </macros> 5 </macros>
6 <requirements> 6 <requirements>
7 <requirement type="package" version="0.36">trimmomatic</requirement> 7 <requirement type="package" version="0.36">trimmomatic</requirement>
8 </requirements> 8 </requirements>
9 <stdio> 9 <command detect_errors="aggressive"><![CDATA[
10 <exit_code range="1:" />
11 </stdio>
12 <command><![CDATA[
13 @CONDA_TRIMMOMATIC_JAR_PATH@ && 10 @CONDA_TRIMMOMATIC_JAR_PATH@ &&
14 @CONDA_TRIMMOMATIC_ADAPTERS_PATH@ && 11 @CONDA_TRIMMOMATIC_ADAPTERS_PATH@ &&
15 java -mx8G -jar \$TRIMMOMATIC_JAR_PATH/trimmomatic.jar 12 #if $readtype.single_or_paired == "pair_of_files"
16 #if $paired_end.is_paired_end 13 #set r1_ext = $readtype.fastq_r1_in.extension
14 #set r2_ext = $readtype.fastq_r2_in.extension
15 ln -s '$readtype.fastq_r1_in' fastq_r1.'$r1_ext' &&
16 ln -s '$readtype.fastq_r2_in' fastq_r2.'$r2_ext' &&
17 #elif $readtype.single_or_paired == "collection"
18 #set r1_ext = $readtype.fastq_pair.forward.extension
19 #set r2_ext = $readtype.fastq_pair.reverse.extension
20 ln -s '$readtype.fastq_pair.forward' fastq_r1.'$r1_ext' &&
21 ln -s '$readtype.fastq_pair.reverse' fastq_r2.'$r2_ext' &&
22 #else
23 ln -s '$fastq_in' fastq_in.'$fastq_in.extension' &&
24 #end if
25 java \${_JAVA_OPTIONS:--Xmx8G} -jar \$TRIMMOMATIC_JAR_PATH/trimmomatic.jar
26 #if $readtype.single_or_paired in ["pair_of_files","collection"]
17 PE -threads \${GALAXY_SLOTS:-6} -phred33 27 PE -threads \${GALAXY_SLOTS:-6} -phred33
18 #set $paired_input_type = $paired_end.paired_input_type_conditional.paired_input_type 28 fastq_r1.'$r1_ext' fastq_r2.'$r2_ext'
19 #if $paired_input_type == "pair_of_files" 29 fastq_out_r1_paired.'$r1_ext' fastq_out_r1_unpaired.'$r1_ext'
20 "${paired_end.paired_input_type_conditional.fastq_r1_in}" 30 fastq_out_r2_paired.'$r2_ext' fastq_out_r2_unpaired.'$r2_ext'
21 "${paired_end.paired_input_type_conditional.fastq_r2_in}"
22 "${fastq_out_r1_paired}" "${fastq_out_r1_unpaired}"
23 "${fastq_out_r2_paired}" "${fastq_out_r2_unpaired}"
24 #else
25 "${paired_end.paired_input_type_conditional.fastq_pair.forward}"
26 "${paired_end.paired_input_type_conditional.fastq_pair.reverse}"
27 "${fastq_out_paired.forward}" "${fastq_out_unpaired.forward}"
28 "${fastq_out_paired.reverse}" "${fastq_out_unpaired.reverse}"
29 #end if
30 #else 31 #else
31 SE -threads \${GALAXY_SLOTS:-6} -phred33 "$fastq_in" "$fastq_out" 32 SE -threads \${GALAXY_SLOTS:-6} -phred33 fastq_in.'$fastq_in.extension' fastq_out.'$fastq_in.extension'
32 #end if 33 #end if
33 ## ILLUMINACLIP option 34 ## ILLUMINACLIP option
34 #if $illuminaclip.do_illuminaclip 35 #if $illuminaclip.do_illuminaclip
35 ILLUMINACLIP:\$TRIMMOMATIC_ADAPTERS_PATH/$illuminaclip.adapter_fasta:$illuminaclip.seed_mismatches:$illuminaclip.palindrome_clip_threshold:$illuminaclip.simple_clip_threshold 36 ILLUMINACLIP:\$TRIMMOMATIC_ADAPTERS_PATH/$illuminaclip.adapter_fasta:$illuminaclip.seed_mismatches:$illuminaclip.palindrome_clip_threshold:$illuminaclip.simple_clip_threshold
36 #end if 37 #end if
63 MAXINFO:$op.operation.target_length:$op.operation.strictness 64 MAXINFO:$op.operation.target_length:$op.operation.strictness
64 #end if 65 #end if
65 #end for 66 #end for
66 2>&1 | tee trimmomatic.log && 67 2>&1 | tee trimmomatic.log &&
67 if [ -z "\$(tail -1 trimmomatic.log | grep "Completed successfully")" ]; then echo "Trimmomatic did not finish successfully" >&2 ; exit 1 ; fi 68 if [ -z "\$(tail -1 trimmomatic.log | grep "Completed successfully")" ]; then echo "Trimmomatic did not finish successfully" >&2 ; exit 1 ; fi
69 &&
70 #if $readtype.single_or_paired == "pair_of_files"
71 mv fastq_out_r1_paired.'$r1_ext' '${fastq_out_r1_paired}' &&
72 mv fastq_out_r1_unpaired.'$r1_ext' '${fastq_out_r1_unpaired}' &&
73 mv fastq_out_r2_paired.'$r2_ext' '${fastq_out_r2_paired}' &&
74 mv fastq_out_r2_unpaired.'$r2_ext' '${fastq_out_r2_unpaired}'
75 #elif $readtype.single_or_paired == "collection"
76 mv fastq_out_r1_paired.'$r1_ext' '${fastq_out_paired.forward}' &&
77 mv fastq_out_r1_unpaired.'$r1_ext' '${fastq_out_unpaired.forward}' &&
78 mv fastq_out_r2_paired.'$r2_ext' '${fastq_out_paired.reverse}' &&
79 mv fastq_out_r2_unpaired.'$r2_ext' '${fastq_out_unpaired.reverse}'
80 #else
81 mv fastq_out.'$fastq_in.extension' '${fastq_out}'
82 #end if
68 ]]></command> 83 ]]></command>
69 <inputs> 84 <inputs>
70 <conditional name="paired_end"> 85 <conditional name="readtype">
71 <param name="is_paired_end" type="boolean" label="Paired end data?" truevalue="yes" falsevalue="no" checked="on" /> 86 <param name="single_or_paired" type="select" label="Single-end or paired-end reads?">
72 <when value="no"> 87 <option value="se" selected="true">Single-end</option>
73 <param name="fastq_in" type="data" format="fastqsanger" label="Input FASTQ file" /> 88 <option value="pair_of_files">Paired-end (two separate input files)</option>
89 <option value="collection">Paired-end (as collection)</option>
90 </param>
91 <when value="se">
92 <param name="fastq_in" type="data" format="fastqsanger,fastqsanger.gz" label="Input FASTQ file" />
74 </when> 93 </when>
75 <when value="yes"> 94 <when value="pair_of_files">
76 <conditional name="paired_input_type_conditional"> 95 <param name="fastq_r1_in" type="data" format="fastqsanger,fastqsanger.gz"
77 <param name="paired_input_type" type="select" label="Input Type"> 96 label="Input FASTQ file (R1/first of pair)" />
78 <option value="pair_of_files" selected="true">Pair of datasets</option> 97 <param name="fastq_r2_in" type="data" format="fastqsanger,fastqgsanger.gz"
79 <option value="collection">Dataset collection pair</option> 98 label="Input FASTQ file (R2/second of pair)" />
80 </param>
81 <when value="pair_of_files">
82 <param name="fastq_r1_in" type="data" format="fastqsanger"
83 label="Input FASTQ file (R1/first of pair)" />
84 <param name="fastq_r2_in" type="data" format="fastqsanger"
85 label="Input FASTQ file (R2/second of pair)" />
86 </when>
87 <when value="collection">
88 <param name="fastq_pair" format="fastqsanger" type="data_collection"
89 collection_type="paired"
90 label="Select FASTQ dataset collection with R1/R2 pair" />
91 </when>
92 </conditional>
93 </when> 99 </when>
100 <when value="collection">
101 <param name="fastq_pair" format="fastqsanger,fastqsanger.gz" type="data_collection" collection_type="paired" label="Select FASTQ dataset collection with R1/R2 pair" />
102 </when>
94 </conditional> 103 </conditional>
95 <conditional name="illuminaclip"> 104 <conditional name="illuminaclip">
96 <param name="do_illuminaclip" type="boolean" label="Perform initial ILLUMINACLIP step?" help="Cut adapter and other illumina-specific sequences from the read" truevalue="yes" falsevalue="no" checked="off" /> 105 <param name="do_illuminaclip" type="boolean" label="Perform initial ILLUMINACLIP step?" help="Cut adapter and other illumina-specific sequences from the read" truevalue="yes" falsevalue="no" checked="False" />
97 <when value="yes"> 106 <when value="yes">
98 <param name="adapter_fasta" type="select" label="Adapter sequences to use"> 107 <param name="adapter_fasta" type="select" label="Adapter sequences to use">
99 <option value="TruSeq2-SE.fa">TruSeq2 (single-ended, for Illumina GAII)</option> 108 <option value="TruSeq2-SE.fa">TruSeq2 (single-ended, for Illumina GAII)</option>
100 <option value="TruSeq3-SE.fa">TruSeq3 (single-ended, for MiSeq and HiSeq)</option> 109 <option value="TruSeq3-SE.fa">TruSeq3 (single-ended, for MiSeq and HiSeq)</option>
101 <option value="TruSeq2-PE.fa">TruSeq2 (paired-ended, for Illumina GAII)</option> 110 <option value="TruSeq2-PE.fa">TruSeq2 (paired-ended, for Illumina GAII)</option>
102 <option value="TruSeq3-PE.fa">TruSeq3 (paired-ended, for MiSeq and HiSeq)</option> 111 <option value="TruSeq3-PE.fa">TruSeq3 (paired-ended, for MiSeq and HiSeq)</option>
103 <option value="TruSeq3-PE-2.fa">TruSeq3 (additional seqs) (paired-ended, for MiSeq and HiSeq)</option> 112 <option value="TruSeq3-PE-2.fa">TruSeq3 (additional seqs) (paired-ended, for MiSeq and HiSeq)</option>
104 <option value="NexteraPE-PE.fa">Nextera (paired-ended)</option> 113 <option value="NexteraPE-PE.fa">Nextera (paired-ended)</option>
105 </param> 114 </param>
106 <param name="seed_mismatches" type="integer" label="Maximum mismatch count which will still allow a full match to be performed" value="2" /> 115 <param name="seed_mismatches" type="integer" label="Maximum mismatch count which will still allow a full match to be performed" value="2" />
107 <param name="palindrome_clip_threshold" type="integer" label="How accurate the match between the two 'adapter ligated' reads must be for PE palindrome read alignment" value="30" /> 116 <param name="palindrome_clip_threshold" type="integer" label="How accurate the match between the two 'adapter ligated' reads must be for PE palindrome read alignment" value="30" />
108 <param name="simple_clip_threshold" type="integer" label="How accurate the match between any adapter etc. sequence must be against a read" value="10" /> 117 <param name="simple_clip_threshold" type="integer" label="How accurate the match between any adapter etc. sequence must be against a read" value="10" />
109 </when> 118 </when>
110 <when value="no" /> <!-- empty clause to satisfy planemo lint --> 119 <when value="no" /> <!-- empty clause to satisfy planemo lint -->
111 </conditional> 120 </conditional>
112 <repeat name="operations" title="Trimmomatic Operation" min="1"> 121 <repeat name="operations" title="Trimmomatic Operation" min="1">
113 <conditional name="operation"> 122 <conditional name="operation">
114 <param name="name" type="select" label="Select Trimmomatic operation to perform"> 123 <param name="name" type="select" label="Select Trimmomatic operation to perform">
115 <option selected="true" value="SLIDINGWINDOW">Sliding window trimming (SLIDINGWINDOW)</option> 124 <option selected="true" value="SLIDINGWINDOW">Sliding window trimming (SLIDINGWINDOW)</option>
116 <option value="MINLEN">Drop reads below a specified length (MINLEN)</option> 125 <option value="MINLEN">Drop reads below a specified length (MINLEN)</option>
117 <option value="LEADING">Cut bases off the start of a read, if below a threshold quality (LEADING)</option> 126 <option value="LEADING">Cut bases off the start of a read, if below a threshold quality (LEADING)</option>
118 <option value="TRAILING">Cut bases off the end of a read, if below a threshold quality (TRAILING)</option> 127 <option value="TRAILING">Cut bases off the end of a read, if below a threshold quality (TRAILING)</option>
119 <option value="CROP">Cut the read to a specified length (CROP)</option> 128 <option value="CROP">Cut the read to a specified length (CROP)</option>
120 <option value="HEADCROP">Cut the specified number of bases from the start of the read (HEADCROP)</option> 129 <option value="HEADCROP">Cut the specified number of bases from the start of the read (HEADCROP)</option>
121 <option value="AVGQUAL">Drop reads with average quality lower than a specified level (AVGQUAL)</option> 130 <option value="AVGQUAL">Drop reads with average quality lower than a specified level (AVGQUAL)</option>
122 <option value="MAXINFO">Trim reads adaptively, balancing read length and error rate to maximise the value of each read (MAXINFO)</option> 131 <option value="MAXINFO">Trim reads adaptively, balancing read length and error rate to maximise the value of each read (MAXINFO)</option>
123 </param> 132 </param>
124 <when value="SLIDINGWINDOW"> 133 <when value="SLIDINGWINDOW">
125 <param name="window_size" type="integer" label="Number of bases to average across" value="4" /> 134 <param name="window_size" type="integer" label="Number of bases to average across" value="4" />
126 <param name="required_quality" type="integer" label="Average quality required" value="20" /> 135 <param name="required_quality" type="integer" label="Average quality required" value="20" />
127 </when> 136 </when>
128 <when value="MINLEN"> 137 <when value="MINLEN">
129 <param name="minlen" type="integer" label="Minimum length of reads to be kept" value="20" /> 138 <param name="minlen" type="integer" label="Minimum length of reads to be kept" value="20" />
130 </when> 139 </when>
131 <when value="LEADING"> 140 <when value="LEADING">
132 <param name="leading" type="integer" label="Minimum quality required to keep a base" value="3" help="Bases at the start of the read with quality below the threshold will be removed" /> 141 <param name="leading" type="integer" label="Minimum quality required to keep a base" value="3" help="Bases at the start of the read with quality below the threshold will be removed" />
133 </when> 142 </when>
134 <when value="TRAILING"> 143 <when value="TRAILING">
135 <param name="trailing" type="integer" label="Minimum quality required to keep a base" value="3" help="Bases at the end of the read with quality below the threshold will be removed" /> 144 <param name="trailing" type="integer" label="Minimum quality required to keep a base" value="3" help="Bases at the end of the read with quality below the threshold will be removed" />
136 </when> 145 </when>
137 <when value="CROP"> 146 <when value="CROP">
138 <param name="crop" type="integer" label="Number of bases to keep from the start of the read" value="" /> 147 <param name="crop" type="integer" label="Number of bases to keep from the start of the read" value="" />
139 </when> 148 </when>
140 <when value="HEADCROP"> 149 <when value="HEADCROP">
141 <param name="headcrop" type="integer" label="Number of bases to remove from the start of the read" value="" /> 150 <param name="headcrop" type="integer" label="Number of bases to remove from the start of the read" value="" />
142 </when> 151 </when>
143 <when value="AVGQUAL"> 152 <when value="AVGQUAL">
144 <param name="avgqual" type="integer" label="Minimum average quality required to keep a read" value="" /> 153 <param name="avgqual" type="integer" label="Minimum average quality required to keep a read" value="" />
145 </when> 154 </when>
146 <when value="MAXINFO"> 155 <when value="MAXINFO">
147 <param name="target_length" type="integer" label="Target read length" value="" help="The read length which is likely to allow the location of the read within the target sequence to be determined." /> 156 <param name="target_length" type="integer" label="Target read length" value="" help="The read length which is likely to allow the location of the read within the target sequence to be determined." />
148 <param name="strictness" type="float" label="Strictness" value="" help="Set between zero and one - specifies the balance between preserving read length versus removal of incorrect bases; low values (&lt;0.2) favours longer reads, high values (&gt;0.8) favours read correctness." /> 157 <param name="strictness" type="float" label="Strictness" value="" help="Set between zero and one - specifies the balance between preserving read length versus removal of incorrect bases; low values (&lt;0.2) favours longer reads, high values (&gt;0.8) favours read correctness." />
149 </when> 158 </when>
150 </conditional> 159 </conditional>
151 </repeat> 160 </repeat>
152 </inputs> 161 </inputs>
153 <outputs> 162 <outputs>
154 <data format="fastqsanger" name="fastq_out_r1_paired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_r1_in.name} (R1 paired)"> 163 <data name="fastq_out_r1_paired" label="${tool.name} on ${readtype.fastq_r1_in.name} (R1 paired)" format_source="fastq_r1_in">
155 <filter>paired_end['is_paired_end']</filter> 164 <filter>readtype['single_or_paired'] == "pair_of_files"</filter>
156 <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "pair_of_files"</filter> 165 </data>
157 </data> 166 <data name="fastq_out_r2_paired" label="${tool.name} on ${readtype.fastq_r2_in.name} (R2 paired)" format_source="fastq_r2_in">
158 <data format="fastqsanger" name="fastq_out_r2_paired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_r2_in.name} (R2 paired)"> 167 <filter>readtype['single_or_paired'] == "pair_of_files"</filter>
159 <filter>paired_end['is_paired_end']</filter> 168 </data>
160 <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "pair_of_files"</filter> 169 <data name="fastq_out_r1_unpaired" label="${tool.name} on ${readtype.fastq_r1_in.name} (R1 unpaired)" format_source="fastq_r1_in">
161 </data> 170 <filter>readtype['single_or_paired'] == "pair_of_files"</filter>
162 <data format="fastqsanger" name="fastq_out_r1_unpaired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_r1_in.name} (R1 unpaired)"> 171 </data>
163 <filter>paired_end['is_paired_end']</filter> 172 <data name="fastq_out_r2_unpaired" label="${tool.name} on ${readtype.fastq_r2_in.name} (R2 unpaired)" format_source="fastq_r2_in">
164 <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "pair_of_files"</filter> 173 <filter>readtype['single_or_paired'] == "pair_of_files"</filter>
165 </data> 174 </data>
166 <data format="fastqsanger" name="fastq_out_r2_unpaired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_r2_in.name} (R2 unpaired)"> 175 <data name="fastq_out" label="${tool.name} on ${readtype.fastq_in.name}" format_source="fastq_in">
167 <filter>paired_end['is_paired_end']</filter> 176 <filter>readtype['single_or_paired'] == 'se'</filter>
168 <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "pair_of_files"</filter> 177 </data>
169 </data> 178 <collection name="fastq_out_paired" type="paired" label="${tool.name} on ${readtype.fastq_pair.name}: paired">
170 <data format="fastqsanger" name="fastq_out" label="${tool.name} on ${paired_end.fastq_in.name}"> 179 <filter>readtype['single_or_paired'] == "collection"</filter>
171 <filter>not paired_end['is_paired_end']</filter> 180 <data name="forward" label="${tool.name} on ${readtype.fastq_pair.forward.name} (R1 paired)" format_source="fastq_pair['forward']"/>
172 </data> 181 <data name="reverse" label="${tool.name} on ${readtype.fastq_pair.reverse.name} (R2 paired)" format_source="fastq_pair['reverse']"/>
173 <collection name="fastq_out_paired" type="paired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.name}: paired">
174 <data name="forward" format="fastqsanger" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.forward.name} (R1 paired)" />
175 <data name="reverse" format="fastqsanger" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.reverse.name} (R2 paired)" />
176 <filter>paired_end['is_paired_end']</filter>
177 <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "collection"</filter>
178 </collection> 182 </collection>
179 <collection name="fastq_out_unpaired" type="paired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.name}: unpaired"> 183 <collection name="fastq_out_unpaired" type="paired" label="${tool.name} on ${readtype.fastq_pair.name}: unpaired">
180 <data name="forward" format="fastqsanger" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.forward.name} (R1 unpaired)" /> 184 <filter>readtype['single_or_paired'] == "collection"</filter>
181 <data name="reverse" format="fastqsanger" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.reverse.name} (R2 unpaired)" /> 185 <data name="forward" label="${tool.name} on ${readtype.fastq_pair.forward.name} (R1 unpaired)" format_source="fastq_pair['forward']"/>
182 <filter>paired_end['is_paired_end']</filter> 186 <data name="reverse" label="${tool.name} on ${readtype.fastq_pair.reverse.name} (R2 unpaired)" format_source="fastq_pair['reverse']"/>
183 <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "collection"</filter>
184 </collection> 187 </collection>
188
185 </outputs> 189 </outputs>
186 <tests> 190 <tests>
187 <test> 191 <test>
188 <!-- Single-end example --> 192 <!-- Single-end example -->
189 <param name="is_paired_end" value="no" /> 193 <param name="single_or_paired" value="se" />
190 <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> 194 <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" />
191 <param name="operations_0|operation|name" value="SLIDINGWINDOW" /> 195 <param name="operations_0|operation|name" value="SLIDINGWINDOW" />
192 <!--
193 **NB** outputs have to be specified in order that they appear in the
194 tool (which is the order they will be written to the history) - the
195 test framework seems to use the order and ignores the "name" attribute
196 -->
197 <output name="fastq_out" file="trimmomatic_se_out1.fastq" /> 196 <output name="fastq_out" file="trimmomatic_se_out1.fastq" />
198 </test> 197 </test>
199 <test> 198 <test>
199 <!-- Single-end example - gzipped -->
200 <param name="single_or_paired" value="se" />
201 <param name="fastq_in" value="Illumina_SG_R1.fastq.gz" ftype="fastqsanger.gz" />
202 <param name="operations_0|operation|name" value="SLIDINGWINDOW" />
203 <output name="fastq_out" file="trimmomatic_se_out1.fastq.gz" />
204 </test>
205 <test>
206 <!-- Paired-end example - gzipped -->
207 <param name="single_or_paired" value="pair_of_files" />
208 <param name="fastq_r1_in" value="Illumina_SG_R1.fastq.gz" ftype="fastqsanger.gz" />
209 <param name="fastq_r2_in" value="Illumina_SG_R2.fastq.gz" ftype="fastqsanger.gz" />
210 <param name="operations_0|operation|name" value="SLIDINGWINDOW" />
211 <output name="fastq_out_r1_paired" file="trimmomatic_pe_r1_paired_out1.fastq.gz" />
212 <output name="fastq_out_r1_unpaired" file="trimmomatic_pe_r1_unpaired_out1.fastq.gz" />
213 <output name="fastq_out_r2_paired" file="trimmomatic_pe_r2_paired_out1.fastq.gz" />
214 <output name="fastq_out_r2_unpaired" file="trimmomatic_pe_r2_unpaired_out1.fastq.gz" />
215 </test>
216 <test>
200 <!-- Paired-end example --> 217 <!-- Paired-end example -->
201 <param name="is_paired_end" value="yes" /> 218 <param name="single_or_paired" value="pair_of_files" />
202 <param name="fastq_r1_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> 219 <param name="fastq_r1_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" />
203 <param name="fastq_r2_in" value="Illumina_SG_R2.fastq" ftype="fastqsanger" /> 220 <param name="fastq_r2_in" value="Illumina_SG_R2.fastq" ftype="fastqsanger" />
204 <param name="operations_0|operation|name" value="SLIDINGWINDOW" /> 221 <param name="operations_0|operation|name" value="SLIDINGWINDOW" />
205 <!--
206 **NB** outputs have to be specified in order that they appear in the
207 tool (which is the order they will be written to the history) - the
208 test framework seems to use the order and ignores the "name" attribute
209 -->
210 <output name="fastq_out_r1_paired" file="trimmomatic_pe_r1_paired_out1.fastq" /> 222 <output name="fastq_out_r1_paired" file="trimmomatic_pe_r1_paired_out1.fastq" />
211 <output name="fastq_out_r1_unpaired" file="trimmomatic_pe_r1_unpaired_out1.fastq" /> 223 <output name="fastq_out_r1_unpaired" file="trimmomatic_pe_r1_unpaired_out1.fastq" />
212 <output name="fastq_out_r2_paired" file="trimmomatic_pe_r2_paired_out1.fastq" /> 224 <output name="fastq_out_r2_paired" file="trimmomatic_pe_r2_paired_out1.fastq" />
213 <output name="fastq_out_r2_unpaired" file="trimmomatic_pe_r2_unpaired_out1.fastq" /> 225 <output name="fastq_out_r2_unpaired" file="trimmomatic_pe_r2_unpaired_out1.fastq" />
214 </test> 226 </test>
215 <test> 227 <test>
216 <!-- Single-end example (cropping) --> 228 <!-- Single-end example (cropping) -->
217 <param name="is_paired_end" value="no" /> 229 <param name="single_or_paired" value="se" />
218 <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> 230 <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" />
219 <param name="operations_0|operation|name" value="CROP" /> 231 <param name="operations_0|operation|name" value="CROP" />
220 <param name="operations_0|operation|crop" value="10" /> 232 <param name="operations_0|operation|crop" value="10" />
221 <!--
222 **NB** outputs have to be specified in order that they appear in the
223 tool (which is the order they will be written to the history) - the
224 test framework seems to use the order and ignores the "name" attribute
225 -->
226 <output name="fastq_out" file="trimmomatic_se_out2.fastq" /> 233 <output name="fastq_out" file="trimmomatic_se_out2.fastq" />
227 </test> 234 </test>
228 <test> 235 <test>
229 <!-- Paired-end with dataset collection --> 236 <!-- Paired-end with dataset collection -->
230 <param name="is_paired_end" value="yes" /> 237 <param name="single_or_paired" value="collection" />
231 <param name="paired_input_type" value="collection" />
232 <param name="fastq_pair"> 238 <param name="fastq_pair">
233 <collection type="paired"> 239 <collection type="paired">
234 <element name="forward" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> 240 <element name="forward" value="Illumina_SG_R1.fastq" ftype="fastqsanger" />
235 <element name="reverse" value="Illumina_SG_R2.fastq" ftype="fastqsanger"/> 241 <element name="reverse" value="Illumina_SG_R2.fastq" ftype="fastqsanger"/>
236 </collection> 242 </collection>
237 </param> 243 </param>
238 <param name="operations_0|operation|name" value="SLIDINGWINDOW" /> 244 <param name="operations_0|operation|name" value="SLIDINGWINDOW" />
239 <output_collection name="fastq_out_paired" type="paired"> 245 <output_collection name="fastq_out_paired" type="paired">
240 <element name="forward" file="trimmomatic_pe_r1_paired_out1.fastq" /> 246 <element name="forward" file="trimmomatic_pe_r1_paired_out1.fastq" />
241 <element name="reverse" file="trimmomatic_pe_r2_paired_out1.fastq" /> 247 <element name="reverse" file="trimmomatic_pe_r2_paired_out1.fastq" />
242 </output_collection> 248 </output_collection>
243 <output_collection name="fastq_out_unpaired" type="paired"> 249 <output_collection name="fastq_out_unpaired" type="paired">
244 <element name="forward" file="trimmomatic_pe_r1_unpaired_out1.fastq" /> 250 <element name="forward" file="trimmomatic_pe_r1_unpaired_out1.fastq" />
245 <element name="reverse" file="trimmomatic_pe_r2_unpaired_out1.fastq" /> 251 <element name="reverse" file="trimmomatic_pe_r2_unpaired_out1.fastq" />
246 </output_collection> 252 </output_collection>
247 </test> 253 </test>
248 <test> 254 <test>
255 <!-- Paired-end with dataset collection - gzipped -->
256 <param name="single_or_paired" value="collection" />
257 <param name="fastq_pair">
258 <collection type="paired">
259 <element name="forward" value="Illumina_SG_R1.fastq.gz" ftype="fastqsanger.gz" />
260 <element name="reverse" value="Illumina_SG_R2.fastq.gz" ftype="fastqsanger.gz"/>
261 </collection>
262 </param>
263 <param name="operations_0|operation|name" value="SLIDINGWINDOW" />
264 <output_collection name="fastq_out_paired" type="paired">
265 <element name="forward" file="trimmomatic_pe_r1_paired_out1.fastq.gz" />
266 <element name="reverse" file="trimmomatic_pe_r2_paired_out1.fastq.gz" />
267 </output_collection>
268 <output_collection name="fastq_out_unpaired" type="paired">
269 <element name="forward" file="trimmomatic_pe_r1_unpaired_out1.fastq.gz" />
270 <element name="reverse" file="trimmomatic_pe_r2_unpaired_out1.fastq.gz" />
271 </output_collection>
272 </test>
273 <test>
249 <!-- Single-end using AVGQUAL --> 274 <!-- Single-end using AVGQUAL -->
250 <param name="is_paired_end" value="no" /> 275 <param name="single_or_paired" value="se" />
251 <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> 276 <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" />
252 <param name="operations_0|operation|name" value="AVGQUAL" /> 277 <param name="operations_0|operation|name" value="AVGQUAL" />
253 <param name="operations_0|operation|avgqual" value="30" /> 278 <param name="operations_0|operation|avgqual" value="30" />
254 <output name="fastq_out" file="trimmomatic_avgqual.fastq" /> 279 <output name="fastq_out" file="trimmomatic_avgqual.fastq" />
255 </test> 280 </test>
256 <test> 281 <test>
257 <!-- Single-end using MAXINFO --> 282 <!-- Single-end using MAXINFO -->
258 <param name="is_paired_end" value="no" /> 283 <param name="single_or_paired" value="se" />
259 <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> 284 <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" />
260 <param name="operations_0|operation|name" value="MAXINFO" /> 285 <param name="operations_0|operation|name" value="MAXINFO" />
261 <param name="operations_0|operation|target_length" value="75" /> 286 <param name="operations_0|operation|target_length" value="75" />
262 <param name="operations_0|operation|strictness" value="0.8" /> 287 <param name="operations_0|operation|strictness" value="0.8" />
263 <output name="fastq_out" file="trimmomatic_maxinfo.fastq" /> 288 <output name="fastq_out" file="trimmomatic_maxinfo.fastq" />
280 * **LEADING:** Cut bases off the start of a read, if below a threshold quality 305 * **LEADING:** Cut bases off the start of a read, if below a threshold quality
281 * **TRAILING:** Cut bases off the end of a read, if below a threshold quality 306 * **TRAILING:** Cut bases off the end of a read, if below a threshold quality
282 * **CROP:** Cut the read to a specified length 307 * **CROP:** Cut the read to a specified length
283 * **HEADCROP:** Cut the specified number of bases from the start of the read 308 * **HEADCROP:** Cut the specified number of bases from the start of the read
284 * **AVGQUAL:** Drop the read if the average quality is below a specified value 309 * **AVGQUAL:** Drop the read if the average quality is below a specified value
285 * **MAXINFO:** Trim reads adaptively, balancing read length and error rate to 310 * **MAXINFO:** Trim reads adaptively, balancing read length and error rate to
286 maximise the value of each read 311 maximise the value of each read
287 312
288 If ILLUMINACLIP is requested then it is always performed first; subsequent options 313 If ILLUMINACLIP is requested then it is always performed first; subsequent options
289 can be mixed and matched and will be performed in the order that they have been 314 can be mixed and matched and will be performed in the order that they have been
290 specified. 315 specified.
332 .. class:: infomark 357 .. class:: infomark
333 358
334 **Credits** 359 **Credits**
335 360
336 This Galaxy tool has been developed within the Bioinformatics Core Facility at the 361 This Galaxy tool has been developed within the Bioinformatics Core Facility at the
337 University of Manchester. It runs the Trimmomatic program which has been developed 362 University of Manchester, with contributions from Peter van Heusden and Marius
363 van den Beek.
364
365 It runs the Trimmomatic program which has been developed
338 within Bjorn Usadel's group at RWTH Aachen university. 366 within Bjorn Usadel's group at RWTH Aachen university.
339 367
340 Trimmomatic website (including documentation): 368 Trimmomatic website (including documentation):
341 369
342 * http://www.usadellab.org/cms/index.php?page=trimmomatic 370 * http://www.usadellab.org/cms/index.php?page=trimmomatic
343 371
344 The reference for Trimmomatic is: 372 The reference for Trimmomatic is:
345 373
346 * Bolger, A.M., Lohse, M., &amp; Usadel, B. (2014). Trimmomatic: A flexible trimmer 374 * Bolger, A.M., Lohse, M., &amp; Usadel, B. (2014). Trimmomatic: A flexible trimmer
347 for Illumina Sequence Data. Bioinformatics, btu170. 375 for Illumina Sequence Data. Bioinformatics, btu170.