view remove.seqs.xml @ 10:d38f2ac5db71 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/mothur commit 7599ef16dc8b83ee49236ed5bb229260c969b0ab
author iuc
date Mon, 17 Jun 2024 12:22:09 +0000
parents 0b8ca0026f28
children
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="biotools"/>
    <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"/>
        <expand macro="param-savelog"/>
    </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=""/>
            <param name="savelog" value="true"/>
            <expand macro="logfile-test"/>
            <output name="fasta_out">
                <assert_contents>
                    <expand macro="test-fasta-format"/>
                    <has_text text="M00967_43_000000000-A3JHG_1_1101_19936_3208"/>
                </assert_contents>
            </output>
        </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"/>
            <param name="savelog" value="true"/>
            <expand macro="logfile-test"/>
            <output name="fastq_out">
                <assert_contents>
                    <expand macro="test-fastq-format"/>
                    <has_text text="M00967_43_000000000-A3JHG_1_1101_19936_3208"/>
                </assert_contents>
            </output>
        </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"/>
            <param name="savelog" value="true"/>
            <expand macro="logfile-test"/>
            <output name="fasta_out">
                <assert_contents>
                    <expand macro="test-fasta-format"/>
                    <has_text text="M00967_43_000000000-A3JHG_1_1101_19936_3208"/>
                </assert_contents>
            </output>
            <output name="fastq_out">
                <assert_contents>
                    <expand macro="test-fastq-format"/>
                    <has_text text="M00967_43_000000000-A3JHG_1_1101_19936_3208"/>
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="accnos" value="amazon.bad.accnos"/>
            <param name="count_in" value="amazon.count_table"/>
            <param name="savelog" value="true"/>
            <expand macro="logfile-test"/>
            <output name="count_out">
                <assert_contents>
                    <expand macro="test-count-format"/>
                    <has_text text="U68595"/>
                </assert_contents>
            </output>
        </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>