0
|
1 <tool id="bedtools_multiintersectbed" name="Intersect multiple sorted BED files" version="@WRAPPER_VERSION@.0">
|
|
2 <description></description>
|
|
3 <macros>
|
|
4 <import>macros.xml</import>
|
|
5 </macros>
|
|
6 <expand macro="requirements" />
|
|
7 <expand macro="stdio" />
|
|
8 <command>
|
1
|
9 <![CDATA[
|
|
10 bedtools multiinter
|
0
|
11 $header
|
1
|
12 $cluster
|
|
13 -filler "${filler}"
|
0
|
14 #if $zero.value == True:
|
|
15 -empty
|
1
|
16 -g $genome
|
0
|
17 #end if
|
|
18
|
1
|
19 #if str($tag.tag_select) == "tag":
|
|
20 #set files = '" "'.join( [ str( $file ) for $file in $tag.inputs ] )
|
|
21 -i "${files}"
|
|
22 #else:
|
|
23 -i
|
|
24 #for $file in $tag.beds:
|
|
25 "${file.input}"
|
|
26 #end for
|
|
27 -names
|
|
28 #for $file in $tag.beds:
|
|
29 "{$file.custom_name}"
|
|
30 #end for
|
0
|
31 #end if
|
|
32
|
1
|
33 > '$output'
|
|
34 ]]>
|
0
|
35 </command>
|
|
36 <inputs>
|
1
|
37 <conditional name="tag">
|
|
38 <param name="tag_select" type="select" label="Sample name">
|
0
|
39 <option value="tag" selected="true">Use input's tag</option>
|
1
|
40 <option value="custom">Enter custom name per file</option>
|
0
|
41 </param>
|
|
42 <when value="tag">
|
1
|
43 <param name="inputs" format="bed" type="data" multiple="True" label="BED files" />
|
0
|
44 </when>
|
|
45 <when value="custom">
|
1
|
46 <repeat name="beds" title="Add BED files" min="2" >
|
|
47 <param name="input" format="bed" type="data" multiple="True" label="BED file" />
|
|
48 <param name="custom_name" type="text" area="false" label="Custom sample name"/>
|
|
49 </repeat>
|
0
|
50 </when>
|
|
51 </conditional>
|
1
|
52 <expand macro="genome" />
|
|
53 <param name="cluster" type="boolean" checked="false" truevalue="-cluster" falsevalue=""
|
|
54 label="Invoke Ryan Layers's clustering algorithm"
|
|
55 help="(-cluster)" />
|
|
56 <param name="zero" type="boolean" checked="true"
|
|
57 label="Report regions that are not covered by any of the files"
|
|
58 help="If set, regions that are not overlapped by any file will also be reported. Requires a valid organism key for all input datasets" />
|
|
59 <param name="filler" type="text" value="N/A"
|
|
60 label="Text to use for no-coverage value"
|
|
61 help="Can be 0.0, N/A, - or any other value. (-filler)" />
|
|
62 <expand macro="print_header" />
|
0
|
63
|
|
64 </inputs>
|
|
65 <outputs>
|
1
|
66 <data format="bed" name="output" />
|
0
|
67 </outputs>
|
1
|
68 <tests>
|
|
69 <test>
|
|
70 <param name="tag_select" value="tag"/>
|
|
71 <param name="inputs" value="multiIntersectBed1.bed,multiIntersectBed2.bed,multiIntersectBed3.bed" ftype="bed" />
|
|
72 <param name="zero" value="False"/>
|
|
73 <output name="output" file="multiIntersectBed_result1.bed" ftype="bed" />
|
|
74 </test>
|
|
75 <test>
|
|
76 <param name="tag_select" value="tag"/>
|
|
77 <param name="inputs" value="multiIntersectBed1.bed,multiIntersectBed2.bed,multiIntersectBed3.bed" ftype="bed" />
|
|
78 <param name="header" value="True"/>
|
|
79 <param name="zero" value="False"/>
|
|
80 <output name="output" file="multiIntersectBed_result2.bed" lines_diff="2" ftype="bed" />
|
|
81 </test>
|
|
82 <test>
|
|
83 <param name="tag_select" value="tag"/>
|
|
84 <param name="inputs" value="multiIntersectBed1.bed,multiIntersectBed2.bed,multiIntersectBed3.bed" ftype="bed" />
|
|
85 <param name="zero" value="True"/>
|
|
86 <param name="genome" value="multiIntersectBed1.len"/>
|
|
87 <output name="output" file="multiIntersectBed_result3.bed" ftype="bed" />
|
|
88 </test>
|
|
89 </tests>
|
0
|
90 <help>
|
1
|
91 <![CDATA[
|
0
|
92 **What it does**
|
|
93
|
1
|
94 This tool identifies common intervals among multiple, sorted BED files. Intervals can be common among 0 to N of the N input BED files.
|
0
|
95
|
|
96
|
|
97 .. class:: warningmark
|
|
98
|
|
99 This tool requires that each BED file is reference-sorted (chrom, then start).
|
|
100
|
|
101
|
|
102 .. class:: infomark
|
|
103
|
|
104 The output file will contain five fixed columns, plus additional columns for each BED file:
|
|
105
|
|
106 * 1. Chromosome name (or 'genome' for whole-genome coverage).
|
|
107 * 2. The zero-based start position of the interval.
|
|
108 * 3. The one-based end position of the interval.
|
|
109 * 4. The number of input files that had at least one feature overlapping this interval.
|
|
110 * 5. A list of input files or labels that had at least one feature overlapping this interval.
|
|
111 * 6. For each input file, an indication (1 = Yes, 0 = No) of whether or not the file had at least one feature overlapping this interval.
|
|
112
|
|
113 ------
|
|
114
|
|
115 **Example input**::
|
|
116
|
|
117 # a.bed
|
1
|
118 chr1 6 12bed
|
0
|
119 chr1 10 20
|
|
120 chr1 22 27
|
|
121 chr1 24 30
|
|
122
|
|
123 # b.bed
|
|
124 chr1 12 32
|
|
125 chr1 14 30
|
|
126
|
|
127 # c.bed
|
|
128 chr1 8 15
|
|
129 chr1 10 14
|
|
130 chr1 32 34
|
|
131
|
|
132
|
|
133 ------
|
|
134
|
|
135 **Example without a header and without reporting intervals with zero coverage**::
|
|
136
|
|
137
|
|
138 chr1 6 8 1 1 1 0 0
|
|
139 chr1 8 12 2 1,3 1 0 1
|
|
140 chr1 12 15 3 1,2,3 1 1 1
|
|
141 chr1 15 20 2 1,2 1 1 0
|
|
142 chr1 20 22 1 2 0 1 0
|
|
143 chr1 22 30 2 1,2 1 1 0
|
|
144 chr1 30 32 1 2 0 1 0
|
|
145 chr1 32 34 1 3 0 0 1
|
|
146
|
|
147
|
|
148 **Example adding a header line**::
|
|
149
|
|
150
|
|
151 chrom start end num list a.bed b.bed c.bed
|
|
152 chr1 6 8 1 1 1 0 0
|
|
153 chr1 8 12 2 1,3 1 0 1
|
|
154 chr1 12 15 3 1,2,3 1 1 1
|
|
155 chr1 15 20 2 1,2 1 1 0
|
|
156 chr1 20 22 1 2 0 1 0
|
|
157 chr1 22 30 2 1,2 1 1 0
|
|
158 chr1 30 32 1 2 0 1 0
|
|
159 chr1 32 34 1 3 0 0 1
|
|
160
|
|
161
|
|
162 **Example adding a header line and custom file labels**::
|
|
163
|
|
164
|
|
165 chrom start end num list joe bob sue
|
|
166 chr1 6 8 1 joe 1 0 0
|
|
167 chr1 8 12 2 joe,sue 1 0 1
|
|
168 chr1 12 15 3 joe,bob,sue 1 1 1
|
|
169 chr1 15 20 2 joe,bob 1 1 0
|
|
170 chr1 20 22 1 bob 0 1 0
|
|
171 chr1 22 30 2 joe,bob 1 1 0
|
|
172 chr1 30 32 1 bob 0 1 0
|
|
173 chr1 32 34 1 sue 0 0 1
|
|
174
|
|
175
|
|
176 @REFERENCES@
|
1
|
177 ]]>
|
0
|
178 </help>
|
|
179 <expand macro="citations" />
|
|
180 </tool>
|