From 004286a5d14bf49c8d0d278f17b7ddfd4d9df05e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Chrusciel?= Date: Fri, 8 Aug 2025 21:01:53 -0300 Subject: [PATCH 1/9] fix #18 - fix issue #18 --- containers/debian-nanopore.def | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/containers/debian-nanopore.def b/containers/debian-nanopore.def index e55c1c1..73383d4 100644 --- a/containers/debian-nanopore.def +++ b/containers/debian-nanopore.def @@ -39,20 +39,22 @@ From: debian:12 python3 setup.py install # Install modkit + MODKIT_VERSION = "v0.4.3" cd /opt mkdir modkit && cd modkit - wget https://github.com/nanoporetech/modkit/releases/download/v0.4.4/modkit_v0.4.4_u16_x86_64.tar.gz - tar -xzf modkit_v0.4.4_u16_x86_64.tar.gz - rm modkit_v0.4.4_u16_x86_64.tar.gz - echo 'export PATH="/opt/modkit/dist_modkit_v0.4.4_7cf558c:$PATH"' >> "$SINGULARITY_ENVIRONMENT" + wget https://github.com/nanoporetech/modkit/releases/download/${MODKIT_VERSION}/modkit_${MODKIT_VERSION}_u16_x86_64.tar.gz + tar -xzf modkit_${MODKIT_VERSION}_u16_x86_64.tar.gz + rm modkit_${MODKIT_VERSION}_u16_x86_64.tar.gz + echo 'export PATH="/opt/modkit/dist_modkit_${MODKIT_VERSION}:$PATH"' >> "$SINGULARITY_ENVIRONMENT" # Install Dorado + DORADO_VERSION = "0.9.1" cd /opt mkdir dorado && cd dorado - wget https://cdn.oxfordnanoportal.com/software/analysis/dorado-1.0.1-linux-x64.tar.gz - tar -xzf dorado-1.0.1-linux-x64.tar.gz - rm dorado-1.0.1-linux-x64.tar.gz - echo 'export PATH="/opt/dorado/dorado-1.0.1-linux-x64/bin/:$PATH"' >> "$SINGULARITY_ENVIRONMENT" + wget https://cdn.oxfordnanoportal.com/software/analysis/dorado-${DORADO_VERSION}-linux-x64.tar.gz + tar -xzf dorado-${DORADO_VERSION}-linux-x64.tar.gz + rm dorado-${DORADO_VERSION}-linux-x64.tar.gz + echo 'export PATH="/opt/dorado/dorado-${DORADO_VERSION}-linux-x64/bin/:$PATH"' >> "$SINGULARITY_ENVIRONMENT" %test # Check if installations are on path and display their versions @@ -67,13 +69,13 @@ From: debian:12 %labels author Joao Henrique Chrusciel - version v0.5.0 + version v0.5.1 %help Software included in the container are: - dorado==1.0.1 - modkit==0.4.4 + dorado==${DORADO_VERSION} + modkit==${MODKIT_VERSION} samtools==1.16.1 pod5==0.3.23 pycoQC==2.5.2 -- GitLab From 17154619204ea67963d238adc60efdf3b8ba5fea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Chrusciel?= Date: Fri, 8 Aug 2025 21:44:58 -0300 Subject: [PATCH 2/9] fixed the way shell variables were set --- containers/debian-nanopore.def | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/containers/debian-nanopore.def b/containers/debian-nanopore.def index 73383d4..2ccb721 100644 --- a/containers/debian-nanopore.def +++ b/containers/debian-nanopore.def @@ -39,7 +39,7 @@ From: debian:12 python3 setup.py install # Install modkit - MODKIT_VERSION = "v0.4.3" + MODKIT_VERSION="v0.4.3" cd /opt mkdir modkit && cd modkit wget https://github.com/nanoporetech/modkit/releases/download/${MODKIT_VERSION}/modkit_${MODKIT_VERSION}_u16_x86_64.tar.gz @@ -48,7 +48,7 @@ From: debian:12 echo 'export PATH="/opt/modkit/dist_modkit_${MODKIT_VERSION}:$PATH"' >> "$SINGULARITY_ENVIRONMENT" # Install Dorado - DORADO_VERSION = "0.9.1" + DORADO_VERSION="0.9.1" cd /opt mkdir dorado && cd dorado wget https://cdn.oxfordnanoportal.com/software/analysis/dorado-${DORADO_VERSION}-linux-x64.tar.gz -- GitLab From bb2a2aadff1899c7ad13dc67a60bf76a7d0b9bde Mon Sep 17 00:00:00 2001 From: Carlos Gomes Date: Sat, 9 Aug 2025 12:48:27 -0300 Subject: [PATCH 3/9] up: support build arg file for app versions --- README.md | 1 + containers/debian-nanopore.def | 22 ++++++++++------------ containers/versions.txt | 2 ++ 3 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 containers/versions.txt diff --git a/README.md b/README.md index 9796483..fec96e2 100755 --- a/README.md +++ b/README.md @@ -68,6 +68,7 @@ NextFlow pipeline used by the Developmental Cognitive Neuroscience Lab (DCNL) to mkdir images apptainer build \ --mksquashfs-args="-comp lz4" \ + --build-arg-file="containers/versions.txt" \ images/debian-nanopore.sif \ containers/debian-nanopore.def ``` diff --git a/containers/debian-nanopore.def b/containers/debian-nanopore.def index 2ccb721..a1ba600 100644 --- a/containers/debian-nanopore.def +++ b/containers/debian-nanopore.def @@ -39,22 +39,20 @@ From: debian:12 python3 setup.py install # Install modkit - MODKIT_VERSION="v0.4.3" cd /opt mkdir modkit && cd modkit - wget https://github.com/nanoporetech/modkit/releases/download/${MODKIT_VERSION}/modkit_${MODKIT_VERSION}_u16_x86_64.tar.gz - tar -xzf modkit_${MODKIT_VERSION}_u16_x86_64.tar.gz - rm modkit_${MODKIT_VERSION}_u16_x86_64.tar.gz - echo 'export PATH="/opt/modkit/dist_modkit_${MODKIT_VERSION}:$PATH"' >> "$SINGULARITY_ENVIRONMENT" + wget "https://github.com/nanoporetech/modkit/releases/download/{{ MODKIT_VERSION }}/modkit_{{ MODKIT_VERSION }}_u16_x86_64.tar.gz" + tar -xzf "modkit_{{ MODKIT_VERSION }}_u16_x86_64.tar.gz" + rm "modkit_{{ MODKIT_VERSION }}_u16_x86_64.tar.gz" + echo 'export PATH="/opt/modkit/dist_modkit_{{ MODKIT_VERSION }}:$PATH"' >> "$SINGULARITY_ENVIRONMENT" # Install Dorado - DORADO_VERSION="0.9.1" cd /opt mkdir dorado && cd dorado - wget https://cdn.oxfordnanoportal.com/software/analysis/dorado-${DORADO_VERSION}-linux-x64.tar.gz - tar -xzf dorado-${DORADO_VERSION}-linux-x64.tar.gz - rm dorado-${DORADO_VERSION}-linux-x64.tar.gz - echo 'export PATH="/opt/dorado/dorado-${DORADO_VERSION}-linux-x64/bin/:$PATH"' >> "$SINGULARITY_ENVIRONMENT" + wget "https://cdn.oxfordnanoportal.com/software/analysis/dorado-{{ DORADO_VERSION }}-linux-x64.tar.gz" + tar -xzf "dorado-{{ DORADO_VERSION }}-linux-x64.tar.gz" + rm "dorado-{{ DORADO_VERSION }}-linux-x64.tar.gz" + echo 'export PATH="/opt/dorado/dorado-{{ DORADO_VERSION }}-linux-x64/bin/:$PATH"' >> "$SINGULARITY_ENVIRONMENT" %test # Check if installations are on path and display their versions @@ -74,8 +72,8 @@ From: debian:12 %help Software included in the container are: - dorado==${DORADO_VERSION} - modkit==${MODKIT_VERSION} + dorado=="{{ DORADO_VERSION }}" + modkit=="{{ MODKIT_VERSION }}" samtools==1.16.1 pod5==0.3.23 pycoQC==2.5.2 diff --git a/containers/versions.txt b/containers/versions.txt new file mode 100644 index 0000000..2a0a3a9 --- /dev/null +++ b/containers/versions.txt @@ -0,0 +1,2 @@ +MODKIT_VERSION="v0.4.3" +DORADO_VERSION="0.9.1" -- GitLab From e422d1724801f941646b9995fdc826fdfe29f099 Mon Sep 17 00:00:00 2001 From: Carlos Gomes Date: Sat, 9 Aug 2025 13:08:49 -0300 Subject: [PATCH 4/9] up: add version env vars for other apps --- containers/debian-nanopore.def | 32 +++++++++++++++++--------------- containers/versions.txt | 8 ++++++++ 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/containers/debian-nanopore.def b/containers/debian-nanopore.def index a1ba600..ee3e979 100644 --- a/containers/debian-nanopore.def +++ b/containers/debian-nanopore.def @@ -8,12 +8,12 @@ From: debian:12 locales \ wget \ git \ - jq \ - python3 \ + jq="{{ JQ_VERSION }}" \ + python3="{{ PYTHON3_VERSION }}" \ python3-pip \ cython3 \ - samtools \ - bedtools \ + samtools="{{ SAMTOOLS_VERSION }}" \ + bedtools="{{ BEDTOOLS_VERSION }}" \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Set timezone and language for container ## @@ -27,15 +27,16 @@ From: debian:12 # using no-cache-dir so we dont keep a copy of the downloaded package # and break-system-packages to override PEP 668 (which blocks pip installs) pip install --no-cache-dir --break-system-packages \ - pod5==0.3.23 \ - multiqc==1.28 \ - plotly==5.18.0 + pod5=={{ POD5_VERSION }} \ + multiqc=={{ MULTIQC_VERSION }} \ + plotly=={{ PLOTLY_VERSION }} - # Clone and install pycoQC 3.0.0 from duceppemo fork (altering plotly version to match MultiQC plotly version >= 5.18) + # Clone and install pycoQC from duceppemo fork + # (change plotly version to match MultiQC plotly version >= 5.18) cd /opt git clone https://github.com/duceppemo/pycoQC.git cd pycoQC - sed -i 's/plotly==5.16.1/plotly==5.18.0/' setup.py + sed -i 's/plotly==5.16.1/plotly=={{ PLOTLY_VERSION }}/' setup.py python3 setup.py install # Install modkit @@ -64,22 +65,23 @@ From: debian:12 samtools --version bedtools --version jq --version + python3 --version %labels author Joao Henrique Chrusciel - version v0.5.1 + version {{ DEBIAN_NANOPORE_VERSION }} %help Software included in the container are: dorado=="{{ DORADO_VERSION }}" modkit=="{{ MODKIT_VERSION }}" - samtools==1.16.1 - pod5==0.3.23 + samtools=={{ SAMTOOLS_VERSION }} + pod5=={{ POD5_VERSION }} pycoQC==2.5.2 - bedtools==2.30.0 - multiqc==1.28 - jq==1.6 + bedtools=={{ BEDTOOLS_VERSION }} + multiqc=={{ MULTIQC_VERSION }} + jq=={{ JQ_VERSION }} NOTE THAT VERSIONS OF THE SOFTWARE INSTALLED WILL CHANGE THROUGH TIME IF YOU BUILD THE IMAGE FROM THE RECIPE FILE. diff --git a/containers/versions.txt b/containers/versions.txt index 2a0a3a9..26049a6 100644 --- a/containers/versions.txt +++ b/containers/versions.txt @@ -1,2 +1,10 @@ +DEBIAN_NANOPORE_VERSION="v0.5.1" +JQ_VERSION="1.6-2.1" +SAMTOOLS_VERSION="1.16.1-1" +BEDTOOLS_VERSION="2.30.0+dfsg-3" +PYTHON3_VERSION="3.11.2-1+b1" +POD5_VERSION="0.3.23" +MULTIQC_VERSION="1.28" +PLOTLY_VERSION="5.18.0" MODKIT_VERSION="v0.4.3" DORADO_VERSION="0.9.1" -- GitLab From e416a02efae3f304597c06e401f7dfe8eea3b508 Mon Sep 17 00:00:00 2001 From: Carlos Gomes Date: Sat, 9 Aug 2025 13:38:57 -0300 Subject: [PATCH 5/9] fix: pycoqc and plotly version issues --- containers/debian-nanopore.def | 7 ++++--- containers/versions.txt | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/containers/debian-nanopore.def b/containers/debian-nanopore.def index ee3e979..35ece5f 100644 --- a/containers/debian-nanopore.def +++ b/containers/debian-nanopore.def @@ -29,14 +29,15 @@ From: debian:12 pip install --no-cache-dir --break-system-packages \ pod5=={{ POD5_VERSION }} \ multiqc=={{ MULTIQC_VERSION }} \ - plotly=={{ PLOTLY_VERSION }} + plotly>={{ PLOTLY_VERSION }} # Clone and install pycoQC from duceppemo fork # (change plotly version to match MultiQC plotly version >= 5.18) cd /opt + # TODO: fork and maintain our own version (the original is archived) git clone https://github.com/duceppemo/pycoQC.git cd pycoQC - sed -i 's/plotly==5.16.1/plotly=={{ PLOTLY_VERSION }}/' setup.py + sed -i 's/plotly==5.16.1/plotly>={{ PLOTLY_VERSION }}/' setup.py python3 setup.py install # Install modkit @@ -78,7 +79,7 @@ From: debian:12 modkit=="{{ MODKIT_VERSION }}" samtools=={{ SAMTOOLS_VERSION }} pod5=={{ POD5_VERSION }} - pycoQC==2.5.2 + pycoQC=={{ PYCOQC_VERION }} bedtools=={{ BEDTOOLS_VERSION }} multiqc=={{ MULTIQC_VERSION }} jq=={{ JQ_VERSION }} diff --git a/containers/versions.txt b/containers/versions.txt index 26049a6..96c4217 100644 --- a/containers/versions.txt +++ b/containers/versions.txt @@ -6,5 +6,6 @@ PYTHON3_VERSION="3.11.2-1+b1" POD5_VERSION="0.3.23" MULTIQC_VERSION="1.28" PLOTLY_VERSION="5.18.0" +PYCOQC_VERION="3.0.0" MODKIT_VERSION="v0.4.3" DORADO_VERSION="0.9.1" -- GitLab From dfcd6ac9bcc8bbd259efb79e868bb4c0da9e198f Mon Sep 17 00:00:00 2001 From: Carlos Gomes Date: Sat, 9 Aug 2025 14:02:44 -0300 Subject: [PATCH 6/9] fix: export modkit --- containers/debian-nanopore.def | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/containers/debian-nanopore.def b/containers/debian-nanopore.def index 35ece5f..0a826f0 100644 --- a/containers/debian-nanopore.def +++ b/containers/debian-nanopore.def @@ -46,7 +46,8 @@ From: debian:12 wget "https://github.com/nanoporetech/modkit/releases/download/{{ MODKIT_VERSION }}/modkit_{{ MODKIT_VERSION }}_u16_x86_64.tar.gz" tar -xzf "modkit_{{ MODKIT_VERSION }}_u16_x86_64.tar.gz" rm "modkit_{{ MODKIT_VERSION }}_u16_x86_64.tar.gz" - echo 'export PATH="/opt/modkit/dist_modkit_{{ MODKIT_VERSION }}:$PATH"' >> "$SINGULARITY_ENVIRONMENT" + cd "dist_modkit_{{ MODKIT_VERSION }}"* + echo 'export PATH="$(pwd):$PATH"' >> "$SINGULARITY_ENVIRONMENT" # Install Dorado cd /opt @@ -54,7 +55,8 @@ From: debian:12 wget "https://cdn.oxfordnanoportal.com/software/analysis/dorado-{{ DORADO_VERSION }}-linux-x64.tar.gz" tar -xzf "dorado-{{ DORADO_VERSION }}-linux-x64.tar.gz" rm "dorado-{{ DORADO_VERSION }}-linux-x64.tar.gz" - echo 'export PATH="/opt/dorado/dorado-{{ DORADO_VERSION }}-linux-x64/bin/:$PATH"' >> "$SINGULARITY_ENVIRONMENT" + cd "dorado-{{ DORADO_VERSION }}"* + echo 'export PATH="$(pwd)/bin/:$PATH"' >> "$SINGULARITY_ENVIRONMENT" %test # Check if installations are on path and display their versions @@ -75,8 +77,8 @@ From: debian:12 %help Software included in the container are: - dorado=="{{ DORADO_VERSION }}" - modkit=="{{ MODKIT_VERSION }}" + dorado=={{ DORADO_VERSION }} + modkit=={{ MODKIT_VERSION }} samtools=={{ SAMTOOLS_VERSION }} pod5=={{ POD5_VERSION }} pycoQC=={{ PYCOQC_VERION }} -- GitLab From f1d01769822022d57d6c1b381704745a08cef437 Mon Sep 17 00:00:00 2001 From: Carlos Gomes Date: Sat, 9 Aug 2025 14:14:35 -0300 Subject: [PATCH 7/9] fix: incorrect char escaping in exports --- containers/debian-nanopore.def | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/containers/debian-nanopore.def b/containers/debian-nanopore.def index 0a826f0..59f6741 100644 --- a/containers/debian-nanopore.def +++ b/containers/debian-nanopore.def @@ -47,7 +47,7 @@ From: debian:12 tar -xzf "modkit_{{ MODKIT_VERSION }}_u16_x86_64.tar.gz" rm "modkit_{{ MODKIT_VERSION }}_u16_x86_64.tar.gz" cd "dist_modkit_{{ MODKIT_VERSION }}"* - echo 'export PATH="$(pwd):$PATH"' >> "$SINGULARITY_ENVIRONMENT" + echo 'export PATH="'"$(pwd)"'/:$PATH"' >> "$SINGULARITY_ENVIRONMENT" # Install Dorado cd /opt @@ -56,7 +56,7 @@ From: debian:12 tar -xzf "dorado-{{ DORADO_VERSION }}-linux-x64.tar.gz" rm "dorado-{{ DORADO_VERSION }}-linux-x64.tar.gz" cd "dorado-{{ DORADO_VERSION }}"* - echo 'export PATH="$(pwd)/bin/:$PATH"' >> "$SINGULARITY_ENVIRONMENT" + echo 'export PATH="'"$(pwd)"'/bin/:$PATH"' >> "$SINGULARITY_ENVIRONMENT" %test # Check if installations are on path and display their versions -- GitLab From f69a508ffab3128c3fc1a2ab2f5a2fe869426139 Mon Sep 17 00:00:00 2001 From: Carlos Gomes Date: Sat, 9 Aug 2025 14:36:13 -0300 Subject: [PATCH 8/9] up: image version --- containers/versions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/versions.txt b/containers/versions.txt index 96c4217..f620545 100644 --- a/containers/versions.txt +++ b/containers/versions.txt @@ -1,4 +1,4 @@ -DEBIAN_NANOPORE_VERSION="v0.5.1" +DEBIAN_NANOPORE_VERSION="v0.5.2" JQ_VERSION="1.6-2.1" SAMTOOLS_VERSION="1.16.1-1" BEDTOOLS_VERSION="2.30.0+dfsg-3" -- GitLab From 26cce0e0b668f042785bed513d9b844424d68fee Mon Sep 17 00:00:00 2001 From: Carlos Gomes Date: Sat, 9 Aug 2025 17:47:46 -0300 Subject: [PATCH 9/9] up: pycoqc repo --- containers/debian-nanopore.def | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/containers/debian-nanopore.def b/containers/debian-nanopore.def index 59f6741..d8d4fa4 100644 --- a/containers/debian-nanopore.def +++ b/containers/debian-nanopore.def @@ -29,15 +29,14 @@ From: debian:12 pip install --no-cache-dir --break-system-packages \ pod5=={{ POD5_VERSION }} \ multiqc=={{ MULTIQC_VERSION }} \ - plotly>={{ PLOTLY_VERSION }} + plotly=={{ PLOTLY_VERSION }} # Clone and install pycoQC from duceppemo fork # (change plotly version to match MultiQC plotly version >= 5.18) cd /opt - # TODO: fork and maintain our own version (the original is archived) - git clone https://github.com/duceppemo/pycoQC.git + # clone from the CIACD fork + git clone https://gmapsrv.pucrs.br/gitlab/ccd-public/pycoQC.git cd pycoQC - sed -i 's/plotly==5.16.1/plotly>={{ PLOTLY_VERSION }}/' setup.py python3 setup.py install # Install modkit -- GitLab