nf-core_modules/software/last/dotplot/main.nf
Charles Plessy c8168bc351
Update last module (#533)
* Update LAST to version 1238.

* Update functions.nf to the latest devel version.

* Update test MD5sums after updating software version.

* Make portable on MacOS

* Allow input alignments to be uncompressed.

While the strategy in this family of modules is to make all inputs and
outputs compressed, this change might be useful to some users.

As of LAST 2138, `last/split` does not allow its input to be compressed.

* Search for .des file, that is guaranteed to be unique.

Some LAST indexes have more than one .bck file and it makes the name
detection crash.

In this commit, I also standardise how the names are detected.

* Use value input channel and optional output channels to handle formats.

As discussed on Slack, it is preferred to use a value input channel
instead of sneaking options through `params.args2` or `params.format`
as we did.

Likewise, optional output channels with clearly labeled format are
preferred to 'catch-all' wildcards.
2021-06-14 12:27:27 +01:00

42 lines
1.4 KiB
Text

// Import generic module functions
include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:]
options = initOptions(params.options)
process LAST_DOTPLOT {
tag "$meta.id"
label 'process_low'
publishDir "${params.outdir}",
mode: params.publish_dir_mode,
saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:meta, publish_by_meta:['id']) }
conda (params.enable_conda ? "bioconda::last=1238" : null)
if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) {
container "https://depot.galaxyproject.org/singularity/last:1238--h2e03b76_0"
} else {
container "quay.io/biocontainers/last:1238--h2e03b76_0"
}
input:
tuple val(meta), path(maf)
val(format)
output:
tuple val(meta), path("*.gif"), optional:true, emit: gif
tuple val(meta), path("*.png"), optional:true, emit: png
path "*.version.txt" , emit: version
script:
def software = getSoftwareName(task.process)
def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}"
"""
last-dotplot \\
$options.args \\
$maf \\
$prefix.$format
# last-dotplot has no --version option so let's use lastal from the same suite
lastal --version | sed 's/lastal //' > ${software}.version.txt
"""
}