1 | <tool id="sam_indel_filter" name="Filter Indels" version="1.0.0"> |
---|
2 | <description>for SAM</description> |
---|
3 | <command interpreter="python"> |
---|
4 | sam_indel_filter.py |
---|
5 | --input=$input1 |
---|
6 | --quality_threshold=$quality_threshold |
---|
7 | --adjacent_bases=$adjacent_bases |
---|
8 | --output=$out_file1 |
---|
9 | </command> |
---|
10 | <inputs> |
---|
11 | <param format="sam" name="input1" type="data" label="Select dataset to filter" /> |
---|
12 | <param name="quality_threshold" type="integer" value="40" label="Quality threshold for adjacent bases" help="Takes Phred value assuming Sanger scale; usually between 0 and 40, but up to 93" /> |
---|
13 | <param name="adjacent_bases" type="integer" value="1" label="The number of adjacent bases to match on either side of the indel" help="If one side is shorter than this width, the read will be excluded" /> |
---|
14 | </inputs> |
---|
15 | <outputs> |
---|
16 | <data format="sam" name="out_file1" /> |
---|
17 | </outputs> |
---|
18 | <tests> |
---|
19 | <test> |
---|
20 | <param name="input1" value="sam_indel_filter_in1.sam" ftype="sam"/> |
---|
21 | <param name="quality_threshold" value="14"/> |
---|
22 | <param name="adjacent_bases" value="2"/> |
---|
23 | <output name="out_file1" file="sam_indel_filter_out1.sam" ftype="sam"/> |
---|
24 | </test> |
---|
25 | <test> |
---|
26 | <param name="input1" value="sam_indel_filter_in1.sam" ftype="sam"/> |
---|
27 | <param name="quality_threshold" value="29"/> |
---|
28 | <param name="adjacent_bases" value="5"/> |
---|
29 | <output name="out_file1" file="sam_indel_filter_out2.sam" ftype="sam"/> |
---|
30 | </test> |
---|
31 | <test> |
---|
32 | <param name="input1" value="sam_indel_filter_in2.sam" ftype="sam"/> |
---|
33 | <param name="quality_threshold" value="7"/> |
---|
34 | <param name="adjacent_bases" value="1"/> |
---|
35 | <output name="out_file1" file="sam_indel_filter_out3.sam" ftype="sam"/> |
---|
36 | </test> |
---|
37 | </tests> |
---|
38 | <help> |
---|
39 | |
---|
40 | **What it does** |
---|
41 | |
---|
42 | Allows extracting indels from SAM produced by BWA. Currently it can handle SAM with alignments that have only one insertion or one deletion, and will skip that alignment if it encounters one with more than one indel. It matches CIGAR strings (column 6 in the SAM file) like 5M3I5M or 4M2D10M, so there must be a match or mismatch of sufficient length on either side of the indel. |
---|
43 | |
---|
44 | ----- |
---|
45 | |
---|
46 | **Example** |
---|
47 | |
---|
48 | Suppose you have the following:: |
---|
49 | |
---|
50 | r770 89 ref 116 37 17M1I5M = 72131356 0 CACACTGTGACAGACAGCGCAGC 00/02!!0//1200210AA44/1 XT:A:U CM:i:2 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:1 XO:i:1 XG:i:1 MD:Z:22 |
---|
51 | r770 181 ref 116 0 24M = 72131356 0 TTGGTGCGCGCGGTTGAGGGTTGG $$(#%%#$%#%####$%%##$### |
---|
52 | r1945 177 ref 41710908 0 23M 190342418 181247988 0 AGAGAGAGAGAGAGAGAGAGAGA SQQWZYURVYWX]]YXTSY]]ZM XT:A:R CM:i:0 SM:i:0 AM:i:0 X0:i:163148 XM:i:0 XO:i:0 XG:i:0 MD:Z:23 |
---|
53 | r3671 117 ref 190342418 0 24M = 190342418 0 CTGGCGTTCTCGGCGTGGATGGGT #####$$##$#%#%%###%$#$## |
---|
54 | r3671 153 ref 190342418 37 16M1I6M = 190342418 0 TCTAACTTAGCCTCATAATAGCT /<<!"0///////00/!!0121/ XT:A:U CM:i:2 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:1 XO:i:1 XG:i:1 MD:Z:22 |
---|
55 | r3824 117 ref 80324999 0 24M = 80324999 0 TCCAGTCGCGTTGTTAGGTTCGGA #$#$$$#####%##%%###**#+/ |
---|
56 | r3824 153 ref 80324999 37 8M1I14M = 80324999 0 TTTAGCCCGAAATGCCTAGAGCA 4;6//11!"11100110////00 XT:A:U CM:i:2 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:1 XO:i:1 XG:i:1 MD:Z:22 |
---|
57 | r4795 81 ref 26739130 0 23M 57401793 57401793 0 TGGCATTCCTGTAGGCAGAGAGG AZWWZS]!"QNXZ]VQ]]]/2]] XT:A:R CM:i:2 SM:i:0 AM:i:0 X0:i:3 X1:i:0 XM:i:2 XO:i:0 XG:i:0 MD:Z:23 |
---|
58 | r4795 161 ref 57401793 37 23M 26739130 26739130 0 GATCACCCAGGTGATGTAACTCC ]WV]]]]WW]]]]]]]]]]PU]] XT:A:U CM:i:0 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:23 |
---|
59 | r4800 16 ref 241 255 15M1D8M = 0 0 CGTGGCCGGCGGGCCGAAGGCAT IIIIIIIIIICCCCIII?IIIII XT:A:U CM:i:2 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:1 XO:i:1 XG:i:1 MD:Z:22 |
---|
60 | r5377 170 ref 59090793 37 23M 26739130 26739130 0 TATCAATAAGGTGATGTAACTCG ]WV]ABAWW]]]]]P]P//GU]] XT:A:U CM:i:0 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:0 XO:i:0 XG:i:0 MD:Z:23 |
---|
61 | r5612 151 ref 190342418 37 19M1I3M = 190342418 0 TCTAACTTAGCCTCATAATAGCT /<<!"0/4//7//00/BC0121/ XT:A:U CM:i:2 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:1 XO:i:1 XG:i:1 MD:Z:22 |
---|
62 | |
---|
63 | |
---|
64 | To select only alignments with indels, you need to determine the minimum quality you want the adjacent bases to have, as well as the number of adjacent bases to check. If you set the quality threshold to 47 and the number of bases to check to 2, you will get the following output:: |
---|
65 | |
---|
66 | r770 89 ref 116 37 17M1I5M = 72131356 0 CACACTGTGACAGACAGCGCAGC 00/02!!0//1200210AA44/1 XT:A:U CM:i:2 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:1 XO:i:1 XG:i:1 MD:Z:22 |
---|
67 | r4800 16 ref 241 255 15M1D8M = 0 0 CGTGGCCGGCGGGCCGAAGGCAT IIIIIIIIIICCCCIII?IIIII XT:A:U CM:i:2 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:1 XO:i:1 XG:i:1 MD:Z:22 |
---|
68 | r5612 151 ref 190342418 37 19M1I3M = 190342418 0 TCTAACTTAGCCTCATAATAGCT /<<!"0/4//7//00/BC0121/ XT:A:U CM:i:2 SM:i:37 AM:i:0 X0:i:1 X1:i:0 XM:i:1 XO:i:1 XG:i:1 MD:Z:22 |
---|
69 | |
---|
70 | |
---|
71 | For more information on SAM, please consult the `SAM format description`__. |
---|
72 | |
---|
73 | .. __: http://www.ncbi.nlm.nih.gov/pubmed/19505943 |
---|
74 | |
---|
75 | |
---|
76 | </help> |
---|
77 | </tool> |
---|