view megahit_wrapper.xml @ 4:de387b2b2803 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/megahit commit d44d890566efb82b4ce8a9ed2903b0902f3884ca
author iuc
date Mon, 18 Feb 2019 12:14:46 -0500
parents 98242353faa4
children 7518ee87b53d
line wrap: on
line source

<?xml version='1.0' encoding='utf-8'?>
<tool id="megahit" name="MEGAHIT" version="@VERSION@.4">
    <description>for metagenomics assembly</description>
    <macros>
        <token name="@VERSION@">1.1.3</token>
    </macros>
    <requirements>
        <requirement type="package" version="@VERSION@">megahit</requirement>
    </requirements>
    <version_command>megahit --version</version_command>
    <command detect_errors="exit_code"><![CDATA[
megahit
    #if $input_option.choice == 'paired'
        -1 '${input_option.fastq_input1}'
        -2 '${input_option.fastq_input2}'
    #else if $input_option.choice == 'paired_collection'

        #if $input_option.batchmode.processmode == 'merge':
            -1 ${ ','.join(['"%s"' % x.forward for x in $input_option.batchmode.pair_input_list]) }
            -2 ${ ','.join(['"%s"' % x.reverse for x in $input_option.batchmode.pair_input_list]) }
        #else:
            -1 '${input_option.batchmode.pair_input.forward}'
            -2 '${input_option.batchmode.pair_input.reverse}'
        #end if
    #else if $input_option.choice == 'interleaved'
        --12 '${input_option.interleaved_file}'
    #else
        -r '${input_option.single_files}'
    #end if
    ##basic assembly
    --min-count '${basic_section.min_count}'
    #if $basic_section.k_mer.k_mer_method == "klist_method":
        --k-list '${basic_section.k_mer.k_list}'
    #else:
        --k-step '${basic_section.k_mer.k_step}'
        --k-min '${basic_section.k_mer.k_min}'
        --k-max '${basic_section.k_mer.k_max}'
    #end if
    ##advanced assembly
    ${advanced_section.nomercy}
    --bubble-level '${advanced_section.bubble_level}'
    --merge-level '${advanced_section.merge_level}'
    --prune-level '${advanced_section.prune_level}'
    --prune-depth '${advanced_section.prune_depth}'
    --low-local-ratio '${advanced_section.low_local_ratio}'
    ${advanced_section.nolocal}
    ${advanced_section.kmin1pass}
    --min-contig-len '${output_section.min_contig_len}'
&& cat megahit_out/log
    ]]></command>
    <inputs>
        <conditional name="input_option">
            <param name="choice" type="select" label="Select your input option">
                <option value="single" selected="true">Single</option>
                <option value="interleaved">Interleaved-paired-end</option>
                <option value="paired">Paired-end</option>
                <option value="paired_collection">Paired-end collection</option>
            </param>
            <when value="single">
                <param name="single_files" argument="-r" type="data" format="fastq,fastqsanger,fasta,fastq.gz,fastqsanger.gz,fastq.bz2" multiple="true" label="Single-end file(s)" help="Accepts fasta (.fasta, .fa) and fastq (.fastq) formats as well as gzip (.gz) and gzip2 (.bz2) files" />
            </when>
            <when value="interleaved">
                <param name="interleaved_file" argument="--12" type="data" format="fastq,fastqsanger,fasta,fastq.gz,fastqsanger.gz,fastq.bz2" multiple="true" label="Interleaved-paired-end file(s)" help="Accepts fasta (.fasta, .fa) and fastq (.fastq) formats as well as gzip (.gz) and gzip2 (.bz2) files" />
            </when>
            <when value="paired">
                <param name="fastq_input1" argument="-1" type="data" format="fastq,fastqsanger,fasta,fastq.gz,fastqsanger.gz" multiple="true" label="Mate 1 input reads"/>
                <param name="fastq_input2" argument="-2" type="data" format="fastq,fastqsanger,fasta,fastq.gz,fastqsanger.gz" multiple="true" label="Mate 2 input reads"/>
            </when>
            <when value="paired_collection">
              <conditional name="batchmode">
                <param name="processmode" type="select" label="Run in batch mode?" help="Selecting individual mode will generate one assembly dataset for each fastq pair-end dataset. Selecting the merge option will produce one assembly dataset for all input fastq pair-end datasets" display="radio">
                  <option value="individual" selected="true">Run individually</option>
                  <option value="merge">Merge all fastq pair-end</option>
                </param>
                <when value="individual">
                  <param name="pair_input" type="data_collection" format="fastq,fastqsanger,fasta,fastq.gz,fastqsanger.gz" collection_type="paired" label="Select a paired collection"/>
                </when>
                <when value="merge">
                  <param name="pair_input_list" type="data_collection" format="fastq,fastqsanger,fasta,fastq.gz,fastqsanger.gz" collection_type="list:paired" label="Select a paired collection"/>
                </when>
              </conditional>
            </when>
        </conditional>
        <section name="basic_section" title="Basic assembly options" expanded="True">
            <param name="min_count" argument="--min-count" type="integer" value="2" label="minimum multiplicity for filtering (k_min+1)-mers" help="(kmin+1)-mer with multiplicity lower than d (default 2, specified by --min-count option) will be discarded. You should be cautious to set d less than 2, which will lead to a much larger and noisy graph. We recommend using the default value 2 for metagenomics assembly. If you want to use MEGAHIT to do generic assemblies, please change this value according to the sequencing depth. (recommend --min-count 3 for >40x)."/>
            <conditional name="k_mer">
                <param name="k_mer_method" type="select" label="K-mer specification method">
                    <option value="klist_method">Specify list</option>
                    <option value="klim_method">Specify min, max, and step values</option>
                </param>
                <when value="klist_method">
                    <param name="k_list" argument="--k-list" type="text" value="21,29,39,59,79,99,119,141" label="comma-separated list of kmer size" help="all must be odd, in the range 15-255, and with increments &lt;= 28"/>
                </when>
                <when value="klim_method"> 
                    <param name="k_min" argument="--k-min" type="integer" value="21" label="minimum kmer size." max="255" help="Must be odd number. For ultra complex metagenomics data such as soil, a larger kmin, say 27, is recommended to reduce the complexity of the de Bruijn graph. Quality trimming is also recommended. For high-depth generic data, large --k-min (25 to 31) is recommended. Smaller --k-step, say 10, is more friendly to low-coverage datasets."/>
                    <param name="k_max" argument="--k-max" type="integer" value="141" label="maximum kmer size" max="255" help="must be odd number"/>
                    <param name="k_step" argument="--k-step" type="integer" value="12" label="increment of kmer size of each iteration" max="28" help="must be even number"/>
                </when>
            </conditional>
        </section>
        <section name="advanced_section" title="Advanced assembly options" expanded="False">
            <param name="nomercy" type="boolean" checked="false" truevalue="--no-mercy" falsevalue=""  label="do not add mercy kmers" help="Mercy kmers are specially designed for metagenomics assembly to recover low coverage sequences. For generic dataset >= 30x, MEGAHIT may generate better results with no mercy kmers." />
            <param name="bubble_level" argument="--bubble-level" type="integer" value="2" min="0" max="2" label="intensity of bubble merging (0-2), 0 to disable" />
            <param name="merge_level" argument="--merge-level" type="text" label="merge complex bubbles of length " value="20,0.95" />
            <param name="prune_level" argument="--prune-level" type="integer" value="2" min="0" max="3" label="strength of low depth pruning" />
            <param name="prune_depth" argument="--prune-depth" type="integer" value="2" min="0" label="remove unitigs with avg kmer depth less than this value" />
            <param name="low_local_ratio" argument="--low-local-ratio" type="float" value="0.2" label="ratio threshold to define low local coverage contigs" />
            <param name="nolocal" type="boolean" checked="false" truevalue="--no-local" falsevalue="" label="disable local assembly" />
            <param name="kmin1pass" type="boolean" checked="false" truevalue="--kmin-1pass" falsevalue="" label="use 1pass mode to build SdBG of k_min" />
        </section>
        <section name="output_section" title="Output options" expanded="True">
            <param name="min_contig_len" argument="--min-contig-len" type="integer" value="200" label="minimum length of contigs to output" />
            <param name="show_intermediate_contigs" type="boolean" checked="false" label="Return intermediate contigs?"/>
        </section>
    </inputs>
    <outputs>
        <data format="fasta" name="output" from_work_dir="megahit_out/final.contigs.fa" label="Assembly with ${tool.name} on ${on_string}" />
        <collection name="intermediate_contigs" type="list" label="Intermediate contigs from ${tool.name} on ${on_string}">
            <filter>output_section['show_intermediate_contigs']</filter>
            <discover_datasets pattern="(?P&lt;designation&gt;.*\d)\.contigs\.fa$" ext="fasta" directory="megahit_out/intermediate_contigs" />
        </collection>
    </outputs>
    <tests>
        <test>
            <conditional name="input_option">
                <param name="choice" value="single"/>
                <param name="single_files" value="refExample.fa" ftype="fasta"/>
            </conditional>
            <output name="output">
            <assert_contents>
              <has_line_matching expression=">k21_1 flag=3 multi=1.0486 len=576" />
            </assert_contents>
            </output>
        </test>
        <test>
             <conditional name="input_option">
                <param name="choice" value="interleaved"/>
                <param name="interleaved_file" value="interleaved-fq.fa"/>
            </conditional>
            <output name="output" file="interleaved_result.fa"/>
        </test>
        <test>
            <conditional name="input_option">
                <param name="choice" value="paired"/>
                <param name="fastq_input1" value="paired-fq1.fa"/>
                <param name="fastq_input2" value="paired-fq2.fa"/>
            </conditional>
            <output name="output" file="paired_result.fa"/>
        </test>
        <test>
            <conditional name="input_option">
                <param name="choice" value="paired_collection"/>
                <conditional name="batchmode">
                    <param name="processmode" value="merge"/>
                    <param name="pair_input_list">
                        <collection type="list:paired">
                        <element name="Pair1">
                          <collection type="paired">
                            <element name="forward" value="paired-fq1.fa" ftype="fasta"/>
                            <element name="reverse" value="paired-fq2.fa" ftype="fasta"/>
                          </collection>
                        </element>
                        </collection>
                    </param>
                </conditional>
            </conditional>
            <output name="output" file="paired_result.fa"/>
        </test>
    </tests>
    <help><![CDATA[

**What it does**

MEGAHIT is a single node assembler for large and complex metagenomics NGS reads, such as soil. It makes use of succinct de Bruijn graph (SdBG) to achieve low memory assembly. MEGAHIT can optionally utilize a CUDA-enabled GPU to accelerate its SdBG contstruction. The GPU-accelerated version of MEGAHIT has been tested on NVIDIA GTX680 (4G memory) and Tesla K40c (12G memory) with CUDA 5.5, 6.0 and 6.5.

--------

**Project links:**

https://github.com/voutcn/megahit


    ]]></help>
    <citations>
        <citation type="doi">10.1093/bioinformatics/btv033</citation>
    </citations>
</tool>