4
|
1 <tool id="pileup_to_vcf" name="Pileup to VCF" version="2.1">
|
0
|
2 <description>Converts a pileup to VCF with filtering</description>
|
|
3 <command interpreter="python">pileup_to_vcf.py -i $input_file -o $output_file
|
|
4 #if $min_cvrg.__str__ != '':
|
|
5 --min_coverage $min_cvrg
|
|
6 #end if
|
|
7 #if $min_base_qual.__str__ != '':
|
|
8 --min_base_qual $min_base_qual
|
|
9 #end if
|
|
10 #if $min_var_pct.__str__ != '':
|
|
11 --min_allele_freq $min_var_pct
|
|
12 #end if
|
|
13 #if $depth_as.__str__ != 'None':
|
|
14 --report_depth $depth_as
|
|
15 #end if
|
|
16 $allow_multiples
|
|
17 $snps_only
|
|
18 #if $cols.select_order == 'yes' :
|
|
19 #if $chrom_col.__str__ != '':
|
|
20 --chrom_col $chrom_col
|
|
21 #end if
|
|
22 #if $pos_col.__str__ != '':
|
|
23 --pos_col $pos_col
|
|
24 #end if
|
|
25 #if $ref_col.__str__ != '':
|
|
26 --ref_col $ref_col
|
|
27 #end if
|
|
28 #if $cvrg_col.__str__ != '':
|
|
29 --coverage_col $cvrg_col
|
|
30 #end if
|
|
31 #if $base_call_col.__str__ != '':
|
|
32 --base_call_col $base_call_col
|
|
33 #end if
|
|
34 #if $base_qual_col.__str__ != '':
|
|
35 --base_qual_col $base_qual_col
|
|
36 #end if
|
|
37 #end if
|
|
38 </command>
|
|
39 <inputs>
|
|
40 <param name="input_file" type="data" format="pileup,tabular" label="Source File" optional="false"/>
|
|
41 <conditional name="cols">
|
|
42 <param name="select_order" type="select" label="Set column positions for non-standard pileup">
|
|
43 <option value="no" selected="true">Use the default pileup columns</option>
|
|
44 <option value="yes">Select the column position that represents each pileup column</option>
|
|
45 </param>
|
|
46 <when value="no"/>
|
|
47 <when value="yes">
|
|
48 <param name="chrom_col" type="data_column" data_ref="input_file" label="Chromosome Column"/>
|
|
49 <param name="pos_col" type="data_column" data_ref="input_file" label="Position Column"/>
|
|
50 <param name="ref_col" type="data_column" data_ref="input_file" label="Reference Base Column"/>
|
|
51 <param name="cvrg_col" type="data_column" data_ref="input_file" label="Depth Column"/>
|
|
52 <param name="base_call_col" type="data_column" data_ref="input_file" label="Base Call Column"/>
|
|
53 <param name="base_qual_col" type="data_column" data_ref="input_file" label="Base Quality Column"/>
|
|
54 </when>
|
|
55 </conditional>
|
|
56 <param name="min_base_qual" type="integer" label="Minimum Base Quality" optional="true" value="20" help="Don't consider a read if the base call quality is below this threshold"/>
|
|
57 <param name="min_cvrg" type="integer" label="Minimum Coverage Depth" optional="true" value="5" help="Any position below the threshold will be omitted from the resulting VCF"/>
|
|
58 <param name="min_var_pct" type="float" label="Minimum Frequency of a Specific Allele" option="true" value="0.5" help="If an allele does not meet the minimum frequency it will be omitted from the resulting VCF."/>
|
|
59 <param name="allow_multiples" type="boolean" truevalue="-m" falsevalue="" chacked="true" label="Allow Multiple Alleles for a Position?"
|
|
60 help="Multiple alleles may be output in the VCF if the allowable frequency is below 0.5, otherwise only one will be reported"/>
|
|
61 <param name="snps_only" type="boolean" truevalue="-s" falsevalue="" chacked="false" label="Only report SNPs, not indels" />
|
|
62 <param name="depth_as" type="select" label="Report DP and SAF with read coverage of" help="The reported read voverage depth: DP, and the calculation of specific allele frequency (SAF) of variants">
|
2
|
63 <option value="source">Read coverage reported in pileup</option>
|
|
64 <option value="ref" selected="true">Reads at this position that have a base call</option>
|
0
|
65 <option value="qual">Reads at this position taht pass the base call quality threshold</option>
|
2
|
66 <option value="all">All reads and indels</option>
|
0
|
67 </param>
|
|
68 </inputs>
|
|
69 <outputs>
|
|
70 <data format="vcf" metadata_source="input_file" name="output_file" />
|
|
71 </outputs>
|
|
72 <stdio>
|
|
73 <exit_code range="1:" level="fatal" description="Bad input dataset" />
|
|
74 </stdio>
|
|
75 <tests>
|
|
76 <test>
|
|
77 <param name="input_file" ftype="pileup" value="test.pileup" />
|
|
78 <param name="select_order" value="no"/>
|
|
79 <param name="min_base_qual" value="0"/>
|
|
80 <param name="min_cvrg" value="0"/>
|
|
81 <param name="min_var_pct" value=".1"/>
|
|
82 <param name="allow_multiples" value="True"/>
|
|
83 <param name="snps_only" value="False"/>
|
|
84 <param name="depth_as" value="ref"/>
|
|
85 <output name="output_file">
|
|
86 <assert_contents>
|
|
87 <has_text_matching expression="seq2\t156\t.\tA\tG,AAG\t.\tPASS\t.*" />
|
|
88 <has_text_matching expression="chr1\t158571283\t.\tA\tC,T\t.\tPASS\t.*" />
|
|
89 </assert_contents>
|
|
90 </output>
|
|
91 </test>
|
|
92 <test>
|
|
93 <param name="input_file" ftype="pileup" value="test.pileup" />
|
|
94 <param name="select_order" value="no"/>
|
|
95 <param name="min_base_qual" value="20"/>
|
|
96 <param name="min_cvrg" value="5"/>
|
|
97 <param name="min_var_pct" value=".1"/>
|
|
98 <param name="allow_multiples" value="True"/>
|
|
99 <param name="snps_only" value="False"/>
|
|
100 <param name="depth_as" value="ref"/>
|
|
101 <output name="output_file">
|
|
102 <assert_contents>
|
|
103 <has_text_matching expression="seq2\t156\t.\tA\tG,AAG\t.\tPASS\t.*" />
|
|
104 <has_text_matching expression="chr1\t158571283\t.\tA\tC\t.\tPASS\t.*" />
|
|
105 </assert_contents>
|
|
106 </output>
|
|
107 </test>
|
|
108
|
|
109 </tests>
|
|
110 <help>
|
|
111 Pileup to VCF converts the output of a pileup tool to a VCF representing any alleles that surpass a user specified frequency, optionally presenting multiple alleles for a given position if the allele frequency is set below 0.5. This tool assumes that any filtering for base call quality and mapping quality has been done in previous processing.
|
|
112 </help>
|
|
113 </tool>
|