view macros_process.xml @ 2:bf0e43ab0416 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit f55e2407891a3c1f73f14a77b7ddadcd6f5eb1f8"
author iuc
date Wed, 15 Jul 2020 17:29:50 -0400
parents 8c2617661c49
children a4b4bd84f69e
line wrap: on
line source

<?xml version="1.0"?>

<!-- macros and tokens for process_radtags and process_short_reads -->

<macros>

    <token name="@PROCESS_IOOPTIONS@"><![CDATA[
    -p stacks_inputs/
    #if $input_type.input_type_select == "paired"
        --paired
    #end if
    -i $inputype
    -b '$barcode'
    $input_type.barcode_encoding
    #if str( $outype ) != "auto"
        -y $outype
    #end if
    -o stacks_outputs
    ]]></token>
    <xml name="process_output_types">
        <param name="outype" argument="-y" type="select" label="Output format" >
            <option value="auto" selected="True">Same as input</option>
            <option value="fastq">fastq</option>
            <option value="fasta">fasta</option>
            <option value="gzfastq">gzipped fastq</option>
            <option value="gzfasta">gzipped fasta</option>
        </param>
    </xml>

    <xml name="discover_faqgz_output_macro" token_pattern="" token_dir="">
        <expand macro="discover_faq_output_macro" pattern="@PATTERN@" dir="@DIR@"/>
        <discover_datasets pattern="@PATTERN@\.fq\.gz$" ext="fastqsanger.gz" directory="@DIR@/"/>
        <discover_datasets pattern="@PATTERN@\.fa\.gz$" ext="fasta.gz" directory="@DIR@/"/>
    </xml>
    <xml name="discover_faq_output_macro" token_pattern="" token_dir="">
        <discover_datasets pattern="@PATTERN@\.fq$" ext="fastqsanger" directory="@DIR@/"/>
        <discover_datasets pattern="@PATTERN@\.fa$" ext="fasta" directory="@DIR@/"/>
    </xml>

    <xml name="process_outputs">
        <collection name="demultiplexed" type="list" label="${tool.name} on ${on_string} Demultiplexed reads">
            <filter>input_type['input_type_select'] == "single"</filter>
            <expand macro="discover_faqgz_output_macro" pattern="(?P&lt;name&gt;.+)" dir="stacks_outputs"/>
        </collection>
        <collection name="demultiplexed_paired" type="list:paired" label="${tool.name} on ${on_string} Demultiplexed reads">
            <filter>input_type['input_type_select'] == "paired"</filter>
            <expand macro="discover_faqgz_output_macro" pattern="(?P&lt;identifier_0&gt;.+)\.(?P&lt;identifier_1&gt;[^.]+)" dir="stacks_outputs"/>
        </collection>

        <collection name="remaining" type="list:paired" label="${tool.name} on ${on_string} Remaining orphan reads">
            <filter>input_type['input_type_select'] == "paired"</filter>
            <expand macro="discover_faqgz_output_macro" pattern="(?P&lt;identifier_0&gt;.+)\.rem\.(?P&lt;identifier_1&gt;[^.]+)" dir="stacks_outputs/remaining"/>
        </collection>

        <!-- note irrespective of -y output is always named fastq and are never zipped -->
        <collection name="discarded" type="list" label="${tool.name} on ${on_string} Discarded reads">
            <filter>capture is True and input_type['input_type_select'] == "single"</filter>
            <expand macro="discover_faq_output_macro" pattern="(?P&lt;name&gt;.*)" dir="stacks_outputs/discarded"/>
        </collection>
        <collection name="discarded_paired" type="list:paired" label="${tool.name} on ${on_string} Discarded reads">
            <filter>capture is True and input_type['input_type_select'] == "paired"</filter>
            <expand macro="discover_faq_output_macro" pattern="(?P&lt;identifier_0&gt;.+)\.(?P&lt;identifier_1&gt;[^.]+)" dir="stacks_outputs/discarded"/>
        </collection>
    </xml>

    <!-- FASTQ filtering options -->
    <xml name="process_filter">
        <conditional name="filter_cond" >
            <param name="filter_select" type="select" label="Do quality filtering">
                <option value="yes">Yes</option>
                <option value="no" selected="true">No</option>
            </param>
            <when value="yes">
                <param name="sliding" type="float" value="0.15" min="0" max="1" argument="-w" label="Set the size of the sliding window as a fraction of the read length, between 0 and 1"/>
                <param name="score" type="integer" value="10" min="0" max="40" argument="-s" label="Set the score limit. If the average score within the sliding window drops below this value, the read is discarded"/>
                <param name="remove" type="boolean" checked="false" truevalue="-c" falsevalue="" argument="-c" label="Clean data, remove any read with an uncalled base"/>
                <param name="discard" type="boolean" checked="false" truevalue="-q" falsevalue="" argument="-q" label="Discard reads with low quality scores"/>
                <param argument="--filter-illumina" name="filter_illumina" type="boolean" checked="false" truevalue="--filter-illumina" falsevalue="" label="Discard reads that have been marked by Illumina's chastity/purity filter as failing"/>
            </when>
            <when value="no">
                <param argument="--len_limit" type="integer" value="" optional="true" label="Minimum sequence length" help="useful if your data has already been trimmed"/>
            </when>
        </conditional>
        <param name="capture" type="boolean" checked="false" truevalue="-D" falsevalue="" argument="-D" label="Capture discarded reads to a file"/>
    </xml>
    <token name="@PROCESS_FILTER@"><![CDATA[
    #if $filter_cond.filter_select == 'yes':
        -w $filter_cond.sliding
        -s $filter_cond.score
        $filter_cond.remove
        $filter_cond.discard
        $filter_cond.filter_illumina
    #else
        #if str($filter_cond.len_limit) != "":
            --len_limit $filter_cond.len_limit
        #end if
    #end if
    $capture
    ]]></token>
    <token name="@PROCESS_FASTQ_POSTPROC@"><![CDATA[
    #if $capture:
        && mkdir stacks_outputs/discarded/
        && mv stacks_outputs/*discards stacks_outputs/discarded/

        ## fix the _R[12]_0 that was added for preparing the input
        #if $input_type.input_type_select == 'paired':
            && (find stacks_outputs/discarded/ -type f | while read file; do mv "\$file" "\$(echo \$file | sed 's/_R1_0/.1/; s/_R2_0/.2/;')"; done)
        #end if
        ## also remove the gz which is added by procrad (but its uncompressed)
        && (find stacks_outputs/discarded/ -type f -iname "*.gz.discards" | while read file; do mv "\$file" "\$(echo \$file | sed 's/.gz.discards$/.discards/;')"; done)

        ## the discard files are named fastq even if the output is fasta
        #if str($outype).endswith("fasta"):
            && (find stacks_outputs/discarded/ -type f | while read file; do mv "\$file" "\$(echo \$file | sed 's/\.fastq.discards/.fa/;')"; done)
        #else
            && (find stacks_outputs/discarded/ -type f | while read file; do mv "\$file" "\$(echo \$file | sed 's/\.fastq.discards/.fq/;')"; done)
        #end if
    #end if
    ## prepare paired read output for processing in galaxy
    #if $input_type.input_type_select == 'paired':
        && mkdir stacks_outputs/remaining
        && (find stacks_outputs -iregex ".*\.rem\.[12]\.f[aq]\(\.gz\)?" | while read file; do mv "\$file" stacks_outputs/remaining/; done)
        && (find stacks_outputs/ -iregex ".*.f[aq]\(\.gz\)?" | while read file; do mv "\$file" "\$(echo \$file | sed 's/\.1\./.forward./; s/\.2\./.reverse./')"; done)
    #end if
    ]]></token>

    <!-- adapter trimming options -->
    <xml name="process_adapter">
            <param argument="--adapter_1" type="text" value="" optional="true" label="Adaptor sequence that may occur on the first read"/>
            <param argument="--adapter_2" type="text" value="" optional="true" label="Adaptor sequence that may occur on the paired-read"/>
            <param argument="--adapter_mm" type="integer" value="" optional="true" label="Number of mismatches allowed in the adapter sequence"/>
    </xml>
    <token name="@PROCESS_ADAPTER@"><![CDATA[
    ## Adapter options
    #if str($options_advanced.adapter_1) != "":
        --adapter_1 $options_advanced.adapter_1
    #end if
    #if str($options_advanced.adapter_2) != "":
        --adapter_2 $options_advanced.adapter_2
    #end if
    #if str($options_advanced.adapter_mm) != "":
        --adapter_mm $options_advanced.adapter_mm
    #end if
    ]]></token>

    <!-- barcode rescue options -->
    <xml name="rescue_barcode">
        <conditional name="rescue_cond">
            <param name="rescue" type="select" argument="-r" label="Rescue mutated barcodes and RAD-Tags?">
                <option value="-r">yes</option>
                <option value="" selected="true">no</option>
            </param>
            <when value="-r">
                <param argument="--barcode_dist_1" type="integer" value="" optional="true" label="Number of allowed mismatches when rescuing first read barcodes" help="(default 1)"/>
                <param argument="--barcode_dist_2" type="integer" value="" optional="true" label="Number of allowed mismatches when rescuing paired read barcodes" help="(default value for single end barcodes)"/>
            </when>
            <when value=""/>
        </conditional>
    </xml>
    <token name="@RESCUE_BARCODE@"><![CDATA[
    #if str($options_advanced.rescue_cond.rescue) != ""
        $options_advanced.rescue_cond.rescue
        #if str($options_advanced.rescue_cond.barcode_dist_1) != "":
            --barcode_dist_1 $options_advanced.rescue_cond.barcode_dist_1
        #end if
        #if str($options_advanced.rescue_cond.barcode_dist_2) != "":
            --barcode_dist_2 $options_advanced.rescue_cond.barcode_dist_2
        #end if
    #end if
    ]]></token>

    <!-- advanced options that are shared -->
    <xml name="common_advanced">
        <param name="truncate" type="integer" value="" optional="True" argument="-t" label="Truncate final read length to this value"/>
        <param argument="--retain_header" type="boolean" checked="false" truevalue="--retain_header" falsevalue="" label="Retain unmodified FASTQ headers in the output"/>
    </xml>
    <token name="@COMMON_ADVANCED@"><![CDATA[
    #if str($options_advanced.truncate)
        -t $options_advanced.truncate
    #end if
    $options_advanced.retain_header
    ]]></token>
</macros>