view bwameth.xml @ 9:d82648ad25a3 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/bwameth commit 3cae9f7b3b4d21f4235b436fd62faa174c82242c
author iuc
date Mon, 20 Mar 2023 20:39:36 +0000
parents 62f5fab76dfb
children
line wrap: on
line source

<tool id="bwameth" name="bwameth" version="@TOOL_VERSION@+galaxy0" profile="20.05">
    <description>Fast and accurate aligner of BS-Seq reads.</description>
    <macros>
        <token name="@TOOL_VERSION@">0.2.6</token>
    </macros>
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">bwameth</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 --no-PG -u - | samtools sort --no-PG -@ "\${GALAXY_SLOTS:-4}" -T "\${TMPDIR:-.}" -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>
            <conditional name="referenceSource">
                <param name="source" value="history" />
            </conditional>
            <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="4"/><!-- allow for HD and PG lines diff-->
        </test>
        <test>
            <conditional name="referenceSource">
                <param name="source" value="history" />
            </conditional>
            <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="4"/><!-- allow for HD and PG lines diff-->
        </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>