kkonganti@17: process SOURMASH_SIG_KMERS { kkonganti@17: tag "$meta.id" kkonganti@17: label 'process_micro' kkonganti@17: kkonganti@17: module (params.enable_module ? "${params.swmodulepath}${params.fs}sourmash${params.fs}4.6.1" : null) kkonganti@17: conda (params.enable_conda ? "conda-forge::python bioconda::sourmash=4.6.1" : null) kkonganti@17: container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? kkonganti@17: 'https://depot.galaxyproject.org/singularity/sourmash:4.6.1--hdfd78af_0' : kkonganti@17: 'quay.io/biocontainers/sourmash:4.6.1--hdfd78af_0' }" kkonganti@17: kkonganti@17: input: kkonganti@17: tuple val(meta), path(sig_or_seq), path(sequence) kkonganti@17: kkonganti@17: output: kkonganti@17: tuple val(meta), path("*.csv") , emit: signatures, optional: true kkonganti@17: tuple val(meta), path("*.fasta"), emit: extracted_fasta, optional: true kkonganti@17: path "versions.yml" , emit: versions kkonganti@17: kkonganti@17: when: kkonganti@17: task.ext.when == null || task.ext.when kkonganti@17: kkonganti@17: script: kkonganti@17: // required defaults for the tool to run, but can be overridden kkonganti@17: def args = task.ext.args ?: '' kkonganti@17: def is_seq = "${sig_or_seq.baseName.findAll(/(?i)\.(fa|fasta|fna)\.{0,1}(gz){0,1}$/).size()}" kkonganti@17: def save_kmers = (params.sourmashsigkmers_save_kmers ? "--save-kmers ${meta.id}.sm.kmers.csv" : '') kkonganti@17: def save_seqs = (params.sourmashsigkmers_save_seqs ? "--save-sequences ${meta.id}.sm.seq.fasta" : '') kkonganti@17: def sketch_mode = (params.sourmashsketch_mode ?: 'dna') kkonganti@17: def sketch_p = (params.sourmashsketch_p ?: "abund,scaled=1000,k=71") kkonganti@17: def prefix = task.ext.prefix ?: "${meta.id}" kkonganti@17: """ kkonganti@17: db_sig="${sig_or_seq}" kkonganti@17: if [[ $is_seq -ge 1 ]]; then kkonganti@17: db_sig="${prefix}.db.sig" kkonganti@17: sourmash sketch \\ kkonganti@17: $sketch_mode \\ kkonganti@17: -p '$sketch_p' \\ kkonganti@17: --output \$db_sig \\ kkonganti@17: $sig_or_seq kkonganti@17: fi kkonganti@17: kkonganti@17: sourmash signature kmers \\ kkonganti@17: $args \\ kkonganti@17: $save_kmers \\ kkonganti@17: $save_seqs \\ kkonganti@17: --signatures \$db_sig \\ kkonganti@17: --sequences $sequence kkonganti@17: kkonganti@17: cat <<-END_VERSIONS > versions.yml kkonganti@17: "${task.process}": kkonganti@17: sourmash: \$(echo \$(sourmash --version 2>&1) | sed 's/^sourmash //' ) kkonganti@17: bash: \$( bash --version 2>&1 | sed '1!d; s/^.*version //; s/ (.*\$//' ) kkonganti@17: END_VERSIONS kkonganti@17: """ kkonganti@17: }