Mercurial > repos > devteam > samtool_filter2
comparison samtool_filter2.xml @ 17:3263a2b5d9f0 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/samtool_filter2 commit 24d5defd0880276f60d3d2f6abed9a00fa57eb0e
| author | iuc |
|---|---|
| date | Wed, 06 Jun 2018 18:43:15 -0400 |
| parents | 160964255888 |
| children | a201937caf2e |
comparison
equal
deleted
inserted
replaced
| 16:160964255888 | 17:3263a2b5d9f0 |
|---|---|
| 1 <tool id="samtool_filter2" name="Filter SAM or BAM, output SAM or BAM" version="1.1.2"> | 1 <tool id="samtool_filter2" name="Filter SAM or BAM, output SAM or BAM" version="1.8"> |
| 2 <description>files on FLAG MAPQ RG LN or by region</description> | 2 <description>files on FLAG MAPQ RG LN or by region</description> |
| 3 <requirements> | 3 <requirements> |
| 4 <requirement type="package" version="1.2">samtools</requirement> | 4 <requirement type="package" version="1.8">samtools</requirement> |
| 5 </requirements> | 5 </requirements> |
| 6 <stdio> | 6 <command detect_errors="exit_code"><![CDATA[ |
| 7 <exit_code range="1:" /> | |
| 8 </stdio> | |
| 9 <command> | |
| 10 <![CDATA[ | |
| 11 ##set up input files, regions requires input.bam and input.bai | 7 ##set up input files, regions requires input.bam and input.bai |
| 12 #if $input1.is_of_type('bam') | 8 #if $input1.is_of_type('bam') |
| 13 #set $input = 'input.bam' | 9 #set $input = 'input.bam' |
| 14 ln -s '$input1' $input && | 10 ln -s '$input1' $input && |
| 15 ln -s '$input1.metadata.bam_index' input.bai && | 11 ln -s '$input1.metadata.bam_index' input.bai && |
| 16 #elif $input1.is_of_type('sam') | 12 #elif $input1.is_of_type('sam') |
| 17 #set $input = 'input.sam' | 13 #set $input = 'input.sam' |
| 18 ln -s '$input1' $input && | 14 ln -s '$input1' $input && |
| 19 #end if | 15 #end if |
| 20 samtools view $possibly_select_inverse '$output1' $header | 16 samtools view |
| 21 | 17 $possibly_select_inverse '$output1' |
| 22 #if $input1.is_of_type('sam') | 18 $header |
| 19 | |
| 20 #if $input1.is_of_type('sam') | |
| 23 -S | 21 -S |
| 24 #end if | 22 #end if |
| 25 | 23 |
| 26 #if str($outputtype) == 'bam' | 24 #if str($outputtype) == 'bam' |
| 27 -b | 25 -b |
| 28 #end if | 26 #end if |
| 29 | 27 |
| 30 #if str($mapq) | 28 #if str($mapq) |
| 31 -q $mapq | 29 -q $mapq |
| 32 #end if | 30 #end if |
| 33 #if $flag.filter == 'yes' | 31 #if $flag.filter == 'yes' |
| 34 #if str($flag.reqBits) != 'None' | 32 #if str($flag.reqBits) != 'None' |
| 35 #set $reqs = str($flag.reqBits).split(',') | 33 #set $reqs = str($flag.reqBits).split(',') |
| 36 #set $reqFlag = 0 | 34 #set $reqFlag = 0 |
| 37 #for $xn in $reqs: | 35 #for $xn in $reqs: |
| 38 #set $reqFlag += int($xn, 16) | 36 #set $reqFlag += int($xn, 16) |
| 39 #end for | 37 #end for |
| 40 -f $hex($reqFlag) | 38 -f $hex($reqFlag) |
| 41 #end if | 39 #end if |
| 42 #if str($flag.skipBits) != 'None' | 40 #if str($flag.skipBits) != 'None' |
| 43 #set $skips = str($flag.skipBits).split(',') | 41 #set $skips = str($flag.skipBits).split(',') |
| 44 #set $skipFlag = 0 | 42 #set $skipFlag = 0 |
| 45 #for $xn in $skips: | 43 #for $xn in $skips: |
| 46 #set $skipFlag += int(xn,16) | 44 #set $skipFlag += int(xn,16) |
| 47 #end for | 45 #end for |
| 48 -F $hex($skipFlag) | 46 -F $hex($skipFlag) |
| 49 #end if | 47 #end if |
| 50 #end if | 48 #end if |
| 51 #if str($read_group).strip() | 49 #if str($read_group).strip() |
| 52 -r '$read_group' | 50 -r '$read_group' |
| 53 #end if | 51 #end if |
| 54 #if str($library).strip() | 52 #if str($library).strip() |
| 55 -l '$library' | 53 -l '$library' |
| 56 #end if | 54 #end if |
| 57 #if $bed_file | 55 #if $bed_file |
| 58 -L '$bed_file' | 56 -L '$bed_file' |
| 59 #end if | 57 #end if |
| 60 $input | 58 $input |
| 61 #if str($regions).strip() and $input1.is_of_type('bam') | 59 #if str($regions).strip() and $input1.is_of_type('bam') |
| 62 #for region in str($regions).split(): | 60 #for region in str($regions).split(): |
| 63 '$region' | 61 '$region' |
| 64 #end for | 62 #end for |
| 65 #end if | 63 #end if |
| 66 ## need to redirect stderr message so galaxy does not think this failed | 64 ]]></command> |
| 67 2>&1 | 65 <inputs> |
| 68 ]]> | 66 <param name="input1" type="data" format="sam,bam" label="SAM or BAM file to filter" /> |
| 69 </command> | 67 <param name="header" type="select" label="Header in output"> |
| 70 <inputs> | 68 <option value="-h">Include header</option> |
| 71 <param name="input1" type="data" format="sam,bam" label="SAM or BAM file to filter" /> | 69 <option value="">Exclude header</option> |
| 72 <param name="header" type="select" label="Header in output"> | 70 <option value="-H">Only the header</option> |
| 73 <option value="-h">Include Header</option> | |
| 74 <option value="">Exclude Header</option> | |
| 75 <option value="-H">Only the Header</option> | |
| 76 </param> | |
| 77 <param name="mapq" type="integer" value="" optional="true" label="Minimum MAPQ quality score" help="(-q)"> | |
| 78 <validator type="in_range" message="The MAPQ quality score can't be negative" min="0"/> | |
| 79 </param> | |
| 80 <conditional name="flag"> | |
| 81 <param name="filter" type="select" label="Filter on bitwise flag"> | |
| 82 <option value="no">no</option> | |
| 83 <option value="yes">yes</option> | |
| 84 </param> | |
| 85 <when value="no"/> | |
| 86 <when value="yes"> | |
| 87 <param name="reqBits" type="select" multiple="true" display="checkboxes" label="Only output alignments with all of these flag bits set" help="(-f)"> | |
| 88 <option value="0x0001">Read is paired</option> | |
| 89 <option value="0x0002">Read is mapped in a proper pair</option> | |
| 90 <option value="0x0004">The read is unmapped</option> | |
| 91 <option value="0x0008">The mate is unmapped</option> | |
| 92 <option value="0x0010">Read strand</option> | |
| 93 <option value="0x0020">Mate strand</option> | |
| 94 <option value="0x0040">Read is the first in a pair</option> | |
| 95 <option value="0x0080">Read is the second in a pair</option> | |
| 96 <option value="0x0100">The alignment or this read is not primary</option> | |
| 97 <option value="0x0200">The read fails platform/vendor quality checks</option> | |
| 98 <option value="0x0400">The read is a PCR or optical duplicate</option> | |
| 99 <option value="0x0800">Supplementary alignment</option> | |
| 100 </param> | 71 </param> |
| 101 <param name="skipBits" type="select" multiple="true" display="checkboxes" label="Skip alignments with any of these flag bits set" help="(-F)"> | 72 <param name="mapq" type="integer" min="0" value="" optional="true" label="Minimum MAPQ quality score" help="(-q)" /> |
| 102 <option value="0x0001">Read is paired</option> | 73 <conditional name="flag"> |
| 103 <option value="0x0002">Read is mapped in a proper pair</option> | 74 <param name="filter" type="select" label="Filter on bitwise flag"> |
| 104 <option value="0x0004">The read is unmapped</option> | 75 <option value="no">no</option> |
| 105 <option value="0x0008">The mate is unmapped</option> | 76 <option value="yes">yes</option> |
| 106 <option value="0x0010">Read strand</option> | 77 </param> |
| 107 <option value="0x0020">Mate strand</option> | 78 <when value="no"/> |
| 108 <option value="0x0040">Read is the first in a pair</option> | 79 <when value="yes"> |
| 109 <option value="0x0080">Read is the second in a pair</option> | 80 <param name="reqBits" type="select" multiple="true" display="checkboxes" label="Only output alignments with all of these flag bits set" help="(-f)"> |
| 110 <option value="0x0100">The alignment or this read is not primary</option> | 81 <option value="0x0001">Read is paired</option> |
| 111 <option value="0x0200">The read fails platform/vendor quality checks</option> | 82 <option value="0x0002">Read is mapped in a proper pair</option> |
| 112 <option value="0x0400">The read is a PCR or optical duplicate</option> | 83 <option value="0x0004">The read is unmapped</option> |
| 113 <option value="0x0800">Supplementary alignment</option> | 84 <option value="0x0008">The mate is unmapped</option> |
| 85 <option value="0x0010">Read strand</option> | |
| 86 <option value="0x0020">Mate strand</option> | |
| 87 <option value="0x0040">Read is the first in a pair</option> | |
| 88 <option value="0x0080">Read is the second in a pair</option> | |
| 89 <option value="0x0100">The alignment or this read is not primary</option> | |
| 90 <option value="0x0200">The read fails platform/vendor quality checks</option> | |
| 91 <option value="0x0400">The read is a PCR or optical duplicate</option> | |
| 92 <option value="0x0800">Supplementary alignment</option> | |
| 93 </param> | |
| 94 <param name="skipBits" type="select" multiple="true" display="checkboxes" label="Skip alignments with any of these flag bits set" help="(-F)"> | |
| 95 <option value="0x0001">Read is paired</option> | |
| 96 <option value="0x0002">Read is mapped in a proper pair</option> | |
| 97 <option value="0x0004">The read is unmapped</option> | |
| 98 <option value="0x0008">The mate is unmapped</option> | |
| 99 <option value="0x0010">Read strand</option> | |
| 100 <option value="0x0020">Mate strand</option> | |
| 101 <option value="0x0040">Read is the first in a pair</option> | |
| 102 <option value="0x0080">Read is the second in a pair</option> | |
| 103 <option value="0x0100">The alignment or this read is not primary</option> | |
| 104 <option value="0x0200">The read fails platform/vendor quality checks</option> | |
| 105 <option value="0x0400">The read is a PCR or optical duplicate</option> | |
| 106 <option value="0x0800">Supplementary alignment</option> | |
| 107 </param> | |
| 108 </when> | |
| 109 </conditional> | |
| 110 <param name="library" type="text" value="" label="Select alignments from Library" | |
| 111 help="(-l) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> | |
| 112 <param name="read_group" type="text" value="" label="Select alignments from Read Group" | |
| 113 help="(-r) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> | |
| 114 <param name="bed_file" type="data" format="bed" optional="true" label="Output alignments overlapping the regions in the BED file" help="(-L)"/> | |
| 115 <param name="possibly_select_inverse" type="boolean" truevalue="-U" falsevalue="-o" checked="false" label="Use inverse selection" help="Select the opposite of the listed chromosomes" /> | |
| 116 <param name="regions" type="text" value="" label="Select regions (only used when the input is in BAM format)" | |
| 117 help="region should be presented in one of the following formats: `chr1', `chr2:1,000' and `chr3:1000-2,000'"/> | |
| 118 <param name="outputtype" type="select" label="Select the output format"> | |
| 119 <option value="bam">BAM (-b)</option> | |
| 120 <option value="sam">SAM</option> | |
| 114 </param> | 121 </param> |
| 115 </when> | 122 </inputs> |
| 116 </conditional> | 123 <outputs> |
| 117 <param name="library" type="text" value="" label="Select alignments from Library" | 124 <data name="output1" format="sam" label="${tool.name} on ${on_string}: ${outputtype}"> |
| 118 help="(-l) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> | 125 <change_format> |
| 119 <param name="read_group" type="text" value="" label="Select alignments from Read Group" | 126 <when input="outputtype" value="bam" format="bam" /> |
| 120 help="(-r) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> | 127 </change_format> |
| 121 <param name="bed_file" type="data" format="bed" optional="true" label="Output alignments overlapping the regions in the BED FILE" help="(-L)"/> | 128 </data> |
| 122 <param name="possibly_select_inverse" checked="false" label="Use inverse selection" type="boolean" truevalue="-U" falsevalue="-o" help="Select the opposite of the listed chromosomes" /> | 129 </outputs> |
| 123 <param name="regions" type="text" value="" label="Select regions (only used when the input is in BAM format)" | 130 <tests> |
| 124 help="region should be presented in one of the following formats: `chr1', `chr2:1,000' and `chr3:1000-2,000'"/> | 131 <test> |
| 125 <param name="outputtype" type="select" label="Select the output format"> | 132 <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> |
| 126 <option value="bam">BAM (-b)</option> | 133 <param name="header" value=""/> |
| 127 <option value="sam">SAM</option> | 134 <param name="filter" value="yes"/> |
| 128 </param> | 135 <param name="reqBits" value="0x0080"/> |
| 129 </inputs> | 136 <param name="outputtype" value="sam"/> |
| 130 <outputs> | 137 <output name="output1"> |
| 131 <data name="output1" format="sam" label="${tool.name} on ${on_string}: ${outputtype}"> | 138 <assert_contents> |
| 132 <change_format> | 139 <has_text text="141" /> |
| 133 <when input="outputtype" value="bam" format="bam" /> | 140 <not_has_text text="77" /> |
| 134 </change_format> | 141 </assert_contents> |
| 135 </data> | 142 </output> |
| 136 </outputs> | 143 </test> |
| 137 <tests> | 144 <test> |
| 138 <test> | 145 <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> |
| 139 <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> | 146 <param name="header" value=""/> |
| 140 <param name="header" value=""/> | 147 <param name="filter" value="no"/> |
| 141 <param name="filter" value="yes"/> | 148 <param name="read_group" value="rg1"/> |
| 142 <param name="reqBits" value="0x0080"/> | 149 <param name="outputtype" value="sam"/> |
| 143 <param name="outputtype" value="sam"/> | 150 <output name="output1"> |
| 144 <output name="output1"> | 151 <assert_contents> |
| 145 <assert_contents> | 152 <has_text text="rg1" /> |
| 146 <has_text text="141" /> | 153 <not_has_text text="rg2" /> |
| 147 <not_has_text text="77" /> | 154 </assert_contents> |
| 148 </assert_contents> | 155 </output> |
| 149 </output> | 156 </test> |
| 150 </test> | 157 <test> |
| 151 <test> | 158 <param name="input1" value="bam_to_sam_in1.sam" ftype="sam" /> |
| 152 <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> | 159 <param name="header" value=""/> |
| 153 <param name="header" value=""/> | 160 <param name="filter" value="yes"/> |
| 154 <param name="filter" value="no"/> | 161 <param name="skipBits" value="0x0008"/> |
| 155 <param name="read_group" value="rg1"/> | 162 <param name="mapq" value="250"/> |
| 156 <param name="outputtype" value="sam"/> | 163 <param name="outputtype" value="sam"/> |
| 157 <output name="output1"> | 164 <output name="output1"> |
| 158 <assert_contents> | 165 <assert_contents> |
| 159 <has_text text="rg1" /> | 166 <has_text text="both_reads_align_clip_marked" /> |
| 160 <not_has_text text="rg2" /> | 167 <not_has_text text="both_reads_present_only_first_aligns" /> |
| 161 </assert_contents> | 168 </assert_contents> |
| 162 </output> | 169 </output> |
| 163 </test> | 170 </test> |
| 164 <test> | 171 </tests> |
| 165 <param name="input1" value="bam_to_sam_in1.sam" ftype="sam" /> | 172 <help><![CDATA[ |
| 166 <param name="header" value=""/> | |
| 167 <param name="filter" value="yes"/> | |
| 168 <param name="skipBits" value="0x0008"/> | |
| 169 <param name="mapq" value="250"/> | |
| 170 <param name="outputtype" value="sam"/> | |
| 171 <output name="output1"> | |
| 172 <assert_contents> | |
| 173 <has_text text="both_reads_align_clip_marked" /> | |
| 174 <not_has_text text="both_reads_present_only_first_aligns" /> | |
| 175 </assert_contents> | |
| 176 </output> | |
| 177 </test> | |
| 178 </tests> | |
| 179 <help> | |
| 180 **What it does** | 173 **What it does** |
| 181 | 174 |
| 182 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. | 175 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. |
| 183 | 176 |
| 184 **Input** | 177 **Input** |
| 204 | 197 |
| 205 Multiple regions may be specified, separated by a space character:: | 198 Multiple regions may be specified, separated by a space character:: |
| 206 | 199 |
| 207 chr2:1000000-2000000 chr2:1,000,000-2,000,000 chrX | 200 chr2:1000000-2000000 chr2:1,000,000-2,000,000 chrX |
| 208 | 201 |
| 209 | |
| 210 | |
| 211 .. _SAMtools: http://www.htslib.org/ | 202 .. _SAMtools: http://www.htslib.org/ |
| 212 | 203 ]]></help> |
| 213 </help> | 204 <citations> |
| 205 <citation type="doi">10.1093/bioinformatics/btp352</citation> | |
| 206 </citations> | |
| 214 </tool> | 207 </tool> |
