nf-core_modules/modules/amrfinderplus/run/main.nf
louperelo 839bc6b1ad
Amrfinderplus add tool and db version as output (#1912)
* not yet working: add db version to versions.yml

* next try: db version number not in versions.yml

* Fix amrfinderplus versioning

* Update main.nf

* Apply suggestions from code review

* Update main.nf

* Dump version for syncrony with run

* Update test.yml

* Apply suggestions from code review

* add tool and db version to output

* Apply suggestions from code review

Co-authored-by: James A. Fellows Yates <jfy133@gmail.com>

* Update meta.yml

Co-authored-by: James Fellows Yates <jfy133@gmail.com>
2022-07-20 11:55:44 +02:00

60 lines
2.1 KiB
Text

process AMRFINDERPLUS_RUN {
tag "$meta.id"
label 'process_medium'
conda (params.enable_conda ? "bioconda::ncbi-amrfinderplus=3.10.30" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/ncbi-amrfinderplus:3.10.30--h6e70893_0':
'quay.io/biocontainers/ncbi-amrfinderplus:3.10.30--h6e70893_0' }"
input:
tuple val(meta), path(fasta)
path db
output:
tuple val(meta), path("${prefix}.tsv") , emit: report
tuple val(meta), path("${prefix}-mutations.tsv"), emit: mutation_report, optional: true
path "versions.yml" , emit: versions
env VER , emit: tool_version
env DBVER , emit: db_version
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
def is_compressed = fasta.getName().endsWith(".gz") ? true : false
prefix = task.ext.prefix ?: "${meta.id}"
organism_param = meta.containsKey("organism") ? "--organism ${meta.organism} --mutation_all ${prefix}-mutations.tsv" : ""
fasta_name = fasta.getName().replace(".gz", "")
fasta_param = "-n"
if (meta.containsKey("is_proteins")) {
if (meta.is_proteins) {
fasta_param = "-p"
}
}
"""
if [ "$is_compressed" == "true" ]; then
gzip -c -d $fasta > $fasta_name
fi
mkdir amrfinderdb
tar xzvf $db -C amrfinderdb
amrfinder \\
$fasta_param $fasta_name \\
$organism_param \\
$args \\
--database amrfinderdb \\
--threads $task.cpus > ${prefix}.tsv
VER=\$(amrfinder --version)
DBVER=\$(echo \$(amrfinder --database amrfinderdb --database_version 2> stdout) | rev | cut -f 1 -d ' ' | rev)
cat <<-END_VERSIONS > versions.yml
"${task.process}":
amrfinderplus: \$(amrfinder --version)
amrfinderplus-database: \$(echo \$(echo \$(amrfinder --database amrfinderdb --database_version 2> stdout) | rev | cut -f 1 -d ' ' | rev))
END_VERSIONS
"""
}