view nanopolish_variants.xml @ 9:f1141f6a2d65 draft

planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0ace87b59137f1ed770db97fbb33036e16205edf
author jdv
date Mon, 12 Feb 2018 23:15:26 -0500
parents 32cb27adeb34
children c00a942cfc0b
line wrap: on
line source

<tool id="nanopolish_variants" name="Nanopolish::variants" version="0.8.5">

    <description>Re-call consensus and variants from raw signal</description>

    <!-- ***************************************************************** -->
   
    <requirements>
        <requirement type="package" version="0.8.5">nanopolish</requirement>
    </requirements>

    <!-- ***************************************************************** -->

    <version_command>nanopolish --version | perl -wnE'print "$1\n" for /^nanopolish version (.+)$/mg'</version_command>

    <!-- ***************************************************************** -->

    <command detect_errors="aggressive">
    <![CDATA[

    ln -s $input_bam 'input.bam'  &&
    ln -s $input_bam.metadata.bam_index input.bai &&

    perl $__tool_directory__/nanopolish_variants.pl variants

        --reads     $input_reads
        --bam       input.bam
        --genome    $input_ref
        --consensus $out_consensus
        --outfile   $out_variants
        --threads \${GALAXY_SLOTS:-1}
        --max-rounds $max_rounds
        --max-haplotypes $max_haplotypes
        --min-candidate-depth $min_candidate_depth
        --min-candidate-frequency $min_candidate_frequency
        --fast5 $input_fast5
    #if $input_index:
        --index $input_index
    #end if
        $fix_homopolymers
        $calculate_all_support

    ]]>
    </command>

    <!-- ***************************************************************** -->

    <inputs>

        <param name="input_reads" type="data" format="fasta,fastq" label="Input reads (FASTA/Q)" />
        <param name="input_fast5" type="data" format="fast5.tar" label="Input reads (FAST5)" />
        <param name="input_bam"   type="data" format="bam"   label="Alignment" />
        <param name="input_ref"   type="data" format="fasta" label="Reference" />
        <param name="input_index" type="data" format="tar" label="Precalculated index (optional)" optional="True" />
        <param name="min_candidate_frequency" type="float" value="0.2" size="5" label="Minimum candidate frequency" />
        <param name="min_candidate_depth" type="integer" min="1" value="20" size="5" label="Minimum candidate depth" />
        <param name="max_haplotypes" type="integer" min="0" value="1000" size="5" label="Maximum haplotype combinations" />
        <param name="max_rounds" type="integer" min="0" value="50" size="5" label="Maximum iterations" />
        <param name="fix_homopolymers" type="boolean" checked="false" truevalue="--fix-homopolymers" falsevalue="" label="Fix homopolymers" />
        <param name="calculate_all_support" type="boolean" checked="false" truevalue="--calculate-all-support" falsevalue="" label="Calculate support for all four bases" /> 
    </inputs>

    <!-- ***************************************************************** -->

    <outputs>

        <data name="out_variants" format="vcf" label="${tool.name} on ${on_string} (variants)" />
        <data name="out_consensus" format="fasta" label="${tool.name} on ${on_string} (consensus)" />

    </outputs>

    <!-- ***************************************************************** -->

    <tests>
        <!-- test defaults with FASTA input -->
        <test>
            <param name="input_reads" value="called.fa" ftype="fasta" />
            <param name="input_fast5" value="test.fast5.tar.gz" ftype="fast5.tar.gz" />
            <param name="input_bam"   value="called.bam" ftype="bam" />
            <param name="input_ref"   value="ref.fa" ftype="fasta" />
            <param name="fix_homopolymers" value="False"/>
            <output name="out_consensus" file="consensus.fa" compare="diff" />
            <output name="out_variants" file="consensus.vcf" compare="diff" />
            <assert_command>
                <not_has_text text="--index" />
                <not_has_text text="--fix-homopolymers" />
            </assert_command>
        </test>
        <!-- test FASTQ input -->
        <test>
            <param name="input_reads" value="called.fq" ftype="fastq" />
            <param name="input_fast5" value="test.fast5.tar.gz" ftype="fast5.tar.gz" />
            <param name="input_bam"   value="called.bam" ftype="bam" />
            <param name="input_ref"   value="ref.fa" ftype="fasta" />
            <param name="fix_homopolymers" value="False"/>
            <output name="out_consensus" file="consensus.fa" compare="diff" />
            <output name="out_variants" file="consensus.vcf" compare="diff" />
        </test>
        <!-- test homopolymer fixing -->
        <test>
            <param name="input_reads" value="called.fa" ftype="fasta" />
            <param name="input_fast5" value="test.fast5.tar.gz" ftype="fast5.tar.gz" />
            <param name="input_bam"   value="called.bam" ftype="bam" />
            <param name="input_ref"   value="ref.fa" ftype="fasta" />
            <param name="fix_homopolymers" value="True"/>
            <output name="out_consensus" file="consensus.hp.fa" compare="diff" />
            <output name="out_variants" file="consensus.hp.vcf" compare="diff" />
            <assert_command>
                <has_text text="--fix-homopolymers" />
                <not_has_text text="--calculate-all-support" />
            </assert_command>
        </test>
        <!-- test pre-calculated index input, fix-homopolymers command -->
        <test>
            <param name="input_reads" value="called.fa" ftype="fasta" />
            <param name="input_fast5" value="test.fast5.tar.gz" ftype="fast5.tar.gz" />
            <param name="input_bam"   value="called.bam" ftype="bam" />
            <param name="input_ref"   value="ref.fa" ftype="fasta" />
            <param name="input_index" value="index.tar" ftype="tar" />
            <param name="fix_homopolymers" value="True"/>
            <output name="out_consensus" file="consensus.hp.fa" compare="diff" />
            <output name="out_variants" file="consensus.hp.vcf" compare="diff" />
            <assert_command>
                <has_text text="--index" />
            </assert_command>
        </test>
        <!-- test calculate-all-support command -->
        <test>
            <param name="input_reads" value="called.fa" ftype="fasta" />
            <param name="input_fast5" value="test.fast5.tar.gz" ftype="fast5.tar.gz" />
            <param name="input_bam"   value="called.bam" ftype="bam" />
            <param name="input_ref"   value="ref.fa" ftype="fasta" />
            <param name="input_index" value="index.tar" ftype="tar" />
            <param name="calculate_all_support" value="True"/>
            <assert_command>
                <not_has_text text="--fix-homopolymers" />
                <has_text text="--calculate-all-support" />
            </assert_command>
        </test>
    </tests>

    <!-- ***************************************************************** -->

    <help>
    <![CDATA[

**Description**

Nanopolish is a software package for signal-level analysis of Oxford Nanopore
sequencing data. Nanopolish can calculate an improved consensus sequence for a
draft genome assembly, detect base modifications, call SNPs and indels with
respect to a reference genome and more.

The Galaxy wrapper has modified nanopolish to take a gzip tarball of FAST5 reads
as input, such as can be produced by `poretools combine`, and always outputs a
single FASTQ file.

This is the `variants` module.

    ]]>
    </help>

    <!-- ***************************************************************** -->
    
    <citations>
    </citations>

</tool>