view frogs_core_macros.xml @ 2:76ff9af5c0a3 draft default tip

planemo upload for repository https://github.com/geraldinepascal/FROGS-wrappers/ commit 0e987ae3594883fb3b12d2999c6ad7fccd0b1b64
author frogs
date Fri, 06 Feb 2026 22:05:51 +0000
parents cd7675c5b15a
children
line wrap: on
line source

<?xml version="1.0"?>
<macros>

    <token name="@TOOL_VERSION@">5.1.0</token>
    <token name="@VERSION_SUFFIX@">0</token>
    
    <token name="@CPUS@">--nb-cpus \${GALAXY_SLOTS:-1}</token>
    

    <token name="@EXPORT_GALAXY_MEMORY_GB@"><![CDATA[

        export GALAXY_MEMORY_GB=\$((\${GALAXY_MEMORY_MB:-2048}/1024))
        
        &&
    ]]></token>

    <xml name="frogs_core_requirements">
        <requirements>
            <requirement type="package" version="@TOOL_VERSION@">frogs</requirement>
            <requirement type="package" version="1.2.11">flash</requirement>
            <requirement type="package" version="2.10">cutadapt</requirement>
            <requirement type="package" version="2.29.1">vsearch</requirement>
            <requirement type="package" version="3.1.4">swarm</requirement>
            <requirement type="package" version="1.22.0">bioconductor-dada2</requirement>
            <requirement type="package" version="1.6.6">r-optparse</requirement>
            <requirement type="package" version="1.1.2">itsx</requirement>
            <requirement type="package" version="2.16.0">blast</requirement>
            <requirement type="package" version="6.6.0">emboss</requirement>
            <requirement type="package" version="7.525">mafft</requirement>
            <requirement type="package" version="2.1.9">fasttree</requirement>
            <requirement type="package" version="4.1.2">r-base</requirement>
            <requirement type="package" version="4.1">r-essentials</requirement>
            <requirement type="package" version="2.7.0">r-phangorn</requirement>

        </requirements>
    </xml>

    <xml name="only_letter_sanitizer_validator">
        <sanitizer invalid_char="">
            <valid initial="string.letters">
                <add value=" " />
            </valid>
        </sanitizer>
        <validator type="regex">[A-Za-z]+</validator>
    </xml>

    <xml name="restricted_sanitizer_validator">
        <sanitizer invalid_char="">
            <valid initial="string.letters,string.digits">
                <add value="-" />
                <add value=" " />
                <add value="_" />
                <add value="." />
            </valid>
        </sanitizer>
        <validator type="regex">[A-Za-z0-9- _.]+</validator>
    </xml>

    <!-- <xml name="lenient_sanitizer_validator">
        <sanitizer invalid_char="">
            <valid initial="string.letters,string.digits">
                <add value="+" />
                <add value="*" />
                <add value="-" />
                <add value="=" />
                <add value=" " />
                <add value="_" />
                <add value="," />
                <add value="." />
            </valid>
        </sanitizer>
        <validator type="regex">[A-Za-z0-9+*-= _,.]+</validator>
    </xml> -->

    <xml name="taxonomic_ranks">
        <param argument="--taxonomic-ranks" type="text" optional="false" value="Domain Phylum Class Order Family Genus Species" 
            label="Taxonomic ranks" help="Specify the ordered taxonomic rank levels used in the reference database. Separate each rank by a single space.">
            <expand macro="restricted_sanitizer_validator"/>
        </param>
    </xml>

    <xml name="frogs_core_outputs">
        <!-- HTML report : all but demultiplex, affiliation_postprocess, biom_to_tsv -->
        <data format="html" name="html" label="${tool.name} - ${tool_name}: report.html">
            <filter> frogs_core_tools['tool_name'] != 'demultiplex' </filter>
            <filter> frogs_core_tools['tool_name'] != 'affiliation_postprocess' </filter>
            <filter> frogs_core_tools['tool_name'] != 'biom_to_tsv' </filter>
            <filter> frogs_core_tools['tool_name'] != 'tsv_to_biom' </filter>
        </data>
        <!-- ASV sequence fasta : all but taxonomic affiliation, demultiplex, affiliation_filter in hiding mode, tree, cluster_asv_report, affiliation_report, biom_to_tsv  -->
        <data format="fasta" name="output_fasta" label="${tool.name} - ${tool_name}: sequence.fasta">
            <filter> frogs_core_tools['tool_name'] != 'taxonomic_affiliation'</filter>
            <filter> frogs_core_tools['tool_name'] != 'demultiplex'</filter>
            <filter> frogs_core_tools['mode'] != 'hide' </filter>  <!-- affilitation_filters parameter -->
            <filter> frogs_core_tools['tool_name'] != 'tree'</filter> 
            <filter> frogs_core_tools['tool_name'] != 'cluster_asv_report'</filter> 
            <filter> frogs_core_tools['tool_name'] != 'affiliation_report'</filter>
            <filter> frogs_core_tools['tool_name'] != 'biom_to_tsv'</filter>
            <filter> frogs_core_tools['extract_fasta'] == 'yes' </filter> <!-- tsv_to_biom parameter -->
        </data>
        <!-- ASV abundance biom : all but tree, demultiplex, cluster_asv_report, affiliation_report, biom_to_tsv  -->
        <data format="biom1" name="output_biom" label="${tool.name} - ${tool_name}: abundance.biom">
            <filter> frogs_core_tools['tool_name'] != 'tree'</filter> 
            <filter> frogs_core_tools['tool_name'] != 'demultiplex'</filter> 
            <filter> frogs_core_tools['tool_name'] != 'cluster_asv_report'</filter> 
            <filter> frogs_core_tools['tool_name'] != 'affiliation_report' </filter>
            <filter> frogs_core_tools['tool_name'] != 'biom_to_tsv' </filter>
        </data>
        <!-- Specific processing_short/454/long_reads with clustering  -->
        <data format="txt" name="output_cluster_compo" label="${tool.name} - ${tool_name}: swarms_composition.txt">
            <filter>frogs_core_tools['process_type']['process'] == 'Clustering Swarm' </filter>
            <filter>frogs_core_tools['tool_name'] == 'processing_short_reads' or frogs_core_tools['tool_name'] == 'processing_long_reads' or frogs_core_tools['tool_name'] == 'processing_454_reads' </filter>
        </data>
        <!-- Specific cluster_filters  -->
        <data format="tsv" name="output_excluded" label="${tool.name} - ${tool_name}: excluded.tsv">
            <filter>frogs_core_tools['tool_name'] == 'cluster_filters'</filter>
        </data>
        <!-- Specific demultiplex  -->
         <data format="tar" name="output_demultiplexed" label="${tool.name} - ${tool_name}: demultiplexed.tar.gz">
            <filter>frogs_core_tools['tool_name'] == 'demultiplex'</filter>
        </data>
        <data format="tar" name="output_undemultiplexed" label="${tool.name} - ${tool_name}: undemultiplexed.tar.gz">
            <filter>frogs_core_tools['tool_name'] == 'demultiplex'</filter>
        </data>
        <data format="tsv" name="output_count" label="${tool.name} - ${tool_name}: report.tsv">
            <filter>frogs_core_tools['tool_name'] == 'demultiplex'</filter>
        </data>
        <!-- Specific itsx  -->
        <data format="fasta" name="output_removed_sequences" label="${tool.name} - ${tool_name}: nonITS_sequence.fasta">
            <filter>frogs_core_tools['tool_name'] == 'itsx'</filter>
        </data>
        <!-- Specific affiliation_filters  -->
        <data format="tsv" name="output_impacted" label="${tool.name} - ${tool_name}: impacted_clusters.tsv">
            <filter>frogs_core_tools['tool_name'] == 'affiliation_filters'</filter>
        </data>
        <data format="tsv" name="output_impacted_multihit" label="${tool.name} - ${tool_name}: impacted_clusters.multi-affiliations.tsv">
            <filter>frogs_core_tools['tool_name'] == 'affiliation_filters'</filter>
        </data>
        <!-- Specific affiliation_postprocess  -->
        <data format="tsv" name="output_asv_compo" label="${tool.name} - ${tool_name}: aggregation_composition.tsv">
            <filter>frogs_core_tools['tool_name'] == 'affiliation_postprocess'</filter>
        </data>
        <!-- Specific tree  -->
        <data format="nhx" name="output_tree" label="${tool.name} - ${tool_name}: tree.nwk">
            <filter>frogs_core_tools['tool_name'] == 'tree'</filter>
        </data>
        <!-- Specific biom_to_tsv -->
        <data format="tsv" name="output_tsv" label="${tool.name} - ${tool_name}: abundance.tsv">
            <filter>frogs_core_tools['tool_name'] == 'biom_to_tsv'</filter>
        </data>
        <data format="tsv" name="output_multihit" label="${tool.name} - ${tool_name}: multi-affiliations.tsv">
            <filter>frogs_core_tools['tool_name'] == 'biom_to_tsv' and frogs_core_tools['extract_multi_align'] == 'yes'</filter>
        </data>
    </xml>
</macros>