view count-kmers.xml @ 1:52cfaa8d7b1c draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/meryl commit 6935ad9dddbbb913817552d682d0b2208481dc7f
author iuc
date Sun, 09 Nov 2025 18:35:01 +0000
parents e377b0f8efda
children
line wrap: on
line source

<tool id="meryl_count_kmers" name="Meryl" version="@TOOL_VERSION@+@GALAXY_TOOL_VERSION@@SUFFIX_VERSION@" profile="@PROFILE@">
    <description>count k-mers</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="edam_ontology"/>
    <xrefs>
        <xref type="bio.tools">meryl</xref>
    </xrefs>
    <expand macro="requirements"/>
    <version_command>meryl --version</version_command>
    <command detect_errors="exit_code"><![CDATA[
    export GALAXY_MEMORY_GB=\$((\${GALAXY_MEMORY_MB:-8192}/1024)) &&
    #if $options_kmer_size.kmer_size == 'estimate'
        #from math import log
        #set size=int(log(int($options_kmer_size.genome_size)*(1-float($options_kmer_size.collision_rate))/float($options_kmer_size.collision_rate))/log(4))
    #elif $options_kmer_size.kmer_size == 'provide'
        #set size=$options_kmer_size.input_kmer_size
    #end if
    ln -s '$input_reads' ./input.${input_reads.ext} &&

    meryl
    $count_operation
    k=$size
    memory=\$GALAXY_MEMORY_GB
    threads=\${GALAXY_SLOTS:-1}
    ./input.${input_reads.ext}
    output read-db.meryl &&
    echo 'K-mer size: ${size}' &&
    tar -cf read-db.meryldb --use-compress-program="pigz -p \${GALAXY_SLOTS:-1}" read-db.meryl
    ]]></command>
    <inputs>
        <param name="count_operation" type="select" label="Count operations" help="Select an operation to be executed">
            <option value="count">Count: count the occurrences of canonical k-mers</option>
            <option value="count-forward">Count-forward: count the occurreces of forward k-mers</option>
            <option value="count-reverse">Count-reverse: count the occurreces of reverse k-mers</option>
        </param>
        <param name="input_reads" type="data" format="fastq,fastq.gz,fasta,fasta.gz" label="Input sequences" help="Select your reads in FASTA/FASTQ format."/>
        <expand macro="kmer_param"/>
    </inputs>
    <outputs>
        <data name="read_db" format="meryldb" from_work_dir="read-db.meryldb"/>
    </outputs>
    <tests>
        <test expect_num_outputs="1">
            <conditional name="options_kmer_size">
                <param name="kmer_size" value="provide"/>
                <param name="input_kmer_size" value="7"/>
            </conditional>
            <param name="input_reads" value="child.fasta"/>
            <param name="count_operation" value="count"/>
            <output name="read_db" ftype="meryldb">
                <assert_contents>
                    <has_size value="23404" delta="3000"/>
                    <expand macro="meryldb_archive_assumptions"/>
                </assert_contents>
            </output>
            <assert_stdout>
                <has_line line="K-mer size: 7"/>
            </assert_stdout>
        </test>
        <test expect_num_outputs="1">
            <conditional name="options_kmer_size">
                <param name="kmer_size" value="provide"/>
                <param name="input_kmer_size" value="7"/>
            </conditional>
            <param name="input_reads" value="child.fasta.gz" ftype="fasta.gz"/>
            <param name="count_operation" value="count"/>
            <output name="read_db" ftype="meryldb">
                <assert_contents>
                    <has_size value="22700" delta="3000"/>
                    <expand macro="meryldb_archive_assumptions"/>
                </assert_contents>
            </output>
            <assert_stdout>
                <has_line line="K-mer size: 7"/>
            </assert_stdout>
        </test>
        <test expect_num_outputs="1">
            <conditional name="options_kmer_size">
                <param name="kmer_size" value="provide"/>
                <param name="input_kmer_size" value="7"/>
            </conditional>
            <param name="input_reads" value="child.fastq.gz" ftype="fastqsanger.gz"/>
            <param name="count_operation" value="count"/>
            <output name="read_db" ftype="meryldb">
                <assert_contents>
                    <has_size value="23155" delta="3000"/>
                    <expand macro="meryldb_archive_assumptions"/>
                </assert_contents>
            </output>
            <assert_stdout>
                <has_line line="K-mer size: 7"/>
            </assert_stdout>
        </test>
    </tests>
    <help>

.. class:: infomark

**Purpose**

Meryl is the k-mer counter. This tool can be used to count kmers. 

- Count: count the occurrences of canonical k-mers
- Count-forward: count the occurreces of forward k-mers
- Count-reverse: count the occurreces of reverse k-mers
        </help>
    <expand macro="citations"/>
</tool>