view filter_by_name.xml @ 5:5127e62d11fb draft default tip

"planemo upload for repository https://github.com/quadram-institute-bioscience/galaxy-tools/tree/master/tools/bbmap commit f832310ee25935e283f72f057790af7fad0d661b-dirty"
author thanhlv
date Wed, 18 Mar 2020 21:24:20 +0000
parents e40d2adb0896
children
line wrap: on
line source

<?xml version="1.0"?>
<tool id="bbmap_filterbyname" name="filter_by_name" version="@VERSION@">
    <description>Filters reads by name</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="requirements" />
    <expand macro="version_command" />

    <command><![CDATA[
    #if $singlePaired.sPaired == "single":
            #if $singlePaired.input_singles.is_of_type("fastq.gz"):
                #set read1 = 'input_1.fastq.gz'
                #set compressed = 'gz'
            #else
                #set read1 = 'input_1.fastq'
            #end if
            
            #set fil_input = 'in='+ $read1 + ' out=f_read.fq'

            ln -s '${singlePaired.input_singles}' ${read1} &&
        #elif $singlePaired.sPaired == "paired":
            #if $singlePaired.input_mate1.is_of_type("fastq.gz"):
                #set read1 = 'input_1.fastq.gz'
                #set compressed = 'gz'
            #else
                #set read1 = 'input_1.fastq'
            #end if

            ln -s '${singlePaired.input_mate1}' ${read1} &&

            #if $singlePaired.input_mate2.is_of_type("fastq.gz"):
                #set read2 = 'input_2.fastq.gz'
            #else
                #set read2 = 'input_2.fastq'
            #end if
            ln -s '${singlePaired.input_mate2}' ${read2} &&
            #set fil_input = 'in=' + $read1 + ' in2=' + $read2 + ' out=f_read1.fq out2=f_read2.fq'
        #else:
            #if $singlePaired.input_mate_pairs.forward.is_of_type("fastq.gz"):
                #set read1 = 'input_1.fastq.gz'
                #set compressed = 'gz'
            #else
                #set read1 = 'input_1.fastq'
            #end if
            ln -s '${singlePaired.input_mate_pairs.forward}' ${read1} &&

            #if $singlePaired.input_mate_pairs.reverse.is_of_type("fastq.gz"):
                #set read2 = 'input_2.fastq.gz'
            #else
                #set read2 = 'input_2.fastq'
            #end if
            ln -s '${singlePaired.input_mate_pairs.reverse}' ${read2} &&
            #set fil_input = 'in=' + $read1 + ' in2=' + $read2 + ' out=f_read1.fq out2=f_read2.fq'
        #end if

        filterbyname.sh
        ${fil_input}
        #if $source.type == "input_string":
            names=$source.in_string
        #elif $source.type == "name":
            names=$source.name_list
        #end if
        include=$include
        #if $q33
            qin=33
        #end if
        2>&1 | tee > log.txt
    ]]>    </command>
    <inputs>
        <conditional name="singlePaired">
            <param name="sPaired" type="select" label="Is the input paired- or single-end?">
                <option value="single">Single-end</option>
                <option value="paired">Paired-end</option>
                <option value="paired_collection">Paired Collection</option>
            </param>
            <when value="single">
                <param name="input_singles" type="data" format="fastqsanger,fastqsanger.gz,fastq,fastq.gz" label="Reads in FASTQ format" />
            </when>
            <when value="paired">
                <param name="input_mate1" type="data" format="fastqsanger,fastqsanger.gz,fastq,fastq.gz" label="Forward read" />
                <param name="input_mate2" type="data" format="fastqsanger,fastqsanger.gz,fastq,fastq.gz" label="Reversed read" />
            </when>
            <when value="paired_collection">
                <param name="input_mate_pairs" format="fastqsanger,fastqsanger.gz,fastq,fastq.gz" type="data_collection" collection_type="paired" label="Select a paired collection" help="See help section for an explanation of dataset collections"/>
            </when>
        </conditional>
        <conditional name="source">
            <param name="type" type="select" label="Select source of sequence choices">
                <option value="input_string">Text</option>
                <option value="name">FASTA/Q ID list</option>
            </param>
            <when value="input_string">
                <param name="in_string" type="text" label="Input string" help="string1,string2,string3,...,stringn"/>
            </when>
            <when value="name">
                <param name="name_list" type="data" format="txt" label="Input ID list"/>
            </when>
        </conditional>
        <param name="q33" type="boolean" truevalue="true" falsevalue="" checked="false" label="Q33?" />
        <param name="include" type="boolean" truevalue="t" falsevalue="f" checked="true" label="Include the filtered names" />
    </inputs>
    <outputs>
        <data name="log" from_work_dir="log.txt" format="txt" label="${tool.name} on ${on_string}: Log" />
        <data format_source="input_singles" name="filtered_reads_single" from_work_dir="f_read.fq" label="${tool.name} on ${on_string}: filtered reads">
            <filter>singlePaired['sPaired'] == "single"</filter>
        </data>
        <data format="fastqsanger" name="filtered_reads_pair1" from_work_dir="f_read1.fq" label="${tool.name} on ${on_string}: filtered reads pair 1">
            <filter>singlePaired['sPaired'] == "paired"</filter>
        </data>

        <data format="fastqsanger" name="filtered_reads_pair2" from_work_dir="f_read2.fq" label="${tool.name} on ${on_string}: filtered reads pair 2">
            <filter>singlePaired['sPaired'] == "paired"</filter>
        </data>

        <collection name="filtered_collection" type="paired" label="${tool.name} on ${on_string}: Filtered reads by name">
            <data name="forward" format_source="input_mate_pairs['forward']" from_work_dir="f_read1.fq"/>
            <data name="reverse" format_source="input_mate_pairs['forward']" from_work_dir="f_read2.fq"/>
            <filter>singlePaired['sPaired'] == "paired_collection"</filter>
        </collection>
    </outputs>
    <tests>
        <test>
            <param name="sPaired" value="paired"/>
            <param name="input_mate1" value="forward.fq.gz"/>
            <param name="input_mate1" value="reverse.fq.gz"/>
            <param name="type" value="name"/>
            <param name="name_list" value="name.list"/>
            <output name="filtered_reads_pair1" value="f_read1.fq" ftype="fastqsanger" compare="sim_size"/>
            <output name="filtered_reads_pair2" value="f_read2.fq" ftype="fastqsanger" compare="sim_size"/>
        </test>
    </tests>
    <help><![CDATA[
    ]]>    </help>
    <expand macro="citations" />
</tool>