Mercurial > repos > devteam > samtool_filter2
diff 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 |
line wrap: on
line diff
--- a/samtool_filter2.xml Thu Oct 05 10:31:25 2017 -0400 +++ b/samtool_filter2.xml Wed Jun 06 18:43:15 2018 -0400 @@ -1,182 +1,175 @@ -<tool id="samtool_filter2" name="Filter SAM or BAM, output SAM or BAM" version="1.1.2"> - <description>files on FLAG MAPQ RG LN or by region</description> - <requirements> - <requirement type="package" version="1.2">samtools</requirement> - </requirements> - <stdio> - <exit_code range="1:" /> - </stdio> - <command> -<![CDATA[ +<tool id="samtool_filter2" name="Filter SAM or BAM, output SAM or BAM" version="1.8"> + <description>files on FLAG MAPQ RG LN or by region</description> + <requirements> + <requirement type="package" version="1.8">samtools</requirement> + </requirements> + <command detect_errors="exit_code"><![CDATA[ ##set up input files, regions requires input.bam and input.bai #if $input1.is_of_type('bam') - #set $input = 'input.bam' - ln -s '$input1' $input && - ln -s '$input1.metadata.bam_index' input.bai && + #set $input = 'input.bam' + ln -s '$input1' $input && + ln -s '$input1.metadata.bam_index' input.bai && #elif $input1.is_of_type('sam') - #set $input = 'input.sam' - ln -s '$input1' $input && + #set $input = 'input.sam' + ln -s '$input1' $input && #end if -samtools view $possibly_select_inverse '$output1' $header +samtools view +$possibly_select_inverse '$output1' +$header - #if $input1.is_of_type('sam') +#if $input1.is_of_type('sam') -S - #end if +#end if - #if str($outputtype) == 'bam' - -b - #end if +#if str($outputtype) == 'bam' + -b +#end if - #if str($mapq) - -q $mapq - #end if - #if $flag.filter == 'yes' - #if str($flag.reqBits) != 'None' - #set $reqs = str($flag.reqBits).split(',') - #set $reqFlag = 0 - #for $xn in $reqs: - #set $reqFlag += int($xn, 16) - #end for - -f $hex($reqFlag) - #end if - #if str($flag.skipBits) != 'None' - #set $skips = str($flag.skipBits).split(',') - #set $skipFlag = 0 - #for $xn in $skips: - #set $skipFlag += int(xn,16) - #end for - -F $hex($skipFlag) - #end if - #end if - #if str($read_group).strip() +#if str($mapq) + -q $mapq +#end if +#if $flag.filter == 'yes' + #if str($flag.reqBits) != 'None' + #set $reqs = str($flag.reqBits).split(',') + #set $reqFlag = 0 + #for $xn in $reqs: + #set $reqFlag += int($xn, 16) + #end for + -f $hex($reqFlag) + #end if + #if str($flag.skipBits) != 'None' + #set $skips = str($flag.skipBits).split(',') + #set $skipFlag = 0 + #for $xn in $skips: + #set $skipFlag += int(xn,16) + #end for + -F $hex($skipFlag) + #end if +#end if +#if str($read_group).strip() -r '$read_group' - #end if - #if str($library).strip() +#end if +#if str($library).strip() -l '$library' - #end if - #if $bed_file +#end if +#if $bed_file -L '$bed_file' - #end if - $input - #if str($regions).strip() and $input1.is_of_type('bam') +#end if +$input +#if str($regions).strip() and $input1.is_of_type('bam') #for region in str($regions).split(): - '$region' + '$region' #end for - #end if - ## need to redirect stderr message so galaxy does not think this failed - 2>&1 -]]> - </command> - <inputs> - <param name="input1" type="data" format="sam,bam" label="SAM or BAM file to filter" /> - <param name="header" type="select" label="Header in output"> - <option value="-h">Include Header</option> - <option value="">Exclude Header</option> - <option value="-H">Only the Header</option> - </param> - <param name="mapq" type="integer" value="" optional="true" label="Minimum MAPQ quality score" help="(-q)"> - <validator type="in_range" message="The MAPQ quality score can't be negative" min="0"/> - </param> - <conditional name="flag"> - <param name="filter" type="select" label="Filter on bitwise flag"> - <option value="no">no</option> - <option value="yes">yes</option> - </param> - <when value="no"/> - <when value="yes"> - <param name="reqBits" type="select" multiple="true" display="checkboxes" label="Only output alignments with all of these flag bits set" help="(-f)"> - <option value="0x0001">Read is paired</option> - <option value="0x0002">Read is mapped in a proper pair</option> - <option value="0x0004">The read is unmapped</option> - <option value="0x0008">The mate is unmapped</option> - <option value="0x0010">Read strand</option> - <option value="0x0020">Mate strand</option> - <option value="0x0040">Read is the first in a pair</option> - <option value="0x0080">Read is the second in a pair</option> - <option value="0x0100">The alignment or this read is not primary</option> - <option value="0x0200">The read fails platform/vendor quality checks</option> - <option value="0x0400">The read is a PCR or optical duplicate</option> - <option value="0x0800">Supplementary alignment</option> - </param> - <param name="skipBits" type="select" multiple="true" display="checkboxes" label="Skip alignments with any of these flag bits set" help="(-F)"> - <option value="0x0001">Read is paired</option> - <option value="0x0002">Read is mapped in a proper pair</option> - <option value="0x0004">The read is unmapped</option> - <option value="0x0008">The mate is unmapped</option> - <option value="0x0010">Read strand</option> - <option value="0x0020">Mate strand</option> - <option value="0x0040">Read is the first in a pair</option> - <option value="0x0080">Read is the second in a pair</option> - <option value="0x0100">The alignment or this read is not primary</option> - <option value="0x0200">The read fails platform/vendor quality checks</option> - <option value="0x0400">The read is a PCR or optical duplicate</option> - <option value="0x0800">Supplementary alignment</option> +#end if + ]]></command> + <inputs> + <param name="input1" type="data" format="sam,bam" label="SAM or BAM file to filter" /> + <param name="header" type="select" label="Header in output"> + <option value="-h">Include header</option> + <option value="">Exclude header</option> + <option value="-H">Only the header</option> </param> - </when> - </conditional> - <param name="library" type="text" value="" label="Select alignments from Library" - help="(-l) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> - <param name="read_group" type="text" value="" label="Select alignments from Read Group" - help="(-r) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> - <param name="bed_file" type="data" format="bed" optional="true" label="Output alignments overlapping the regions in the BED FILE" help="(-L)"/> - <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" /> - <param name="regions" type="text" value="" label="Select regions (only used when the input is in BAM format)" - help="region should be presented in one of the following formats: `chr1', `chr2:1,000' and `chr3:1000-2,000'"/> - <param name="outputtype" type="select" label="Select the output format"> - <option value="bam">BAM (-b)</option> - <option value="sam">SAM</option> - </param> - </inputs> - <outputs> - <data name="output1" format="sam" label="${tool.name} on ${on_string}: ${outputtype}"> - <change_format> - <when input="outputtype" value="bam" format="bam" /> - </change_format> - </data> - </outputs> - <tests> - <test> - <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> - <param name="header" value=""/> - <param name="filter" value="yes"/> - <param name="reqBits" value="0x0080"/> - <param name="outputtype" value="sam"/> - <output name="output1"> - <assert_contents> - <has_text text="141" /> - <not_has_text text="77" /> - </assert_contents> - </output> - </test> - <test> - <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> - <param name="header" value=""/> - <param name="filter" value="no"/> - <param name="read_group" value="rg1"/> - <param name="outputtype" value="sam"/> - <output name="output1"> - <assert_contents> - <has_text text="rg1" /> - <not_has_text text="rg2" /> - </assert_contents> - </output> - </test> - <test> - <param name="input1" value="bam_to_sam_in1.sam" ftype="sam" /> - <param name="header" value=""/> - <param name="filter" value="yes"/> - <param name="skipBits" value="0x0008"/> - <param name="mapq" value="250"/> - <param name="outputtype" value="sam"/> - <output name="output1"> - <assert_contents> - <has_text text="both_reads_align_clip_marked" /> - <not_has_text text="both_reads_present_only_first_aligns" /> - </assert_contents> - </output> - </test> - </tests> - <help> + <param name="mapq" type="integer" min="0" value="" optional="true" label="Minimum MAPQ quality score" help="(-q)" /> + <conditional name="flag"> + <param name="filter" type="select" label="Filter on bitwise flag"> + <option value="no">no</option> + <option value="yes">yes</option> + </param> + <when value="no"/> + <when value="yes"> + <param name="reqBits" type="select" multiple="true" display="checkboxes" label="Only output alignments with all of these flag bits set" help="(-f)"> + <option value="0x0001">Read is paired</option> + <option value="0x0002">Read is mapped in a proper pair</option> + <option value="0x0004">The read is unmapped</option> + <option value="0x0008">The mate is unmapped</option> + <option value="0x0010">Read strand</option> + <option value="0x0020">Mate strand</option> + <option value="0x0040">Read is the first in a pair</option> + <option value="0x0080">Read is the second in a pair</option> + <option value="0x0100">The alignment or this read is not primary</option> + <option value="0x0200">The read fails platform/vendor quality checks</option> + <option value="0x0400">The read is a PCR or optical duplicate</option> + <option value="0x0800">Supplementary alignment</option> + </param> + <param name="skipBits" type="select" multiple="true" display="checkboxes" label="Skip alignments with any of these flag bits set" help="(-F)"> + <option value="0x0001">Read is paired</option> + <option value="0x0002">Read is mapped in a proper pair</option> + <option value="0x0004">The read is unmapped</option> + <option value="0x0008">The mate is unmapped</option> + <option value="0x0010">Read strand</option> + <option value="0x0020">Mate strand</option> + <option value="0x0040">Read is the first in a pair</option> + <option value="0x0080">Read is the second in a pair</option> + <option value="0x0100">The alignment or this read is not primary</option> + <option value="0x0200">The read fails platform/vendor quality checks</option> + <option value="0x0400">The read is a PCR or optical duplicate</option> + <option value="0x0800">Supplementary alignment</option> + </param> + </when> + </conditional> + <param name="library" type="text" value="" label="Select alignments from Library" + help="(-l) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> + <param name="read_group" type="text" value="" label="Select alignments from Read Group" + help="(-r) Requires headers in the input SAM or BAM, otherwise no alignments will be output"/> + <param name="bed_file" type="data" format="bed" optional="true" label="Output alignments overlapping the regions in the BED file" help="(-L)"/> + <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" /> + <param name="regions" type="text" value="" label="Select regions (only used when the input is in BAM format)" + help="region should be presented in one of the following formats: `chr1', `chr2:1,000' and `chr3:1000-2,000'"/> + <param name="outputtype" type="select" label="Select the output format"> + <option value="bam">BAM (-b)</option> + <option value="sam">SAM</option> + </param> + </inputs> + <outputs> + <data name="output1" format="sam" label="${tool.name} on ${on_string}: ${outputtype}"> + <change_format> + <when input="outputtype" value="bam" format="bam" /> + </change_format> + </data> + </outputs> + <tests> + <test> + <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> + <param name="header" value=""/> + <param name="filter" value="yes"/> + <param name="reqBits" value="0x0080"/> + <param name="outputtype" value="sam"/> + <output name="output1"> + <assert_contents> + <has_text text="141" /> + <not_has_text text="77" /> + </assert_contents> + </output> + </test> + <test> + <param name="input1" value="bam_to_sam_in2.sam" ftype="sam" /> + <param name="header" value=""/> + <param name="filter" value="no"/> + <param name="read_group" value="rg1"/> + <param name="outputtype" value="sam"/> + <output name="output1"> + <assert_contents> + <has_text text="rg1" /> + <not_has_text text="rg2" /> + </assert_contents> + </output> + </test> + <test> + <param name="input1" value="bam_to_sam_in1.sam" ftype="sam" /> + <param name="header" value=""/> + <param name="filter" value="yes"/> + <param name="skipBits" value="0x0008"/> + <param name="mapq" value="250"/> + <param name="outputtype" value="sam"/> + <output name="output1"> + <assert_contents> + <has_text text="both_reads_align_clip_marked" /> + <not_has_text text="both_reads_present_only_first_aligns" /> + </assert_contents> + </output> + </test> + </tests> + <help><![CDATA[ **What it does** 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. @@ -206,9 +199,9 @@ chr2:1000000-2000000 chr2:1,000,000-2,000,000 chrX - - .. _SAMtools: http://www.htslib.org/ - - </help> + ]]></help> + <citations> + <citation type="doi">10.1093/bioinformatics/btp352</citation> + </citations> </tool>