view eggnog_mapper.xml @ 6:1d6c4af4b7bc draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/eggnog_mapper commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
author galaxyp
date Fri, 19 Feb 2021 18:53:12 +0000
parents 59501122d153
children 9d426cb7823b
line wrap: on
line source

<tool id="eggnog_mapper" name="eggNOG Mapper" version="@VERSION@+galaxy1">
    <description>functional sequence annotation by orthology</description>
    <macros>
        <import>eggnog_macros.xml</import>
    </macros>
    <expand macro="requirements"/>
    <expand macro="version_command"/>
    <command detect_errors="aggressive"><![CDATA[
        emapper.py
        --data_dir '$eggnog_data.fields.path'
        -m diamond
        $translate

        ## Diamond option
        --matrix '$diamond.matrix_gapcosts.matrix'
        $diamond.matrix_gapcosts.gap_costs
        --query-cover $diamond.query_cover
        --subject-cover $diamond.subject_cover

        #if $annotation_options.tax_scope:
            --tax_scope=$annotation_options.tax_scope
        #end if
        #if $annotation_options.target_orthologs:
            --target_orthologs=$annotation_options.target_orthologs
        #end if
        #if $annotation_options.go_evidence:
            --go_evidence=$annotation_options.go_evidence
        #end if
        #if $seed_ortholog_options.seed_ortholog_evalue:
            --seed_ortholog_evalue=$seed_ortholog_options.seed_ortholog_evalue
        #end if
        #if str($seed_ortholog_options.seed_ortholog_score):
            --seed_ortholog_score=$seed_ortholog_options.seed_ortholog_score
        #end if
        $output_options.no_file_comments
        $output_options.no_annot
        $output_options.report_orthologs
        --output='results'
        -i '${input}'
        --cpu "\${GALAXY_SLOTS:-4}"
    ]]></command>
    <inputs>
        <param name="input" type="data" format="fasta" label="Fasta sequences to annotate"/>
        <param name="eggnog_data" type="select" label="Version of eggNOG Database">
            <options from_data_table="eggnog_mapper_db_versioned">
                <filter type="static_value" column="3" value="@IDX_VERSION@" />
            </options>
        </param>
        <param name="translate" type="boolean" truevalue="--translate" falsevalue="" checked="false"
            label="Are these coding DNA sequences that need to be translated?"/>

        <section name="diamond" expanded="true" title="Diamond Options">
            <conditional name="matrix_gapcosts">
                <param argument="--matrix" type="select" label="Scoring matrix and gap costs">
                    <option value="BLOSUM90">BLOSUM90</option>
                    <option value="BLOSUM80">BLOSUM80</option>
                    <option value="BLOSUM62" selected="true">BLOSUM62</option>
                    <option value="BLOSUM50">BLOSUM50</option>
                    <option value="BLOSUM45">BLOSUM45</option>
                    <option value="PAM250">PAM250</option>
                    <option value="PAM70">PAM70</option>
                    <option value="PAM30">PAM30</option>
                </param>
                <when value="BLOSUM90">
                    <param name="gap_costs" type="select" label="Gap Costs">
                        <option value="--gapopen 9 --gapextend 2">Existence: 9  Extension: 2</option>
                        <option value="--gapopen 8 --gapextend 2">Existence: 8  Extension: 2</option>
                        <option value="--gapopen 7 --gapextend 2">Existence: 7  Extension: 2</option>
                        <option value="--gapopen 6 --gapextend 2">Existence: 6  Extension: 2</option>
                        <option value="--gapopen 11 --gapextend 1">Existence: 11  Extension: 1</option>
                        <option value="--gapopen 10 --gapextend 1" selected="true">Existence: 10  Extension: 1</option>
                        <option value="--gapopen 9 --gapextend 1">Existence: 9  Extension: 1</option>
                    </param>
                </when>
                <when value="BLOSUM80">
                    <param name="gap_costs" type="select" label="Gap Costs">
                        <option value="--gapopen 8 --gapextend 2">Existence: 8  Extension: 2</option>
                        <option value="--gapopen 7 --gapextend 2">Existence: 7  Extension: 2</option>
                        <option value="--gapopen 6 --gapextend 2">Existence: 6  Extension: 2</option>
                        <option value="--gapopen 11 --gapextend 1">Existence: 11  Extension: 1</option>
                        <option value="--gapopen 10 --gapextend 1" selected="true">Existence: 10  Extension: 1</option>
                        <option value="--gapopen 9 --gapextend 1">Existence: 9  Extension: 1</option>
                    </param>
                </when>
                <when value="BLOSUM62">
                    <param name="gap_costs" type="select" label="Gap Costs">
                        <option value="--gapopen 11 --gapextend 2">Existence: 11  Extension: 2</option>
                        <option value="--gapopen 10 --gapextend 2">Existence: 10  Extension: 2</option>
                        <option value="--gapopen 9 --gapextend 2">Existence: 9  Extension: 2</option>
                        <option value="--gapopen 8 --gapextend 2">Existence: 8  Extension: 2</option>
                        <option value="--gapopen 7 --gapextend 2">Existence: 7  Extension: 2</option>
                        <option value="--gapopen 6 --gapextend 2">Existence: 6  Extension: 2</option>
                        <option value="--gapopen 13 --gapextend 1">Existence: 13  Extension: 1</option>
                        <option value="--gapopen 12 --gapextend 1">Existence: 12  Extension: 1</option>
                        <option value="--gapopen 11 --gapextend 1" selected="true">Existence: 11  Extension: 1</option>
                        <option value="--gapopen 10 --gapextend 1">Existence: 10  Extension: 1</option>
                        <option value="--gapopen 9 --gapextend 1">Existence: 9  Extension: 1</option>
                    </param>
                </when>
                <when value="BLOSUM50">
                    <param name="gap_costs" type="select" label="Gap Costs">
                        <option value="--gapopen 13 --gapextend 3">Existence: 13  Extension: 3</option>
                        <option value="--gapopen 12 --gapextend 3">Existence: 12  Extension: 3</option>
                        <option value="--gapopen 11 --gapextend 3">Existence: 11  Extension: 3</option>
                        <option value="--gapopen 10 --gapextend 3">Existence: 10  Extension: 3</option>
                        <option value="--gapopen 9 --gapextend 3">Existence: 9  Extension: 3</option>
                        <option value="--gapopen 16 --gapextend 2">Existence: 16  Extension: 2</option>
                        <option value="--gapopen 15 --gapextend 2">Existence: 15  Extension: 2</option>
                        <option value="--gapopen 14 --gapextend 2">Existence: 14  Extension: 2</option>
                        <option value="--gapopen 13 --gapextend 2" selected="true">Existence: 13  Extension: 2</option>
                        <option value="--gapopen 12 --gapextend 2">Existence: 12  Extension: 2</option>
                        <option value="--gapopen 19 --gapextend 1">Existence: 19  Extension: 1</option>
                        <option value="--gapopen 18 --gapextend 1">Existence: 18  Extension: 1</option>
                        <option value="--gapopen 17 --gapextend 1">Existence: 17  Extension: 1</option>
                        <option value="--gapopen 16 --gapextend 1">Existence: 16  Extension: 1</option>
                        <option value="--gapopen 15 --gapextend 1">Existence: 15  Extension: 1</option>
                    </param>
                </when>
                <when value="BLOSUM45">
                    <param name="gap_costs" type="select" label="Gap Costs">
                        <option value="--gapopen 13 --gapextend 3">Existence: 13  Extension: 3</option>
                        <option value="--gapopen 12 --gapextend 3">Existence: 12  Extension: 3</option>
                        <option value="--gapopen 11 --gapextend 3">Existence: 11  Extension: 3</option>
                        <option value="--gapopen 10 --gapextend 3">Existence: 10  Extension: 3</option>
                        <option value="--gapopen 15 --gapextend 2" selected="true">Existence: 15  Extension: 2</option>
                        <option value="--gapopen 14 --gapextend 2">Existence: 14  Extension: 2</option>
                        <option value="--gapopen 13 --gapextend 2">Existence: 13  Extension: 2</option>
                        <option value="--gapopen 12 --gapextend 2">Existence: 12  Extension: 2</option>
                        <option value="--gapopen 19 --gapextend 1">Existence: 19  Extension: 1</option>
                        <option value="--gapopen 18 --gapextend 1">Existence: 18  Extension: 1</option>
                        <option value="--gapopen 17 --gapextend 1">Existence: 17  Extension: 1</option>
                        <option value="--gapopen 16 --gapextend 1">Existence: 16  Extension: 1</option>
                    </param>
                </when>
                <when value="PAM250">
                    <param name="gap_costs" type="select" label="Gap Costs">
                        <option value="--gapopen 15 --gapextend 3">Existence: 15  Extension: 3</option>
                        <option value="--gapopen 14 --gapextend 3">Existence: 14  Extension: 3</option>
                        <option value="--gapopen 13 --gapextend 3">Existence: 13  Extension: 3</option>
                        <option value="--gapopen 12 --gapextend 3">Existence: 12  Extension: 3</option>
                        <option value="--gapopen 17 --gapextend 2">Existence: 17  Extension: 2</option>
                        <option value="--gapopen 16 --gapextend 2">Existence: 16  Extension: 2</option>
                        <option value="--gapopen 15 --gapextend 2">Existence: 15  Extension: 2</option>
                        <option value="--gapopen 14 --gapextend 2" selected="true">Existence: 14  Extension: 2</option>
                        <option value="--gapopen 13 --gapextend 2">Existence: 13  Extension: 2</option>
                        <option value="--gapopen 21 --gapextend 1">Existence: 21  Extension: 1</option>
                        <option value="--gapopen 20 --gapextend 1">Existence: 20  Extension: 1</option>
                        <option value="--gapopen 19 --gapextend 1">Existence: 19  Extension: 1</option>
                        <option value="--gapopen 18 --gapextend 1">Existence: 18  Extension: 1</option>
                        <option value="--gapopen 17 --gapextend 1">Existence: 17  Extension: 1</option>
                    </param>
                </when>
                <when value="PAM70">
                    <param name="gap_costs" type="select" label="Gap Costs">
                        <option value="--gapopen 12 --gapextend 3">Existence: 12 Extension: 3</option>
                        <option value="--gapopen 11 --gapextend 2">Existence: 11 Extension: 2</option>
                        <option value="--gapopen 8 --gapextend 2">Existence: 8  Extension: 2</option>
                        <option value="--gapopen 7 --gapextend 2">Existence: 7  Extension: 2</option>
                        <option value="--gapopen 6 --gapextend 2">Existence: 6  Extension: 2</option>
                        <option value="--gapopen 11 --gapextend 1">Existence: 11  Extension: 1</option>
                        <option value="--gapopen 10 --gapextend 1" selected="true">Existence: 10  Extension: 1</option>
                        <option value="--gapopen 9 --gapextend 1">Existence: 9  Extension: 1</option>
                    </param>
                </when>
                <when value="PAM30">
                    <param name="gap_costs" type="select" label="Gap Costs">
                        <option value="--gapopen 15 --gapextend 3">Existence: 15 Extension: 3</option>
                        <option value="--gapopen 13 --gapextend 3">Existence: 13 Extension: 3</option>
                        <option value="--gapopen 14 --gapextend 2">Existence: 14 Extension: 2</option>
                        <option value="--gapopen 7 --gapextend 2">Existence: 7  Extension: 2</option>
                        <option value="--gapopen 6 --gapextend 2">Existence: 6  Extension: 2</option>
                        <option value="--gapopen 5 --gapextend 2">Existence: 5  Extension: 2</option>
                        <option value="--gapopen 14 --gapextend 1">Existence: 14 Extension: 1</option>
                        <option value="--gapopen 10 --gapextend 1">Existence: 10  Extension: 1</option>
                        <option value="--gapopen 9 --gapextend 1" selected="true">Existence: 9  Extension: 1</option>
                        <option value="--gapopen 8 --gapextend 1">Existence: 8  Extension: 1</option>
                    </param>
                </when>
            </conditional>

            <param name="query_cover" type="integer" value="0" min="0" max="100" label="Minimum query coverage" help="Report only alignments above the given percentage of query cover" />
            <param name="subject_cover" type="integer" value="0" min="0" max="100" label="Minimum subject coverage" help="Report only alignments above the given percentage of subject cover" />
        </section>

        <section name="annotation_options" expanded="false" title="Annotation Options">
            <param name="tax_scope" type="integer" optional="true" label="Set taxonomic scope" help="NCBI taxonomy id" />
            <param name="target_orthologs" type="select" label="target orthologs for functional transfer">
                <option value="one2one">one2one</option>
                <option value="many2one">many2one</option>
                <option value="one2many">one2many</option>
                <option value="many2many">many2many</option>
                <option value="all" selected="true">all</option>
            </param>
            <param name="go_evidence" type="select"
                    label="Select the set of GO terms that should be used for annotation">
                <option value="experimental">experimental = Use only terms inferred from experimental evidence</option>
                <option value="non-electronic" selected="true">non-electronic = Use only non-electronically curated terms</option>
            </param>
        </section>
        <section name="seed_ortholog_options" expanded="false" title="Seed Ortholog Search Options">
            <param name="seed_ortholog_evalue" type="float" value="0.001" min="0" label="Min E-value threshold">
                <help>
                Min E-value expected when searching for seed eggNOG ortholog. Applies to phmmer/diamond searches.
                Queries not having a significant seed orthologs (E-value less than threshold) will not be annotated.
                </help>
            </param>
            <param name="seed_ortholog_score" type="integer" value="60" min="0" label="Minimum bit score threshold">
                <help>
                Min bit score expected when searching for seed eggNOG ortholog.
                Queries not having a significant seed orthologs will not be annotated.
                </help>
            </param>
        </section>
        <section name="output_options" expanded="false" title="Output Options">
            <param name="no_file_comments" type="boolean" truevalue="--no_file_comments" falsevalue="" checked="true"
                label="Exclude header lines and stats from output files"/>
            <param name="no_annot" type="boolean" truevalue="--no_annot" falsevalue="" checked="false"
                label="Skip functional annotation, reporting only hits"/>
            <param name="report_orthologs" type="boolean" truevalue="--report_orthologs" falsevalue="" checked="false"
                label="Output a file with the list of orthologs for each hits"/>
        </section>
    </inputs>
    <outputs>
        <data name="seed_orthologs" format="tabular" label="${tool.name} on ${on_string}: seed_orthologs" from_work_dir="results.emapper.seed_orthologs">
            <actions>
                <action name="column_names" type="metadata" default="query_name,seed_eggNOG_ortholog,seed_ortholog_evalue,seed_ortholog_score"/>
            </actions>
        </data>
        <data name="annotations" format="tabular" label="${tool.name} on ${on_string}: annotations" from_work_dir="results.emapper.annotations">
            <filter>not output_options['no_annot']</filter>
            <actions>
                <action name="column_names" type="metadata" default="query_name,seed_eggNOG_ortholog,seed_ortholog_evalue,seed_ortholog_score,predicted_taxonomic_group,predicted_protein_name,GO_terms,EC_number,KEGG_KO,KEGG_Pathway,KEGG_Module,KEGG_Reaction,KEGG_rclass,BRITE,KEGG_TC,CAZy,BiGG_Reactions,Annotation_tax_scope,Matching_OGs,best_OG|evalue|score,COG_functional_categories,eggNOG_free_text_description"/>
            </actions>
        </data>
        <data name="annotations_orthologs" format="tabular" label="${tool.name} on ${on_string}: annotations.orthologs"  from_work_dir="results.emapper.annotations.orthologs">
            <filter>output_options['report_orthologs']</filter>
            <actions>
                <action name="column_names" type="metadata" default="query_name,orthologs"/>
            </actions>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="input" value="Nmar_0135.fa" ftype="fasta"/>
            <param name="eggnog_data" value="@EGGNOG_DB_VERSION@"/>
            <param name="no_annot" value="true"/>
            <param name="no_file_comments" value="true"/>
            <output name="seed_orthologs" file="DIA_nlim.emapper.seed_orthologs" ftype="tabular" compare="sim_size"/>
        </test>
        <test>
            <param name="input" value="Nmar_0135.fa" ftype="fasta"/>
            <param name="eggnog_data" value="@EGGNOG_DB_VERSION@"/> <!-- not passed in test, but required for test to work -->
            <param name="report_orthologs" value="true"/>
            <param name="no_file_comments" value="true"/>
            <output name="seed_orthologs" file="DIA_nlim.emapper.seed_orthologs" ftype="tabular" compare="sim_size"/>
            <output name="annotations" file="DIA_nlim.emapper.annotations" ftype="tabular" compare="sim_size"/>
            <output name="annotations_orthologs" file="DIA_nlim.emapper.annotations_orthologs" ftype="tabular"/>
        </test>
        <test>
            <param name="input" value="Nmar_0135.fa" ftype="fasta"/>
            <param name="eggnog_data" value="@EGGNOG_DB_VERSION@"/> <!-- not passed in test, but required for test to work -->
            <param name="report_orthologs" value="true"/>
            <param name="no_file_comments" value="true"/>
            <section name="annotation_options">
                <param name="tax_scope" value="651137" />
            </section>
            <output name="seed_orthologs" file="scoped.emapper.seed_orthologs" ftype="tabular" compare="sim_size"/>
            <output name="annotations" file="scoped.emapper.annotations" ftype="tabular" compare="sim_size"/>
            <output name="annotations_orthologs" file="scoped.emapper.annotations_orthologs" ftype="tabular"/>
        </test>
    </tests>
    <help><![CDATA[

eggnog-mapper
=============
Overview
--------

``eggnog-mapper`` is a tool for fast functional annotation of novel sequences (genes or proteins) using precomputed eggNOG-based orthology assignments.
Obvious examples include the annotation of novel genomes, transcriptomes or even metagenomic gene catalogs.
The use of orthology predictions for functional annotation is considered more precise than traditional homology searches,
as it avoids transferring annotations from paralogs (duplicate genes with a higher chance of being involved in functional divergence).

EggNOG-mapper is also available as a public online resource:  `<http://beta-eggnogdb.embl.de/#/app/emapper>`_.

Outputs
-------

**seed_orthologs**

each line in the file provides the best match of each query within the best Orthologous Group (OG)
reported in the [project].hmm_hits file, obtained running PHMMER against all sequences within the best OG.
The seed ortholog is used to fetch fine-grained orthology relationships from eggNOG.
If using the diamond search mode, seed orthologs are directly
obtained from the best matching sequences by running DIAMOND against the whole eggNOG protein space.

**annotations**

This file provides final annotations of each query. Tab-delimited columns in the file are:

- ``query_name``: query sequence name
- ``seed_eggNOG_ortholog``: best protein match in eggNOG
- ``seed_ortholog_evalue``: best protein match (e-value)
- ``seed_ortholog_score``: best protein match (bit-score)
- ``predicted_taxonomic_group``
- ``predicted_protein_name``: Predicted protein name for query sequences
- ``GO_terms``: Comma delimited list of predicted Gene Ontology terms
- ``EC_number``
- ``KEGG_KO``
- ``KEGG_Pathway``: Comma delimited list of predicted KEGG pathways
- ``KEGG_Module``
- ``KEGG_Reaction``
- ``KEGG_rclass``
- ``BRITE``
- ``KEGG_TC``
- ``CAZy``
- ``BiGG_Reactions``
- ``Annotation_tax_scope``: The taxonomic scope used to annotate this query sequence
- ``Matching_OGs``: Comma delimited list of matching eggNOG Orthologous Groups
- ``best_OG|evalue|score``: Best matching Orthologous Groups (deprecated, use smallest from eggnog OGs)
- ``COG_functional_categories``: COG functional category inferred from best matching OG
- ``eggNOG_free_text_description``

    ]]></help>
    <expand macro="citations"/>
</tool>