0
|
1 <tool id="vcfvcfintersect" name="VCF-VCFintersect:" version="0.0.3">
|
|
2 <description>Intersect two VCF datasets</description>
|
|
3 <macros>
|
|
4 <import>macros.xml</import>
|
|
5 </macros>
|
|
6 <expand macro="requirements"></expand>
|
|
7 <expand macro="stdio"></expand>
|
|
8 <command>
|
|
9
|
|
10 #set $reference_fasta_filename = "localref.fa"
|
|
11 #if str( $reference_source.reference_source_selector ) == "history":
|
|
12 ln -s "${reference_source.ref_file}" "${reference_fasta_filename}" &&
|
|
13 #else:
|
|
14 #set $reference_fasta_filename = str( $reference_source.ref_file.fields.path )
|
|
15 #end if
|
|
16
|
|
17 #if $adv_options.adv_options_selector == True:
|
|
18
|
|
19 vcfintersect "${adv_options.adv_options_input}" ${loci} ${invert} -r "${reference_fasta_filename}" -w "${window_size}" ${isect_union} "${vcf_input1}" "${vcf_input2}" > "${out_file1}"
|
|
20
|
|
21 #else:
|
|
22
|
|
23 vcfintersect ${loci} ${invert} -r "${reference_fasta_filename}" -w "${window_size}" ${isect_union} "${vcf_input1}" "${vcf_input2}" > "${out_file1}"
|
|
24
|
|
25 #end if
|
|
26
|
|
27 </command>
|
|
28 <inputs>
|
|
29 <!-- selecting refernce source -->
|
|
30 <param name="vcf_input1" type="data" format="vcf" label="The first VCF dataset" />
|
|
31 <param name="vcf_input2" type="data" format="vcf" label="The second VCF dataset" help="The second dataset will be instersected with the first"/>
|
|
32 <conditional name="reference_source">
|
|
33 <param name="reference_source_selector" type="select" label="Choose the source for the reference genome" help="This tools needs to access reference genomes sequence specified by this option.">
|
|
34 <option value="cached">Locally cached</option>
|
|
35 <option value="history">History</option>
|
|
36 </param>
|
|
37 <when value="cached">
|
|
38 <param name="ref_file" type="select" label="Select reference genome">
|
|
39 <options from_data_table="fasta_indexes">
|
|
40 <!--<filter type="data_meta" key="dbkey" ref="input_bam" column="value"/>-->
|
|
41 </options>
|
|
42 <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>
|
|
43 </param>
|
|
44 </when>
|
|
45 <when value="history"> <!-- FIX ME!!!! -->
|
|
46 <param name="ref_file" type="data" format="fasta" label="Using reference file" />
|
|
47 </when>
|
|
48 </conditional>
|
|
49 <param name="isect_union" type="select" label="Union or intersection" help="-i or -u">
|
|
50 <option value="-i">Intersect</option>
|
|
51 <option value="-u">Union</option>
|
|
52 </param>
|
|
53 <param name="invert" type="boolean" truevalue="-v" falsevalue="" label="Invert selection?" help="-v, --invert" />
|
|
54 <param name="window_size" type="integer" value="30" label="compare records up to this many bp away (window size)" help="-w, --window-size" />
|
|
55 <param name="loci" type="boolean" truevalue="-l" falsevalue="" label="output whole loci when one alternate allele matches" help="-l, --loci" />
|
|
56 <conditional name="adv_options">
|
|
57 <param name="adv_options_selector" type="boolean" truevalue="use_adv_controls" label="Advanced controls" help="Allows you to specify options that are not listed above"/>
|
|
58 <when value="use_adv_controls">
|
|
59 <param name="adv_options_input" type="text" value="-t "vcfvcf-intersect-result"" label="Enter additional command line options described in the help section below" help="such as -m, -t, -V, -M, and -T" />
|
|
60 <sanitizer>
|
|
61 <valid initial="string.printable">
|
|
62 <remove value="'"/>
|
|
63 </valid>
|
|
64 <mapping initial="none">
|
|
65 <add source="'" target="__sq__"/>
|
|
66 </mapping>
|
|
67 </sanitizer>
|
|
68 </when>
|
|
69 </conditional>
|
|
70 </inputs>
|
|
71 <outputs>
|
|
72 <data format="vcf" name="out_file1" />
|
|
73 </outputs>
|
|
74 <tests>
|
|
75 <test>
|
|
76 <param name="reference_source_selector" value="history" />
|
|
77 <param name="vcf_input1" value="vcfvcfintersect-input1.vcf" />
|
|
78 <param name="vcf_input2" value="vcfvcfintersect-input2.vcf" />
|
|
79 <param name="isect_union" value="-i" />
|
|
80 <param name="invert" value="False" />
|
|
81 <param name="loci" value="False" />
|
|
82 <patam name="adv_options" value="False" />
|
|
83 <param name="window_size" value="30" />
|
|
84 <param name="ref_file" value="vcflib-test-genome-phix.fa" />
|
|
85 <output name="out_file1" file="vcfvcfintersect-test1.vcf"/>
|
|
86 </test>
|
|
87 <test>
|
|
88 <param name="reference_source_selector" value="history" />
|
|
89 <param name="vcf_input1" value="vcfvcfintersect-input1.vcf" />
|
|
90 <param name="vcf_input2" value="vcfvcfintersect-input2.vcf" />
|
|
91 <param name="isect_union" value="-u" />
|
|
92 <param name="invert" value="False" />
|
|
93 <param name="loci" value="False" />
|
|
94 <patam name="adv_options" value="False" />
|
|
95 <param name="window_size" value="30" />
|
|
96 <param name="ref_file" value="vcflib-test-genome-phix.fa" />
|
|
97 <output name="out_file1" file="vcfvcfintersect-test2.vcf"/>
|
|
98 </test>
|
|
99 </tests>
|
|
100 <help>
|
|
101
|
|
102 Computes intersections and unions for two VCF datasets. Unifies equivalent alleles within window-size bp.
|
|
103
|
|
104 The options are::
|
|
105
|
|
106 -v, --invert invert the selection, printing only records which would
|
|
107 -i, --intersect-vcf FILE use this VCF for set intersection generation
|
|
108 -u, --union-vcf FILE use this VCF for set union generation
|
|
109 -w, --window-size N compare records up to this many bp away (default 30)
|
|
110 -l, --loci output whole loci when one alternate allele matches
|
|
111 -m, --ref-match intersect on the basis of record REF string
|
|
112 -t, --tag TAG attach TAG to each record's info field if it would intersect
|
|
113 -V, --tag-value VAL use this value to indicate that the allele is passing
|
|
114 '.' will be used otherwise. default: 'PASS'
|
|
115 -M, --merge-from FROM-TAG
|
|
116 -T, --merge-to TO-TAG merge from FROM-TAG used in the -i file, setting TO-TAG
|
|
117 in the current file.
|
|
118
|
|
119 ----
|
|
120
|
|
121 VCFVCFintersect is based on vcfintersect utility of VCFlib toolkit developed by Erik Garrison (https://github.com/ekg/vcflib).
|
|
122 </help>
|
|
123 <expand macro="citations" />
|
|
124 </tool>
|