view samtools_markdup.xml @ 0:046cbf29795a draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tool_collections/samtools/samtools_markdup commit 0fe00966500158720fb63dc9b28f6a4ca0d1e1eb
author iuc
date Fri, 28 Sep 2018 04:29:07 -0400
parents
children 83b8e36e9cbe
line wrap: on
line source

<tool id="samtools_markdup" name="Samtools markdup" version="@TOOL_VERSION@">
    <description>marks duplicate alignments</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="requirements"/>
    <expand macro="stdio"/>
    <expand macro="version_command"/>
    <command><![CDATA[
@ADDTHREADS@
## coordinate sort input 
#if not $bamfile.is_of_type('bam'):
    samtools sort
    -@ \$addthreads -m \${GALAXY_MEMORY_MB:-768}M -T sorttemp
    -O sam
    -o coordsort.sam
    '$bamfile' &&
#else:
    ln -s '$bamfile' coordsort.sam &&
#end if

samtools markdup 

-@ \$addthreads
#if str($maxlen) != '':
    -l $maxlen
#end if 
$remove 
$stats 
$supp
coordsort.sam 
'$output'
    ]]></command>
    <inputs>
        <param name="bamfile" type="data" format="sam,bam,cram" optional="false" label="Alignment" />
        <param name="remove" type="boolean" argument="-r" truevalue="-r" falsevalue="" label="Remove duplicate reads" />
        <param name="maxlen" type="integer" optional="true" argument="-l" min="0" label="Expected maximum read length of INT bases. (default 300)"/>
	<param name="stats" type="boolean" argument="-s" truevalue="-s" falsevalue="" label="Print basic statistics" />
	<param name="supp" type="boolean" argument="-S" truevalue="-S" falsevalue="" label="Mark supplementary reads of duplicates as duplicates" />
    </inputs>
    <outputs>
	<!-- output bam, if input was name sorted then restore this sorting order -->
	<data name="output" format="bam"/>
    </outputs>
    <tests>
        <!-- tests and data extracted from 
	     https://github.com/samtools/samtools/blob/6d79411685d8f0fbb34e123f52d72b63271f4dcb/test/test.pl#L2616 
             TODO the 1st 4 tests are negative, I do not know how to test for the error code 
-->
<!--    test_cmd($opts, out=>'markdup/1_name_sort.expected.sam', err=>'1_name_sort.expected.sam.err', cmd=>"$$opts{bin}/samtools markdup${threads} -O sam $$opts{path}/markdup/1_name_sort.sam -", expect_fail=>1);
    test_cmd($opts, out=>'markdup/2_bad_order.expected.sam', err=>'2_bad_order.expected.sam.err', cmd=>"$$opts{bin}/samtools markdup${threads} -O sam $$opts{path}/markdup/2_bad_order.sam -", expect_fail=>1);
    test_cmd($opts, out=>'markdup/3_missing_mc.expected.sam', err=>'3_missing_mc.expected.sam.err', cmd=>"$$opts{bin}/samtools markdup${threads} -O sam $$opts{path}/markdup/3_missing_mc.sam -", expect_fail=>1);
    test_cmd($opts, out=>'markdup/4_missing_ms.expected.sam', err=>'4_missing_ms.expected.sam.err', cmd=>"$$opts{bin}/samtools markdup${threads} -O sam $$opts{path}/markdup/4_missing_ms.sam -", expect_fail=>1);-->
        <test>
            <param name="bamfile" value="5_markdup.sam" />
            <output name="output" file="5_markdup.expected.bam" />
        </test>
        <!--    test_cmd($opts, out=>'markdup/5_markdup.expected.sam', cmd=>"$$opts{bin}/samtools markdup${threads} -O sam $$opts{path}/markdup/5_markdup.sam -");-->
        <test>
            <param name="bamfile" value="6_remove_dups.sam" />
            <param name="remove" value="-r" />
            <output name="output" file="6_remove_dups.expected.bam" />
        </test>
        <!--    test_cmd($opts, out=>'markdup/6_remove_dups.expected.sam', cmd=>"$$opts{bin}/samtools markdup${threads} -O sam -r $$opts{path}/markdup/6_remove_dups.sam -");-->
        <test>
            <param name="bamfile" value="7_mark_supp_dup.bam" />
            <param name="supp" value="-S" />
            <output name="output" file="7_mark_supp_dup.expected.bam" />
        </test>
        <!--
        test_cmd($opts, out=>'markdup/7_mark_supp_dup.expected.sam', cmd=>"$$opts{bin}/samtools markdup${threads} -S -O sam $$opts{path}/markdup/7_mark_supp_dup.sam -");-->
    </tests>
    <help>
Mark duplicate alignments from a coordinate sorted file that has been run through fixmate with the -m option. This program relies on the MC and ms tags that fixmate provides. 

Note: The Galaxy tool sorts the data automatically if the input is SAM or query name sorted. 
The output is BAM (which is query name sorted again if the input is).
    </help>
    <expand macro="citations"/>
</tool>