view bwameth.xml @ 4:95219305823a draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/bwameth commit 11ee7ac206d41894c0b6a11f2439aaea490824f0
author iuc
date Thu, 09 Nov 2017 13:07:16 -0500
parents a6ea26c1f225
children 29bdbc353f20
line wrap: on
line source

<tool id="bwameth" name="bwameth" version="0.2.0.4" profile="17.01">
    <description>Fast and accurate aligner of BS-Seq reads.</description>
    <requirements>
        <requirement type="package" version="0.2.0">bwameth</requirement>
        <requirement type="package" version="0.7.16">bwa</requirement>
    </requirements>
    <version_command>bwameth.py --version</version_command>
    <command detect_errors="aggressive">
<![CDATA[
    #if $referenceSource.source != "indexed":
        mkdir index_dir &&
        ln -s '$referenceSource.reference' index_dir/genome.fa &&
        bwameth.py index index_dir/genome.fa &&
        #set index="index_dir/genome.fa"
    #else
        #set index=$referenceSource.index.fields.path
    #end if

    ## Link in the files with a name that's appropriate
    #if str($single_or_paired.single_or_paired_opts) == 'paired':
        #if $single_or_paired.input_mate1.is_of_type("fastq.gz", "fastqsanger.gz"):
            #set read1 = "input_f.fastq.gz"
        #else if $single_or_paired.input_mate1.is_of_type("fastq.bz2", "fastqsanger.bz2"):
            #set read1 = "input_f.fastq.bz2"
        #else:
            #set read1 = "input_f.fastq"
        #end if
        ln -f -s '${single_or_paired.input_mate1}' ${read1} &&

        #if $single_or_paired.input_mate2.is_of_type("fastq.gz", "fastqsanger.gz"):
            #set read2 = "input_r.fastq.gz"
        #else if $single_or_paired.input_mate2.is_of_type("fastq.bz2", "fastqsanger.bz2"):
            #set read2 = "input_r.fastq.bz2"
        #else:
            #set read2 = "input_r.fastq"
        #end if
        ln -f -s '${single_or_paired.input_mate2}' ${read2} &&
    #else if str($single_or_paired.single_or_paired_opts) == 'paired_collection':
        #if $single_or_paired.input_mate1.forward.is_of_type("fastq.gz", "fastqsanger.gz"):
            #set read1 = "input_f.fastq.gz"
        #else if $single_or_paired.input_mate1.forward.is_of_type("fastq.bz2", "fastqsanger.bz2"):
            #set read1 = "input_f.fastq.bz2"
        #else:
            #set read1 = "input_f.fastq"
        #end if
        ln -s '${single_or_paired.input_mate1.forward}' ${read1} &&

        #if $single_or_paired.input_mate1.reverse.is_of_type("fastq.gz", "fastqsanger.gz"):
            #set read2 = "input_r.fastq.gz"
        #else if $single_or_paired.input_mate1.reverse.is_of_type("fastq.bz2", "fastqsanger.bz2"):
            #set read2 = "input_r.fastq.bz2"
        #else:
            #set read2 = "input_r.fastq"
        #end if
        ln -s '${single_or_paired.input_mate1.reverse}' ${read2} &&
    #else:
        #if $single_or_paired.input_singles.is_of_type("fastq.gz", "fastqsanger.gz"):
            #set read1 = "input_f.fastq.gz"
        #else if $single_or_paired.input_singles.is_of_type("fastq.bz2", "fastqsanger.bz2"):
            #set read1 = "input_f.fastq.bz2"
        #else:
            #set read1 = "input_f.fastq"
        #end if
        ln -f -s '${single_or_paired.input_singles}' ${read1} &&
    #end if


    bwameth.py
        -t "\${GALAXY_SLOTS:-4}"
        --reference "${index}"

    #if str($readGroup).strip() != "":
        --read-group "${readGroup}"
    #end if

    #if $single_or_paired.single_or_paired_opts == 'single':
        $read1
    #else:
        $read1 $read2
    #end if
    | samtools view -u - | samtools sort -@ "\${GALAXY_SLOTS:-4}" -T tmp -O bam -o output.bam -
]]>
    </command>
    <inputs>
        <conditional name="referenceSource">
            <param name="source" type="select" label="Select a genome reference from your history or a built-in index?">
                <option value="history" selected="True">Use one from the history</option>
                <option value="indexed">Use a built-in index</option>
            </param>
            <when value="history">
                <param name="reference" type="data" format="fasta" label="Select a genome" help="in FASTA format" />
            </when>
            <when value="indexed">
                <param name="index" type="select" label="Select a reference genome" help="If your genome of interest is not listed, contact your Galaxy admin">
                    <options from_data_table="bwameth_indexes">
                        <filter type="sort_by" column="2"/>
                        <validator type="no_options" message="No indexes are available for the selected input dataset"/>
                    </options>
                </param>
            </when>
        </conditional>

        <conditional name="single_or_paired">
            <param name="single_or_paired_opts" type="select" label="Is this library mate-paired?">
                <option value="single">Single-end</option>
                <option value="paired">Paired-end</option>
                <option value="paired_collection">Paired-end Dataset Collection</option>
            </param>
            <when value="single">
                <param name="input_singles" type="data" format="fastqsanger,fastqsanger.gz,fastqsanger.bz2" label="FASTQ" help="FASTQ file." />
            </when>
            <when value="paired">
                <param name="input_mate1" type="data" format="fastqsanger,fastqsanger.gz,fastqsanger.bz2" label="First read in pair" help="FASTQ file." />
                <param name="input_mate2" type="data" format="fastqsanger,fastqsanger.gz,fastqsanger.bz2" label="Second read in pair" help="FASTQ file." />
            </when>
            <when value="paired_collection">
                <param name="input_mate1" type="data_collection" collection_type="paired" format="fastqsanger,fastqsanger.gz,fastqsanger.bz2" label="FASTQ paired dataset" help="Must have a fastqsanger datatype." />
            </when>
        </conditional>
        <param name="readGroup" type="text" value="" label="Read group" help="If desired, you can manually add read group information to the resulting BAM file. To do so, you MUST manually specify the entire string, such as '@RG\tID:foo\tSM:bar'">
            <sanitizer sanitize="False"/>
        </param>
    </inputs>
    <outputs>
        <data name="output" format="bam" from_work_dir="output.bam" label="${tool.name} on ${on_string}" />
    </outputs>
    <tests>
        <test>
            <param name="referenceSource" value="history" />
            <param name="reference" value="ref.fa.gz" />
            <param name="single_or_paired_opts" value="paired" />
            <param name="input_mate1" value="t_R1.fastq.gz"/>
            <param name="input_mate2" value="t_R2.fastq.gz"/>
            <output file="output.bam" ftype="bam" name="output" lines_diff="2"/>
        </test>
        <test>
            <param name="referenceSource" value="history" />
            <param name="reference" value="ref.fa.gz" />
            <param name="single_or_paired_opts" value="paired_collection" />
            <param name="input_mate1">
                <collection type="paired">
                    <element name="forward" value="t_R1.fastq.gz"/>
                    <element name="reverse" value="t_R2.fastq.gz"/>
                </collection>
            </param>
            <output file="output.bam" ftype="bam" name="output" lines_diff="2"/>
        </test>
    </tests>
    <help>
<![CDATA[

**What it does**

BWA-meth performs alignment of reads in a bisulfite-sequencing experiment (e.g., RRBS or WGBS) to a genome. The methodology employed for this is similar to bismark, where both the reads and the reference genome are *in silico* converted prior to alignment. Methylation extraction on the resulting BAM file can be done with the PileOMeth tool.
]]>
    </help>
    <citations>
        <citation type="bibtex">@misc{1401.1129,
        Author = {Brent S. Pedersen and Kenneth Eyring and Subhajyoti De and Ivana V. Yang and David A. Schwartz},
        Title = {Fast and accurate alignment of long bisulfite-seq reads},
        Year = {2014},
        Eprint = {arXiv:1401.1129},
        }</citation>
    </citations>
</tool>