mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-12-22 19:18:17 +00:00
90aef30f43
* Set process label to `process_single` for modules with no `task.cpus` usage * Fix tests of 'borked' modules * prettier * More modules are single-threaded and can use process_single * Adding process_single to hmmer/esl* modules * Fix failing tests * Prettier Co-authored-by: Matthieu Muffato <mm49@sanger.ac.uk> Co-authored-by: Daniel Lundin <erik.rikard.daniel@gmail.com>
56 lines
2.8 KiB
Text
56 lines
2.8 KiB
Text
process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES {
|
|
label 'process_single'
|
|
|
|
conda (params.enable_conda ? "bioconda::antismash-lite=6.0.1" : null)
|
|
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
|
'https://depot.galaxyproject.org/singularity/antismash-lite:6.0.1--pyhdfd78af_1' :
|
|
'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }"
|
|
|
|
/*
|
|
These files are normally downloaded/created by download-antismash-databases itself, and must be retrieved for input by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. This is solely for use for CI tests of the nf-core/module version of antiSMASH.
|
|
Reason: Upon execution, the tool checks if certain database files are present within the container and if not, it tries to create them in /usr/local/bin, for which only root user has write permissions. Mounting those database files with this module prevents the tool from trying to create them.
|
|
These files are also emitted as output channels in this module to enable the antismash-lite module to use them as mount volumes to the docker/singularity containers.
|
|
*/
|
|
|
|
containerOptions {
|
|
workflow.containerEngine == 'singularity' ?
|
|
"-B $database_css:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css,$database_detection:/usr/local/lib/python3.8/site-packages/antismash/detection,$database_modules:/usr/local/lib/python3.8/site-packages/antismash/modules" :
|
|
workflow.containerEngine == 'docker' ?
|
|
"-v \$PWD/$database_css:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css -v \$PWD/$database_detection:/usr/local/lib/python3.8/site-packages/antismash/detection -v \$PWD/$database_modules:/usr/local/lib/python3.8/site-packages/antismash/modules" :
|
|
''
|
|
}
|
|
|
|
input:
|
|
path database_css
|
|
path database_detection
|
|
path database_modules
|
|
|
|
output:
|
|
path("antismash_db") , emit: database
|
|
path("antismash_dir"), emit: antismash_dir
|
|
path "versions.yml", emit: versions
|
|
|
|
when:
|
|
task.ext.when == null || task.ext.when
|
|
|
|
script:
|
|
def args = task.ext.args ?: ''
|
|
conda = params.enable_conda
|
|
"""
|
|
download-antismash-databases \\
|
|
--database-dir antismash_db \\
|
|
$args
|
|
|
|
if [[ $conda = false ]]; \
|
|
then \
|
|
cp -r /usr/local/lib/python3.8/site-packages/antismash antismash_dir; \
|
|
else \
|
|
cp -r \$(python -c 'import antismash;print(antismash.__file__.split("/__")[0])') antismash_dir; \
|
|
fi
|
|
|
|
cat <<-END_VERSIONS > versions.yml
|
|
"${task.process}":
|
|
antismash-lite: \$(antismash --version | sed 's/antiSMASH //')
|
|
END_VERSIONS
|
|
"""
|
|
}
|