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