view remove.seqs.xml @ 1:008f62670efc draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/mothur commit 721531d2e9fd1e208a3fba8cfbe5dcd572599ca2
author iuc
date Tue, 05 Sep 2017 16:57:34 -0400
parents e59ddb750b65
children 0b8ca0026f28
line wrap: on
line source

<tool profile="16.07" id="mothur_remove_seqs" name="Remove.seqs" version="@WRAPPER_VERSION@.0">
    <description>Remove sequences by name</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="requirements"/>
    <expand macro="stdio"/>
    <expand macro="version_command"/>
    <command><![CDATA[
        @SHELL_OPTIONS@

        ## if accnos file is empty, just output files as-is, mothur errors if accnos empty (e.g. chimera filtering in pipeline but sample had no chimeras)
        #import os
        #if $os.lstat(str($accnos)).st_size == 0:
            echo "accnos file empty, nothing to remove, skipping step"
            #if $fasta_in:
                && cp $fasta_in $fasta_out
            #end if
            #if $fastq_in:
                && cp $fastq_in $fastq_out
            #end if
            #if $count_in:
                && cp $count_in $count_out
            #end if
            #if $qfile_in:
                && cp $qfile_in $qfile_out
            #end if
            #if $name_in:
                && cp $name_in $name_out
            #end if
            #if $group_in:
                && cp $group_in $group_out
            #end if
            #if $alignreport_in:
                && cp $alignreport_in $alignreport_out
            #end if
            #if $list_in:
                && cp $list_in $list_out
            #end if
            #if $taxonomy_in:
                && cp $taxonomy_in $taxonomy_out
            #end if
        #else:
            ## create symlinks to input datasets
            ln -s "$accnos" accnos.dat &&
            ln -s "$fasta_in" fasta_in.dat &&
            ln -s "$fastq_in" fastq_in.dat &&
            ln -s "$count_in" count_in.dat &&
            ln -s "$qfile_in" qfile_in.dat &&
            ln -s "$name_in" name_in.dat &&
            ln -s "$group_in" group_in.dat &&
            ln -s "$alignreport_in" alignreport_in.dat &&
            ln -s "$list_in" list_in.dat &&
            ln -s "$taxonomy_in" taxonomy_in.dat &&

            echo 'remove.seqs(
                accnos=accnos.dat
                #if $fasta_in:
                    ,fasta=fasta_in.dat
                #end if
                #if $fastq_in:
                    ,fastq=fastq_in.dat
                #end if
                #if $count_in:
                    ,count=count_in.dat
                #end if
                #if $qfile_in:
                    ,qfile=qfile_in.dat
                #end if
                #if $name_in:
                    ,name=name_in.dat
                #end if
                #if $group_in:
                    ,group=group_in.dat
                #end if
                #if $alignreport_in:
                    ,alignreport=alignreport_in.dat
                #end if
                #if $list_in:
                    ,list=list_in.dat
                #end if
                #if $taxonomy_in:
                    ,taxonomy=taxonomy_in.dat
                #end if
                $dups
            )'
            | sed 's/ //g'  ## mothur trips over whitespace
            | mothur
        | tee mothur.out.log
        #end if
    ]]></command>
    <inputs>
        <param name="accnos" type="data" format="mothur.accnos" label="accnos - Accession Names of sequences to be removed"/>
        <param name="fasta_in" type="data" format="fasta" optional="true" label="fasta - Fasta Sequences"/>
        <param name="qfile_in" type="data" format="qual" optional="true" label="qfile - Fasta Quality"/>
        <param name="fastq_in" type="data" format="fastq" optional="true" label="fastq"/>
        <param name="name_in" type="data" format="mothur.names" optional="true" label="name - Sequences Name reference"/>
        <param name="group_in" type="data" format="mothur.groups" optional="true" label="group - Sequences Groups"/>
        <param name="alignreport_in" type="data" format="mothur.align.report" optional="true" label="alignreport - Align Report"/>
        <param name="list_in" type="data" format="mothur.list" optional="true" label="list - OTU List"/>
        <param name="taxonomy_in" type="data" format="mothur.seq.taxonomy" optional="true" label="taxonomy - Taxonomy"/>
        <param name="count_in" type="data" format="mothur.count_table" optional="true" label="count - a count_table" help="generated by count.seqs"/>
        <param name="dups" type="boolean" truevalue="" falsevalue=",dups=false" checked="true" label="dups - Apply to duplicates"/>
    </inputs>
    <outputs>
        <expand macro="logfile-output"/>
        <data name="fasta_out" format_source="fasta_in" from_work_dir="fasta_in.pick.dat" label="${tool.name} on ${on_string}: pick.fasta">
            <filter>fasta_in</filter>
        </data>
        <data name="fastq_out" format_source="fastq_in" from_work_dir="fastq_in.pick.dat" label="${tool.name} on ${on_string}: pick.fastq">
            <filter>fastq_in</filter>
        </data>
        <data name="count_out" format_source="count_in" from_work_dir="count_in.pick.dat" label="${tool.name} on ${on_string}: pick.count">
            <filter>count_in</filter>
        </data>
        <data name="qfile_out" format_source="qfile_in" from_work_dir="qfile_in.pick.dat" label="${tool.name} on ${on_string}: pick.qfile">
            <filter>qfile_in</filter>
        </data>
        <data name="name_out" format="mothur.names" from_work_dir="name_in.pick.dat" label="${tool.name} on ${on_string}: pick.names">
            <filter>name_in</filter>
        </data>
        <data name="group_out" format="mothur.groups" from_work_dir="group_in.pick.dat" label="${tool.name} on ${on_string}: pick.groups">
            <filter>group_in</filter>
        </data>
        <data name="alignreport_out" format="mothur.align.report" from_work_dir="alignreport_in.pick.dat" label="${tool.name} on ${on_string}: pick.align.report">
            <filter>alignreport_in</filter>
        </data>
        <data name="list_out" format="mothur.list" from_work_dir="list_in.pick.dat" label="${tool.name} on ${on_string}: pick.list">
            <filter>list_in</filter>
        </data>
        <data name="taxonomy_out" format="mothur.seq.taxonomy" from_work_dir="taxonomy_in.pick.dat" label="${tool.name} on ${on_string}: pick.taxonomy">
            <filter>taxonomy_in</filter>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="accnos" value="Mock_S280_L001_R1_001_small.trim.contigs.bad.accnos"/>
            <param name="fasta_in" value="Mock_S280_L001_R1_001_small.trim.contigs.fasta"/>
            <param name="dups" value=""/>
            <expand macro="logfile-test"/>
            <output name="fasta_out" md5="2357e1429647afbe21521a60935919bf"/>
        </test>
        <test>
            <param name="accnos" value="Mock_S280_L001_R1_001_small.trim.contigs.bad.accnos"/>
            <param name="fastq_in" value="Mock_S280_L001_R1_001_small.fastq"/>
            <expand macro="logfile-test"/>
            <output name="fastq_out" md5="1e10d0793f1c5f12388156d5922c0eb8"/>
        </test>
        <test><!-- test two input files -->
            <param name="accnos" value="Mock_S280_L001_R1_001_small.trim.contigs.bad.accnos"/>
            <param name="fasta_in" value="Mock_S280_L001_R1_001_small.trim.contigs.fasta"/>
            <param name="fastq_in" value="Mock_S280_L001_R1_001_small.fastq"/>
            <param name="dups" value=",dups=false"/>
            <expand macro="logfile-test"/>
            <output name="fasta_out" md5="2357e1429647afbe21521a60935919bf"/>
            <output name="fastq_out" md5="1e10d0793f1c5f12388156d5922c0eb8"/>
        </test>
        <test>
            <param name="accnos" value="amazon.bad.accnos"/>
            <param name="count_in" value="amazon.count_table"/>
            <expand macro="logfile-test"/>
            <output name="count_out" md5="bd1cb7af6f277210c5c11ff7d7c54592"/>
        </test>
        <!-- TODO: make test for empty accnos file -->
    </tests>
    <help>
<![CDATA[

@MOTHUR_OVERVIEW@

**Command Documentation**

The remove.seqs_ command takes a list of sequence names and either a fasta, name_, group_, list_, align.report_ or taxonomy_ file to generate a new file that does not contain the sequences in the list. This command may be used in conjunction with the list.seqs_ command to help screen a sequence collection.

.. _name: https://www.mothur.org/wiki/Name_file
.. _group: https://www.mothur.org/wiki/Group_file
.. _list: https://www.mothur.org/wiki/List_file
.. _align.report: https://www.mothur.org/wiki/Align.seqs
.. _taxonomy: https://www.mothur.org/wiki/Taxonomy_outline
.. _list.seqs: https://www.mothur.org/wiki/list.seqs
.. _remove.seqs: https://www.mothur.org/wiki/Remove.seqs
]]>
    </help>
    <expand macro="citations"/>
</tool>