diff --git a/modules/nf-core/vuegen/environment.yml b/modules/nf-core/vuegen/environment.yml index 8eab2a170585..6dee2d2d963d 100644 --- a/modules/nf-core/vuegen/environment.yml +++ b/modules/nf-core/vuegen/environment.yml @@ -4,5 +4,5 @@ channels: - bioconda - conda-forge dependencies: - - bioconda::vuegen=0.3.2 - - python=3.11 + - python=3.12 + - vuegen=0.5.1 diff --git a/modules/nf-core/vuegen/main.nf b/modules/nf-core/vuegen/main.nf index ddc333fe5859..aae6b6464352 100644 --- a/modules/nf-core/vuegen/main.nf +++ b/modules/nf-core/vuegen/main.nf @@ -1,7 +1,9 @@ process VUEGEN { label 'process_single' conda "${moduleDir}/environment.yml" - container "dtu_biosustain_dsp/vuegen:v0.3.2-nextflow" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/fa/fadd4c6459b24fc3964d47d72dbf809e425054e08f1aec9d56c8bec40b4b3a47/data' + : 'community.wave.seqera.io/library/vuegen_python:236414fc5cfce774'}" input: val input_type @@ -18,6 +20,19 @@ process VUEGEN { script: def args = task.ext.args ?: '' """ + # Set environment variables needed for Quarto rendering + # (needed for apptainer/singularity) + export XDG_CACHE_HOME="./.xdg_cache_home" + export XDG_DATA_HOME="./.xdg_data_home" + # Fix Quarto for apptainer: activate conda environment + # https://github.com/mahesh-panchal/quarto-docker-singularity-problem + ENV_QUARTO="\${ENV_QUARTO:-/opt/conda/etc/conda/activate.d/quarto.sh}" + set +u + if [ -z "\${QUARTO_DENO}" ] && [ -f "\${ENV_QUARTO}" ]; then + source "\${ENV_QUARTO}" + fi + set -u + # Validate quarto_check flag if using a conda environment if [[ "${task.conda}" != "null" ]]; then QUARTO_CHECK_FLAG="--quarto_checks" @@ -36,7 +51,7 @@ process VUEGEN { cat <<-END_VERSIONS > versions.yml "${task.process}": - vuegen: \$( vuegen --version | sed -e "s/vuegen //g" ) + vuegen: \$( python -c "import vuegen; print(vuegen.__version__)" ) END_VERSIONS """ @@ -48,7 +63,7 @@ process VUEGEN { cat <<-END_VERSIONS > versions.yml "${task.process}": - vuegen: \$( vuegen --version | sed -e "s/vuegen //g" ) + vuegen: \$( python -c "import vuegen; print(vuegen.__version__)" ) END_VERSIONS """ } diff --git a/modules/nf-core/vuegen/tests/main.nf.test b/modules/nf-core/vuegen/tests/main.nf.test index 48550271b466..40f7c7938f28 100644 --- a/modules/nf-core/vuegen/tests/main.nf.test +++ b/modules/nf-core/vuegen/tests/main.nf.test @@ -49,7 +49,7 @@ nextflow_process { "Static_Plots.py": path(process.out.output_folder[0] + "/sections/Plots/Static_Plots.py") .readLines()[0..3].sort().join('\n').md5() ], - versions: process.out.versions + versions: path(process.out.versions[0]).yaml, ]).match() } ) @@ -80,7 +80,7 @@ nextflow_process { "quarto_report.qmd": path(process.out.output_folder[0] + "/quarto_report.qmd") .readLines()[0..3].join('\n').md5() ], - versions: process.out.versions + versions: path(process.out.versions[0]).yaml ]).match() } ) @@ -111,7 +111,7 @@ nextflow_process { "quarto_report.qmd": path(process.out.output_folder[0] + "/quarto_report.qmd") .readLines()[0..3].sort().join('\n').md5() ], - versions: process.out.versions + versions: path(process.out.versions[0]).yaml, ]).match() } ) @@ -138,10 +138,10 @@ nextflow_process { assert snapshot( process.out.output_folder.collect { file(it).getName() } + process.out.output_files.collect { file(it).getName() }, - versions: process.out.versions + versions: path(process.out.versions[0]).yaml, ).match() } ) } } -} \ No newline at end of file +} diff --git a/modules/nf-core/vuegen/tests/main.nf.test.snap b/modules/nf-core/vuegen/tests/main.nf.test.snap index ba5f6682404c..ea03a715d364 100644 --- a/modules/nf-core/vuegen/tests/main.nf.test.snap +++ b/modules/nf-core/vuegen/tests/main.nf.test.snap @@ -2,9 +2,11 @@ "vuegen - directory (HTML report) -stub": { "content": [ { - "versions": [ - "versions.yml:md5,c3e7ebc433dcacf3d15e1113fd44f5ec" - ] + "versions": { + "VUEGEN": { + "vuegen": "0.5.1" + } + } }, [ "report" @@ -12,9 +14,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nextflow": "24.10.6" }, - "timestamp": "2025-04-22T09:34:45.900956" + "timestamp": "2025-10-20T13:25:42.669804" }, "vuegen - directory (HTML report)": { "content": [ @@ -24,16 +26,18 @@ "quarto_report.html": "0129d189059f27b3d2ff6f328cd18ef9", "quarto_report.qmd": "e60a379de892055748e4597f9d8c656c" }, - "versions": [ - "versions.yml:md5,c3e7ebc433dcacf3d15e1113fd44f5ec" - ] + "versions": { + "VUEGEN": { + "vuegen": "0.5.1" + } + } } ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nextflow": "24.10.6" }, - "timestamp": "2025-04-22T09:04:23.56469" + "timestamp": "2025-10-20T13:24:59.558083" }, "vuegen - directory (PDF report)": { "content": [ @@ -43,37 +47,41 @@ "quarto_report.pdf": true, "quarto_report.qmd": "c447088ca2a435acf926ec5e95c51265" }, - "versions": [ - "versions.yml:md5,c3e7ebc433dcacf3d15e1113fd44f5ec" - ] + "versions": { + "VUEGEN": { + "vuegen": "0.5.1" + } + } } ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nextflow": "24.10.6" }, - "timestamp": "2025-04-22T09:05:54.139709" + "timestamp": "2025-10-20T13:25:37.140787" }, "vuegen - directory (Streamlit report)": { "content": [ { "output_folder": true, "output_files": { - "Homepage.py": "Homepage.py:md5,483a41696c225663772d68ff2d664493", - "report_manager.py": "report_manager.py:md5,ed15eefa722b7a2f08cca016c0c8e28d", - "All_Formats.py": "e2a56e761eb537da8f9809cbc0b63a9d", - "Interactive_Plots.py": "3198216240ef9b86d5b1ed722bd9b31c", - "Static_Plots.py": "931fd04e2e49cb14d169747b6d5bbd1e" + "Homepage.py": "Homepage.py:md5,a46395bbdfb127463d51d8f601f2ad83", + "report_manager.py": "report_manager.py:md5,a683071ba8bc6e371c8617ef9c3fb84e", + "All_Formats.py": "1f61acc3ca34f6ff941c109d93570815", + "Interactive_Plots.py": "4857dc511178812e93c2037c8bbe04f4", + "Static_Plots.py": "ae9c2e46ae9a9e0e5e98fcce87cd7f80" }, - "versions": [ - "versions.yml:md5,c3e7ebc433dcacf3d15e1113fd44f5ec" - ] + "versions": { + "VUEGEN": { + "vuegen": "0.5.1" + } + } } ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nextflow": "24.10.6" }, - "timestamp": "2025-04-22T09:03:48.375488" + "timestamp": "2025-10-20T13:19:47.56244" } } \ No newline at end of file