comparison fastp.xml @ 1:f44e93b4529c draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/fastp commit 6918a14442b7ebc56950917d668356feefaaaa28
author iuc
date Tue, 20 Mar 2018 04:24:38 -0400
parents 988729b728f0
children e0b44bf2543e
comparison
equal deleted inserted replaced
0:988729b728f0 1:f44e93b4529c
6 <requirements> 6 <requirements>
7 <requirement type="package" version="@WRAPPER_VERSION@">fastp</requirement> 7 <requirement type="package" version="@WRAPPER_VERSION@">fastp</requirement>
8 </requirements> 8 </requirements>
9 <version_command>fastp --version | tail -n 1</version_command> 9 <version_command>fastp --version | tail -n 1</version_command>
10 <command detect_errors="exit_code"><![CDATA[ 10 <command detect_errors="exit_code"><![CDATA[
11
12 ## Link input files 11 ## Link input files
13 12
14 #if $in1.is_of_type('fastq.gz') 13 #if $in1.is_of_type('fastq.gz')
15 #set ext = 'fastq.gz' 14 #set ext = 'fastq.gz'
16 #else 15 #else
22 #if str($single_paired.single_paired_selector) == 'paired': 21 #if str($single_paired.single_paired_selector) == 'paired':
23 ln -s '$in2' input2.$ext && 22 ln -s '$in2' input2.$ext &&
24 #end if 23 #end if
25 24
26 25
26 ## Set filename for output report
27
28 #import re
29 #set $filename = re.sub('[^\w\-\s]', '_', str($in1.element_identifier))
30
31
27 ## Run fastp 32 ## Run fastp
28 33
29 fastp 34 fastp
35
36 --thread \${GALAXY_SLOTS:-1}
37 --report_title 'fastp report for $filename'
30 38
31 #if $in1.is_of_type('fastqillumina', 'fastqsolexa', 'fastqillumina.gz', 'fastqsolexa.gz'): 39 #if $in1.is_of_type('fastqillumina', 'fastqsolexa', 'fastqillumina.gz', 'fastqsolexa.gz'):
32 --phred64 40 --phred64
33 #end if 41 #end if
34 42
38 #if str($single_paired.single_paired_selector) == 'paired': 46 #if str($single_paired.single_paired_selector) == 'paired':
39 -I input2.$ext 47 -I input2.$ext
40 -O second.$ext 48 -O second.$ext
41 #end if 49 #end if
42 50
43 ## Adapter trimming options 51
52 ## Adapter Trimming Options
44 53
45 $single_paired.adapter_trimming_options.disable_adapter_trimming 54 $single_paired.adapter_trimming_options.disable_adapter_trimming
46 55
47 #if str($single_paired.adapter_trimming_options.adapter_sequence1): 56 #if str($single_paired.adapter_trimming_options.adapter_sequence1):
48 --adapter_sequence '$single_paired.adapter_trimming_options.adapter_sequence1' 57 --adapter_sequence '$single_paired.adapter_trimming_options.adapter_sequence1'
53 --adapter_sequence_r2 '$single_paired.adapter_trimming_options.adapter_sequence2' 62 --adapter_sequence_r2 '$single_paired.adapter_trimming_options.adapter_sequence2'
54 #end if 63 #end if
55 #end if 64 #end if
56 65
57 66
58 ## Global trimming options 67 ## Global Trimming Options
59 68
60 #if str($single_paired.global_trimming_options.trim_front1): 69 #if str($single_paired.global_trimming_options.trim_front1):
61 -f $single_paired.global_trimming_options.trim_front1 70 -f $single_paired.global_trimming_options.trim_front1
62 #end if 71 #end if
63 72
73 -T $single_paired.global_trimming_options.trim_tail2 82 -T $single_paired.global_trimming_options.trim_tail2
74 #end if 83 #end if
75 #end if 84 #end if
76 85
77 86
78 ## PolyG tail trimming, useful for NextSeq/NovaSeq data
79
80 #if $polyg_tail_trimming.trimming_select in ['', '-g']:
81 #if str($polyg_tail_trimming.poly_g_min_len):
82 --poly_g_min_len $polyg_tail_trimming.poly_g_min_len
83 #end if
84 $polyg_tail_trimming.trimming_select
85 #end if
86
87 ## Per read cutting by quality options
88
89 #if $cutting_by_quality_options.cut_by_quality5 or $cutting_by_quality_options.cut_by_quality3:
90
91 $cutting_by_quality_options.cut_by_quality5
92
93 $cutting_by_quality_options.cut_by_quality3
94
95 #if str($cutting_by_quality_options.cut_window_size):
96 -W $cutting_by_quality_options.cut_window_size
97 #end if
98 #if str($cutting_by_quality_options.cut_mean_quality):
99 -M $cutting_by_quality_options.cut_mean_quality
100 #end if
101 #end if
102
103
104 ## Quality filtering options
105
106 $quality_filtering_options.disable_quality_filtering
107
108 #if str($quality_filtering_options.qualified_quality_phred):
109 -q $quality_filtering_options.qualified_quality_phred
110 #end if
111 #if str($quality_filtering_options.unqualified_percent_limit):
112 -u $quality_filtering_options.unqualified_percent_limit
113 #end if
114 #if str($quality_filtering_options.n_base_limit):
115 -n $quality_filtering_options.n_base_limit
116 #end if
117
118
119 ## Length filtering options
120
121 $length_filtering_options.disable_length_filtering
122
123 #if str($length_filtering_options.length_required):
124 -l $length_filtering_options.length_required
125 #end if
126
127
128 ## Base correction by overlap analysis options
129
130 $base_correction_options.correction
131
132
133 ## UMI processing
134
135 #if $umi_processing.umi:
136 $umi_processing.umi
137 #if str($umi_processing.umi_loc):
138 --umi_loc '$umi_processing.umi_loc'
139 #end if
140 #if str($umi_processing.umi_len):
141 --umi_len $umi_processing.umi_len
142 #end if
143 #if str($umi_processing.umi_prefix):
144 --umi_prefix '$umi_processing.umi_prefix'
145 #end if
146 #end if
147
148 ## Overrepresented sequence analysis 87 ## Overrepresented sequence analysis
149 88
150 $overrepresented_sequence_analysis.overrepresentation_analysis 89 $overrepresented_sequence_analysis.overrepresentation_analysis
151 90
152 #if str($overrepresented_sequence_analysis.overrepresentation_sampling): 91 #if str($overrepresented_sequence_analysis.overrepresentation_sampling):
153 -P $overrepresented_sequence_analysis.overrepresentation_sampling 92 -P $overrepresented_sequence_analysis.overrepresentation_sampling
154 #end if 93 #end if
155 94
156 95
157 ## Thread options 96 ## Filter Options
158 --thread \${GALAXY_SLOTS:-1} 97
98 ## Quality filtering options
99
100 $filter_options.quality_filtering_options.disable_quality_filtering
101
102 #if str($filter_options.quality_filtering_options.qualified_quality_phred):
103 -q $filter_options.quality_filtering_options.qualified_quality_phred
104 #end if
105 #if str($filter_options.quality_filtering_options.unqualified_percent_limit):
106 -u $filter_options.quality_filtering_options.unqualified_percent_limit
107 #end if
108 #if str($filter_options.quality_filtering_options.n_base_limit):
109 -n $filter_options.quality_filtering_options.n_base_limit
110 #end if
111
112
113 ## Length filtering options
114
115 $filter_options.length_filtering_options.disable_length_filtering
116
117 #if str($filter_options.length_filtering_options.length_required):
118 -l $filter_options.length_filtering_options.length_required
119 #end if
120
121 ## Low complexity filtering options
122
123 $filter_options.low_complexity_filter.enable_low_complexity_filter
124
125 #if str($filter_options.low_complexity_filter.complexity_threshold):
126 -Y $filter_options.low_complexity_filter.complexity_threshold
127 #end if
128
129
130 ## Read Modification Options
131
132 ## PolyG tail trimming, useful for NextSeq/NovaSeq data
133
134 #if $read_mod_options.polyg_tail_trimming.trimming_select in ['', '-g']:
135 #if str($read_mod_options.polyg_tail_trimming.poly_g_min_len):
136 --poly_g_min_len $read_mod_options.polyg_tail_trimming.poly_g_min_len
137 #end if
138 $read_mod_options.polyg_tail_trimming.trimming_select
139 #end if
140
141 ## PolyX tail trimming
142
143 #if $read_mod_options.polyx_tail_trimming.polyx_trimming_select == '-x':
144 $read_mod_options.polyx_tail_trimming.polyx_trimming_select
145 #if str($read_mod_options.polyg_tail_trimming.poly_g_min_len):
146 --poly_x_min_len $read_mod_options.polyx_tail_trimming.poly_x_min_len
147 #end if
148 #end if
149
150 ## UMI processing
151
152 #if $read_mod_options.umi_processing.umi:
153 $read_mod_options.umi_processing.umi
154 #if str($read_mod_options.umi_processing.umi_loc):
155 --umi_loc '$read_mod_options.umi_processing.umi_loc'
156 #end if
157 #if str($read_mod_options.umi_processing.umi_len):
158 --umi_len $read_mod_options.umi_processing.umi_len
159 #end if
160 #if str($read_mod_options.umi_processing.umi_prefix):
161 --umi_prefix '$read_mod_options.umi_processing.umi_prefix'
162 #end if
163 #end if
164
165 ## Per read cutting by quality options
166
167 #if $read_mod_options.cutting_by_quality_options.cut_by_quality5 or $read_mod_options.cutting_by_quality_options.cut_by_quality3:
168
169 $read_mod_options.cutting_by_quality_options.cut_by_quality5
170
171 $read_mod_options.cutting_by_quality_options.cut_by_quality3
172
173 #if str($read_mod_options.cutting_by_quality_options.cut_window_size):
174 -W $read_mod_options.cutting_by_quality_options.cut_window_size
175 #end if
176 #if str($read_mod_options.cutting_by_quality_options.cut_mean_quality):
177 -M $read_mod_options.cutting_by_quality_options.cut_mean_quality
178 #end if
179 #end if
180
181 ## Base correction by overlap analysis options
182
183 $read_mod_options.base_correction_options.correction
159 184
160 && 185 &&
161 186
162 mv first.$ext '${out1}' 187 mv first.$ext '${out1}'
163 #if str($single_paired.single_paired_selector) == 'paired': 188 #if str($single_paired.single_paired_selector) == 'paired':
164 && 189 &&
165 mv second.$ext '${out2}' 190 mv second.$ext '${out2}'
166 #end if 191 #end if
167 ]]></command> 192 ]]></command>
168 <inputs> 193 <inputs>
194
169 <conditional name="single_paired"> 195 <conditional name="single_paired">
170 <param name="single_paired_selector" type="select" label="Single-end or paired reads"> 196 <param name="single_paired_selector" type="select" label="Single-end or paired reads">
171 <option value="single" selected="true">Single-end</option> 197 <option value="single" selected="true">Single-end</option>
172 <option value="paired">Paired</option> 198 <option value="paired">Paired</option>
173 </param> 199 </param>
174 <when value="single"> 200 <when value="single">
175 <expand macro="in1" /> 201 <expand macro="in1" />
176 <section name="adapter_trimming_options" title="Adapter trimming options" expanded="False"> 202 <section name="adapter_trimming_options" title="Adapter Trimming Options" expanded="False">
177 <param name="disable_adapter_trimming" argument="-A" type="boolean" truevalue="-A" falsevalue="" checked="false" label="Disable adapter trimming" help="Adapter trimming is enabled by default. If this option is specified, adapter trimming is disabled."/> 203 <param name="disable_adapter_trimming" argument="-A" type="boolean" truevalue="-A" falsevalue="" checked="false" label="Disable adapter trimming" help="Adapter trimming is enabled by default. If this option is specified, adapter trimming is disabled."/>
178 <expand macro="adapter_sequence1" /> 204 <expand macro="adapter_sequence1" />
179 </section> 205 </section>
180 <section name="global_trimming_options" title="Global trimming options" expanded="False"> 206 <section name="global_trimming_options" title="Global Trimming Options" expanded="False">
181 <param name="trim_front1" argument="-f" type="integer" optional="true" label="Trim front for input 1" help="Trimming how many bases in front for read1, default is 0."/> 207 <param name="trim_front1" argument="-f" type="integer" optional="true" label="Trim front for input 1" help="Trimming how many bases in front for read1, default is 0."/>
182 <param name="trim_tail1" argument="-t" type="integer" optional="true" label="Trim tail for input 1" help="Trimming how many bases in tail for read1, default is 0."/> 208 <param name="trim_tail1" argument="-t" type="integer" optional="true" label="Trim tail for input 1" help="Trimming how many bases in tail for read1, default is 0."/>
183 </section> 209 </section>
184 </when> 210 </when>
185 <when value="paired"> 211 <when value="paired">
205 <param name="trim_front2" argument="-F" type="integer" optional="true" label="Trim front for input 2" help="Trimming how many bases in front for read2. If it's not specified, it will follow read1's settings."/> 231 <param name="trim_front2" argument="-F" type="integer" optional="true" label="Trim front for input 2" help="Trimming how many bases in front for read2. If it's not specified, it will follow read1's settings."/>
206 <param name="trim_tail2" argument="-T" type="integer" optional="true" label="Trim tail for input 2" help="Trimming how many bases in tail for read2. If it's not specified, it will follow read1's settings."/> 232 <param name="trim_tail2" argument="-T" type="integer" optional="true" label="Trim tail for input 2" help="Trimming how many bases in tail for read2. If it's not specified, it will follow read1's settings."/>
207 </section> 233 </section>
208 </when> 234 </when>
209 </conditional> 235 </conditional>
210 <conditional name="polyg_tail_trimming"> 236
211 <param name="trimming_select" type="select" label="PolyG tail trimming, useful for NextSeq/NovaSeq data"> 237 <section name="overrepresented_sequence_analysis" title="Overrepresented Sequence Analysis" expanded="False">
212 <option value="" selected="true">Automatic trimming for Illumina NextSeq/NovaSeq data</option>
213 <option value="-g">Force polyG tail trimming</option>
214 <option value="-G">Disable polyG tail trimming</option>
215 </param>
216 <when value="-g">
217 <expand macro="poly_g_min_len" />
218 </when>
219 <when value="">
220 <expand macro="poly_g_min_len" />
221 </when>
222 <when value="-G" />
223 </conditional>
224 <section name="cutting_by_quality_options" title="Per read cutting by quality options" expanded="False">
225 <param name="cut_by_quality5" argument="-5" type="boolean" truevalue="-5" falsevalue="" checked="false" label="Cut by quality in front (5')" help="Enable per read cutting by quality in front (5'), default is disabled (WARNING: this will interfere deduplication for both PE/SE data)."/>
226 <param name="cut_by_quality3" argument="-3" type="boolean" truevalue="-3" falsevalue="" checked="false" label="Cut by quality in tail (3')" help="Enable per read cutting by quality in tail (3'), default is disabled (WARNING: this will interfere deduplication for SE data)."/>
227 <param name="cut_window_size" argument="-W" type="integer" optional="true" label="Cutting window size" help="The size of the sliding window for sliding window trimming, default is 4."/>
228 <param name="cut_mean_quality" argument="-M" type="integer" optional="true" label="Cutting mean quality" help="The bases in the sliding window with mean quality below cutting_quality will be cut, default is Q20."/>
229 </section>
230 <section name="quality_filtering_options" title="Quality filtering options" expanded="False">
231 <param name="disable_quality_filtering" argument="-Q" type="boolean" truevalue="-Q" falsevalue="" checked="false" label="Disable quality filtering" help="Quality filtering is enabled by default. If this option is specified, quality filtering is disabled."/>
232 <param name="qualified_quality_phred" argument="-q" type="integer" optional="true" label="Qualified quality phred" help="The quality value that a base is qualified. Default 15 means phred quality >=Q15 is qualified."/>
233 <param name="unqualified_percent_limit" argument="-u" type="integer" optional="true" label="Unqualified percent limit" help="How many percents of bases are allowed to be unqualified (0~100). Default 40 means 40%."/>
234 <param name="n_base_limit" argument="-n" type="integer" optional="true" label="N base limit" help="If one read's number of N base is >n_base_limit, then this read/pair is discarded. Default is 5."/>
235 </section>
236 <section name="length_filtering_options" title="Length filtering options" expanded="False">
237 <param name="disable_length_filtering" argument="-L" type="boolean" truevalue="-L" falsevalue="" checked="false" label="Disable length filtering" help="Length filtering is enabled by default. If this option is specified, length filtering is disabled."/>
238 <param name="length_required" argument="-l" type="integer" optional="true" label="Length required" help="Reads shorter than this value will be discarded, default is 15."/>
239 </section>
240 <section name="base_correction_options" title="Base correction by overlap analysis options" expanded="False">
241 <param name="correction" argument="-c" type="boolean" truevalue="-c" falsevalue="" checked="false" label="Enable base correction" help="Enable base correction in overlapped regions (only for PE data), default is disabled."/>
242 </section>
243 <section name="umi_processing" title="UMI processing" expanded="False">
244 <param name="umi" argument="-U" type="boolean" truevalue="-U" falsevalue="" checked="false" label="Enable unique molecular identifer" help="Enable unique molecular identifer (UMI) preprocessing."/>
245 <param name="umi_loc" argument="--umi_loc" type="text" optional="true" label="UMI location" help="Specify the location of UMI, can be (index1/index2/read1/read2/per_index/per_read, default is none."/>
246 <param name="umi_len" argument="--umi_len" type="integer" optional="true" label="UMI length" help="If the UMI is in read1/read2, its length should be provided."/>
247 <param name="umi_prefix" argument="--umi_prefix" type="text" optional="true" label="UMI prefix" help="If specified, an underline will be used to connect prefix and UMI (i.e. prefix=UMI, UMI=AATTCG, final=UMI_AATTCG). No prefix by default."/>
248 </section>
249 <section name="overrepresented_sequence_analysis" title="Overrepresented sequence analysis" expanded="False">
250 <param name="overrepresentation_analysis" argument="-p" type="boolean" truevalue="-p" falsevalue="" checked="false" label="Enable overrepresented analysis" help="Enable overrepresented sequence analysis."/> 238 <param name="overrepresentation_analysis" argument="-p" type="boolean" truevalue="-p" falsevalue="" checked="false" label="Enable overrepresented analysis" help="Enable overrepresented sequence analysis."/>
251 <param name="overrepresentation_sampling" argument="-P" type="integer" optional="true" label="Overrepresentation sampling" help="One in (--overrepresentation_sampling) reads will be computed for overrepresentation analysis (1~10000), smaller is slower, default is 20."/> 239 <param name="overrepresentation_sampling" argument="-P" type="integer" optional="true" label="Overrepresentation sampling" help="One in (--overrepresentation_sampling) reads will be computed for overrepresentation analysis (1~10000), smaller is slower, default is 20."/>
252 </section> 240 </section>
253 <section name="output_options" title="Output options" expanded="False"> 241
242 <!-- Filter Options -->
243 <section name="filter_options" title="Filter Options">
244 <section name="quality_filtering_options" title="Quality filtering options" expanded="True">
245 <param name="disable_quality_filtering" argument="-Q" type="boolean" truevalue="-Q" falsevalue="" checked="false" label="Disable quality filtering" help="Quality filtering is enabled by default. If this option is specified, quality filtering is disabled."/>
246 <param name="qualified_quality_phred" argument="-q" type="integer" optional="true" label="Qualified quality phred" help="The quality value that a base is qualified. Default 15 means phred quality >=Q15 is qualified."/>
247 <param name="unqualified_percent_limit" argument="-u" type="integer" optional="true" label="Unqualified percent limit" help="How many percents of bases are allowed to be unqualified (0~100). Default 40 means 40%."/>
248 <param name="n_base_limit" argument="-n" type="integer" optional="true" label="N base limit" help="If one read's number of N base is >n_base_limit, then this read/pair is discarded. Default is 5."/>
249 </section>
250
251 <section name="length_filtering_options" title="Length filtering options" expanded="True">
252 <param name="disable_length_filtering" argument="-L" type="boolean" truevalue="-L" falsevalue="" checked="false" label="Disable length filtering" help="Length filtering is enabled by default. If this option is specified, length filtering is disabled."/>
253 <param name="length_required" argument="-l" type="integer" optional="true" label="Length required" help="Reads shorter than this value will be discarded. Default is 15."/>
254 </section>
255
256 <section name="low_complexity_filter" title="Low complexity filtering options" expanded="True">
257 <param name="enable_low_complexity_filter" argument="-y" type="boolean" truevalue="-y" falsevalue="" checked="false" label="Enable low complexity filter" help="The complexity is defined as the percentage of base that is different from its next base, default is No"/>
258 <param name="complexity_threshold" argument="-Y" type="integer" optional="true" label="Complexity threshold" help="Threshold for low complexity filter (0~100). Default is 30, which means 30% complexity is required."/>
259 </section>
260 </section>
261
262 <!-- Read Modification Options -->
263 <section name="read_mod_options" title="Read Modification Options">
264 <conditional name="polyg_tail_trimming">
265 <param name="trimming_select" type="select" label="PolyG tail trimming" help="Useful for NextSeq/NovaSeq data">
266 <option value="" selected="true">Automatic trimming for Illumina NextSeq/NovaSeq data</option>
267 <option value="-g">Force polyG tail trimming</option>
268 <option value="-G">Disable polyG tail trimming</option>
269 </param>
270 <when value="-g">
271 <expand macro="poly_g_min_len" />
272 </when>
273 <when value="">
274 <expand macro="poly_g_min_len" />
275 </when>
276 <when value="-G" />
277 </conditional>
278
279 <conditional name="polyx_tail_trimming">
280 <param name="polyx_trimming_select" type="select" label="PolyX tail trimming" help="Similar to polyG tail trimming. When polyG tail trimming and polyX tail trimming are both enabled, fastp will perform polyG trimming first, then perform polyX trimming. Disabled by default.">
281 <option value="" selected="true">Disable polyX trimming</option>
282 <option value="-x">Enable polyX tail trimming</option>
283 </param>
284 <when value="-x">
285 <param name="poly_x_min_len" argument="--poly_x_min_len" type="integer" optional="true" label="PolyX minimum length"
286 help="The minimum length to detect polyX in the read tail. 10 by default."/>
287 </when>
288 <when value="" />
289 </conditional>
290
291 <section name="umi_processing" title="UMI processing" expanded="True">
292 <param name="umi" argument="-U" type="boolean" truevalue="-U" falsevalue="" checked="false" label="Enable unique molecular identifer" help="Enable unique molecular identifer (UMI) preprocessing."/>
293 <param name="umi_loc" argument="--umi_loc" type="text" optional="true" label="UMI location" help="Specify the location of UMI, can be (index1/index2/read1/read2/per_index/per_read, default is none."/>
294 <param name="umi_len" argument="--umi_len" type="integer" optional="true" label="UMI length" help="If the UMI is in read1/read2, its length should be provided."/>
295 <param name="umi_prefix" argument="--umi_prefix" type="text" optional="true" label="UMI prefix" help="If specified, an underline will be used to connect prefix and UMI (i.e. prefix=UMI, UMI=AATTCG, final=UMI_AATTCG). No prefix by default."/>
296 </section>
297
298 <section name="cutting_by_quality_options" title="Per read cutting by quality options" expanded="True">
299 <param name="cut_by_quality5" argument="-5" type="boolean" truevalue="-5" falsevalue="" checked="false" label="Cut by quality in front (5')" help="Enable per read cutting by quality in front (5'), default is disabled (WARNING: this will interfere deduplication for both PE/SE data)."/>
300 <param name="cut_by_quality3" argument="-3" type="boolean" truevalue="-3" falsevalue="" checked="false" label="Cut by quality in tail (3')" help="Enable per read cutting by quality in tail (3'), default is disabled (WARNING: this will interfere deduplication for SE data)."/>
301 <param name="cut_window_size" argument="-W" type="integer" optional="true" label="Cutting window size" help="The size of the sliding window for sliding window trimming, default is 4."/>
302 <param name="cut_mean_quality" argument="-M" type="integer" optional="true" label="Cutting mean quality" help="The bases in the sliding window with mean quality below cutting_quality will be cut, default is Q20."/>
303 </section>
304
305 <section name="base_correction_options" title="Base correction by overlap analysis options" expanded="True">
306 <param name="correction" argument="-c" type="boolean" truevalue="-c" falsevalue="" checked="false" label="Enable base correction" help="Enable base correction in overlapped regions (only for PE data), default is disabled."/>
307 </section>
308 </section>
309
310 <section name="output_options" title="Output Options" expanded="False">
254 <param name="report_html" type="boolean" truevalue="True" falsevalue="False" checked="True" label="Output HTML report" help="fastp provides a QC report for the data Before and After filtering within a single HTML page, which enables comparison of the quality statistics changed by the preprocessing step directly"/> 311 <param name="report_html" type="boolean" truevalue="True" falsevalue="False" checked="True" label="Output HTML report" help="fastp provides a QC report for the data Before and After filtering within a single HTML page, which enables comparison of the quality statistics changed by the preprocessing step directly"/>
255 <param name="report_json" type="boolean" truevalue="True" falsevalue="False" checked="False" label="Output JSON report" help="The JSON report contains all the data visualized in the HTML report. The format of the JSON report is manually optimized to be easily readable by humans"/> 312 <param name="report_json" type="boolean" truevalue="True" falsevalue="False" checked="False" label="Output JSON report" help="The JSON report contains all the data visualized in the HTML report. The format of the JSON report is manually optimized to be easily readable by humans"/>
256 </section> 313 </section>
257 </inputs> 314 </inputs>
258 315
268 <filter>output_options['report_json'] is True</filter> 325 <filter>output_options['report_json'] is True</filter>
269 </data> 326 </data>
270 </outputs> 327 </outputs>
271 328
272 <tests> 329 <tests>
273 <test> 330 <!-- Ensure default output works -->
274 <param name="in1" value="R1.fq" ftype="fastqsanger"/> 331 <test expect_num_outputs="2">
275 <param name="single_paired_selector" value="single"/> 332 <param name="in1" ftype="fastqsanger" value="R1.fq"/>
276 <output name="out1" file="out1.fq" ftype="fastqsanger"/> 333 <param name="single_paired_selector" value="single"/>
277 </test> 334 <output name="out1" ftype="fastqsanger" file="out1.fq"/>
278 <test> 335 <output name="report_html">
279 <param name="in1" value="R1.fq" ftype="fastq"/> 336 <assert_contents>
337 <has_text text="fastp report"/>
338 </assert_contents>
339 </output>
340 </test>
341 <!-- Ensure custom adapter works -->
342 <test expect_num_outputs="2">
343 <param name="in1" ftype="fastq" value="R1.fq"/>
280 <param name="single_paired_selector" value="single"/> 344 <param name="single_paired_selector" value="single"/>
281 <param name="adapter_sequence1" value="ATCG"/> 345 <param name="adapter_sequence1" value="ATCG"/>
282 <output name="out1" file="out_a.fq" ftype="fastq"/> 346 <output name="out1" ftype="fastq" file="out_a.fq"/>
283 </test> 347 </test>
284 <test> 348 <!-- Ensure UMI processing works -->
285 <param name="in1" value="R1.fq" ftype="fastq"/> 349 <test expect_num_outputs="2">
350 <param name="in1" ftype="fastq" value="R1.fq"/>
286 <param name="single_paired_selector" value="single"/> 351 <param name="single_paired_selector" value="single"/>
287 <section name="umi_processing"> 352 <section name="umi_processing">
288 <param name="umi" value="true"/> 353 <param name="umi" value="true"/>
289 <param name="umi_loc" value="read1"/> 354 <param name="umi_loc" value="read1"/>
290 <param name="umi_len" value="8"/> 355 <param name="umi_len" value="8"/>
291 </section> 356 </section>
292 <output name="out1" file="out2.fq" ftype="fastq"/> 357 <output name="out1" ftype="fastq" file="out2.fq"/>
293 </test> 358 </test>
294 <test> 359 <!-- Ensure UMI processing with different lengths works -->
295 <param name="in1" value="R1.fq" ftype="fastq"/> 360 <test expect_num_outputs="2">
361 <param name="in1" ftype="fastq" value="R1.fq"/>
296 <param name="single_paired_selector" value="single"/> 362 <param name="single_paired_selector" value="single"/>
297 <section name="umi_processing"> 363 <section name="umi_processing">
298 <param name="umi" value="true"/> 364 <param name="umi" value="true"/>
299 <param name="umi_loc" value="read1"/> 365 <param name="umi_loc" value="read1"/>
300 <param name="umi_len" value="12"/> 366 <param name="umi_len" value="12"/>
301 </section> 367 </section>
302 <output name="out1" file="out3.fq" ftype="fastq"/> 368 <output name="out1" ftype="fastq" file="out3.fq"/>
303 </test> 369 </test>
304 <test> 370 <!-- Ensure paired-end fastq works -->
305 <param name="in1" value="bwa-mem-fastq1.fq" ftype="fastq"/> 371 <test expect_num_outputs="3">
306 <param name="in2" value="bwa-mem-fastq2.fq" ftype="fastq"/> 372 <param name="in1" ftype="fastq" value="bwa-mem-fastq1.fq"/>
373 <param name="in2" ftype="fastq" value="bwa-mem-fastq2.fq"/>
307 <param name="single_paired_selector" value="paired"/> 374 <param name="single_paired_selector" value="paired"/>
308 <output name="out1" file="out_bwa1.fq" ftype="fastq"/> 375 <output name="out1" ftype="fastq" file="out_bwa1.fq"/>
309 <output name="out2" file="out_bwa2.fq" ftype="fastq"/> 376 <output name="out2" ftype="fastq" file="out_bwa2.fq"/>
310 </test> 377 </test>
311 <test> 378 <!-- Ensure paired-end UMI processing of Read 1 works -->
312 <param name="in1" value="bwa-mem-fastq1.fq" ftype="fastq"/> 379 <test expect_num_outputs="3">
313 <param name="in2" value="bwa-mem-fastq2.fq" ftype="fastq"/> 380 <param name="in1" ftype="fastq" value="bwa-mem-fastq1.fq"/>
381 <param name="in2" ftype="fastq" value="bwa-mem-fastq2.fq"/>
314 <param name="single_paired_selector" value="paired"/> 382 <param name="single_paired_selector" value="paired"/>
315 <section name="umi_processing"> 383 <section name="umi_processing">
316 <param name="umi" value="true"/> 384 <param name="umi" value="true"/>
317 <param name="umi_loc" value="read1"/> 385 <param name="umi_loc" value="read1"/>
318 <param name="umi_len" value="8"/> 386 <param name="umi_len" value="8"/>
319 </section> 387 </section>
320 <output name="out1" file="out_bwa_umi_read1_1.fq" ftype="fastq"/> 388 <output name="out1" ftype="fastq" file="out_bwa_umi_read1_1.fq"/>
321 <output name="out2" file="out_bwa_umi_read1_2.fq" ftype="fastq"/> 389 <output name="out2" ftype="fastq" file="out_bwa_umi_read1_2.fq"/>
322 </test> 390 </test>
323 <test> 391 <!-- Ensure paired-end UMI processing of Read 2 works -->
324 <param name="in1" value="bwa-mem-fastq1.fq" ftype="fastq"/> 392 <test expect_num_outputs="3">
325 <param name="in2" value="bwa-mem-fastq2.fq" ftype="fastq"/> 393 <param name="in1" ftype="fastq" value="bwa-mem-fastq1.fq"/>
394 <param name="in2" ftype="fastq" value="bwa-mem-fastq2.fq"/>
326 <param name="single_paired_selector" value="paired"/> 395 <param name="single_paired_selector" value="paired"/>
327 <section name="umi_processing"> 396 <section name="umi_processing">
328 <param name="umi" value="true"/> 397 <param name="umi" value="true"/>
329 <param name="umi_loc" value="read2"/> 398 <param name="umi_loc" value="read2"/>
330 <param name="umi_len" value="8"/> 399 <param name="umi_len" value="8"/>
331 </section> 400 </section>
332 <output name="out1" file="out_bwa_umi_read2_1.fq" ftype="fastq"/> 401 <output name="out1" ftype="fastq" file="out_bwa_umi_read2_1.fq"/>
333 <output name="out2" file="out_bwa_umi_read2_2.fq" ftype="fastq"/> 402 <output name="out2" ftype="fastq" file="out_bwa_umi_read2_2.fq"/>
334 </test> 403 </test>
335 <test> 404 <!-- Ensure JSON report output works -->
336 <param name="in1" value="R1.fq" ftype="fastq"/> 405 <test expect_num_outputs="2">
337 <param name="single_paired_selector" value="single"/> 406 <param name="in1" ftype="fastqsanger" value="R1.fq"/>
338 <output name="out1" file="out1.fq" ftype="fastq"/> 407 <param name="single_paired_selector" value="single"/>
339 <output name="report_html"> 408 <param name="report_html" value="False"/>
409 <param name="report_json" value="True"/>
410 <output name="out1" ftype="fastqsanger" file="out1.fq"/>
411 <output name="report_json">
340 <assert_contents> 412 <assert_contents>
341 <has_text text="fastp report"/> 413 <has_text text="fastp report"/>
342 </assert_contents> 414 </assert_contents>
343 </output> 415 </output>
344 </test> 416 </test>
345 <test> 417 <!-- Ensure polyG trimming works -->
346 <param name="in1" value="R1.fq.gz" ftype="fastq.gz"/> 418 <test expect_num_outputs="2">
419 <param name="in1" ftype="fastq.gz" value="R1.fq.gz"/>
347 <param name="single_paired_selector" value="single"/> 420 <param name="single_paired_selector" value="single"/>
348 <param name="trimming_select" value="-g"/> 421 <param name="trimming_select" value="-g"/>
349 <param name="poly_g_min_len" value="10"/> 422 <param name="poly_g_min_len" value="10"/>
350 <output name="out1" file="out1.fq.gz" ftype="fastq.gz" compare="sim_size"/> 423 <output name="out1" ftype="fastq.gz" decompress="True" file="out1.fq.gz"/>
351 <output name="report_html">
352 <assert_contents>
353 <has_text text="fastp report"/>
354 </assert_contents>
355 </output>
356 </test> 424 </test>
357 </tests> 425 </tests>
358 <help><![CDATA[ 426 <help><![CDATA[
359 .. class:: infomark 427 .. class:: infomark
360 428
364 432
365 *Features* 433 *Features*
366 434
367 1. Filter out bad reads (too low quality, too short, or too many N...) 435 1. Filter out bad reads (too low quality, too short, or too many N...)
368 436
369 2. Cut low quality bases for per read in its 5' and 3' by evaluating the mean quality from a sliding window (like Trimmomatic but faster). 437 2. Cut low quality bases for per read in its 5' and 3' by evaluating the mean quality from a sliding window (like Trimmomatic but faster)
370 438
371 3. Trim all reads in front and tail 439 3. Trim all reads in front and tail
372 440
373 4. Cut adapters. Adapter sequences can be automatically detected,which means you don't have to input the adapter sequences to trim them. 441 4. Cut adapters. Adapter sequences can be automatically detected, which means you don't have to input the adapter sequences to trim them.
374 442
375 5. Correct mismatched base pairs in overlapped regions of paired end reads, if one base is with high quality while the other is with ultra low quality 443 5. Correct mismatched base pairs in overlapped regions of paired end reads, if one base is with high quality while the other is with ultra-low quality
376 444
377 6. Preprocess unique molecular identifer (UMI) enabled data, shift UMI to sequence name. 445 6. Trim polyG in 3' ends, which is commonly seen in NovaSeq/NextSeq data. Trim polyX in 3' ends to remove unwanted polyX tailing (i.e. polyA tailing for mRNA-Seq data)
378 446
379 7. Report JSON format result for further interpreting. 447 7. Preprocess unique molecular identifer (UMI) enabled data, shift UMI to sequence name
380 448
381 8. Visualize quality control and filtering results on a single HTML page (like FASTQC but faster and more informative). 449 8. Report JSON format result for further interpreting
382 450
383 9. Split the output to multiple files (0001.R1.gz, 0002.R1.gz...) to support parallel processing. Two modes can be used, limiting the total split file number, or limitting the lines of each split file. 451 9. Visualize quality control and filtering results on a single HTML page (like FASTQC but faster and more informative)
384 452
385 10. Support long reads (data from PacBio / Nanopore devices). 453 10. Split the output to multiple files (0001.R1.gz, 0002.R1.gz...) to support parallel processing. Two modes can be used, limiting the total split file number, or limitting the lines of each split file (*Not enabled in this Galaxy tool*)
454
455 11. Support long reads (data from PacBio / Nanopore devices)
386 456
387 ----- 457 -----
388 458
389 **Inputs** 459 **Inputs**
390 460