view eggnog_macros.xml @ 11:1f2be4ae431f draft default tip

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/eggnog_mapper commit 07877ba6d3fb6e28e94500f2392db6393cf325fd
author galaxyp
date Tue, 19 Jul 2022 15:14:11 +0000
parents 3d30526975d7
children
line wrap: on
line source

<?xml version="1.0"?>
<macros>
   <token name="@TOOL_VERSION@">2.1.8</token>
   <token name="@VERSION_SUFFIX@">3</token>
   <token name="@EGGNOG_DB_VERSION@">5.0.2</token>
    <!--
    # DB versionning was super confusing for eggnog-mapper 2.0.x:
    # eggnog-mapper 1.* needed a db v4.5 (based on eggnog v4.5)
    # eggnog-mapper 2.x needed a db v2.0 (based on eggnog v5.0)
    # (db v4.5 are not compatible with eggnog-mapper 2.0)
    # Starting with eggnog-mapper 2.1.* db versioning looks better: 2.1.0 requires db v5.0.2
    -->
   <token name="@IDX_VERSION@">5.0.2</token>
   <xml name="citations">
        <citations>
            <citation type="doi">10.1093/nar/gkv1248</citation>
            <citation type="doi">10.1093/molbev/msx148</citation>
        </citations>
    </xml>
    <xml name="requirements">
        <requirements>
            <requirement type="package" version="@TOOL_VERSION@">eggnog-mapper</requirement>
        </requirements>
    </xml>
    <xml name="version_command">
        <version_command>emapper.py --version</version_command>
    </xml>
    <xml name="data_manager_params">
        <param name="test" type="hidden" value="false" />
        <param name="diamond_database" type="boolean" truevalue="" falsevalue="-D" checked="true" label="Install the diamond database" help="Takes ~9Gb, you most probably want it."/>
        <param name="mmseqs_database" type="boolean" truevalue="-M" falsevalue="" checked="true" label="Install the MMseqs2 database" help="Required for mmseqs seed ortholog search mode. Takes ~11Gb, you most probably want it."/>
        <param name="pfam_database" type="boolean" truevalue="-P" falsevalue="" checked="true" label="Install the Pfam database" help="Rquired for de novo annotation or realignment. Takes ~3Gb, you most probably want it."/>
    </xml>
    <xml name="data_manager_outputs">
        <outputs>
            <data name="out_file" format="data_manager_json" label="${tool.name}"/>
        </outputs>
    </xml>
    <token name="@DOWNLOAD_CMD@"><![CDATA[
## tool should set install_path
#if $test == 'true'
#import os.path
#set $install_path = $os.path.join($os.path.dirname($__tool_directory__), 'test-data/cached_locally')
#end if
mkdir -p '${install_path}' &&
download_eggnog_data.py
  $diamond_database $mmseqs_database $pfam_database -y -q
#if $test == 'true'
  -s
#end if
  --data_dir '$install_path' &&
python '${__tool_directory__}/data_manager_eggnog.py' --config_file '$out_file' --install_path '$install_path'
    ]]></token>
    <xml name="data_manager_test">
        <test>
            <param name="test" value="true"/>
            <param name="diamond_database" value="true"/>
            <yield />
            <output name="out_file">
                <assert_contents>
                    <has_text text="eggnog_mapper_db_versioned" />
                    <has_text text="@EGGNOG_DB_VERSION@" />
                </assert_contents>
            </output>
        </test>
    </xml>

    <xml name="fasta_input">
        <param argument="-i" name="input" type="data" format="fasta" label="Fasta sequences to annotate"/>
        <conditional name="input_trans">
            <param argument="--itype" type="select" label="Type of sequences">
                <option value="proteins" selected="true">proteins</option>
                <option value="CDS">CDS</option>
                <option value="genome">genome</option>
                <option value="metagenome">metagenome</option>
            </param>
            <when value="proteins"/>
            <when value="CDS">
                <param argument="--translate" type="boolean" truevalue="--translate" falsevalue="" checked="false"
                    label="Translate CDS to proteins before search"/>
            </when>
            <when value="genome">
                <param argument="--translate" type="boolean" truevalue="--translate" falsevalue="" checked="false"
                    label="Translate predicted CDS from blastx hits to proteins"/>
                <param argument="--genepred" type="select" label="Type of sequences">
                    <option value="search">Inferred from Diamond/MMseqs2 blastx hits</option>
                    <option value="prodigal" selected="true">Performed using Prodigal</option>
                </param>
            </when>
            <when value="metagenome">
                <param argument="--translate" type="boolean" truevalue="--translate" falsevalue="" checked="false"
                    label="Translate predicted CDS from blastx hits to proteins"/>
                <param argument="--genepred" type="select" label="Type of sequences">
                    <option value="search">Inferred from Diamond/MMseqs2 blastx hits</option>
                    <option value="prodigal" selected="true">Performed using Prodigal</option>
                </param>
            </when>
        </conditional>
    </xml>
    <!-- Common options for search filtering (applies to diamond and mmseqs only) -->
    <xml name="common_search_options">
        <param argument="--query_cover" type="integer" optional="true" min="0" max="100" label="Minimum query coverage" help="Report only alignments above the given percentage of query cover" />
        <param argument="--subject_cover" type="integer" optional="true" min="0" max="100" label="Minimum subject coverage" help="Report only alignments above the given percentage of subject cover" />
        <param argument="--pident" type="integer" optional="true" min="0" max="100" label="Minimum query coverage" help="Report only alignments above the given percentage of identity" />
        <param argument="--evalue" type="float" optional="true" min="0" label="Minimum query coverage" help="Report only alignments below or equal the e-value" />
        <param argument="--score" type="float" value="0.001" optional="true" min="0" label="Minimum query coverage" help="Report only alignments above or equal the score" />
    </xml>
    <token name="@SEED_ORTHOLOG_COLUMNS@">query_name,seed_eggNOG_ortholog,seed_ortholog_evalue,seed_ortholog_score,query_start,query_end,seed_start,seed_end,pident,query_cov,seed_cov</token>
    
    <xml name="stdout_assertion">
        <assert_stdout>
            <has_line line="#  emapper-@TOOL_VERSION@"/>
            <has_line line="FINISHED"/>
            <yield/>
        </assert_stdout>
    </xml>
    <xml name="seed_orthologs_assertion">
        <output name="seed_orthologs" ftype="tabular">
            <assert_contents>
                <has_line line="#qseqid&#009;sseqid&#009;evalue&#009;bitscore&#009;qstart&#009;qend&#009;sstart&#009;send&#009;pident&#009;qcov&#009;scov"/>
                <has_line_matching expression="(\S+\t){2}[-+.e\d]+\t[.\d]+(\t\d+){4}(\t[.\d]+){3}" n="1"/>
            </assert_contents>
        </output>
    </xml>
    <xml name="annotations_assertion" token_columns="21" token_add_metadata_columm_names="" token_add_column_names="" token_add_column_re="">
        <output name="annotations" ftype="tabular">
            <metadata name="columns" value="@COLUMNS@" />
            <!-- <metadata name="column_names" value="query,seed_ortholog,evalue,score,max_annot_lvl,COG_category,Description,Preferred_name,GOs,EC,KEGG_ko,KEGG_Pathway,KEGG_Module,KEGG_Reaction,KEGG_rclass,BRITE,KEGG_TC,CAZy,BiGG_Reaction,PFAMseggNOG_OGs@ADD_METADATA_COLUMN_NAMES@" /> -->
            <assert_contents>
                <has_line line="#query&#009;seed_ortholog&#009;evalue&#009;score&#009;eggNOG_OGs&#009;max_annot_lvl&#009;COG_category&#009;Description&#009;Preferred_name&#009;GOs&#009;EC&#009;KEGG_ko&#009;KEGG_Pathway&#009;KEGG_Module&#009;KEGG_Reaction&#009;KEGG_rclass&#009;BRITE&#009;KEGG_TC&#009;CAZy&#009;BiGG_Reaction&#009;PFAMs@ADD_COLUMN_NAMES@"/>
                <has_line_matching expression="(\S+\t){2}[-+.e\d]+\t[.\d]+(\t\S+){7}\tko:\S+(\t\S+){9}@ADD_COLUMN_RE@" n="1"/>
            </assert_contents>
        </output>
    </xml>
    <xml name="annotations_orthologs_assertion">
        <output name="annotations_orthologs" ftype="tabular">
            <metadata name="columns" value="4" />
            <metadata name="column_names" value="query,orth_type,species,orthologs" />
            <assert_contents>
                <has_line line="#query&#009;orth_type&#009;species&#009;orthologs"/>
                <has_line_matching expression="\S+\t(one2one|many2one|one2many|many2many|seed)(\t[^\t]+){2}" n="2"/>
            </assert_contents>
        </output>
    </xml>
</macros>