Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
fd604a1
🔧 update image and bioconda container to latest version
enryH Oct 16, 2025
a1d39a8
✅ update test snapshots
enryH Oct 16, 2025
3b4ebd1
Merge branch 'master' into update_vuegen
famosab Oct 17, 2025
5eb02c4
:bug: fix display of version of vuegen
enryH Oct 20, 2025
8de97ed
Merge branch 'master' into update_vuegen
famosab Oct 20, 2025
9b17dc0
:art: display versions.yml content in snapshots
enryH Oct 20, 2025
0956008
Merge branch 'master' into update_vuegen
enryH Oct 22, 2025
b8e8add
🔧 add Dockerfile to install lastet PyPI vuegen version
enryH Oct 22, 2025
6bf04c9
🚧 add wave containers
enryH Oct 22, 2025
9fe09f6
:fire: remove README again
enryH Oct 24, 2025
d9f4c67
Merge branch 'master' into update_vuegen
enryH Oct 24, 2025
3493280
:fire: remove Dockerfile again
enryH Oct 24, 2025
e9b110f
Merge branch 'master' into update_vuegen
enryH Oct 28, 2025
f25c416
🚧 try to follow Mahesh's advice
enryH Oct 28, 2025
15c1836
Merge branch 'master' into update_vuegen
enryH Oct 28, 2025
f71f78c
:bug: add explicit cache directory
enryH Oct 29, 2025
68f79c7
Merge branch 'master' into update_vuegen
enryH Oct 29, 2025
2791af4
🔧 bump to Python 3.12 and remove channel prefix
enryH Oct 29, 2025
58ef775
:wrench: specify singularity image with https
enryH Oct 29, 2025
d27f0a9
Merge branch 'master' into update_vuegen
enryH Nov 26, 2025
173470e
🚧 set user specified R libarary folder
enryH Nov 26, 2025
f3e7838
Merge branch 'master' into update_vuegen
enryH Nov 26, 2025
b025563
Merge branch 'master' into update_vuegen
enryH Nov 27, 2025
9ef97bd
⏪ make docker and conda work again (using nf-core 3.5.1)
enryH Nov 27, 2025
84ebadc
Merge branch 'master' into update_vuegen
enryH Nov 27, 2025
870f20d
Merge branch 'master' into update_vuegen
enryH Dec 2, 2025
7dceb98
:wrench: switch again to custom docker image instead of wave
enryH Dec 2, 2025
d18ee75
:bug: try to add font package
enryH Dec 2, 2025
d75d658
:fire: remove code moved to image
enryH Dec 3, 2025
4dfb9c6
⏪ add back conda quarto flag
enryH Dec 3, 2025
9b397f0
Merge branch 'master' into update_vuegen
enryH Dec 3, 2025
0f35782
:art: remove trailing whitespace
enryH Dec 3, 2025
e432238
:art: format again
enryH Dec 3, 2025
3abd507
:art: hopefully the last trailing whitespace
enryH Dec 3, 2025
76a567f
:memo: document the build process and why the container is needed
enryH Dec 3, 2025
2972bf0
Merge branch 'master' into update_vuegen
enryH Dec 4, 2025
cbe2d04
Update image with nf-core one
enryH Dec 4, 2025
afd3840
Update container name
enryH Dec 4, 2025
928a7d9
Apply suggestion from @mashehu
mashehu Dec 4, 2025
f8a24f8
Merge branch 'master' into update_vuegen
enryH Dec 5, 2025
a1606e6
Apply suggestion from @mashehu
mashehu Dec 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions modules/nf-core/vuegen/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Set the base image to the official Python 3.12 slim debian bookworm image
FROM python:3.12-slim-bookworm

# Disable manual feedback for apt-get, update package list, install security updates,
# and install packages (procps, and system dependencies for tinytex and kaleido).
# Then clean up the package list and remove the cache.
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get -y upgrade && \
apt-get install -y --no-install-recommends \
procps \
wget \
perl \
libglib2.0-0 \
libgdk-pixbuf2.0-0 \
libfontconfig1 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install vuegen Python package
RUN pip install --no-cache-dir -U vuegen

# Create and switch to non-root user for security reasons
RUN useradd --create-home appuser
USER appuser

# Set the working directory
WORKDIR /home/appuser

# Install TinyTeX for pdf reports
RUN perl -mFile::Find /dev/null && \
wget -qO- "https://yihui.org/tinytex/install-bin-unix.sh" | sh && \
~/.TinyTeX/bin/*/tlmgr install \
koma-script \
caption

# Set permissions for the appuser home directory
RUN chmod -R 777 /home/appuser

# Set environment variables for Quarto, dataframe_image, and TinyTeX. Also, get tracebacks from C crashes
ENV XDG_RUNTIME_DIR=/tmp \
XDG_CACHE_HOME=/tmp/quarto_cache_home \
XDG_DATA_HOME=/tmp/quarto_data_home \
PATH="${PATH}:/home/appuser/bin" \
PYTHONFAULTHANDLER=1
27 changes: 27 additions & 0 deletions modules/nf-core/vuegen/README.md
Comment thread
enryH marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# VueGen module

## Images using wave

Cached images for 0.5.1 version available on wave, see
[docs](https://docs.seqera.io/wave#seqera-containers---the-community-container-registry)

platform | version | image
-------- | ------- | -----
docker | linux/amd64 | community.wave.seqera.io/library/vuegen_python:236414fc5cfce774
singularity | linux/amd64 | oras://community.wave.seqera.io/library/vuegen_python:1adb57ecbfa02088
docker | linux/arm64 | community.wave.seqera.io/library/vuegen_python:a1dc6490f5045706
singularity | linux/arm64 | oras://community.wave.seqera.io/library/vuegen_python:64670fcadedf151f

## Custom docker file

- check Docker best practices with hadolint, see
[docker-docs](https://docs.docker.com/build/building/best-practices/)


```bash
$ hadolint Dockerfile
Dockerfile:7 DL3008 warning: Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <package>=<version>`
Dockerfile:24 DL3059 info: Multiple consecutive `RUN` instructions. Consider consolidation.
Dockerfile:31 SC2211 warning: This is a glob used as a command name. Was it supposed to be in ${..}, array, or is it missing quoting?
Dockerfile:31 DL4006 warning: Set the SHELL option -o pipefail before RUN with a pipe in it. If you are using /bin/sh in an alpine image or if your shell is symlinked to busybox then consider explicitly setting your SHELL to /bin/ash, or disable this check
```
2 changes: 1 addition & 1 deletion modules/nf-core/vuegen/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ channels:
- bioconda
- conda-forge
dependencies:
- bioconda::vuegen=0.3.2
- bioconda::vuegen=0.5.1
- python=3.11
8 changes: 5 additions & 3 deletions modules/nf-core/vuegen/main.nf
Original file line number Diff line number Diff line change
@@ -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
? 'oras://community.wave.seqera.io/library/vuegen_python:1adb57ecbfa02088'
: 'community.wave.seqera.io/library/vuegen_python:236414fc5cfce774'}"

input:
val input_type
Expand Down Expand Up @@ -36,7 +38,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
"""

Expand All @@ -48,7 +50,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
"""
}
10 changes: 5 additions & 5 deletions modules/nf-core/vuegen/tests/main.nf.test
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}
)
Expand Down Expand Up @@ -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()
}
)
Expand Down Expand Up @@ -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()
}
)
Expand All @@ -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()
}
)
}
}
}
}
58 changes: 33 additions & 25 deletions modules/nf-core/vuegen/tests/main.nf.test.snap
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,21 @@
"vuegen - directory (HTML report) -stub": {
"content": [
{
"versions": [
"versions.yml:md5,c3e7ebc433dcacf3d15e1113fd44f5ec"
]
"versions": {
"VUEGEN": {
"vuegen": "0.5.1"
}
}
},
[
"report"
]
],
"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": [
Expand All @@ -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": [
Expand All @@ -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"
}
}
Loading