comparison transdecoder.xml @ 6:d0d4cef4f967 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transdecoder commit 52d835f027b052a0a887be14a55faf9fa9e456ae"
author iuc
date Mon, 01 Feb 2021 20:51:40 +0000
parents c6334cb383ff
children ffd1300599a1
comparison
equal deleted inserted replaced
5:c6334cb383ff 6:d0d4cef4f967
1 <tool id="transdecoder" name="TransDecoder" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@"> 1 <tool id="transdecoder" name="TransDecoder" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@">
2 <description>finds coding regions within transcripts</description> 2 <description>finds coding regions within transcripts</description>
3 <macros> 3 <macros>
4 <token name="@TOOL_VERSION@">5.5.0</token> 4 <token name="@TOOL_VERSION@">5.5.0</token>
5 <token name="@VERSION_SUFFIX@">0</token> 5 <token name="@VERSION_SUFFIX@">1</token>
6 </macros> 6 </macros>
7 <requirements> 7 <requirements>
8 <requirement type="package" version="@TOOL_VERSION@">transdecoder</requirement> 8 <requirement type="package" version="@TOOL_VERSION@">transdecoder</requirement>
9 <requirement type="package" version="3.0">zip</requirement>
9 </requirements> 10 </requirements>
10 <version_command><![CDATA[TransDecoder.LongOrfs --version 2>&1 | grep 'TransDecoder.LongOrfs' | cut -f 2 -d ' ']]></version_command> 11 <version_command><![CDATA[TransDecoder.LongOrfs --version 2>&1 | grep 'TransDecoder.LongOrfs' | cut -f 2 -d ' ']]></version_command>
11 <command detect_errors="exit_code"><![CDATA[ 12 <command detect_errors="exit_code"><![CDATA[
12 ## initialize 13 ## initialize
13 ln -s '${t}' 'transcripts.fasta' && 14 ln -s '${t}' 'transcripts.fasta' &&
50 51
51 ## postprocessing 52 ## postprocessing
52 #if 'log' in $oo.out 53 #if 'log' in $oo.out
53 |& tee '$out_log' 54 |& tee '$out_log'
54 #end if 55 #end if
56 && if ls 'output/'*'.pdf' >/dev/null 2>&1; then zip 'seqlogo.zip' 'output/'*'.pdf' -q -j; fi
55 ]]></command> 57 ]]></command>
56 <inputs> 58 <inputs>
57 <param argument="-t" type="data" format="fasta" label="Select file with transcripts"/> 59 <param argument="-t" type="data" format="fasta" label="Select file with transcripts"/>
58 <param argument="-G" type="select" label="Select genetic code"> 60 <param argument="-G" type="select" label="Select genetic code">
59 <option value="Acetabularia">Acetabularia</option> 61 <option value="Acetabularia">Acetabularia</option>
82 <option value="Universal" selected="true">Universal</option> 84 <option value="Universal" selected="true">Universal</option>
83 </param> 85 </param>
84 <section name="lo" title="LongOrfs options" expanded="true"> 86 <section name="lo" title="LongOrfs options" expanded="true">
85 <param argument="--gene_trans_map" type="data" format="tabular" optional="true" label="Select gene-to-transcript identifier mapping file" help="gene_id&lt;tab&gt;trans_id&lt;return&gt;"/> 87 <param argument="--gene_trans_map" type="data" format="tabular" optional="true" label="Select gene-to-transcript identifier mapping file" help="gene_id&lt;tab&gt;trans_id&lt;return&gt;"/>
86 <param argument="-m" type="integer" value="100" min="1" label="Set minimum protein length"/> 88 <param argument="-m" type="integer" value="100" min="1" label="Set minimum protein length"/>
87 <param argument="-S" type="boolean" truevalue="-S" falsevalue="" label="Activate strand-specificity?" help="Only analyse top strand."/> 89 <param argument="-S" type="boolean" truevalue="-S" falsevalue="" label="Activate strand-specificity?" help="Only analyse top strand?"/>
88 </section> 90 </section>
89 <section name="po" title="Predict options" expanded="true"> 91 <section name="po" title="Predict options" expanded="true">
90 <!-- 92 <!--
91 TransDecoder.Predict can be skipped if only longest_orfs.pep (as a result of TransDecoder.LongOrfs) is required, e.g. for homology search via BlastP and Pfam. 93 TransDecoder.Predict can be skipped if only longest_orfs.pep (as a result of TransDecoder.LongOrfs) is required, e.g. for homology search via BlastP and Pfam.
92 --> 94 -->
104 <when value="dynamic"/> 106 <when value="dynamic"/>
105 <when value="strict"> 107 <when value="strict">
106 <param argument="--retain_long_orfs_length" type="integer" value="1000000" min="0" label="Set long ORFs length" help="Retain all ORFs found that are equal or longer than these many nucleotides even if no other evidence marks it as coding."/> 108 <param argument="--retain_long_orfs_length" type="integer" value="1000000" min="0" label="Set long ORFs length" help="Retain all ORFs found that are equal or longer than these many nucleotides even if no other evidence marks it as coding."/>
107 </when> 109 </when>
108 </conditional> 110 </conditional>
109 <param argument="--retain_blastp_hits" type="data" format="tabular" optional="true" label="Select BlastP result file" help="Any ORF with a blast match will be retained in the final output. (outfmt 6 format)"/> 111 <param argument="--retain_blastp_hits" type="data" format="tabular" optional="true" label="Select BlastP result file" help="Any ORF with a blast match will be retained in the final output. (tabular outfmt6 file)"/>
110 <param argument="--retain_pfam_hits" type="data" format="tabular" optional="true" label="Select Pfam result file" help="Domain table output file from running hmmscan to search Pfam. Any ORF with a pfam domain hit will be retained in the final output. (domtblout file)"/> 112 <param argument="--retain_pfam_hits" type="data" format="tabular" optional="true" label="Select Pfam result file" help="Domain table output file from running hmmscan to search Pfam. Any ORF with a pfam domain hit will be retained in the final output. (tabular domtblout file)"/>
111 <param argument="--single_best_only" type="boolean" truevalue="--single_best_only" falsevalue="" label="Retain only the single best ORF per transcript?" help="Prioritized by homology than ORF length."/> 113 <param argument="--single_best_only" type="boolean" truevalue="--single_best_only" falsevalue="" label="Retain only the single best ORF per transcript?" help="Prioritized by homology than ORF length."/>
112 <param argument="--no_refine_starts" type="boolean" truevalue="--no_refine_starts" falsevalue="" label="Start refinement that identifies potential start codons for 5' partial ORFs using a PWM?"/> 114 <param argument="--no_refine_starts" type="boolean" truevalue="--no_refine_starts" falsevalue="" label="Start refinement that identifies potential start codons for 5' partial ORFs using a PWM?"/>
113 <param argument="-T" type="integer" value="500" min="1" label="Set top longest ORFs to train Markov Model" help="The first (10*value) elements are selected for removing redundancies. Then number of longst ORFs of this value are selected from the non-redundant set."/> 115 <param argument="-T" type="integer" value="500" min="1" label="Set top longest ORFs to train Markov Model" help="The first (10*value) elements are selected for removing redundancies. Then number of longst ORFs of this value are selected from the non-redundant set."/>
114 </when> 116 </when>
115 <when value="no"/> 117 <when value="no"/>
116 </conditional> 118 </conditional>
117 </section> 119 </section>
118 <section name="oo" title="Output options"> 120 <section name="oo" title="Output options" expanded="true">
119 <param name="out" type="select" multiple="true" optional="false" label="Select output file(s)" help="Only shown in history if selected here and generated by the specific NOVOplasty run."> 121 <param name="out" type="select" multiple="true" optional="false" label="Select output file(s)" help="Only shown in history if selected here and generated by the specific run.">
120 <!-- LongOrfs --> 122 <!-- LongOrfs -->
121 <option value="lo_cds">Longest ORFs (CDS)</option> 123 <option value="lo_cds">Longest ORFs (CDS)</option>
122 <option value="lo_gff3">Longest ORFs (GFF3)</option> 124 <option value="lo_gff3">Longest ORFs (GFF3)</option>
123 <option value="lo_pep" selected="true">Longest ORFs (PEP)</option> 125 <option value="lo_pep" selected="true">Longest ORFs (PEP)</option>
124 <!-- Predict --> 126 <!-- Predict -->
125 <option value="bed" selected="true">Results (BED)</option> 127 <option value="bed" selected="true">Results (BED)</option>
126 <option value="cds" selected="true">Results (CDS)</option> 128 <option value="cds" selected="true">Results (CDS)</option>
127 <option value="gff3" selected="true">Results (GFF3)</option> 129 <option value="gff3" selected="true">Results (GFF3)</option>
128 <option value="pep" selected="true">Results (PEP)</option> 130 <option value="pep" selected="true">Results (PEP)</option>
131 <option value="plot">Plots</option>
129 <!-- Others --> 132 <!-- Others -->
130 <option value="log">Log</option> 133 <option value="log">Log</option>
131 </param> 134 </param>
132 </section> 135 </section>
133 </inputs> 136 </inputs>
153 <filter>'gff3' in oo['out'] and po['predict_cond']['predict_sel'] =='yes'</filter> 156 <filter>'gff3' in oo['out'] and po['predict_cond']['predict_sel'] =='yes'</filter>
154 </data> 157 </data>
155 <data name="out_pep" format="fasta" from_work_dir="transcripts.fasta.transdecoder.pep" label="${tool.name} on ${on_string}: Results (PEP/FASTA)"> 158 <data name="out_pep" format="fasta" from_work_dir="transcripts.fasta.transdecoder.pep" label="${tool.name} on ${on_string}: Results (PEP/FASTA)">
156 <filter>'pep' in oo['out'] and po['predict_cond']['predict_sel'] == 'yes'</filter> 159 <filter>'pep' in oo['out'] and po['predict_cond']['predict_sel'] == 'yes'</filter>
157 </data> 160 </data>
161 <data name="out_plot" format="zip" from_work_dir="seqlogo.zip" label="${tool.name} on ${on_string}: Plots">
162 <filter>'plot' in oo['out'] and po['predict_cond']['predict_sel'] == 'yes'</filter>
163 </data>
158 <!-- Others --> 164 <!-- Others -->
159 <data name="out_log" format="txt" label="${tool.name} on ${on_string}: Log"> 165 <data name="out_log" format="txt" label="${tool.name} on ${on_string}: Log">
160 <filter>'log' in oo['out']</filter> 166 <filter>'log' in oo['out']</filter>
161 </data> 167 </data>
162 </outputs> 168 </outputs>
163 <tests> 169 <tests>
164 <!-- no test implemented for: gene_trans_map, retain_blastp_hits, retain_pfam_hits -->
165
166 <!-- #1 default --> 170 <!-- #1 default -->
167 <test expect_num_outputs="5"> 171 <test expect_num_outputs="5">
168 <param name="t" value="transcripts.fasta"/> 172 <param name="t" value="transcripts.fasta"/>
169 <!-- LongOrfs --> 173 <!-- LongOrfs -->
170 <output name="out_lo_pep"> 174 <output name="out_lo_pep">
171 <assert_contents> 175 <assert_contents>
172 <has_n_lines n="772"/> 176 <has_n_lines n="190"/>
173 <has_text_matching expression=".+comp874.+"/> 177 <has_line line=">CUFF.20.1.p2 type:3prime_partial len:205 gc:Universal CUFF.20.1:612-1(-)"/>
174 </assert_contents> 178 </assert_contents>
175 </output> 179 </output>
176 <!-- Predict --> 180 <!-- Predict -->
177 <output name="out_bed"> 181 <output name="out_bed">
178 <assert_contents> 182 <assert_contents>
179 <has_n_lines n="337"/> 183 <has_n_lines n="81"/>
180 <has_text_matching expression="comp98\_c0\_seq1.+"/> 184 <has_text_matching expression="CUFF\.9\.1.+"/>
181 </assert_contents> 185 </assert_contents>
182 </output> 186 </output>
183 <output name="out_cds"> 187 <output name="out_cds">
184 <assert_contents> 188 <assert_contents>
185 <has_n_lines n="6959"/> 189 <has_n_lines n="1578"/>
186 <has_text_matching expression=">comp98\_c0\_seq1.+"/> 190 <has_line line=">CUFF.9.1.p1 GENE.CUFF.9.1~~CUFF.9.1.p1 ORF type:complete len:156 (+),score=36.30 CUFF.9.1:173-640(+)"/>
187 </assert_contents> 191 </assert_contents>
188 </output> 192 </output>
189 <output name="out_gff3"> 193 <output name="out_gff3">
190 <assert_contents> 194 <assert_contents>
191 <has_n_lines n="2165"/> 195 <has_n_lines n="542"/>
192 <has_text_matching expression="comp98\_c0\_seq1.+"/> 196 <has_text_matching expression="CUFF\.9\.1.+"/>
193 </assert_contents> 197 </assert_contents>
194 </output> 198 </output>
195 <output name="out_pep"> 199 <output name="out_pep">
196 <assert_contents> 200 <assert_contents>
197 <has_n_lines n="2644"/> 201 <has_n_lines n="608"/>
198 <has_text_matching expression="comp98\_c0\_seq1.+"/> 202 <has_text_matching expression="CUFF\.9\.1.+"/>
199 </assert_contents> 203 </assert_contents>
200 </output> 204 </output>
201 </test> 205 </test>
202 <!-- #2 --> 206 <!-- #2 -->
203 <test expect_num_outputs="8"> 207 <test expect_num_outputs="9">
204 <param name="t" value="transcripts.fasta"/> 208 <param name="t" value="transcripts.fasta"/>
205 <param name="G" value="Acetabularia"/> 209 <param name="G" value="Acetabularia"/>
206 <section name="lo"> 210 <section name="lo">
207 <param name="m" value="101"/> 211 <param name="m" value="101"/>
208 <param name="S" value="true"/> 212 <param name="S" value="true"/>
209 </section> 213 </section>
210 <section name="po">
211 <conditional name="predict_cond">
212 <param name="predict_sel" value="yes"/>
213 <conditional name="mode_cond">
214 <param name="mode_sel" value="dynamic"/>
215 </conditional>
216 <param name="single_best_only" value="true"/>
217 <param name="no_refine_starts" value="true"/>
218 <param name="T" value="501"/>
219 </conditional>
220 </section>
221 <section name="oo">
222 <param name="out" value="lo_pep,lo_gff3,lo_cds,bed,cds,gff3,pep,log"/>
223 </section>
224 <!-- LongOrfs -->
225 <output name="out_lo_cds">
226 <assert_contents>
227 <has_n_lines n="1454"/>
228 <has_text_matching expression=">comp874\_c0\_seq1.+"/>
229 </assert_contents>
230 </output>
231 <output name="out_lo_gff3">
232 <assert_contents>
233 <has_n_lines n="4565"/>
234 <has_text_matching expression="comp874\_c0\_seq1.+"/>
235 </assert_contents>
236 </output>
237 <output name="out_lo_pep">
238 <assert_contents>
239 <has_n_lines n="1454"/>
240 <has_text_matching expression=">comp874\_c0\_seq1.+"/>
241 </assert_contents>
242 </output>
243 <!-- Predict -->
244 <output name="out_bed">
245 <assert_contents>
246 <has_n_lines n="340"/>
247 <has_text_matching expression="comp98\_c0\_seq1.+"/>
248 </assert_contents>
249 </output>
250 <output name="out_cds">
251 <assert_contents>
252 <has_n_lines n="7512"/>
253 <has_text_matching expression=">comp98\_c0\_seq1.+"/>
254 </assert_contents>
255 </output>
256 <output name="out_gff3">
257 <assert_contents>
258 <has_n_lines n="2000"/>
259 <has_text_matching expression="comp98\_c0\_seq1.+"/>
260 </assert_contents>
261 </output>
262 <output name="out_pep">
263 <assert_contents>
264 <has_n_lines n="2833"/>
265 <has_text_matching expression=">comp98\_c0\_seq1.+"/>
266 </assert_contents>
267 </output>
268 <!-- Others -->
269 <output name="out_log">
270 <assert_contents>
271 <has_text_matching expression="transdecoder is finished.+"/>
272 </assert_contents>
273 </output>
274 </test>
275 <!-- #3 -->
276 <test expect_num_outputs="8">
277 <param name="t" value="transcripts.fasta"/>
278 <section name="po"> 214 <section name="po">
279 <conditional name="predict_cond"> 215 <conditional name="predict_cond">
280 <param name="predict_sel" value="yes"/> 216 <param name="predict_sel" value="yes"/>
281 <conditional name="mode_cond"> 217 <conditional name="mode_cond">
282 <param name="mode_sel" value="strict"/> 218 <param name="mode_sel" value="strict"/>
283 <param name="retain_long_orfs_length" value="1000001"/> 219 <param name="retain_long_orfs_length" value="1000001"/>
284 </conditional> 220 </conditional>
221 <param name="retain_blastp_hits" value="blastp.outfmt6"/>
222 <param name="retain_pfam_hits" value="pfam.domtblout"/>
223 <param name="single_best_only" value="true"/>
224 <param name="no_refine_starts" value="true"/>
225 <param name="T" value="501"/>
285 </conditional> 226 </conditional>
286 </section> 227 </section>
287 <section name="oo"> 228 <section name="oo">
288 <param name="out" value="lo_pep,lo_gff3,lo_cds,bed,cds,gff3,pep,log"/> 229 <param name="out" value="lo_pep,lo_gff3,lo_cds,bed,cds,gff3,pep,plot,log"/>
289 </section> 230 </section>
290 <!-- LongOrfs --> 231 <!-- LongOrfs -->
291 <output name="out_lo_cds"> 232 <output name="out_lo_cds">
292 <assert_contents> 233 <assert_contents>
293 <has_n_lines n="772"/> 234 <has_n_lines n="398"/>
294 <has_text_matching expression=">comp874\_c0\_seq1.+"/> 235 <has_text_matching expression="CUFF\.20\.1.+"/>
295 </assert_contents> 236 </assert_contents>
296 </output> 237 </output>
297 <output name="out_lo_gff3"> 238 <output name="out_lo_gff3">
298 <assert_contents> 239 <assert_contents>
299 <has_n_lines n="2486"/> 240 <has_n_lines n="1330"/>
300 <has_text_matching expression="comp874\_c0\_seq1.+"/> 241 <has_text_matching expression="CUFF\.20\.1.+"/>
301 </assert_contents> 242 </assert_contents>
302 </output> 243 </output>
303 <output name="out_lo_pep"> 244 <output name="out_lo_pep">
304 <assert_contents> 245 <assert_contents>
305 <has_n_lines n="772"/> 246 <has_n_lines n="398"/>
306 <has_text_matching expression=">comp874\_c0\_seq1.+"/> 247 <has_text_matching expression="CUFF\.20\.1.+"/>
307 </assert_contents> 248 </assert_contents>
308 </output> 249 </output>
309 <!-- Predict --> 250 <!-- Predict -->
310 <output name="out_bed"> 251 <output name="out_bed">
311 <assert_contents> 252 <assert_contents>
312 <has_n_lines n="337"/> 253 <has_n_lines n="62"/>
313 <has_text_matching expression="comp98\_c0\_seq1.+"/> 254 <has_text_matching expression="CUFF\.9\.1.+"/>
314 </assert_contents> 255 </assert_contents>
315 </output> 256 </output>
316 <output name="out_cds"> 257 <output name="out_cds">
317 <assert_contents> 258 <assert_contents>
318 <has_n_lines n="6959"/> 259 <has_n_lines n="1312"/>
319 <has_text_matching expression=">comp98\_c0\_seq1.+"/> 260 <has_text_matching expression="CUFF\.9\.1.+"/>
320 </assert_contents> 261 </assert_contents>
321 </output> 262 </output>
322 <output name="out_gff3"> 263 <output name="out_gff3">
323 <assert_contents> 264 <assert_contents>
324 <has_n_lines n="2165"/> 265 <has_n_lines n="395"/>
325 <has_text_matching expression="comp98\_c0\_seq1.+"/> 266 <has_text_matching expression="CUFF\.9\.1.+"/>
326 </assert_contents> 267 </assert_contents>
327 </output> 268 </output>
328 <output name="out_pep"> 269 <output name="out_pep">
329 <assert_contents> 270 <assert_contents>
330 <has_n_lines n="2644"/> 271 <has_n_lines n="500"/>
331 <has_text_matching expression=">comp98\_c0\_seq1.+"/> 272 <has_text_matching expression="CUFF\.9\.1.+"/>
273 </assert_contents>
274 </output>
275 <output name="out_plot">
276 <assert_contents>
277 <has_size value="0"/>
278 </assert_contents>
279 </output>
280 <!-- Others -->
281 <output name="out_log">
282 <assert_contents>
283 <has_text_matching expression="transdecoder is finished.+"/>
284 </assert_contents>
285 </output>
286 </test>
287 <!-- #3 -->
288 <test expect_num_outputs="9">
289 <param name="t" value="pasa_assemblies.fasta"/>
290 <section name="lo">
291 <param name="gene_trans_map" value="pasa_genetransmap.txt"/>
292 </section>
293 <section name="oo">
294 <param name="out" value="lo_pep,lo_gff3,lo_cds,bed,cds,gff3,pep,plot,log"/>
295 </section>
296 <!-- LongOrfs -->
297 <output name="out_lo_cds">
298 <assert_contents>
299 <has_n_lines n="534"/>
300 <has_text_matching expression=">asmbl\_236\.p1.+"/>
301 </assert_contents>
302 </output>
303 <output name="out_lo_gff3">
304 <assert_contents>
305 <has_n_lines n="1742"/>
306 <has_text_matching expression="asmbl\_236.+"/>
307 </assert_contents>
308 </output>
309 <output name="out_lo_pep">
310 <assert_contents>
311 <has_n_lines n="534"/>
312 <has_text_matching expression=">asmbl\_236\.p1.+"/>
313 </assert_contents>
314 </output>
315 <!-- Predict -->
316 <output name="out_bed">
317 <assert_contents>
318 <has_n_lines n="204"/>
319 <has_text_matching expression="asmbl\_99.+"/>
320 </assert_contents>
321 </output>
322 <output name="out_cds">
323 <assert_contents>
324 <has_n_lines n="3560"/>
325 <has_text_matching expression=">asmbl\_99\.p1.+"/>
326 </assert_contents>
327 </output>
328 <output name="out_gff3">
329 <assert_contents>
330 <has_n_lines n="1337"/>
331 <has_text_matching expression="asmbl\_99.+"/>
332 </assert_contents>
333 </output>
334 <output name="out_pep">
335 <assert_contents>
336 <has_n_lines n="1391"/>
337 <has_text_matching expression=">asmbl\_99\.p1.+"/>
338 </assert_contents>
339 </output>
340 <output name="out_plot">
341 <assert_contents>
342 <has_size value="714868" delta="1000"/>
332 </assert_contents> 343 </assert_contents>
333 </output> 344 </output>
334 <!-- Others --> 345 <!-- Others -->
335 <output name="out_log"> 346 <output name="out_log">
336 <assert_contents> 347 <assert_contents>
345 <conditional name="predict_cond"> 356 <conditional name="predict_cond">
346 <param name="predict_sel" value="no"/> 357 <param name="predict_sel" value="no"/>
347 </conditional> 358 </conditional>
348 </section> 359 </section>
349 <!-- LongOrfs --> 360 <!-- LongOrfs -->
350 <output name="out_lo_pep"> 361 <output name="out_pep">
351 <assert_contents> 362 <assert_contents>
352 <has_n_lines n="772"/> 363 <has_n_lines n="190"/>
353 <has_text_matching expression="c"/> 364 <has_text_matching expression="CUFF\.9\.1.+"/>
354 </assert_contents> 365 </assert_contents>
355 </output> 366 </output>
356 </test> 367 </test>
357 </tests> 368 </tests>
358 <help><![CDATA[ 369 <help><![CDATA[
401 412
402 - Results (PEP/FASTA): peptide sequences for the final candidate ORFs; all shorter candidates within longer ORFs were removed 413 - Results (PEP/FASTA): peptide sequences for the final candidate ORFs; all shorter candidates within longer ORFs were removed
403 - Results (CDS/FASTA): nucleotide sequences for coding regions of the final candidate ORFs 414 - Results (CDS/FASTA): nucleotide sequences for coding regions of the final candidate ORFs
404 - Results (GFF3): positions within the target transcripts of the final selected ORFs 415 - Results (GFF3): positions within the target transcripts of the final selected ORFs
405 - Results (BED): BED-formatted file describing ORF positions, best for viewing using GenomeView or IGV 416 - Results (BED): BED-formatted file describing ORF positions, best for viewing using GenomeView or IGV
417 - Plots: sequence logos and scores (compressed PDF)
406 418
407 *Other* 419 *Other*
408 420
409 - Log file 421 - Log file
410 422