Mercurial > repos > devteam > samtool_filter2
annotate samtool_filter2.xml @ 2:886b73f04847 draft
planemo upload commit 1869970193a1878acbc0f8a79b81dd02b37f1dc1
author | devteam |
---|---|
date | Fri, 09 Oct 2015 17:24:03 -0400 |
parents | 94d5786febc4 |
children | c31a37f6d48a |
rev | line source |
---|---|
0 | 1 <tool id="samtool_filter2" name="Filter SAM or BAM, output SAM or BAM" version="1.1.1"> |
2 <description>files on FLAG MAPQ RG LN or by region</description> | |
3 <requirements> | |
4 <requirement type="package" version="0.1.18">samtools</requirement> | |
5 </requirements> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
6 <stdio> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
7 <exit_code range="1:" /> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
8 </stdio> |
0 | 9 <command> |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
10 <![CDATA[ |
0 | 11 ##set up input files, regions requires input.bam and input.bai |
12 #if isinstance($input1.datatype, $__app__.datatypes_registry.get_datatype_by_extension('bam').__class__): | |
13 #set $input = 'input.bam' | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
14 ln -s "$input1" $input && |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
15 ln -s "$input1.metadata.bam_index" input.bai && |
0 | 16 #elif isinstance($input1.datatype, $__app__.datatypes_registry.get_datatype_by_extension('sam').__class__): |
17 #set $input = 'input.sam' | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
18 ln -s "$input1" $input && |
0 | 19 #end if |
20 samtools view -o "$output1" $header | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
21 |
0 | 22 #if $input1.datatype.file_ext == 'sam': |
23 -S | |
24 #end if | |
25 | |
26 #if $outputtype.__str__ == "bam": | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
27 -b |
0 | 28 #end if |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
29 |
0 | 30 #if $mapq.__str__ != '': |
31 -q $mapq | |
32 #end if | |
33 #if $flag.filter.__str__ == 'yes': | |
34 #if $flag.reqBits.__str__ != 'None': | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
35 #set $reqs = $flag.reqBits.__str__.split(',') |
0 | 36 #set $reqFlag = 0 |
37 #for $xn in $reqs: | |
38 #set $reqFlag += int(xn,16) | |
39 #end for | |
40 -f $hex($reqFlag) | |
41 #end if | |
42 #if $flag.skipBits.__str__ != 'None': | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
43 #set $skips = $flag.skipBits.__str__.split(',') |
0 | 44 #set $skipFlag = 0 |
45 #for $xn in $skips: | |
46 #set $skipFlag += int(xn,16) | |
47 #end for | |
48 -F $hex($skipFlag) | |
49 #end if | |
50 #end if | |
51 #if $read_group.__str__.strip() != '': | |
52 -r $read_group | |
53 #end if | |
54 #if $library.__str__.strip() != '': | |
55 -l $library | |
56 #end if | |
57 #if $bed_file.__str__ != "None" and len($bed_file.__str__) > 0: | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
58 -L "$bed_file" |
0 | 59 #end if |
60 $input | |
61 #if $regions.__str__.strip() != '' and $input1.datatype.file_ext == 'bam': | |
62 $regions.__str__.strip() | |
63 #end if | |
64 ## need to redirect stderr message so galaxy does not think this failed | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
65 2>&1 |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
66 ]]> |
0 | 67 </command> |
68 <inputs> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
69 <param name="input1" type="data" format="sam,bam" label="SAM or BAM file to filter" /> |
0 | 70 <param name="header" type="select" label="Header in output"> |
71 <option value="-h">Include Header</option> | |
72 <option value="">Exclude Header</option> | |
73 <option value="-H">Only the Header</option> | |
74 </param> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
75 <param name="mapq" type="integer" value="" optional="true" label="Minimum MAPQ quality score" help="(-q)"> |
0 | 76 <validator type="in_range" message="The MAPQ quality score can't be negative" min="0"/> |
77 </param> | |
78 <conditional name="flag"> | |
79 <param name="filter" type="select" label="Filter on bitwise flag"> | |
80 <option value="no">no</option> | |
81 <option value="yes">yes</option> | |
82 </param> | |
83 <when value="no"/> | |
84 <when value="yes"> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
85 <param name="reqBits" type="select" multiple="true" display="checkboxes" label="Only output alignments with all of these flag bits set" help="(-f)"> |
0 | 86 <option value="0x0001">Read is paired</option> |
87 <option value="0x0002">Read is mapped in a proper pair</option> | |
88 <option value="0x0004">The read is unmapped</option> | |
89 <option value="0x0008">The mate is unmapped</option> | |
90 <option value="0x0010">Read strand</option> | |
91 <option value="0x0020">Mate strand</option> | |
92 <option value="0x0040">Read is the first in a pair</option> | |
93 <option value="0x0080">Read is the second in a pair</option> | |
94 <option value="0x0100">The alignment or this read is not primary</option> | |
95 <option value="0x0200">The read fails platform/vendor quality checks</option> | |
96 <option value="0x0400">The read is a PCR or optical duplicate</option> | |
97 </param> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
98 <param name="skipBits" type="select" multiple="true" display="checkboxes" label="Skip alignments with any of these flag bits set" help="(-F)"> |
0 | 99 <option value="0x0001">Read is paired</option> |
100 <option value="0x0002">Read is mapped in a proper pair</option> | |
101 <option value="0x0004">The read is unmapped</option> | |
102 <option value="0x0008">The mate is unmapped</option> | |
103 <option value="0x0010">Read strand</option> | |
104 <option value="0x0020">Mate strand</option> | |
105 <option value="0x0040">Read is the first in a pair</option> | |
106 <option value="0x0080">Read is the second in a pair</option> | |
107 <option value="0x0100">The alignment or this read is not primary</option> | |
108 <option value="0x0200">The read fails platform/vendor quality checks</option> | |
109 <option value="0x0400">The read is a PCR or optical duplicate</option> | |
110 </param> | |
111 </when> | |
112 </conditional> | |
2
886b73f04847
planemo upload commit 1869970193a1878acbc0f8a79b81dd02b37f1dc1
devteam
parents:
1
diff
changeset
|
113 <param name="library" type="text" value="" label="Select alignments from Library" |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
114 help="(-l) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> |
2
886b73f04847
planemo upload commit 1869970193a1878acbc0f8a79b81dd02b37f1dc1
devteam
parents:
1
diff
changeset
|
115 <param name="read_group" type="text" value="" label="Select alignments from Read Group" |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
116 help="(-r) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
117 <param name="bed_file" type="data" format="bed" optional="true" label="Output alignments overlapping the regions in the BED FILE" help="(-L)"/> |
2
886b73f04847
planemo upload commit 1869970193a1878acbc0f8a79b81dd02b37f1dc1
devteam
parents:
1
diff
changeset
|
118 <param name="regions" type="text" value="" label="Select regions (only used when the input is in BAM format)" |
0 | 119 help="region should be presented in one of the following formats: `chr1', `chr2:1,000' and `chr3:1000-2,000'"/> |
120 <param name="outputtype" type="select" label="Select the output format"> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
121 <option value="bam">BAM (-b)</option> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
122 <option value="sam">SAM</option> |
0 | 123 </param> |
124 </inputs> | |
125 <outputs> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
126 <data name="output1" format="sam" label="${tool.name} on ${on_string}: ${outputtype}"> |
0 | 127 <change_format> |
128 <when input="outputtype" value="bam" format="bam" /> | |
129 </change_format> | |
130 </data> | |
131 </outputs> | |
132 <tests> | |
133 <test> | |
134 <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> | |
135 <param name="header" value=""/> | |
136 <param name="filter" value="yes"/> | |
137 <param name="reqBits" value="0x0080"/> | |
138 <param name="outputtype" value="sam"/> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
139 <output name="output1"> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
140 <assert_contents> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
141 <has_text text="141" /> |
0 | 142 <not_has_text text="77" /> |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
143 </assert_contents> |
0 | 144 </output> |
145 </test> | |
146 <test> | |
147 <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> | |
148 <param name="header" value=""/> | |
149 <param name="filter" value="no"/> | |
150 <param name="read_group" value="rg1"/> | |
151 <param name="outputtype" value="sam"/> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
152 <output name="output1"> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
153 <assert_contents> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
154 <has_text text="rg1" /> |
0 | 155 <not_has_text text="rg2" /> |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
156 </assert_contents> |
0 | 157 </output> |
158 </test> | |
159 <test> | |
160 <param name="input1" value="bam_to_sam_in1.sam" ftype="sam" /> | |
161 <param name="header" value=""/> | |
162 <param name="filter" value="yes"/> | |
163 <param name="skipBits" value="0x0008"/> | |
164 <param name="mapq" value="250"/> | |
165 <param name="outputtype" value="sam"/> | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
166 <output name="output1"> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
167 <assert_contents> |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
168 <has_text text="both_reads_align_clip_marked" /> |
0 | 169 <not_has_text text="both_reads_present_only_first_aligns" /> |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
170 </assert_contents> |
0 | 171 </output> |
172 </test> | |
173 </tests> | |
174 <help> | |
175 **What it does** | |
176 | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
177 This tool uses the samtools view command in SAMtools_ toolkit to filter a SAM or BAM file on the MAPQ (mapping quality), FLAG bits, Read Group, Library, or region. |
0 | 178 |
179 **Input** | |
180 | |
181 Input is either a SAM or BAM file. | |
182 | |
183 **Output** | |
184 | |
185 The output file will be SAM or BAM (depending on the chosen option), filtered by the selected options. | |
186 | |
187 **Options** | |
188 | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
189 Filtering by read group or library requires headers in the input SAM or BAM file. |
0 | 190 |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
191 If regions are specified, only alignments overlapping the specified regions will be output. An alignment may be given multiple times if it is overlapping several regions. |
0 | 192 A region can be presented, for example, in the following format:: |
193 | |
194 chr2 (the whole chr2) | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
195 chr2:1000000 (region starting from 1,000,000bp) |
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
196 chr2:1,000,000-2,000,000 (region between 1,000,000 and 2,000,000bp including the end points). |
0 | 197 |
198 Note: The coordinate is 1-based. | |
199 | |
200 Multiple regions may be specified, separated by a space character:: | |
201 | |
202 chr2:1000000-2000000 chr2:1,000,000-2,000,000 chrX | |
203 | |
204 | |
205 | |
1
94d5786febc4
planemo upload commit 4381f4022eca6f3c58ae1d01096795cd28c15062
devteam
parents:
0
diff
changeset
|
206 .. _SAMtools: http://samtools.sourceforge.net/ |
0 | 207 |
208 </help> | |
209 </tool> |