From 383f53dc3ecf1c7aaaf873578ff62facb9544ba8 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Fri, 16 Jan 2026 20:14:05 +0100 Subject: [PATCH 01/23] Fix environment variable references for strict syntax compliance Wrap environment variables in env() function to comply with Nextflow strict syntax mode (NXF_SYNTAX_PARSER=v2). This addresses 58 lint errors across Sentieon and Spotiflow module test configs. Changes: - Sentieon modules: Replace ${SENTIEON_LICSRVR_IP} with ${env('SENTIEON_LICSRVR_IP')} - Sentieon modules: Replace ${SENTIEON_AUTH_MECH} with ${env('SENTIEON_AUTH_MECH')} - Spotiflow module: Replace ${HOME} with ${env('HOME')} This is part of the migration to Nextflow strict syntax where implicit environment variable references are not allowed. Co-Authored-By: Claude Sonnet 4.5 --- modules/nf-core/sentieon/applyvarcal/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/bwaindex/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/bwamem/tests/nextflow.config | 4 ++-- .../nf-core/sentieon/bwamem/tests/nextflow_out_cram.config | 4 ++-- .../nf-core/sentieon/collectvcmetrics/tests/nextflow.config | 4 ++-- .../nf-core/sentieon/coveragemetrics/tests/nextflow.config | 4 ++-- .../sentieon/coveragemetrics/tests/nextflow_omit.config | 4 ++-- .../sentieon/coveragemetrics/tests/nextflow_partitions.config | 4 ++-- modules/nf-core/sentieon/datametrics/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/dedup/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config | 4 ++-- modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/dnascope/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/gvcftyper/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/haplotyper/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/hsmetrics/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/qualcal/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/readwriter/tests/nextflow.config | 4 ++-- .../sentieon/readwriter/tests/nextflow_outputcram.config | 4 ++-- .../sentieon/rsemcalculateexpression/tests/nextflow.config | 4 ++-- .../sentieon/rsempreparereference/tests/nextflow.config | 4 ++-- .../nf-core/sentieon/staralign/tests/nextflow.arriba.config | 4 ++-- modules/nf-core/sentieon/staralign/tests/nextflow.config | 4 ++-- .../sentieon/staralign/tests/nextflow.starfusion.config | 4 ++-- modules/nf-core/sentieon/tnfilter/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/tnscope/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/varcal/tests/nextflow.config | 4 ++-- modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config | 4 ++-- modules/nf-core/spotiflow/tests/nextflow.config | 2 +- 30 files changed, 59 insertions(+), 59 deletions(-) diff --git a/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config b/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config index 54037f782dd..88a6a9fd16e 100644 --- a/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config @@ -7,9 +7,9 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/bwaindex/tests/nextflow.config b/modules/nf-core/sentieon/bwaindex/tests/nextflow.config index 47f5ec002af..912414f7448 100644 --- a/modules/nf-core/sentieon/bwaindex/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwaindex/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + SENTIEON_LICENSE = ${env('SENTIEON_LICSRVR_IP')} // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + SENTIEON_AUTH_MECH = ${env('SENTIEON_AUTH_MECH')} SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow.config b/modules/nf-core/sentieon/bwamem/tests/nextflow.config index 717fb52c7ab..1bde0de419c 100644 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwamem/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config b/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config index 07ae63d98e0..bd54983bfac 100644 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config +++ b/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config b/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config index 09a068ee62c..82c689b4de6 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config index 09a068ee62c..82c689b4de6 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config index 341583d5e19..0ef933863d0 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config index 1fbd970b968..bb82ef35139 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/datametrics/tests/nextflow.config b/modules/nf-core/sentieon/datametrics/tests/nextflow.config index dead4e3238c..295b3b84b0f 100644 --- a/modules/nf-core/sentieon/datametrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/datametrics/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/dedup/tests/nextflow.config b/modules/nf-core/sentieon/dedup/tests/nextflow.config index 09a068ee62c..82c689b4de6 100644 --- a/modules/nf-core/sentieon/dedup/tests/nextflow.config +++ b/modules/nf-core/sentieon/dedup/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config b/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config index 21e7b945d2e..3bbaccb1400 100644 --- a/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config +++ b/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config b/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config index 09a068ee62c..82c689b4de6 100644 --- a/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config +++ b/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/dnascope/tests/nextflow.config b/modules/nf-core/sentieon/dnascope/tests/nextflow.config index 09a068ee62c..82c689b4de6 100644 --- a/modules/nf-core/sentieon/dnascope/tests/nextflow.config +++ b/modules/nf-core/sentieon/dnascope/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config b/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config index 0b55bb5ec25..a6b8da9e121 100644 --- a/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config +++ b/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/haplotyper/tests/nextflow.config b/modules/nf-core/sentieon/haplotyper/tests/nextflow.config index 78f19cfb26c..55a60fe3c7b 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/nextflow.config +++ b/modules/nf-core/sentieon/haplotyper/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config b/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config index c1e9e48648c..be0373cc25f 100644 --- a/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/qualcal/tests/nextflow.config b/modules/nf-core/sentieon/qualcal/tests/nextflow.config index c1e9e48648c..be0373cc25f 100644 --- a/modules/nf-core/sentieon/qualcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/qualcal/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/readwriter/tests/nextflow.config b/modules/nf-core/sentieon/readwriter/tests/nextflow.config index c1e9e48648c..be0373cc25f 100644 --- a/modules/nf-core/sentieon/readwriter/tests/nextflow.config +++ b/modules/nf-core/sentieon/readwriter/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config b/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config index 56c30c26515..d5fd1794505 100644 --- a/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config +++ b/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config @@ -1,8 +1,8 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config b/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config index 0d7b82c4376..93889f386b1 100644 --- a/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config +++ b/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config @@ -14,9 +14,9 @@ process { env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config b/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config index c1e9e48648c..be0373cc25f 100644 --- a/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config +++ b/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config b/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config index f6fccb8fa8f..6094c31b80b 100644 --- a/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config @@ -12,9 +12,9 @@ process { env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.config b/modules/nf-core/sentieon/staralign/tests/nextflow.config index 6c89ce9e044..c49df464d89 100644 --- a/modules/nf-core/sentieon/staralign/tests/nextflow.config +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.config @@ -12,9 +12,9 @@ process { env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config b/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config index 39093b5a6cf..fb0f7c1a4f5 100644 --- a/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config @@ -12,9 +12,9 @@ process { env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/tnfilter/tests/nextflow.config b/modules/nf-core/sentieon/tnfilter/tests/nextflow.config index eb5d4693f4d..c1eecfd41fd 100644 --- a/modules/nf-core/sentieon/tnfilter/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnfilter/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config b/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config index c39a9b26ac6..9d5405670b7 100644 --- a/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config @@ -21,9 +21,9 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/tnscope/tests/nextflow.config b/modules/nf-core/sentieon/tnscope/tests/nextflow.config index ecf20e4e936..9e4e006153c 100644 --- a/modules/nf-core/sentieon/tnscope/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnscope/tests/nextflow.config @@ -19,9 +19,9 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/varcal/tests/nextflow.config b/modules/nf-core/sentieon/varcal/tests/nextflow.config index 30379fd5623..5df49a15fa7 100644 --- a/modules/nf-core/sentieon/varcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/varcal/tests/nextflow.config @@ -6,9 +6,9 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config b/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config index 09a068ee62c..82c689b4de6 100644 --- a/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config @@ -1,8 +1,8 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/spotiflow/tests/nextflow.config b/modules/nf-core/spotiflow/tests/nextflow.config index e9db8bbf81f..ddec7de06b4 100644 --- a/modules/nf-core/spotiflow/tests/nextflow.config +++ b/modules/nf-core/spotiflow/tests/nextflow.config @@ -1,3 +1,3 @@ singularity { - runOptions = "--bind $HOME:$HOME" + runOptions = "--bind ${env('HOME')}:${env('HOME')}" } From b85e816bb26a72ce89c3f8a223e29fcd90d0080d Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Sat, 17 Jan 2026 22:48:00 +0100 Subject: [PATCH 02/23] Use System.getenv() for backwards compatability --- modules/nf-core/sentieon/applyvarcal/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/bwaindex/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/bwamem/tests/nextflow.config | 6 ++++-- .../nf-core/sentieon/bwamem/tests/nextflow_out_cram.config | 6 ++++-- .../nf-core/sentieon/collectvcmetrics/tests/nextflow.config | 6 ++++-- .../nf-core/sentieon/coveragemetrics/tests/nextflow.config | 6 ++++-- .../sentieon/coveragemetrics/tests/nextflow_omit.config | 6 ++++-- .../coveragemetrics/tests/nextflow_partitions.config | 6 ++++-- modules/nf-core/sentieon/datametrics/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/dedup/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config | 6 ++++-- .../nf-core/sentieon/dnamodelapply/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/dnascope/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/gvcftyper/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/haplotyper/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/hsmetrics/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/qualcal/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/readwriter/tests/nextflow.config | 6 ++++-- .../sentieon/readwriter/tests/nextflow_outputcram.config | 6 ++++-- .../sentieon/rsemcalculateexpression/tests/nextflow.config | 6 ++++-- .../sentieon/rsempreparereference/tests/nextflow.config | 6 ++++-- .../nf-core/sentieon/staralign/tests/nextflow.arriba.config | 6 ++++-- modules/nf-core/sentieon/staralign/tests/nextflow.config | 6 ++++-- .../sentieon/staralign/tests/nextflow.starfusion.config | 6 ++++-- modules/nf-core/sentieon/tnfilter/tests/nextflow.config | 6 ++++-- .../nf-core/sentieon/tnhaplotyper2/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/tnscope/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/varcal/tests/nextflow.config | 6 ++++-- modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config | 6 ++++-- modules/nf-core/spotiflow/tests/nextflow.config | 3 ++- 30 files changed, 118 insertions(+), 59 deletions(-) diff --git a/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config b/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config index 88a6a9fd16e..0616d2c5166 100644 --- a/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config @@ -7,9 +7,11 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/bwaindex/tests/nextflow.config b/modules/nf-core/sentieon/bwaindex/tests/nextflow.config index 912414f7448..67462612282 100644 --- a/modules/nf-core/sentieon/bwaindex/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwaindex/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = ${env('SENTIEON_LICSRVR_IP')} + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = ${env('SENTIEON_AUTH_MECH')} + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow.config b/modules/nf-core/sentieon/bwamem/tests/nextflow.config index 1bde0de419c..5801843a1df 100644 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwamem/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config b/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config index bd54983bfac..eced78a879a 100644 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config +++ b/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config b/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config index 82c689b4de6..e8969589246 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config index 82c689b4de6..e8969589246 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config index 0ef933863d0..696ca01a654 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config index bb82ef35139..23985f3e3d1 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/datametrics/tests/nextflow.config b/modules/nf-core/sentieon/datametrics/tests/nextflow.config index 295b3b84b0f..9795314724a 100644 --- a/modules/nf-core/sentieon/datametrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/datametrics/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/dedup/tests/nextflow.config b/modules/nf-core/sentieon/dedup/tests/nextflow.config index 82c689b4de6..e8969589246 100644 --- a/modules/nf-core/sentieon/dedup/tests/nextflow.config +++ b/modules/nf-core/sentieon/dedup/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config b/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config index 3bbaccb1400..b29c636ffc1 100644 --- a/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config +++ b/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config b/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config index 82c689b4de6..e8969589246 100644 --- a/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config +++ b/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/dnascope/tests/nextflow.config b/modules/nf-core/sentieon/dnascope/tests/nextflow.config index 82c689b4de6..e8969589246 100644 --- a/modules/nf-core/sentieon/dnascope/tests/nextflow.config +++ b/modules/nf-core/sentieon/dnascope/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config b/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config index a6b8da9e121..3a9346d01bf 100644 --- a/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config +++ b/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/haplotyper/tests/nextflow.config b/modules/nf-core/sentieon/haplotyper/tests/nextflow.config index 55a60fe3c7b..275a5d32004 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/nextflow.config +++ b/modules/nf-core/sentieon/haplotyper/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config b/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config index be0373cc25f..4214d91de79 100644 --- a/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/qualcal/tests/nextflow.config b/modules/nf-core/sentieon/qualcal/tests/nextflow.config index be0373cc25f..4214d91de79 100644 --- a/modules/nf-core/sentieon/qualcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/qualcal/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/readwriter/tests/nextflow.config b/modules/nf-core/sentieon/readwriter/tests/nextflow.config index be0373cc25f..4214d91de79 100644 --- a/modules/nf-core/sentieon/readwriter/tests/nextflow.config +++ b/modules/nf-core/sentieon/readwriter/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config b/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config index d5fd1794505..fece11eb17f 100644 --- a/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config +++ b/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config @@ -1,8 +1,10 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config b/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config index 93889f386b1..71db586af17 100644 --- a/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config +++ b/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config @@ -14,9 +14,11 @@ process { env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config b/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config index be0373cc25f..4214d91de79 100644 --- a/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config +++ b/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config b/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config index 6094c31b80b..980884dea0b 100644 --- a/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config @@ -12,9 +12,11 @@ process { env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.config b/modules/nf-core/sentieon/staralign/tests/nextflow.config index c49df464d89..7c980f5eb2f 100644 --- a/modules/nf-core/sentieon/staralign/tests/nextflow.config +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.config @@ -12,9 +12,11 @@ process { env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config b/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config index fb0f7c1a4f5..8430eca7580 100644 --- a/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config @@ -12,9 +12,11 @@ process { env { // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how pipeline users will test out Sentieon with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/tnfilter/tests/nextflow.config b/modules/nf-core/sentieon/tnfilter/tests/nextflow.config index c1eecfd41fd..55b7e10c5ca 100644 --- a/modules/nf-core/sentieon/tnfilter/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnfilter/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config b/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config index 9d5405670b7..5b491f90280 100644 --- a/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config @@ -21,9 +21,11 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/tnscope/tests/nextflow.config b/modules/nf-core/sentieon/tnscope/tests/nextflow.config index 9e4e006153c..b64115be9e5 100644 --- a/modules/nf-core/sentieon/tnscope/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnscope/tests/nextflow.config @@ -19,9 +19,11 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/varcal/tests/nextflow.config b/modules/nf-core/sentieon/varcal/tests/nextflow.config index 5df49a15fa7..08d8d296fd5 100644 --- a/modules/nf-core/sentieon/varcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/varcal/tests/nextflow.config @@ -6,9 +6,11 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config b/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config index 82c689b4de6..e8969589246 100644 --- a/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config @@ -1,8 +1,10 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "${env('SENTIEON_LICSRVR_IP')}" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "${env('SENTIEON_AUTH_MECH')}" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/modules/nf-core/spotiflow/tests/nextflow.config b/modules/nf-core/spotiflow/tests/nextflow.config index ddec7de06b4..be410a2cfca 100644 --- a/modules/nf-core/spotiflow/tests/nextflow.config +++ b/modules/nf-core/spotiflow/tests/nextflow.config @@ -1,3 +1,4 @@ singularity { - runOptions = "--bind ${env('HOME')}:${env('HOME')}" + // TODO: Update to `env('HOME')` when minimum Nextflow version is >= 26.04.0 + runOptions = "--bind ${System.getenv('HOME')}:${System.getenv('HOME')}" } From d7824497f91681191317de917f8ad8071165f78a Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Mon, 19 Jan 2026 16:23:03 +0000 Subject: [PATCH 03/23] Update sentieon/bwamem to topic --- modules/nf-core/sentieon/bwamem/main.nf | 23 +--- modules/nf-core/sentieon/bwamem/meta.yml | 27 +++- .../sentieon/bwamem/tests/main.nf.test | 58 +++----- .../sentieon/bwamem/tests/main.nf.test.snap | 124 ++++++++++++------ .../sentieon/bwamem/tests/nextflow.config | 11 +- .../bwamem/tests/nextflow_out_cram.config | 16 --- 6 files changed, 136 insertions(+), 123 deletions(-) delete mode 100644 modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index ae7ed2f7ba9..00ef8053a8d 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -5,8 +5,8 @@ process SENTIEON_BWAMEM { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(reads) @@ -16,7 +16,7 @@ process SENTIEON_BWAMEM { output: tuple val(meta), path("${prefix}"), path("${prefix}.{bai,crai}"), emit: bam_and_bai - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -45,26 +45,13 @@ process SENTIEON_BWAMEM { if [[ "${prefix}" == *.cram ]]; then rm -f "${prefix}.bai" fi - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bwa: \$(echo \$(sentieon bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ - + stub: prefix = task.ext.prefix ?: "${meta.id}.bam" index = prefix.tokenize('.')[-1] == "bam" ? "bai" : "crai" - """ touch ${prefix} - touch ${prefix}.${index} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bwa: \$(echo \$(sentieon bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + touch ${prefix}.${index} """ } diff --git a/modules/nf-core/sentieon/bwamem/meta.yml b/modules/nf-core/sentieon/bwamem/meta.yml index 3f4f99e5cb3..eb9c16e5f99 100644 --- a/modules/nf-core/sentieon/bwamem/meta.yml +++ b/modules/nf-core/sentieon/bwamem/meta.yml @@ -73,13 +73,28 @@ output: description: BAM file with corresponding index. pattern: "*.{bam,bai}" ontologies: [] + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - sentieon driver --version | sed "s/.*-//g": + type: string + description: The command used to generate the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - sentieon driver --version | sed "s/.*-//g": + type: string + description: The command used to generate the version of the tool authors: - "@asp8200" maintainers: diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test b/modules/nf-core/sentieon/bwamem/tests/main.nf.test index 8c54d1a3eaa..d48d6ae803c 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test @@ -11,9 +11,9 @@ nextflow_process { script "../main.nf" process "SENTIEON_BWAMEM" + config "./nextflow.config" test("Single-End") { - config "./nextflow.config" setup { run("SENTIEON_BWAINDEX") { @@ -30,6 +30,10 @@ nextflow_process { } when { + params { + module_args = "-R \"@RG\\tID:sample_lane\\tPU:lane\\tSM:patient_sample\\tLB:sample\\tDS:fasta\\tPL:seqplatform\"" + module_out_cram = false + } process { """ input[0] = [ @@ -54,7 +58,6 @@ nextflow_process { } test("Single-End Output CRAM") { - config "./nextflow_out_cram.config" setup { run("SENTIEON_BWAINDEX") { @@ -71,6 +74,10 @@ nextflow_process { } when { + params { + module_args = "-R \"@RG\\tID:sample_lane\\tPU:lane\\tSM:patient_sample\\tLB:sample\\tDS:fasta\\tPL:seqplatform\"" + module_out_cram = true + } process { """ input[0] = [ @@ -95,7 +102,6 @@ nextflow_process { } test("Paired-End") { - config "./nextflow.config" setup { run("SENTIEON_BWAINDEX") { @@ -112,23 +118,10 @@ nextflow_process { } when { - process { - """ - input[0] = [ - [ id:'test', single_end:false ], // meta map - [ - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) - ] - ] - input[1] = SENTIEON_BWAINDEX.out.index - input[2] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] - input[3] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true)] - """ + params { + module_args = "-R \"@RG\\tID:sample_lane\\tPU:lane\\tSM:patient_sample\\tLB:sample\\tDS:fasta\\tPL:seqplatform\"" + module_out_cram = false } - } - - when { process { """ input[0] = [ @@ -145,6 +138,7 @@ nextflow_process { } } + then { assert process.success assertAll( @@ -154,7 +148,6 @@ nextflow_process { } test("Single-End - stub") { - config "./nextflow.config" options "-stub" setup { @@ -172,6 +165,10 @@ nextflow_process { } when { + params { + module_args = "-R \"@RG\\tID:sample_lane\\tPU:lane\\tSM:patient_sample\\tLB:sample\\tDS:fasta\\tPL:seqplatform\"" + module_out_cram = false + } process { """ input[0] = [ @@ -196,7 +193,6 @@ nextflow_process { } test("Paired-End - stub") { - config "./nextflow.config" options "-stub" setup { @@ -214,23 +210,10 @@ nextflow_process { } when { - process { - """ - input[0] = [ - [ id:'test', single_end:false ], // meta map - [ - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) - ] - ] - input[1] = SENTIEON_BWAINDEX.out.index - input[2] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] - input[3] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true)] - """ + params { + module_args = "-R \"@RG\\tID:sample_lane\\tPU:lane\\tSM:patient_sample\\tLB:sample\\tDS:fasta\\tPL:seqplatform\"" + module_out_cram = false } - } - - when { process { """ input[0] = [ @@ -247,6 +230,7 @@ nextflow_process { } } + then { assert process.success assertAll( diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index 1172d87ac13..dd0d20e776b 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -8,12 +8,16 @@ "id": "test", "single_end": true }, - "test.bam:md5,d70ae78917d0e37865ad7e27118f3452", - "test.bam.bai:md5,4fd9b026ff2306cc292cd695e11d5628" + "test.bam:md5,34d5284595aa8a92f2023763ceb0c980", + "test.bam.bai:md5,0ab785afe8de26cc167768cce715fb39" ] ], "1": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ], "bam_and_bai": [ [ @@ -21,20 +25,24 @@ "id": "test", "single_end": true }, - "test.bam:md5,d70ae78917d0e37865ad7e27118f3452", - "test.bam.bai:md5,4fd9b026ff2306cc292cd695e11d5628" + "test.bam:md5,34d5284595aa8a92f2023763ceb0c980", + "test.bam.bai:md5,0ab785afe8de26cc167768cce715fb39" ] ], - "versions": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + "versions_sentieon": [ + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:17:04.909626039" + "timestamp": "2026-01-19T16:20:32.642577041" }, "Paired-End - stub": { "content": [ @@ -50,7 +58,11 @@ ] ], "1": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ], "bam_and_bai": [ [ @@ -62,16 +74,20 @@ "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + "versions_sentieon": [ + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:17:29.705931247" + "timestamp": "2026-01-19T16:21:12.233397997" }, "Paired-End": { "content": [ @@ -82,12 +98,16 @@ "id": "test", "single_end": false }, - "test.bam:md5,1bd68d778000420542324e9dd5ca0c8c", - "test.bam.bai:md5,be4ad85790468042f7fc01ca2e36a919" + "test.bam:md5,d7545906978df69aeb08dfda6925420e", + "test.bam.bai:md5,ab1678ea85698666147d808488d164d9" ] ], "1": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ], "bam_and_bai": [ [ @@ -95,20 +115,24 @@ "id": "test", "single_end": false }, - "test.bam:md5,1bd68d778000420542324e9dd5ca0c8c", - "test.bam.bai:md5,be4ad85790468042f7fc01ca2e36a919" + "test.bam:md5,d7545906978df69aeb08dfda6925420e", + "test.bam.bai:md5,ab1678ea85698666147d808488d164d9" ] ], - "versions": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + "versions_sentieon": [ + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:17:17.288683404" + "timestamp": "2026-01-19T16:20:51.976168444" }, "Single-End - stub": { "content": [ @@ -124,7 +148,11 @@ ] ], "1": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ], "bam_and_bai": [ [ @@ -136,16 +164,20 @@ "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + "versions_sentieon": [ + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:17:23.387368411" + "timestamp": "2026-01-19T16:21:02.275873964" }, "Single-End Output CRAM": { "content": [ @@ -156,12 +188,16 @@ "id": "test", "single_end": true }, - "test.cram:md5,12b4d6305af63011ba8c17770e5d6b19", - "test.cram.crai:md5,07adfadcbb2b99c3bc4df59a3bfac0ee" + "test.cram:md5,b3934277eb9adaa1bea3ebc5b59a25b8", + "test.cram.crai:md5,39be1cbca8e65d68a6c6e40519cdae32" ] ], "1": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ], "bam_and_bai": [ [ @@ -169,19 +205,23 @@ "id": "test", "single_end": true }, - "test.cram:md5,12b4d6305af63011ba8c17770e5d6b19", - "test.cram.crai:md5,07adfadcbb2b99c3bc4df59a3bfac0ee" + "test.cram:md5,b3934277eb9adaa1bea3ebc5b59a25b8", + "test.cram.crai:md5,39be1cbca8e65d68a6c6e40519cdae32" ] ], - "versions": [ - "versions.yml:md5,9e6d6cb9d99c406b6e776bedd71519e6" + "versions_sentieon": [ + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:17:10.990332545" + "timestamp": "2026-01-19T16:20:42.390233003" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow.config b/modules/nf-core/sentieon/bwamem/tests/nextflow.config index 717fb52c7ab..8573b0ffe5e 100644 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwamem/tests/nextflow.config @@ -1,15 +1,18 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } process { withName: 'SENTIEON_BWAMEM' { - ext.args = "-R \"@RG\\tID:sample_lane\\tPU:lane\\tSM:patient_sample\\tLB:sample\\tDS:fasta\\tPL:seqplatform\"" + ext.args = params.module_args + ext.prefix = { "${meta.id}." + (params.module_out_cram ? 'cram' : 'bam') } } } diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config b/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config deleted file mode 100644 index 07ae63d98e0..00000000000 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow_out_cram.config +++ /dev/null @@ -1,16 +0,0 @@ -env { - // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" - // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" - SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file - // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) -} - -process { - withName: 'SENTIEON_BWAMEM' { - ext.args = "-R \"@RG\\tID:sample_lane\\tPU:lane\\tSM:patient_sample\\tLB:sample\\tDS:fasta\\tPL:seqplatform\"" - ext.prefix = { "${meta.id}.cram" } - } -} From 4f915183f28e0fc5174523b4d0e0c93c5a84dfe2 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Mon, 19 Jan 2026 16:40:27 +0000 Subject: [PATCH 04/23] Add bwa version back --- modules/nf-core/sentieon/bwamem/main.nf | 1 + modules/nf-core/sentieon/bwamem/meta.yml | 24 +++++- .../sentieon/bwamem/tests/main.nf.test.snap | 80 +++++++++++++++++-- 3 files changed, 98 insertions(+), 7 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index 00ef8053a8d..72a4a41df7c 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -16,6 +16,7 @@ process SENTIEON_BWAMEM { output: tuple val(meta), path("${prefix}"), path("${prefix}.{bai,crai}"), emit: bam_and_bai + tuple val("${task.process}"), val('bwa'), eval('sentieon bwa 2>&1 | sed -n "s/^Version: *//p"'), topic: versions, emit: versions_bwa tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: diff --git a/modules/nf-core/sentieon/bwamem/meta.yml b/modules/nf-core/sentieon/bwamem/meta.yml index eb9c16e5f99..ddbc8a519dc 100644 --- a/modules/nf-core/sentieon/bwamem/meta.yml +++ b/modules/nf-core/sentieon/bwamem/meta.yml @@ -73,6 +73,16 @@ output: description: BAM file with corresponding index. pattern: "*.{bam,bai}" ontologies: [] + versions_bwa: + - - ${task.process}: + type: string + description: The process the versions were collected from + - bwa: + type: string + description: The tool name + - 'sentieon bwa 2>&1 | sed -n "s/^Version: *//p"': + type: eval + description: The command used to generate the version of the tool versions_sentieon: - - ${task.process}: type: string @@ -81,11 +91,20 @@ output: type: string description: The tool name - sentieon driver --version | sed "s/.*-//g": - type: string + type: eval description: The command used to generate the version of the tool topics: versions: + - - ${task.process}: + type: string + description: The process the versions were collected from + - bwa: + type: string + description: The tool name + - 'sentieon bwa 2>&1 | sed -n "s/^Version: *//p"': + type: eval + description: The command used to generate the version of the tool - - ${task.process}: type: string description: The process the versions were collected from @@ -93,8 +112,9 @@ topics: type: string description: The tool name - sentieon driver --version | sed "s/.*-//g": - type: string + type: eval description: The command used to generate the version of the tool + authors: - "@asp8200" maintainers: diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index dd0d20e776b..903ac623941 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -13,6 +13,13 @@ ] ], "1": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], + "2": [ [ "SENTIEON_BWAMEM", "sentieon", @@ -29,6 +36,13 @@ "test.bam.bai:md5,0ab785afe8de26cc167768cce715fb39" ] ], + "versions_bwa": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], "versions_sentieon": [ [ "SENTIEON_BWAMEM", @@ -42,7 +56,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T16:20:32.642577041" + "timestamp": "2026-01-19T16:27:20.146926235" }, "Paired-End - stub": { "content": [ @@ -58,6 +72,13 @@ ] ], "1": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], + "2": [ [ "SENTIEON_BWAMEM", "sentieon", @@ -74,6 +95,13 @@ "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], + "versions_bwa": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], "versions_sentieon": [ [ "SENTIEON_BWAMEM", @@ -87,7 +115,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T16:21:12.233397997" + "timestamp": "2026-01-19T16:27:57.975551525" }, "Paired-End": { "content": [ @@ -103,6 +131,13 @@ ] ], "1": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], + "2": [ [ "SENTIEON_BWAMEM", "sentieon", @@ -119,6 +154,13 @@ "test.bam.bai:md5,ab1678ea85698666147d808488d164d9" ] ], + "versions_bwa": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], "versions_sentieon": [ [ "SENTIEON_BWAMEM", @@ -132,7 +174,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T16:20:51.976168444" + "timestamp": "2026-01-19T16:27:39.411540728" }, "Single-End - stub": { "content": [ @@ -148,6 +190,13 @@ ] ], "1": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], + "2": [ [ "SENTIEON_BWAMEM", "sentieon", @@ -164,6 +213,13 @@ "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], + "versions_bwa": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], "versions_sentieon": [ [ "SENTIEON_BWAMEM", @@ -177,7 +233,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T16:21:02.275873964" + "timestamp": "2026-01-19T16:27:48.308820347" }, "Single-End Output CRAM": { "content": [ @@ -193,6 +249,13 @@ ] ], "1": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], + "2": [ [ "SENTIEON_BWAMEM", "sentieon", @@ -209,6 +272,13 @@ "test.cram.crai:md5,39be1cbca8e65d68a6c6e40519cdae32" ] ], + "versions_bwa": [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] + ], "versions_sentieon": [ [ "SENTIEON_BWAMEM", @@ -222,6 +292,6 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T16:20:42.390233003" + "timestamp": "2026-01-19T16:27:29.941439485" } } \ No newline at end of file From dd45703f5d0927100189bc16e99f46699cbaa504 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Mon, 19 Jan 2026 17:40:55 +0000 Subject: [PATCH 05/23] Fix linting --- modules/nf-core/sentieon/bwamem/meta.yml | 48 ++++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/meta.yml b/modules/nf-core/sentieon/bwamem/meta.yml index ddbc8a519dc..ff6c3a25caf 100644 --- a/modules/nf-core/sentieon/bwamem/meta.yml +++ b/modules/nf-core/sentieon/bwamem/meta.yml @@ -74,28 +74,6 @@ output: pattern: "*.{bam,bai}" ontologies: [] versions_bwa: - - - ${task.process}: - type: string - description: The process the versions were collected from - - bwa: - type: string - description: The tool name - - 'sentieon bwa 2>&1 | sed -n "s/^Version: *//p"': - type: eval - description: The command used to generate the version of the tool - versions_sentieon: - - - ${task.process}: - type: string - description: The process the versions were collected from - - sentieon: - type: string - description: The tool name - - sentieon driver --version | sed "s/.*-//g": - type: eval - description: The command used to generate the version of the tool - -topics: - versions: - - ${task.process}: type: string description: The process the versions were collected from @@ -103,8 +81,9 @@ topics: type: string description: The tool name - 'sentieon bwa 2>&1 | sed -n "s/^Version: *//p"': - type: eval + type: string description: The command used to generate the version of the tool + versions_sentieon: - - ${task.process}: type: string description: The process the versions were collected from @@ -112,9 +91,30 @@ topics: type: string description: The tool name - sentieon driver --version | sed "s/.*-//g": - type: eval + type: string description: The command used to generate the version of the tool +topics: + versions: + - - ${task.process}: + type: string + description: The process the versions were collected from + - bwa: + type: string + description: The tool name + - 'sentieon bwa 2>&1 | sed -n "s/^Version: *//p"': + type: string + description: The command used to generate the version of the tool + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - sentieon driver --version | sed "s/.*-//g": + type: string + description: The command used to generate the version of the tool + authors: - "@asp8200" maintainers: From 769a5eeec96ece1d2c2d4910da5b8412b394e7d2 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Mon, 19 Jan 2026 17:42:24 +0000 Subject: [PATCH 06/23] Swap environment.yml to new version --- modules/nf-core/sentieon/bwamem/environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/sentieon/bwamem/environment.yml b/modules/nf-core/sentieon/bwamem/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/bwamem/environment.yml +++ b/modules/nf-core/sentieon/bwamem/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 From 5cca01c321fb88512c532e7f0433d2f15dbaa3d7 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 20 Jan 2026 07:22:24 +0000 Subject: [PATCH 07/23] Use nft-bam --- .../nf-core/sentieon/bwamem/environment.yml | 1 + .../sentieon/bwamem/tests/main.nf.test | 19 +- .../sentieon/bwamem/tests/main.nf.test.snap | 177 +++--------------- .../sentieon/bwamem/tests/nextflow.config | 4 + 4 files changed, 48 insertions(+), 153 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/environment.yml b/modules/nf-core/sentieon/bwamem/environment.yml index 6b8bb523202..38676739f2f 100644 --- a/modules/nf-core/sentieon/bwamem/environment.yml +++ b/modules/nf-core/sentieon/bwamem/environment.yml @@ -5,3 +5,4 @@ channels: - bioconda dependencies: - bioconda::sentieon=202503.02 + \ No newline at end of file diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test b/modules/nf-core/sentieon/bwamem/tests/main.nf.test index d48d6ae803c..8e3bdb61439 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test @@ -52,7 +52,11 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot(process.out).match() } + { assert snapshot( + bam(process.out.bam_and_bai[0][1]).getReadsMD5(), + file(process.out.bam_and_bai[0][2]).name, + process.out.versions_sentieon + ).match() } ) } } @@ -94,9 +98,14 @@ nextflow_process { } then { + def fasta = "https://raw.githubusercontent.com/nf-core/test-datasets/refs/heads/modules/data/genomics/sarscov2/genome/genome.fasta" assert process.success assertAll( - { assert snapshot(process.out).match() } + { assert snapshot( + cram(process.out.bam_and_bai[0][1], fasta).getReadsMD5(), + file(process.out.bam_and_bai[0][2]).name, + process.out.versions_sentieon + ).match() } ) } } @@ -142,7 +151,11 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot(process.out).match() } + { assert snapshot( + bam(process.out.bam_and_bai[0][1]).getReadsMD5(), + file(process.out.bam_and_bai[0][2]).name, + process.out.versions_sentieon + ).match() } ) } } diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index 903ac623941..f56bd490cf6 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -1,62 +1,21 @@ { "Single-End": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test.bam:md5,34d5284595aa8a92f2023763ceb0c980", - "test.bam.bai:md5,0ab785afe8de26cc167768cce715fb39" - ] - ], - "1": [ - [ - "SENTIEON_BWAMEM", - "bwa", - "0.7.17-r1188" - ] - ], - "2": [ - [ - "SENTIEON_BWAMEM", - "sentieon", - "202503.02" - ] - ], - "bam_and_bai": [ - [ - { - "id": "test", - "single_end": true - }, - "test.bam:md5,34d5284595aa8a92f2023763ceb0c980", - "test.bam.bai:md5,0ab785afe8de26cc167768cce715fb39" - ] - ], - "versions_bwa": [ - [ - "SENTIEON_BWAMEM", - "bwa", - "0.7.17-r1188" - ] - ], - "versions_sentieon": [ - [ - "SENTIEON_BWAMEM", - "sentieon", - "202503.02" - ] + "30c325e1e032eb1782a280d34c0fb1c7", + "test.bam.bai", + [ + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" ] - } + ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T16:27:20.146926235" + "timestamp": "2026-01-20T07:01:16.522363177" }, "Paired-End - stub": { "content": [ @@ -119,62 +78,21 @@ }, "Paired-End": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test.bam:md5,d7545906978df69aeb08dfda6925420e", - "test.bam.bai:md5,ab1678ea85698666147d808488d164d9" - ] - ], - "1": [ - [ - "SENTIEON_BWAMEM", - "bwa", - "0.7.17-r1188" - ] - ], - "2": [ - [ - "SENTIEON_BWAMEM", - "sentieon", - "202503.02" - ] - ], - "bam_and_bai": [ - [ - { - "id": "test", - "single_end": false - }, - "test.bam:md5,d7545906978df69aeb08dfda6925420e", - "test.bam.bai:md5,ab1678ea85698666147d808488d164d9" - ] - ], - "versions_bwa": [ - [ - "SENTIEON_BWAMEM", - "bwa", - "0.7.17-r1188" - ] - ], - "versions_sentieon": [ - [ - "SENTIEON_BWAMEM", - "sentieon", - "202503.02" - ] + "2d64e4363d9f3c0e2167fce49d5087cf", + "test.bam.bai", + [ + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" ] - } + ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T16:27:39.411540728" + "timestamp": "2026-01-20T06:41:24.20257232" }, "Single-End - stub": { "content": [ @@ -237,61 +155,20 @@ }, "Single-End Output CRAM": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test.cram:md5,b3934277eb9adaa1bea3ebc5b59a25b8", - "test.cram.crai:md5,39be1cbca8e65d68a6c6e40519cdae32" - ] - ], - "1": [ - [ - "SENTIEON_BWAMEM", - "bwa", - "0.7.17-r1188" - ] - ], - "2": [ - [ - "SENTIEON_BWAMEM", - "sentieon", - "202503.02" - ] - ], - "bam_and_bai": [ - [ - { - "id": "test", - "single_end": true - }, - "test.cram:md5,b3934277eb9adaa1bea3ebc5b59a25b8", - "test.cram.crai:md5,39be1cbca8e65d68a6c6e40519cdae32" - ] - ], - "versions_bwa": [ - [ - "SENTIEON_BWAMEM", - "bwa", - "0.7.17-r1188" - ] - ], - "versions_sentieon": [ - [ - "SENTIEON_BWAMEM", - "sentieon", - "202503.02" - ] + "30c325e1e032eb1782a280d34c0fb1c7", + "test.cram.crai", + [ + [ + "SENTIEON_BWAMEM", + "sentieon", + "202503.02" ] - } + ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T16:27:29.941439485" + "timestamp": "2026-01-20T07:03:13.92525087" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow.config b/modules/nf-core/sentieon/bwamem/tests/nextflow.config index 8573b0ffe5e..b9906142482 100644 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwamem/tests/nextflow.config @@ -16,3 +16,7 @@ process { ext.prefix = { "${meta.id}." + (params.module_out_cram ? 'cram' : 'bam') } } } + +params { + modules_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/refs/heads/modules/data/' +} From 706ca5851abc281968f10f2fc6703900f90fa812 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 20 Jan 2026 08:13:15 +0000 Subject: [PATCH 08/23] Use nft-bam --- .../sentieon/bwamem/tests/main.nf.test | 9 ++++--- .../sentieon/bwamem/tests/main.nf.test.snap | 27 ++++++++++++++++--- .../sentieon/bwamem/tests/nextflow.config | 4 --- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test b/modules/nf-core/sentieon/bwamem/tests/main.nf.test index 8e3bdb61439..12f857a9bb9 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test @@ -55,7 +55,8 @@ nextflow_process { { assert snapshot( bam(process.out.bam_and_bai[0][1]).getReadsMD5(), file(process.out.bam_and_bai[0][2]).name, - process.out.versions_sentieon + process.out.versions_sentieon, + process.out.versions_bwa ).match() } ) } @@ -104,7 +105,8 @@ nextflow_process { { assert snapshot( cram(process.out.bam_and_bai[0][1], fasta).getReadsMD5(), file(process.out.bam_and_bai[0][2]).name, - process.out.versions_sentieon + process.out.versions_sentieon, + process.out.versions_bwa ).match() } ) } @@ -154,7 +156,8 @@ nextflow_process { { assert snapshot( bam(process.out.bam_and_bai[0][1]).getReadsMD5(), file(process.out.bam_and_bai[0][2]).name, - process.out.versions_sentieon + process.out.versions_sentieon, + process.out.versions_bwa ).match() } ) } diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index f56bd490cf6..4c053f74e7f 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -9,13 +9,20 @@ "sentieon", "202503.02" ] + ], + [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-20T07:01:16.522363177" + "timestamp": "2026-01-20T07:27:13.459027655" }, "Paired-End - stub": { "content": [ @@ -86,13 +93,20 @@ "sentieon", "202503.02" ] + ], + [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-20T06:41:24.20257232" + "timestamp": "2026-01-20T07:27:31.858330617" }, "Single-End - stub": { "content": [ @@ -163,12 +177,19 @@ "sentieon", "202503.02" ] + ], + [ + [ + "SENTIEON_BWAMEM", + "bwa", + "0.7.17-r1188" + ] ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-20T07:03:13.92525087" + "timestamp": "2026-01-20T07:27:22.678539029" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/bwamem/tests/nextflow.config b/modules/nf-core/sentieon/bwamem/tests/nextflow.config index b9906142482..8573b0ffe5e 100644 --- a/modules/nf-core/sentieon/bwamem/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwamem/tests/nextflow.config @@ -16,7 +16,3 @@ process { ext.prefix = { "${meta.id}." + (params.module_out_cram ? 'cram' : 'bam') } } } - -params { - modules_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/refs/heads/modules/data/' -} From 10cffe51ad13e62ec2337d7624aaec4b2e1dfc2e Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 20 Jan 2026 08:13:40 +0000 Subject: [PATCH 09/23] Update all sentieon modules --- .../sentieon/applyvarcal/environment.yml | 2 +- modules/nf-core/sentieon/applyvarcal/main.nf | 16 +-- modules/nf-core/sentieon/applyvarcal/meta.yml | 27 +++- .../sentieon/applyvarcal/tests/main.nf.test | 6 +- .../applyvarcal/tests/main.nf.test.snap | 40 +++--- .../applyvarcal/tests/nextflow.config | 22 ++-- .../nf-core/sentieon/bwaindex/environment.yml | 2 +- modules/nf-core/sentieon/bwaindex/main.nf | 22 +--- modules/nf-core/sentieon/bwaindex/meta.yml | 30 +++-- .../sentieon/bwaindex/tests/main.nf.test.snap | 40 ++++-- .../sentieon/bwaindex/tests/nextflow.config | 14 +- .../collectvcmetrics/tests/nextflow.config | 8 +- .../coveragemetrics/tests/nextflow.config | 8 +- .../tests/nextflow_omit.config | 8 +- .../tests/nextflow_partitions.config | 8 +- .../datametrics/tests/nextflow.config | 17 +-- .../nf-core/sentieon/dedup/environment.yml | 2 +- modules/nf-core/sentieon/dedup/main.nf | 18 +-- modules/nf-core/sentieon/dedup/meta.yml | 27 +++- .../nf-core/sentieon/dedup/tests/main.nf.test | 28 +++- .../sentieon/dedup/tests/main.nf.test.snap | 112 +++++++++------- .../sentieon/dedup/tests/nextflow.config | 19 ++- .../dedup/tests/nextflow_rmdup.config | 15 --- .../dnamodelapply/tests/nextflow.config | 8 +- .../sentieon/dnascope/tests/nextflow.config | 9 +- .../sentieon/gvcftyper/tests/nextflow.config | 11 +- .../sentieon/haplotyper/environment.yml | 2 +- modules/nf-core/sentieon/haplotyper/main.nf | 16 +-- modules/nf-core/sentieon/haplotyper/meta.yml | 26 +++- .../sentieon/haplotyper/tests/main.nf.test | 16 +-- .../haplotyper/tests/main.nf.test.snap | 124 +++++++----------- .../sentieon/haplotyper/tests/nextflow.config | 11 +- .../sentieon/hsmetrics/environment.yml | 2 +- modules/nf-core/sentieon/hsmetrics/main.nf | 4 +- modules/nf-core/sentieon/hsmetrics/meta.yml | 4 +- .../sentieon/hsmetrics/tests/nextflow.config | 11 +- .../nf-core/sentieon/qualcal/environment.yml | 2 +- modules/nf-core/sentieon/qualcal/main.nf | 21 +-- modules/nf-core/sentieon/qualcal/meta.yml | 29 +++- .../sentieon/qualcal/tests/main.nf.test | 6 +- .../sentieon/qualcal/tests/main.nf.test.snap | 40 ++++-- .../sentieon/qualcal/tests/nextflow.config | 11 +- .../sentieon/readwriter/tests/nextflow.config | 11 +- .../tests/nextflow_outputcram.config | 11 +- .../tests/nextflow.config | 13 +- .../tests/nextflow.config | 11 +- .../staralign/tests/nextflow.arriba.config | 11 +- .../sentieon/staralign/tests/nextflow.config | 11 +- .../tests/nextflow.starfusion.config | 11 +- .../sentieon/tnfilter/tests/nextflow.config | 9 +- .../tnhaplotyper2/tests/nextflow.config | 8 +- .../nf-core/sentieon/tnscope/environment.yml | 2 +- modules/nf-core/sentieon/tnscope/main.nf | 14 +- modules/nf-core/sentieon/tnscope/meta.yml | 26 +++- .../sentieon/tnscope/tests/main.nf.test | 6 +- .../sentieon/tnscope/tests/main.nf.test.snap | 58 ++++---- .../sentieon/tnscope/tests/nextflow.config | 9 +- .../nf-core/sentieon/varcal/environment.yml | 2 +- modules/nf-core/sentieon/varcal/main.nf | 16 +-- modules/nf-core/sentieon/varcal/meta.yml | 29 +++- .../sentieon/varcal/tests/main.nf.test | 9 +- .../sentieon/varcal/tests/main.nf.test.snap | 27 ++-- .../sentieon/varcal/tests/nextflow.config | 9 +- .../sentieon/wgsmetrics/environment.yml | 2 +- modules/nf-core/sentieon/wgsmetrics/main.nf | 16 +-- modules/nf-core/sentieon/wgsmetrics/meta.yml | 29 +++- .../sentieon/wgsmetrics/tests/nextflow.config | 9 +- 67 files changed, 667 insertions(+), 536 deletions(-) delete mode 100644 modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config diff --git a/modules/nf-core/sentieon/applyvarcal/environment.yml b/modules/nf-core/sentieon/applyvarcal/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/applyvarcal/environment.yml +++ b/modules/nf-core/sentieon/applyvarcal/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 diff --git a/modules/nf-core/sentieon/applyvarcal/main.nf b/modules/nf-core/sentieon/applyvarcal/main.nf index 8f4ad60adfc..2d8c1106fe5 100644 --- a/modules/nf-core/sentieon/applyvarcal/main.nf +++ b/modules/nf-core/sentieon/applyvarcal/main.nf @@ -5,8 +5,8 @@ process SENTIEON_APPLYVARCAL { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(vcf), path(vcf_tbi), path(recal), path(recal_index), path(tranches) @@ -16,7 +16,7 @@ process SENTIEON_APPLYVARCAL { output: tuple val(meta), path("*.vcf.gz"), emit: vcf tuple val(meta), path("*.tbi"), emit: tbi - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -42,10 +42,7 @@ process SENTIEON_APPLYVARCAL { ${args2} \\ ${prefix}.vcf.gz - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + """ stub: @@ -54,9 +51,6 @@ process SENTIEON_APPLYVARCAL { echo | gzip > ${prefix}.vcf.gz touch ${prefix}.vcf.gz.tbi - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + """ } diff --git a/modules/nf-core/sentieon/applyvarcal/meta.yml b/modules/nf-core/sentieon/applyvarcal/meta.yml index 9e4a21554b7..e75dd331cc0 100644 --- a/modules/nf-core/sentieon/applyvarcal/meta.yml +++ b/modules/nf-core/sentieon/applyvarcal/meta.yml @@ -96,13 +96,28 @@ output: description: Index of recalibrated vcf file. pattern: "*vcf.gz.tbi" ontologies: [] + versions_sentieon: + - - '${task.process}': + type: string + description: The process the versions were collected from + - 'sentieon': + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions. - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - '${task.process}': + type: string + description: The process the versions were collected from + - 'sentieon': + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - "@assp8200" maintainers: diff --git a/modules/nf-core/sentieon/applyvarcal/tests/main.nf.test b/modules/nf-core/sentieon/applyvarcal/tests/main.nf.test index 600ad9ea03f..942bd623fd0 100644 --- a/modules/nf-core/sentieon/applyvarcal/tests/main.nf.test +++ b/modules/nf-core/sentieon/applyvarcal/tests/main.nf.test @@ -37,8 +37,7 @@ nextflow_process { assertAll( { assert snapshot( path(process.out.vcf[0][1]).vcf.summary, - file(process.out.tbi[0][1]).name, - path(process.out.versions[0]).yaml + file(process.out.tbi[0][1]).name ).match() } ) @@ -71,8 +70,7 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out, - path(process.out.versions[0]).yaml + process.out ).match() } ) diff --git a/modules/nf-core/sentieon/applyvarcal/tests/main.nf.test.snap b/modules/nf-core/sentieon/applyvarcal/tests/main.nf.test.snap index 5831e501bb7..890cf6bbd77 100644 --- a/modules/nf-core/sentieon/applyvarcal/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/applyvarcal/tests/main.nf.test.snap @@ -2,18 +2,13 @@ "homo sapiens": { "content": [ "VcfFile [chromosomes=[chr21], sampleCount=1, variantCount=733, phased=false, phasedAutodetect=false]", - "test_applyvarcal.vcf.gz.tbi", - { - "SENTIEON_APPLYVARCAL": { - "sentieon": 202503.01 - } - } + "test_applyvarcal.vcf.gz.tbi" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T07:58:39.037594229" + "timestamp": "2026-01-19T18:19:13.890563238" }, "homo sapiens -- stub": { "content": [ @@ -35,7 +30,11 @@ ] ], "2": [ - "versions.yml:md5,debf15eb513a4082e53616c5a77e0477" + [ + "SENTIEON_APPLYVARCAL", + "sentieon", + "202503.02" + ] ], "tbi": [ [ @@ -53,20 +52,19 @@ "test_applyvarcal.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ], - "versions": [ - "versions.yml:md5,debf15eb513a4082e53616c5a77e0477" + "versions_sentieon": [ + [ + "SENTIEON_APPLYVARCAL", + "sentieon", + "202503.02" + ] ] - }, - { - "SENTIEON_APPLYVARCAL": { - "sentieon": 202503.01 - } } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T07:59:06.102870321" + "timestamp": "2026-01-19T18:19:21.793386558" } -} +} \ No newline at end of file diff --git a/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config b/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config index 54037f782dd..bd3c339f60c 100644 --- a/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/applyvarcal/tests/nextflow.config @@ -1,16 +1,18 @@ -process { - withName: "SENTIEON_APPLYVARCAL" { - ext.args = params.module_args - ext.args2 = params.module_args - } -} - env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + +process { + withName: 'SENTIEON_APPLYVARCAL' { + ext.args = params.module_args + ext.args2 = params.module_args2 + } +} diff --git a/modules/nf-core/sentieon/bwaindex/environment.yml b/modules/nf-core/sentieon/bwaindex/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/bwaindex/environment.yml +++ b/modules/nf-core/sentieon/bwaindex/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 diff --git a/modules/nf-core/sentieon/bwaindex/main.nf b/modules/nf-core/sentieon/bwaindex/main.nf index e7b83c1382d..1b36961a187 100644 --- a/modules/nf-core/sentieon/bwaindex/main.nf +++ b/modules/nf-core/sentieon/bwaindex/main.nf @@ -5,15 +5,15 @@ process SENTIEON_BWAINDEX { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(fasta) output: tuple val(meta), path("bwa"), emit: index - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -21,7 +21,11 @@ process SENTIEON_BWAINDEX { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ? "bwa/${task.ext.prefix}" : "bwa/${fasta.baseName}" + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 + ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " + : "" """ + ${sentieonLicense} mkdir bwa sentieon \\ @@ -29,12 +33,6 @@ process SENTIEON_BWAINDEX { ${args} \\ -p ${prefix} \\ ${fasta} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bwa: \$(echo \$(sentieon bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ stub: @@ -46,11 +44,5 @@ process SENTIEON_BWAINDEX { touch bwa/genome.bwt touch bwa/genome.pac touch bwa/genome.sa - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bwa: \$(echo \$(sentieon bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ } diff --git a/modules/nf-core/sentieon/bwaindex/meta.yml b/modules/nf-core/sentieon/bwaindex/meta.yml index eb7bbe0d038..55fbf00c14b 100644 --- a/modules/nf-core/sentieon/bwaindex/meta.yml +++ b/modules/nf-core/sentieon/bwaindex/meta.yml @@ -36,16 +36,28 @@ output: description: BWA genome index files pattern: "*.{amb,ann,bwt,pac,sa}" ontologies: [] + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - - "@drpatelh" - "@maxulysse" maintainers: - - "@drpatelh" - - "@maxulysse" + - "@maxulysse" \ No newline at end of file diff --git a/modules/nf-core/sentieon/bwaindex/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwaindex/tests/main.nf.test.snap index 1e3abc6349b..98d1984acd4 100644 --- a/modules/nf-core/sentieon/bwaindex/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwaindex/tests/main.nf.test.snap @@ -17,7 +17,11 @@ ] ], "1": [ - "versions.yml:md5,c217de4e5a992968de304e342fd720f6" + [ + "SENTIEON_BWAINDEX", + "sentieon", + "202503.02" + ] ], "index": [ [ @@ -33,16 +37,20 @@ ] ] ], - "versions": [ - "versions.yml:md5,c217de4e5a992968de304e342fd720f6" + "versions_sentieon": [ + [ + "SENTIEON_BWAINDEX", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:16:59.165128416" + "timestamp": "2026-01-19T18:27:10.208416609" }, "build index - fasta": { "content": [ @@ -62,7 +70,11 @@ ] ], "1": [ - "versions.yml:md5,c217de4e5a992968de304e342fd720f6" + [ + "SENTIEON_BWAINDEX", + "sentieon", + "202503.02" + ] ], "index": [ [ @@ -78,15 +90,19 @@ ] ] ], - "versions": [ - "versions.yml:md5,c217de4e5a992968de304e342fd720f6" + "versions_sentieon": [ + [ + "SENTIEON_BWAINDEX", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:16:53.915178368" + "timestamp": "2026-01-19T18:27:03.694090374" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/bwaindex/tests/nextflow.config b/modules/nf-core/sentieon/bwaindex/tests/nextflow.config index 47f5ec002af..e70a23c9aff 100644 --- a/modules/nf-core/sentieon/bwaindex/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwaindex/tests/nextflow.config @@ -1,11 +1,11 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = $SENTIEON_LICSRVR_IP + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = $SENTIEON_AUTH_MECH + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file - // nextflow secrets set SENTIEON_LICENSE_BASE64 $(cat | base64 -w 0) -} -process { -} + // NOTE This is how users will test out Sentieon in Sarek with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) +} \ No newline at end of file diff --git a/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config b/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config index 09a068ee62c..b186b2e2f70 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/collectvcmetrics/tests/nextflow.config @@ -1,9 +1,11 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config index 09a068ee62c..b186b2e2f70 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config @@ -1,9 +1,11 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config index 341583d5e19..f55afe56990 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config @@ -1,10 +1,12 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config index 1fbd970b968..ddf17bf624e 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config @@ -1,10 +1,12 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } diff --git a/modules/nf-core/sentieon/datametrics/tests/nextflow.config b/modules/nf-core/sentieon/datametrics/tests/nextflow.config index dead4e3238c..b186b2e2f70 100644 --- a/modules/nf-core/sentieon/datametrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/datametrics/tests/nextflow.config @@ -1,16 +1,11 @@ env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } - -process { - withLabel: 'sentieon' { - ext.sentieon_auth_mech_base64 = secrets.SENTIEON_AUTH_MECH_BASE64 - ext.sentieon_auth_data_base64 = secrets.SENTIEON_AUTH_DATA_BASE64 - } -} diff --git a/modules/nf-core/sentieon/dedup/environment.yml b/modules/nf-core/sentieon/dedup/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/dedup/environment.yml +++ b/modules/nf-core/sentieon/dedup/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 diff --git a/modules/nf-core/sentieon/dedup/main.nf b/modules/nf-core/sentieon/dedup/main.nf index c6e9de5683b..321c0712f42 100644 --- a/modules/nf-core/sentieon/dedup/main.nf +++ b/modules/nf-core/sentieon/dedup/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DEDUP { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(bam), path(bai) @@ -21,7 +21,7 @@ process SENTIEON_DEDUP { tuple val(meta), path("*.score"), emit: score tuple val(meta), path("*.metrics"), emit: metrics tuple val(meta), path("*.metrics.multiqc.tsv"), emit: metrics_multiqc_tsv - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -33,7 +33,7 @@ process SENTIEON_DEDUP { def args4 = task.ext.args4 ?: '' def prefix = task.ext.prefix ?: "${meta.id}.cram" def metrics = task.ext.metrics ?: "${prefix}.metrics" - def input_list = bam.collect { "-i ${it}" }.join(' ') + def input_list = bam.collect {input -> "-i ${input}" }.join(' ') def prefix_basename = prefix.substring(0, prefix.lastIndexOf(".")) def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " @@ -47,11 +47,6 @@ process SENTIEON_DEDUP { # This following tsv-file is produced in order to get a proper tsv-file with Dedup-metrics for importing in MultiQC as "custom content". # It should be removed once MultiQC has a module for displaying Dedup-metrics. head -3 ${metrics} > ${metrics}.multiqc.tsv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ stub: @@ -66,10 +61,5 @@ process SENTIEON_DEDUP { touch "${metrics}" touch "${metrics}.multiqc.tsv" touch "${prefix_basename}.score" - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ } diff --git a/modules/nf-core/sentieon/dedup/meta.yml b/modules/nf-core/sentieon/dedup/meta.yml index 1a26d54296c..af4541ce793 100644 --- a/modules/nf-core/sentieon/dedup/meta.yml +++ b/modules/nf-core/sentieon/dedup/meta.yml @@ -133,13 +133,28 @@ output: pattern: "*.metrics.multiqc.tsv" ontologies: - edam: http://edamontology.org/format_3475 # TSV + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - "@asp8200" maintainers: diff --git a/modules/nf-core/sentieon/dedup/tests/main.nf.test b/modules/nf-core/sentieon/dedup/tests/main.nf.test index 114551b8c72..e68b744be26 100644 --- a/modules/nf-core/sentieon/dedup/tests/main.nf.test +++ b/modules/nf-core/sentieon/dedup/tests/main.nf.test @@ -10,10 +10,18 @@ nextflow_process { script "../main.nf" process "SENTIEON_DEDUP" + config "./nextflow.config" + test("Test marking duplicates") { - config "./nextflow.config" when { + params { + module_args = '' + module_args2 = '' + module_args3 = '' + module_args4 = '' + module_prefix = '' + } process { """ input[0] = [ @@ -35,10 +43,16 @@ nextflow_process { } } - test("Test removing duplicates") { - config "./nextflow_rmdup.config" + test("Test removing duplicates, cram") { when { + params { + module_args = '' + module_args2 = '' + module_args3 = '' + module_args4 = '--rmdup' + module_prefix = "test.dedup.cram" + } process { """ input[0] = [ @@ -61,9 +75,15 @@ nextflow_process { } test("Test stub") { - config "./nextflow.config" options "-stub" when { + params { + module_args = '' + module_args2 = '' + module_args3 = '' + module_args4 = '' + module_prefix = '' + } process { """ input[0] = [ diff --git a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap index 7d25f5d9521..8e23521223f 100644 --- a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "Test marking duplicates": { + "Test removing duplicates, cram": { "content": [ { "0": [ @@ -7,7 +7,7 @@ { "id": "test" }, - "test.cram:md5,3cc6965582621779fad1b9583735a54c" + "test.dedup.cram:md5,3ff9b62cefa56bf6a3c165efbb78963b" ] ], "1": [ @@ -15,7 +15,7 @@ { "id": "test" }, - "test.cram.crai:md5,19a4bd170312993b5b50824173363733" + "test.dedup.cram.crai:md5,0cef16cfb91374ab509fe8d17ce621f3" ] ], "2": [ @@ -26,7 +26,7 @@ { "id": "test" }, - "test.cram.bai:md5,4c2f9d6808b4dd0fffdb5ab7e663f047" + "test.dedup.cram.bai:md5,09b8e43b3ff8fd746bba56c66898b5a2" ] ], "4": [ @@ -34,7 +34,7 @@ { "id": "test" }, - "test.score:md5,74f88df6027ecdea3e4b345ca7f7ee80" + "test.dedup.score:md5,7b8776df3e086e3d4962db685af1bb24" ] ], "5": [ @@ -42,7 +42,7 @@ { "id": "test" }, - "test.cram.metrics:md5,ee74fa3a59dbecc559b8d3b7a70074e2" + "test.dedup.cram.metrics:md5,0b8459aa98f958fb26b6e7a59f6116f4" ] ], "6": [ @@ -50,18 +50,22 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,ee74fa3a59dbecc559b8d3b7a70074e2" + "test.dedup.cram.metrics.multiqc.tsv:md5,0b8459aa98f958fb26b6e7a59f6116f4" ] ], "7": [ - "versions.yml:md5,84017bd8f4cd3a50d370f6de544a768d" + [ + "SENTIEON_DEDUP", + "sentieon", + "202503.02" + ] ], "bai": [ [ { "id": "test" }, - "test.cram.bai:md5,4c2f9d6808b4dd0fffdb5ab7e663f047" + "test.dedup.cram.bai:md5,09b8e43b3ff8fd746bba56c66898b5a2" ] ], "bam": [ @@ -72,7 +76,7 @@ { "id": "test" }, - "test.cram.crai:md5,19a4bd170312993b5b50824173363733" + "test.dedup.cram.crai:md5,0cef16cfb91374ab509fe8d17ce621f3" ] ], "cram": [ @@ -80,7 +84,7 @@ { "id": "test" }, - "test.cram:md5,3cc6965582621779fad1b9583735a54c" + "test.dedup.cram:md5,3ff9b62cefa56bf6a3c165efbb78963b" ] ], "metrics": [ @@ -88,7 +92,7 @@ { "id": "test" }, - "test.cram.metrics:md5,ee74fa3a59dbecc559b8d3b7a70074e2" + "test.dedup.cram.metrics:md5,0b8459aa98f958fb26b6e7a59f6116f4" ] ], "metrics_multiqc_tsv": [ @@ -96,7 +100,7 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,ee74fa3a59dbecc559b8d3b7a70074e2" + "test.dedup.cram.metrics.multiqc.tsv:md5,0b8459aa98f958fb26b6e7a59f6116f4" ] ], "score": [ @@ -104,21 +108,25 @@ { "id": "test" }, - "test.score:md5,74f88df6027ecdea3e4b345ca7f7ee80" + "test.dedup.score:md5,7b8776df3e086e3d4962db685af1bb24" ] ], - "versions": [ - "versions.yml:md5,84017bd8f4cd3a50d370f6de544a768d" + "versions_sentieon": [ + [ + "SENTIEON_DEDUP", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:19:11.952461243" + "timestamp": "2026-01-19T18:10:56.239556583" }, - "Test removing duplicates": { + "Test marking duplicates": { "content": [ { "0": [ @@ -126,7 +134,7 @@ { "id": "test" }, - "test.cram:md5,efb9578f3f958d2d6143d68b17bdaed0" + "test.cram:md5,31e1db5d25aaea1faeadc37018301fb3" ] ], "1": [ @@ -134,7 +142,7 @@ { "id": "test" }, - "test.cram.crai:md5,f49d65d89421a61393c996a20a7c1018" + "test.cram.crai:md5,19a4bd170312993b5b50824173363733" ] ], "2": [ @@ -145,7 +153,7 @@ { "id": "test" }, - "test.cram.bai:md5,a1ea729eca4732ca3a5dee946a70fbc8" + "test.cram.bai:md5,4c2f9d6808b4dd0fffdb5ab7e663f047" ] ], "4": [ @@ -153,7 +161,7 @@ { "id": "test" }, - "test.score:md5,74f88df6027ecdea3e4b345ca7f7ee80" + "test.score:md5,c8c0f9470f569874ec8959ce7abf7319" ] ], "5": [ @@ -161,7 +169,7 @@ { "id": "test" }, - "test.cram.metrics:md5,270e532a0c20fb996369661e5520af60" + "test.cram.metrics:md5,d32dd5dd3b8b1d7552c0c3cc68286da8" ] ], "6": [ @@ -169,18 +177,22 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,270e532a0c20fb996369661e5520af60" + "test.cram.metrics.multiqc.tsv:md5,d32dd5dd3b8b1d7552c0c3cc68286da8" ] ], "7": [ - "versions.yml:md5,84017bd8f4cd3a50d370f6de544a768d" + [ + "SENTIEON_DEDUP", + "sentieon", + "202503.02" + ] ], "bai": [ [ { "id": "test" }, - "test.cram.bai:md5,a1ea729eca4732ca3a5dee946a70fbc8" + "test.cram.bai:md5,4c2f9d6808b4dd0fffdb5ab7e663f047" ] ], "bam": [ @@ -191,7 +203,7 @@ { "id": "test" }, - "test.cram.crai:md5,f49d65d89421a61393c996a20a7c1018" + "test.cram.crai:md5,19a4bd170312993b5b50824173363733" ] ], "cram": [ @@ -199,7 +211,7 @@ { "id": "test" }, - "test.cram:md5,efb9578f3f958d2d6143d68b17bdaed0" + "test.cram:md5,31e1db5d25aaea1faeadc37018301fb3" ] ], "metrics": [ @@ -207,7 +219,7 @@ { "id": "test" }, - "test.cram.metrics:md5,270e532a0c20fb996369661e5520af60" + "test.cram.metrics:md5,d32dd5dd3b8b1d7552c0c3cc68286da8" ] ], "metrics_multiqc_tsv": [ @@ -215,7 +227,7 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,270e532a0c20fb996369661e5520af60" + "test.cram.metrics.multiqc.tsv:md5,d32dd5dd3b8b1d7552c0c3cc68286da8" ] ], "score": [ @@ -223,19 +235,23 @@ { "id": "test" }, - "test.score:md5,74f88df6027ecdea3e4b345ca7f7ee80" + "test.score:md5,c8c0f9470f569874ec8959ce7abf7319" ] ], - "versions": [ - "versions.yml:md5,84017bd8f4cd3a50d370f6de544a768d" + "versions_sentieon": [ + [ + "SENTIEON_DEDUP", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:19:19.79382323" + "timestamp": "2026-01-19T18:10:46.627848969" }, "Test stub": { "content": [ @@ -292,7 +308,11 @@ ] ], "7": [ - "versions.yml:md5,84017bd8f4cd3a50d370f6de544a768d" + [ + "SENTIEON_DEDUP", + "sentieon", + "202503.02" + ] ], "bai": [ [ @@ -345,15 +365,19 @@ "test.score:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,84017bd8f4cd3a50d370f6de544a768d" + "versions_sentieon": [ + [ + "SENTIEON_DEDUP", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:19:25.095728083" + "timestamp": "2026-01-19T18:07:52.331783324" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/dedup/tests/nextflow.config b/modules/nf-core/sentieon/dedup/tests/nextflow.config index 09a068ee62c..12689f5f982 100644 --- a/modules/nf-core/sentieon/dedup/tests/nextflow.config +++ b/modules/nf-core/sentieon/dedup/tests/nextflow.config @@ -1,9 +1,22 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + +process { + withName: 'SENTIEON_DEDUP' { + ext.args = params.module_args + ext.args2 = params.module_args2 + ext.args3 = params.module_args3 + ext.args4 = params.module_args4 + ext.prefix = params.module_prefix + } +} + diff --git a/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config b/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config deleted file mode 100644 index 21e7b945d2e..00000000000 --- a/modules/nf-core/sentieon/dedup/tests/nextflow_rmdup.config +++ /dev/null @@ -1,15 +0,0 @@ -env { - // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" - // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" - SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file - // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) -} - -process { - withName: 'SENTIEON_DEDUP' { - ext.args4 = '--rmdup' - } -} diff --git a/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config b/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config index 09a068ee62c..b186b2e2f70 100644 --- a/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config +++ b/modules/nf-core/sentieon/dnamodelapply/tests/nextflow.config @@ -1,9 +1,11 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } diff --git a/modules/nf-core/sentieon/dnascope/tests/nextflow.config b/modules/nf-core/sentieon/dnascope/tests/nextflow.config index 09a068ee62c..fc73dc91f63 100644 --- a/modules/nf-core/sentieon/dnascope/tests/nextflow.config +++ b/modules/nf-core/sentieon/dnascope/tests/nextflow.config @@ -1,9 +1,12 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config b/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config index 0b55bb5ec25..05e8e8bbabe 100644 --- a/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config +++ b/modules/nf-core/sentieon/gvcftyper/tests/nextflow.config @@ -1,13 +1,16 @@ env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + process { withName: SENTIEON_GVCFTYPER { ext.prefix = { "${meta.id}.genotyped" } diff --git a/modules/nf-core/sentieon/haplotyper/environment.yml b/modules/nf-core/sentieon/haplotyper/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/haplotyper/environment.yml +++ b/modules/nf-core/sentieon/haplotyper/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 diff --git a/modules/nf-core/sentieon/haplotyper/main.nf b/modules/nf-core/sentieon/haplotyper/main.nf index 80cd4d0de9b..1f5400bddaf 100644 --- a/modules/nf-core/sentieon/haplotyper/main.nf +++ b/modules/nf-core/sentieon/haplotyper/main.nf @@ -5,8 +5,8 @@ process SENTIEON_HAPLOTYPER { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(input), path(input_index), path(intervals), path(recal_table) @@ -24,7 +24,7 @@ process SENTIEON_HAPLOTYPER { // these output-files have to have the extension ".vcf.gz", otherwise the subsequent GATK-MergeVCFs will fail. tuple val(meta), path("*.g.vcf.gz"), emit: gvcf, optional: true tuple val(meta), path("*.g.vcf.gz.tbi"), emit: gvcf_tbi, optional: true - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -70,11 +70,6 @@ process SENTIEON_HAPLOTYPER { ${recal_table_command} \\ ${vcf_cmd} \\ ${gvcf_cmd} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ stub: @@ -84,10 +79,5 @@ process SENTIEON_HAPLOTYPER { touch ${prefix}.unfiltered.vcf.gz.tbi echo "" | gzip > ${prefix}.g.vcf.gz touch ${prefix}.g.vcf.gz.tbi - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ } diff --git a/modules/nf-core/sentieon/haplotyper/meta.yml b/modules/nf-core/sentieon/haplotyper/meta.yml index f63eff8c373..cc98b9ac976 100644 --- a/modules/nf-core/sentieon/haplotyper/meta.yml +++ b/modules/nf-core/sentieon/haplotyper/meta.yml @@ -131,13 +131,27 @@ output: description: Index of GVCF file pattern: "*.g.vcf.gz.tbi" ontologies: [] + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - "@asp8200" maintainers: diff --git a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test index 13c3b89d741..8478eb2a790 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test +++ b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test @@ -36,8 +36,6 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.versions, - path(process.out.versions[0]).yaml, file(process.out.vcf_tbi.get(0).get(1)).name, path(process.out.vcf[0][1]).vcf.variantsMD5 ).match() @@ -71,8 +69,6 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.versions, - path(process.out.versions[0]).yaml, file(process.out.gvcf_tbi.get(0).get(1)).name, path(process.out.gvcf[0][1]).vcf.variantsMD5 ).match() @@ -106,8 +102,6 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.versions, - path(process.out.versions[0]).yaml, file(process.out.gvcf_tbi.get(0).get(1)).name, path(process.out.gvcf[0][1]).vcf.variantsMD5, file(process.out.vcf_tbi.get(0).get(1)).name, @@ -143,8 +137,6 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.versions, - path(process.out.versions[0]).yaml, file(process.out.gvcf_tbi.get(0).get(1)).name, path(process.out.gvcf[0][1]).vcf.variantsMD5, file(process.out.vcf_tbi.get(0).get(1)).name, @@ -180,8 +172,6 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.versions, - path(process.out.versions[0]).yaml, file(process.out.gvcf_tbi.get(0).get(1)).name, path(process.out.gvcf[0][1]).vcf.variantsMD5, file(process.out.vcf_tbi.get(0).get(1)).name, @@ -241,8 +231,7 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.versions, - path(process.out.versions[0]).yaml, + process.out.versions_sentieon, file(process.out.vcf_tbi.get(0).get(1)).name, path(process.out.vcf[0][1]).vcf.variantsMD5 ).match() @@ -283,8 +272,7 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.versions, - path(process.out.versions[0]).yaml, + process.out.versions_sentieon, file(process.out.vcf_tbi.get(0).get(1)).name, path(process.out.vcf[0][1]).vcf.variantsMD5 ).match() diff --git a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap index c8f884a07b3..c0be9986569 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap @@ -1,123 +1,82 @@ { "Sentieon Haplotyper VCF": { "content": [ - [ - "versions.yml:md5,96f268259f652e8a1083a3ecfcd4af57" - ], - { - "SENTIEON_HAPLOTYPER": { - "sentieon": 202503.01 - } - }, "test.unfiltered.vcf.gz.tbi", "cea0045051da7877b38a1e25df812a91" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:59:55.911444833" + "timestamp": "2026-01-19T21:10:48.483709026" }, "Sentieon Haplotyper Recalibration": { "content": [ [ - "versions.yml:md5,96f268259f652e8a1083a3ecfcd4af57" + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] ], - { - "SENTIEON_HAPLOTYPER": { - "sentieon": 202503.01 - } - }, "test.unfiltered.vcf.gz.tbi", "10faa3b669c49826098e09784d8a4716" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:00:31.931354567" + "timestamp": "2026-01-19T21:14:30.089439343" }, "Sentieon Haplotyper GVCF": { "content": [ - [ - "versions.yml:md5,96f268259f652e8a1083a3ecfcd4af57" - ], - { - "SENTIEON_HAPLOTYPER": { - "sentieon": 202503.01 - } - }, "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:00:02.6758866" + "timestamp": "2026-01-19T21:10:57.579158678" }, "Sentieon Haplotyper BOTH": { "content": [ - [ - "versions.yml:md5,96f268259f652e8a1083a3ecfcd4af57" - ], - { - "SENTIEON_HAPLOTYPER": { - "sentieon": 202503.01 - } - }, "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", "test.unfiltered.vcf.gz.tbi", "cea0045051da7877b38a1e25df812a91" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:00:09.763919171" + "timestamp": "2026-01-19T21:11:06.832276446" }, "Sentieon Haplotyper DBSNP BOTH": { "content": [ - [ - "versions.yml:md5,96f268259f652e8a1083a3ecfcd4af57" - ], - { - "SENTIEON_HAPLOTYPER": { - "sentieon": 202503.01 - } - }, "test.g.vcf.gz.tbi", "228556b7921205f023fec51098feeb97", "test.unfiltered.vcf.gz.tbi", "cc1f3d4bd615f3640e7fd103cc39d2f8" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:00:23.521373869" + "timestamp": "2026-01-19T21:11:25.551598468" }, "Sentieon Haplotyper Intervals BOTH": { "content": [ - [ - "versions.yml:md5,96f268259f652e8a1083a3ecfcd4af57" - ], - { - "SENTIEON_HAPLOTYPER": { - "sentieon": 202503.01 - } - }, "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", "test.unfiltered.vcf.gz.tbi", "cea0045051da7877b38a1e25df812a91" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:00:16.430893603" + "timestamp": "2026-01-19T21:11:15.850393233" }, "Sentieon Haplotyper - stub": { "content": [ @@ -155,7 +114,11 @@ ] ], "4": [ - "versions.yml:md5,96f268259f652e8a1083a3ecfcd4af57" + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] ], "gvcf": [ [ @@ -189,34 +152,37 @@ "test.unfiltered.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,96f268259f652e8a1083a3ecfcd4af57" + "versions_sentieon": [ + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T08:21:01.202952019" + "timestamp": "2026-01-19T21:03:03.06824978" }, "Sentieon Haplotyper multiple CRAMs": { "content": [ [ - "versions.yml:md5,96f268259f652e8a1083a3ecfcd4af57" + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] ], - { - "SENTIEON_HAPLOTYPER": { - "sentieon": 202503.01 - } - }, "test.unfiltered.vcf.gz.tbi", "b5d6e09e336438e38f7bf5531799e3a" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:00:38.788987585" + "timestamp": "2026-01-19T21:14:39.101976234" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/haplotyper/tests/nextflow.config b/modules/nf-core/sentieon/haplotyper/tests/nextflow.config index 78f19cfb26c..04fccd6f77a 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/nextflow.config +++ b/modules/nf-core/sentieon/haplotyper/tests/nextflow.config @@ -1,13 +1,16 @@ env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + process { withName: 'SENTIEON_HAPLOTYPER' { ext.args2 = "--genotype_model multinomial" diff --git a/modules/nf-core/sentieon/hsmetrics/environment.yml b/modules/nf-core/sentieon/hsmetrics/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/hsmetrics/environment.yml +++ b/modules/nf-core/sentieon/hsmetrics/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 diff --git a/modules/nf-core/sentieon/hsmetrics/main.nf b/modules/nf-core/sentieon/hsmetrics/main.nf index 6a09c88c138..8c73b62686e 100644 --- a/modules/nf-core/sentieon/hsmetrics/main.nf +++ b/modules/nf-core/sentieon/hsmetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_HSMETRICS { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(bam), path(bai), path(bait_intervals), path(target_intervals) diff --git a/modules/nf-core/sentieon/hsmetrics/meta.yml b/modules/nf-core/sentieon/hsmetrics/meta.yml index a520afb6653..d67201d87be 100644 --- a/modules/nf-core/sentieon/hsmetrics/meta.yml +++ b/modules/nf-core/sentieon/hsmetrics/meta.yml @@ -82,7 +82,7 @@ output: - sentieon: type: string description: The tool name - - sentieon driver --version | sed 's/.*-//g': + - 'sentieon driver --version | sed "s/.*-//g"': type: string description: The command used to generate the version of the tool @@ -94,7 +94,7 @@ topics: - sentieon: type: string description: The tool name - - "sentieon driver --version | sed 's/.*-//g'": + - 'sentieon driver --version | sed "s/.*-//g"': type: string description: The command used to generate the version of the tool authors: diff --git a/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config b/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config index c1e9e48648c..fc73dc91f63 100644 --- a/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config @@ -1,9 +1,12 @@ env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/qualcal/environment.yml b/modules/nf-core/sentieon/qualcal/environment.yml index 5a777da99d3..2986b7b43d9 100644 --- a/modules/nf-core/sentieon/qualcal/environment.yml +++ b/modules/nf-core/sentieon/qualcal/environment.yml @@ -4,5 +4,5 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 - conda-forge::gnuplot=5.4.10 diff --git a/modules/nf-core/sentieon/qualcal/main.nf b/modules/nf-core/sentieon/qualcal/main.nf index 9afd3111082..a8b8b036935 100644 --- a/modules/nf-core/sentieon/qualcal/main.nf +++ b/modules/nf-core/sentieon/qualcal/main.nf @@ -4,8 +4,8 @@ process SENTIEON_QUALCAL { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/20/2050c5321a5426e31b9ed1e3e98356913fe3c316a7ef02c4fb872983a730db6f/data' - : 'community.wave.seqera.io/library/sentieon_gnuplot:a6da525a6c9ce6e3'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(input), path(input_index) @@ -22,7 +22,7 @@ process SENTIEON_QUALCAL { tuple val(meta), path("*.{cram,bam}"), emit: recal_alignment, optional: true tuple val(meta), path("*.csv"), emit: csv, optional: true tuple val(meta), path("*.pdf"), emit: pdf, optional: true - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -50,10 +50,7 @@ process SENTIEON_QUALCAL { ${knownSites} \\ ${prefix}.table - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + """ } else { @@ -85,10 +82,7 @@ process SENTIEON_QUALCAL { sentieon plot QualCal -o ${prefix}.pdf ${prefix}.csv - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + """ } @@ -104,9 +98,6 @@ process SENTIEON_QUALCAL { touch ${prefix}.csv touch ${prefix}.pdf - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + """ } diff --git a/modules/nf-core/sentieon/qualcal/meta.yml b/modules/nf-core/sentieon/qualcal/meta.yml index 279af55ba96..050834a252d 100644 --- a/modules/nf-core/sentieon/qualcal/meta.yml +++ b/modules/nf-core/sentieon/qualcal/meta.yml @@ -139,14 +139,29 @@ output: description: PDF file containing graphs (optional) pattern: "*.pdf" ontologies: [] - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - "@FriederikeHanssen" maintainers: - "@FriederikeHanssen" + +topics: + versions: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool diff --git a/modules/nf-core/sentieon/qualcal/tests/main.nf.test b/modules/nf-core/sentieon/qualcal/tests/main.nf.test index 7e7f64c7640..7f47d623287 100644 --- a/modules/nf-core/sentieon/qualcal/tests/main.nf.test +++ b/modules/nf-core/sentieon/qualcal/tests/main.nf.test @@ -123,8 +123,7 @@ nextflow_process { process.out.table_post, process.out.recal_alignment, process.out.csv, - file(process.out.pdf[0][1]).name, - path(process.out.versions[0]).yaml + file(process.out.pdf[0][1]).name ).match() } ) } @@ -182,8 +181,7 @@ nextflow_process { process.out.table_post, process.out.recal_alignment, process.out.csv, - file(process.out.pdf[0][1]).name, - path(process.out.versions[0]).yaml + file(process.out.pdf[0][1]).name ).match() } ) diff --git a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap index dd360032afd..f82105a0666 100644 --- a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap @@ -85,7 +85,11 @@ ] ], "5": [ - "versions.yml:md5,e48ef9b6808aaeffeeff6b8e91058c15" + [ + "SENTIEON_QUALCAL", + "sentieon", + "202503.02" + ] ], "csv": [ [ @@ -127,16 +131,20 @@ "test.table.post:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,e48ef9b6808aaeffeeff6b8e91058c15" + "versions_sentieon": [ + [ + "SENTIEON_QUALCAL", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:22:33.246218197" + "timestamp": "2026-01-19T20:44:41.372394284" }, "Generate recalibration table - CRAM": { "content": [ @@ -234,7 +242,11 @@ ] ], "5": [ - "versions.yml:md5,e48ef9b6808aaeffeeff6b8e91058c15" + [ + "SENTIEON_QUALCAL", + "sentieon", + "202503.02" + ] ], "csv": [ [ @@ -271,16 +283,20 @@ "test.table.post:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,e48ef9b6808aaeffeeff6b8e91058c15" + "versions_sentieon": [ + [ + "SENTIEON_QUALCAL", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:22:39.208751902" + "timestamp": "2026-01-19T20:44:49.330475275" }, "Recalibrate - CRAM": { "content": [ diff --git a/modules/nf-core/sentieon/qualcal/tests/nextflow.config b/modules/nf-core/sentieon/qualcal/tests/nextflow.config index c1e9e48648c..fc73dc91f63 100644 --- a/modules/nf-core/sentieon/qualcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/qualcal/tests/nextflow.config @@ -1,9 +1,12 @@ env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/readwriter/tests/nextflow.config b/modules/nf-core/sentieon/readwriter/tests/nextflow.config index c1e9e48648c..fc73dc91f63 100644 --- a/modules/nf-core/sentieon/readwriter/tests/nextflow.config +++ b/modules/nf-core/sentieon/readwriter/tests/nextflow.config @@ -1,9 +1,12 @@ env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config b/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config index 56c30c26515..aa1d6fac885 100644 --- a/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config +++ b/modules/nf-core/sentieon/readwriter/tests/nextflow_outputcram.config @@ -1,14 +1,15 @@ env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } - process { withName: "SENTIEON_READWRITER" { ext.prefix = { "${meta.id}.cram" } diff --git a/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config b/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config index 0d7b82c4376..0ed6c997208 100644 --- a/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config +++ b/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config @@ -1,7 +1,5 @@ process { - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: SENTIEON_RSEMPREPAREREFERENCE { ext.args = '--star' } @@ -13,11 +11,14 @@ process { } env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config b/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config index c1e9e48648c..fc73dc91f63 100644 --- a/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config +++ b/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config @@ -1,9 +1,12 @@ env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config b/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config index f6fccb8fa8f..9135719bcf7 100644 --- a/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config @@ -11,11 +11,14 @@ process { } env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.config b/modules/nf-core/sentieon/staralign/tests/nextflow.config index 6c89ce9e044..004a0c58e6b 100644 --- a/modules/nf-core/sentieon/staralign/tests/nextflow.config +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.config @@ -11,11 +11,14 @@ process { } env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config b/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config index 39093b5a6cf..465c8bb74e2 100644 --- a/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config @@ -11,11 +11,14 @@ process { } env { - // NOTE This is how pipeline users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This is how nf-core/sarek users will use Sentieon in real world use + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how pipeline users will test out Sentieon with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/tnfilter/tests/nextflow.config b/modules/nf-core/sentieon/tnfilter/tests/nextflow.config index eb5d4693f4d..5b98549410b 100644 --- a/modules/nf-core/sentieon/tnfilter/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnfilter/tests/nextflow.config @@ -1,13 +1,16 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + process { withName: 'SENTIEON_TNFILTER' { ext.args = params.module_args diff --git a/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config b/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config index c39a9b26ac6..ac579b68875 100644 --- a/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnhaplotyper2/tests/nextflow.config @@ -21,10 +21,12 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } diff --git a/modules/nf-core/sentieon/tnscope/environment.yml b/modules/nf-core/sentieon/tnscope/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/tnscope/environment.yml +++ b/modules/nf-core/sentieon/tnscope/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 diff --git a/modules/nf-core/sentieon/tnscope/main.nf b/modules/nf-core/sentieon/tnscope/main.nf index cdce359d31a..30a99f280a9 100644 --- a/modules/nf-core/sentieon/tnscope/main.nf +++ b/modules/nf-core/sentieon/tnscope/main.nf @@ -5,8 +5,8 @@ process SENTIEON_TNSCOPE { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(input), path(input_index), path(intervals) @@ -22,7 +22,7 @@ process SENTIEON_TNSCOPE { output: tuple val(meta), path("*.vcf.gz"), emit: vcf tuple val(meta), path("*.vcf.gz.tbi"), emit: index - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -56,10 +56,6 @@ process SENTIEON_TNSCOPE { ${pon_str} \\ ${prefix}.vcf.gz - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ stub: @@ -68,9 +64,5 @@ process SENTIEON_TNSCOPE { echo | gzip > ${prefix}.vcf.gz touch ${prefix}.vcf.gz.tbi - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g" ) - END_VERSIONS """ } diff --git a/modules/nf-core/sentieon/tnscope/meta.yml b/modules/nf-core/sentieon/tnscope/meta.yml index 7b6bbc402ac..f6543476a8a 100644 --- a/modules/nf-core/sentieon/tnscope/meta.yml +++ b/modules/nf-core/sentieon/tnscope/meta.yml @@ -143,13 +143,27 @@ output: description: Index of the VCF file pattern: "*.vcf.gz.tbi" ontologies: [] + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - "@ramprasadn" maintainers: diff --git a/modules/nf-core/sentieon/tnscope/tests/main.nf.test b/modules/nf-core/sentieon/tnscope/tests/main.nf.test index afb0e24d28d..b24de907302 100644 --- a/modules/nf-core/sentieon/tnscope/tests/main.nf.test +++ b/modules/nf-core/sentieon/tnscope/tests/main.nf.test @@ -79,8 +79,7 @@ nextflow_process { { assert snapshot( path(process.out.vcf[0][1]).vcf.summary, file(process.out.index[0][1]).name, - process.out.versions, - path(process.out.versions[0]).yaml + process.out.versions_sentieon ).match() } ) } @@ -131,8 +130,7 @@ nextflow_process { { assert snapshot( path(process.out.vcf[0][1]).vcf.summary, file(process.out.index[0][1]).name, - process.out.versions, - path(process.out.versions[0]).yaml + process.out.versions_sentieon ).match() } ) } diff --git a/modules/nf-core/sentieon/tnscope/tests/main.nf.test.snap b/modules/nf-core/sentieon/tnscope/tests/main.nf.test.snap index 67f86d8a3af..1823e252354 100644 --- a/modules/nf-core/sentieon/tnscope/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/tnscope/tests/main.nf.test.snap @@ -4,19 +4,18 @@ "VcfFile [chromosomes=[], sampleCount=2, variantCount=0, phased=true, phasedAutodetect=true]", "tumour.vcf.gz.tbi", [ - "versions.yml:md5,059038177e029abb12a93af385a6888e" - ], - { - "SENTIEON_TNSCOPE": { - "sentieon": 202503.01 - } - } + [ + "SENTIEON_TNSCOPE", + "sentieon", + "202503.02" + ] + ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:09:42.635087221" + "timestamp": "2026-01-19T21:17:05.163602766" }, "tumour normal - stub": { "content": [ @@ -38,7 +37,11 @@ ] ], "2": [ - "versions.yml:md5,059038177e029abb12a93af385a6888e" + [ + "SENTIEON_TNSCOPE", + "sentieon", + "202503.02" + ] ], "index": [ [ @@ -56,34 +59,37 @@ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ], - "versions": [ - "versions.yml:md5,059038177e029abb12a93af385a6888e" + "versions_sentieon": [ + [ + "SENTIEON_TNSCOPE", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T09:13:41.783906165" + "timestamp": "2026-01-19T21:17:16.26067442" }, "tumour normal - no dbsnp": { "content": [ "VcfFile [chromosomes=[], sampleCount=2, variantCount=0, phased=true, phasedAutodetect=true]", "tumour.vcf.gz.tbi", [ - "versions.yml:md5,059038177e029abb12a93af385a6888e" - ], - { - "SENTIEON_TNSCOPE": { - "sentieon": 202503.01 - } - } + [ + "SENTIEON_TNSCOPE", + "sentieon", + "202503.02" + ] + ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:09:21.115356777" + "timestamp": "2026-01-19T21:16:42.515227576" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/tnscope/tests/nextflow.config b/modules/nf-core/sentieon/tnscope/tests/nextflow.config index ecf20e4e936..b891e9a0d0d 100644 --- a/modules/nf-core/sentieon/tnscope/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnscope/tests/nextflow.config @@ -19,10 +19,13 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/varcal/environment.yml b/modules/nf-core/sentieon/varcal/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/varcal/environment.yml +++ b/modules/nf-core/sentieon/varcal/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 diff --git a/modules/nf-core/sentieon/varcal/main.nf b/modules/nf-core/sentieon/varcal/main.nf index f9f3e8ecc5b..dbc408de816 100644 --- a/modules/nf-core/sentieon/varcal/main.nf +++ b/modules/nf-core/sentieon/varcal/main.nf @@ -5,8 +5,8 @@ process SENTIEON_VARCAL { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(vcf), path(tbi) @@ -21,7 +21,7 @@ process SENTIEON_VARCAL { tuple val(meta), path("*.idx"), emit: idx tuple val(meta), path("*.tranches"), emit: tranches tuple val(meta), path("*plots.R"), emit: plots, optional: true - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -76,10 +76,7 @@ process SENTIEON_VARCAL { ${args} \\ ${prefix}.recal - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + """ stub: @@ -90,9 +87,6 @@ process SENTIEON_VARCAL { touch ${prefix}.tranches touch ${prefix}plots.R - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + """ } diff --git a/modules/nf-core/sentieon/varcal/meta.yml b/modules/nf-core/sentieon/varcal/meta.yml index 9d7bd79ae54..55e3161e82d 100644 --- a/modules/nf-core/sentieon/varcal/meta.yml +++ b/modules/nf-core/sentieon/varcal/meta.yml @@ -106,14 +106,29 @@ output: pattern: "*plots.R" ontologies: - edam: http://edamontology.org/format_3999 # R script - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - "@asp8200" maintainers: - "@asp8200" + +topics: + versions: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool diff --git a/modules/nf-core/sentieon/varcal/tests/main.nf.test b/modules/nf-core/sentieon/varcal/tests/main.nf.test index 5c9b2bf01c9..865a57e31ec 100644 --- a/modules/nf-core/sentieon/varcal/tests/main.nf.test +++ b/modules/nf-core/sentieon/varcal/tests/main.nf.test @@ -41,8 +41,7 @@ nextflow_process { { assert snapshot( file(process.out.recal[0][1]).readLines()[0..5], file(process.out.idx[0][1]).name, - process.out.tranches, - path(process.out.versions[0]).yaml + process.out.tranches ).match() } ) @@ -90,8 +89,7 @@ nextflow_process { { assert snapshot( file(process.out.recal[0][1]).readLines()[0..5], file(process.out.idx[0][1]).name, - process.out.tranches, - path(process.out.versions[0]).yaml + process.out.tranches ).match() } ) @@ -137,8 +135,7 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out, - path(process.out.versions[0]).yaml + process.out ).match() } ) diff --git a/modules/nf-core/sentieon/varcal/tests/main.nf.test.snap b/modules/nf-core/sentieon/varcal/tests/main.nf.test.snap index 60e6f69b408..4444b1957bc 100644 --- a/modules/nf-core/sentieon/varcal/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/varcal/tests/main.nf.test.snap @@ -97,7 +97,11 @@ ] ], "4": [ - "versions.yml:md5,9f0e64d56a3b09e026029691efc7b092" + [ + "SENTIEON_VARCAL", + "sentieon", + "202503.02" + ] ], "idx": [ [ @@ -131,20 +135,19 @@ "test.tranches:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,9f0e64d56a3b09e026029691efc7b092" + "versions_sentieon": [ + [ + "SENTIEON_VARCAL", + "sentieon", + "202503.02" + ] ] - }, - { - "SENTIEON_VARCAL": { - "sentieon": 202503.01 - } } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T09:25:50.621320098" + "timestamp": "2026-01-19T20:50:05.37962282" } -} +} \ No newline at end of file diff --git a/modules/nf-core/sentieon/varcal/tests/nextflow.config b/modules/nf-core/sentieon/varcal/tests/nextflow.config index 30379fd5623..0d2dc50ac58 100644 --- a/modules/nf-core/sentieon/varcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/varcal/tests/nextflow.config @@ -6,10 +6,13 @@ process { env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + diff --git a/modules/nf-core/sentieon/wgsmetrics/environment.yml b/modules/nf-core/sentieon/wgsmetrics/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/wgsmetrics/environment.yml +++ b/modules/nf-core/sentieon/wgsmetrics/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 diff --git a/modules/nf-core/sentieon/wgsmetrics/main.nf b/modules/nf-core/sentieon/wgsmetrics/main.nf index 687c460e617..a4005bc8fd1 100644 --- a/modules/nf-core/sentieon/wgsmetrics/main.nf +++ b/modules/nf-core/sentieon/wgsmetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_WGSMETRICS { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3adad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(bam), path(bai) @@ -16,7 +16,7 @@ process SENTIEON_WGSMETRICS { output: tuple val(meta), path('*.txt'), emit: wgs_metrics - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -42,10 +42,7 @@ process SENTIEON_WGSMETRICS { --algo WgsMetricsAlgo \\ ${prefix}.txt - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + """ stub: @@ -53,9 +50,6 @@ process SENTIEON_WGSMETRICS { """ touch ${prefix}.txt - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS + """ } diff --git a/modules/nf-core/sentieon/wgsmetrics/meta.yml b/modules/nf-core/sentieon/wgsmetrics/meta.yml index 7e04bfd8f74..588246fab7a 100644 --- a/modules/nf-core/sentieon/wgsmetrics/meta.yml +++ b/modules/nf-core/sentieon/wgsmetrics/meta.yml @@ -70,14 +70,29 @@ output: for each sequencing cycle pattern: "*.txt" ontologies: [] - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - "@ramprasadn" maintainers: - "@ramprasadn" + +topics: + versions: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool diff --git a/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config b/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config index 09a068ee62c..fc73dc91f63 100644 --- a/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config @@ -1,9 +1,12 @@ env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use - SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') // NOTE This should only happen in GitHub actions or nf-core MegaTests - SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 + SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how nf-core/sarek users will test out Sentieon in Sarek with a license file + // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } + From be3b8a7ea26ddb313d538c8ec98ea4666e017bca Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 20 Jan 2026 13:32:26 +0000 Subject: [PATCH 10/23] Fix some modules --- .../hsmetrics/tests/main.nf.test.snap | 10 +-- modules/nf-core/sentieon/qualcal/main.nf | 10 +-- .../sentieon/qualcal/tests/main.nf.test.snap | 70 ++++++++++--------- modules/nf-core/sentieon/wgsmetrics/main.nf | 4 -- .../sentieon/wgsmetrics/tests/main.nf.test | 9 +-- 5 files changed, 47 insertions(+), 56 deletions(-) diff --git a/modules/nf-core/sentieon/hsmetrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/hsmetrics/tests/main.nf.test.snap index 9359e7b24ec..641dcd377d7 100644 --- a/modules/nf-core/sentieon/hsmetrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/hsmetrics/tests/main.nf.test.snap @@ -14,7 +14,7 @@ [ "SENTIEON_HSMETRICS", "sentieon", - "202503.01" + "202503.02" ] ], "metrics": [ @@ -29,7 +29,7 @@ [ "SENTIEON_HSMETRICS", "sentieon", - "202503.01" + "202503.02" ] ] } @@ -38,7 +38,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-06T14:42:35.157523347" + "timestamp": "2026-01-20T08:52:34.928359133" }, "sarscov2 - bam": { "content": [ @@ -149,7 +149,7 @@ [ "SENTIEON_HSMETRICS", "sentieon", - "202503.01" + "202503.02" ] ] } @@ -158,6 +158,6 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-06T15:22:37.882011263" + "timestamp": "2026-01-20T08:52:26.714701109" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/qualcal/main.nf b/modules/nf-core/sentieon/qualcal/main.nf index a8b8b036935..b89a544899b 100644 --- a/modules/nf-core/sentieon/qualcal/main.nf +++ b/modules/nf-core/sentieon/qualcal/main.nf @@ -4,8 +4,8 @@ process SENTIEON_QUALCAL { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' - : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/ae/ae67a134620c3af22c8563a2913c4639caa0d75ce25764e7b10c996b242aa023/data' + : 'community.wave.seqera.io/library/sentieon_gnuplot:41931fca35668c97'}" input: tuple val(meta), path(input), path(input_index) @@ -49,8 +49,6 @@ process SENTIEON_QUALCAL { ${args} \\ ${knownSites} \\ ${prefix}.table - - """ } else { @@ -81,8 +79,6 @@ process SENTIEON_QUALCAL { ${prefix}.csv sentieon plot QualCal -o ${prefix}.pdf ${prefix}.csv - - """ } @@ -97,7 +93,5 @@ process SENTIEON_QUALCAL { ${recalibrated_bam_cmd} touch ${prefix}.csv touch ${prefix}.pdf - - """ } diff --git a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap index f82105a0666..9e4e0ae7cc0 100644 --- a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap @@ -17,7 +17,7 @@ { "id": "test" }, - "test.recalibrated.bam:md5,d8a40a75fec761c04208463ea679c047" + "test.recalibrated.bam:md5,99ea7b471f90f9c7ed2c32b2fd89dff3" ] ], [ @@ -28,18 +28,13 @@ "test.csv:md5,1c5edd3a663f2b83337c54c162b9f87e" ] ], - "test.pdf", - { - "SENTIEON_QUALCAL": { - "sentieon": 202503.01 - } - } + "test.pdf" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:22:17.518197719" + "timestamp": "2026-01-20T08:51:26.697947425" }, "BAM - stub": { "content": [ @@ -170,7 +165,11 @@ ], "5": [ - "versions.yml:md5,e48ef9b6808aaeffeeff6b8e91058c15" + [ + "SENTIEON_QUALCAL", + "sentieon", + "202503.02" + ] ], "csv": [ @@ -192,16 +191,20 @@ "table_post": [ ], - "versions": [ - "versions.yml:md5,e48ef9b6808aaeffeeff6b8e91058c15" + "versions_sentieon": [ + [ + "SENTIEON_QUALCAL", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:22:08.541061248" + "timestamp": "2026-01-20T08:42:38.389272827" }, "no recal BAM - stub": { "content": [ @@ -316,7 +319,7 @@ { "id": "test" }, - "test.recalibrated.cram:md5,6c28ea63fd30c7fc2b7e9910d236904e" + "test.recalibrated.cram:md5,ae352681d4e1e6c31e0ef730bc4178b5" ] ], [ @@ -327,18 +330,13 @@ "test.csv:md5,0482ccf531a0badbde21c6eb36da5884" ] ], - "test.pdf", - { - "SENTIEON_QUALCAL": { - "sentieon": 202503.01 - } - } + "test.pdf" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:22:27.664270911" + "timestamp": "2026-01-20T08:56:05.801714404" }, "Generate recalibration table - BAM": { "content": [ @@ -364,7 +362,11 @@ ], "5": [ - "versions.yml:md5,e48ef9b6808aaeffeeff6b8e91058c15" + [ + "SENTIEON_QUALCAL", + "sentieon", + "202503.02" + ] ], "csv": [ @@ -386,15 +388,19 @@ "table_post": [ ], - "versions": [ - "versions.yml:md5,e48ef9b6808aaeffeeff6b8e91058c15" + "versions_sentieon": [ + [ + "SENTIEON_QUALCAL", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:22:02.058577117" + "timestamp": "2026-01-20T08:42:29.378865734" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/wgsmetrics/main.nf b/modules/nf-core/sentieon/wgsmetrics/main.nf index a4005bc8fd1..695e6ef4fa0 100644 --- a/modules/nf-core/sentieon/wgsmetrics/main.nf +++ b/modules/nf-core/sentieon/wgsmetrics/main.nf @@ -41,15 +41,11 @@ process SENTIEON_WGSMETRICS { ${args} \\ --algo WgsMetricsAlgo \\ ${prefix}.txt - - """ stub: def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.txt - - """ } diff --git a/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test b/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test index 1368282abca..bfc818f2b07 100644 --- a/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test +++ b/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test @@ -37,8 +37,7 @@ nextflow_process { assertAll( { assert snapshot( file(process.out.wgs_metrics[0][1]).readLines()[1..5], - process.out.versions, - path(process.out.versions[0]).yaml + process.out.versions_sentieon ).match() } ) } @@ -72,11 +71,7 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot( - process.out, - process.out.versions, - path(process.out.versions[0]).yaml - ).match() } + { assert snapshot(process.out).match() } ) } } From f913a099ecfa616098ee3b857acd7033f1ddc66c Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:14:43 +0000 Subject: [PATCH 11/23] Prettier --- modules/nf-core/sentieon/applyvarcal/meta.yml | 8 ++++---- modules/nf-core/sentieon/bwaindex/meta.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/nf-core/sentieon/applyvarcal/meta.yml b/modules/nf-core/sentieon/applyvarcal/meta.yml index e75dd331cc0..2f1a71b88e8 100644 --- a/modules/nf-core/sentieon/applyvarcal/meta.yml +++ b/modules/nf-core/sentieon/applyvarcal/meta.yml @@ -97,10 +97,10 @@ output: pattern: "*vcf.gz.tbi" ontologies: [] versions_sentieon: - - - '${task.process}': + - - "${task.process}": type: string description: The process the versions were collected from - - 'sentieon': + - "sentieon": type: string description: The tool name - 'sentieon driver --version | sed "s/.*-//g"': @@ -109,10 +109,10 @@ output: topics: versions: - - - '${task.process}': + - - "${task.process}": type: string description: The process the versions were collected from - - 'sentieon': + - "sentieon": type: string description: The tool name - 'sentieon driver --version | sed "s/.*-//g"': diff --git a/modules/nf-core/sentieon/bwaindex/meta.yml b/modules/nf-core/sentieon/bwaindex/meta.yml index 55fbf00c14b..165247da84f 100644 --- a/modules/nf-core/sentieon/bwaindex/meta.yml +++ b/modules/nf-core/sentieon/bwaindex/meta.yml @@ -60,4 +60,4 @@ topics: authors: - "@maxulysse" maintainers: - - "@maxulysse" \ No newline at end of file + - "@maxulysse" From c8f4d87aa862a66497c9cd39a0cbea47a06e9df2 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:20:01 +0000 Subject: [PATCH 12/23] Add missing variable from stub --- modules/nf-core/sentieon/coveragemetrics/main.nf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/nf-core/sentieon/coveragemetrics/main.nf b/modules/nf-core/sentieon/coveragemetrics/main.nf index 96d0bfdb764..3d8b44a06bb 100644 --- a/modules/nf-core/sentieon/coveragemetrics/main.nf +++ b/modules/nf-core/sentieon/coveragemetrics/main.nf @@ -57,6 +57,8 @@ process SENTIEON_COVERAGEMETRICS { stub: prefix = task.ext.prefix ?: "${meta.id}" + // Glob that matches any version of 'sample_library_platform_center'. + partitions_output = "{sample,}{_library,}{_platform,}{_center,}{_readgroup,}" """ touch ${prefix} touch ${prefix}.sample_interval_statistics From 9fc390bda686b43fda33dd2d9acfbb54cff16d31 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:12:34 +0000 Subject: [PATCH 13/23] Update qualcal --- .../sentieon/qualcal/tests/main.nf.test | 5 +++-- .../sentieon/qualcal/tests/main.nf.test.snap | 22 ++++--------------- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/modules/nf-core/sentieon/qualcal/tests/main.nf.test b/modules/nf-core/sentieon/qualcal/tests/main.nf.test index 7f47d623287..4ef8ef2a4ae 100644 --- a/modules/nf-core/sentieon/qualcal/tests/main.nf.test +++ b/modules/nf-core/sentieon/qualcal/tests/main.nf.test @@ -121,7 +121,7 @@ nextflow_process { { assert snapshot( process.out.table, process.out.table_post, - process.out.recal_alignment, + bam(process.out.recal_alignment[0][1]).getReadsMD5(), process.out.csv, file(process.out.pdf[0][1]).name ).match() } @@ -174,12 +174,13 @@ nextflow_process { } then { + def fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/genome.fasta' assert process.success assertAll( { assert snapshot( process.out.table, process.out.table_post, - process.out.recal_alignment, + cram(process.out.recal_alignment[0][1], fasta).getReadsMD5(), process.out.csv, file(process.out.pdf[0][1]).name ).match() diff --git a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap index 9e4e0ae7cc0..2b393ca4623 100644 --- a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap @@ -12,14 +12,7 @@ "test.table.post:md5,83811f5f6a21ac1826074ef7b0ac97b6" ] ], - [ - [ - { - "id": "test" - }, - "test.recalibrated.bam:md5,99ea7b471f90f9c7ed2c32b2fd89dff3" - ] - ], + "894549ee3ced6b5ca2eed2563a985217", [ [ { @@ -34,7 +27,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-20T08:51:26.697947425" + "timestamp": "2026-01-20T15:36:41.8541719" }, "BAM - stub": { "content": [ @@ -314,14 +307,7 @@ "test.table.post:md5,f9c04c33b3417e6183372658e9122c32" ] ], - [ - [ - { - "id": "test" - }, - "test.recalibrated.cram:md5,ae352681d4e1e6c31e0ef730bc4178b5" - ] - ], + "2f11e4fe3390b8ad0a1852616fd1da04", [ [ { @@ -336,7 +322,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-20T08:56:05.801714404" + "timestamp": "2026-01-20T16:00:47.365728967" }, "Generate recalibration table - BAM": { "content": [ From 13324484a6f8b8adfbca1195dc91ae67abc2ad42 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 20 Jan 2026 20:21:50 +0000 Subject: [PATCH 14/23] Update varcal --- .../sentieon/varcal/tests/main.nf.test | 6 ++-- .../sentieon/varcal/tests/main.nf.test.snap | 32 ++++++++++++------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/modules/nf-core/sentieon/varcal/tests/main.nf.test b/modules/nf-core/sentieon/varcal/tests/main.nf.test index 865a57e31ec..d0457d56fe0 100644 --- a/modules/nf-core/sentieon/varcal/tests/main.nf.test +++ b/modules/nf-core/sentieon/varcal/tests/main.nf.test @@ -41,7 +41,8 @@ nextflow_process { { assert snapshot( file(process.out.recal[0][1]).readLines()[0..5], file(process.out.idx[0][1]).name, - process.out.tranches + process.out.tranches, + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -89,7 +90,8 @@ nextflow_process { { assert snapshot( file(process.out.recal[0][1]).readLines()[0..5], file(process.out.idx[0][1]).name, - process.out.tranches + process.out.tranches, + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) diff --git a/modules/nf-core/sentieon/varcal/tests/main.nf.test.snap b/modules/nf-core/sentieon/varcal/tests/main.nf.test.snap index 4444b1957bc..300c11e2e0e 100644 --- a/modules/nf-core/sentieon/varcal/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/varcal/tests/main.nf.test.snap @@ -19,16 +19,20 @@ ] ], { - "SENTIEON_VARCAL": { - "sentieon": 202503.01 - } + "versions_sentieon": [ + [ + "SENTIEON_VARCAL", + "sentieon", + "202503.02" + ] + ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T09:24:53.607167407" + "timestamp": "2026-01-20T18:45:46.069110116" }, "homo sapiens - multiple resources": { "content": [ @@ -50,16 +54,20 @@ ] ], { - "SENTIEON_VARCAL": { - "sentieon": 202503.01 - } + "versions_sentieon": [ + [ + "SENTIEON_VARCAL", + "sentieon", + "202503.02" + ] + ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T09:25:22.885471633" + "timestamp": "2026-01-20T18:45:56.92195873" }, "homo sapiens -- stub": { "content": [ From ba5730bfb3cbc4c16f516dc5e0823e0cec84cdc3 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Wed, 21 Jan 2026 08:08:12 +0000 Subject: [PATCH 15/23] More updates --- .../sentieon/bwamem/tests/main.nf.test.snap | 27 +--- .../nf-core/sentieon/collectvcmetrics/main.nf | 14 +-- .../sentieon/collectvcmetrics/meta.yml | 26 +++- .../collectvcmetrics/tests/main.nf.test | 12 +- .../collectvcmetrics/tests/main.nf.test.snap | 58 +++++---- .../nf-core/sentieon/coveragemetrics/main.nf | 18 +-- .../nf-core/sentieon/coveragemetrics/meta.yml | 26 +++- .../coveragemetrics/tests/main.nf.test | 34 +++-- .../coveragemetrics/tests/main.nf.test.snap | 116 +++++++++++++----- .../coveragemetrics/tests/nextflow.config | 7 ++ .../tests/nextflow_omit.config | 17 --- .../tests/nextflow_partitions.config | 17 --- modules/nf-core/sentieon/datametrics/main.nf | 2 +- .../sentieon/haplotyper/tests/main.nf.test | 23 ++-- .../haplotyper/tests/main.nf.test.snap | 105 +++++++++++----- modules/nf-core/sentieon/hsmetrics/main.nf | 2 +- modules/nf-core/sentieon/hsmetrics/meta.yml | 4 +- .../sentieon/tnscope/tests/main.nf.test | 4 +- .../sentieon/tnscope/tests/main.nf.test.snap | 32 ++--- modules/nf-core/sentieon/wgsmetrics/main.nf | 2 +- 20 files changed, 318 insertions(+), 228 deletions(-) delete mode 100644 modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config delete mode 100644 modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index 98461a80e45..5a0fa2006ff 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -18,14 +18,7 @@ "202503.02" ] ] - ], - [ - [ - "SENTIEON_BWAMEM", - "bwa", - "0.7.17-r1188" - ] - ] + } ], "meta": { "nf-test": "0.9.3", @@ -111,14 +104,7 @@ "202503.02" ] ] - ], - [ - [ - "SENTIEON_BWAMEM", - "bwa", - "0.7.17-r1188" - ] - ] + } ], "meta": { "nf-test": "0.9.3", @@ -204,14 +190,7 @@ "202503.02" ] ] - ], - [ - [ - "SENTIEON_BWAMEM", - "bwa", - "0.7.17-r1188" - ] - ] + } ], "meta": { "nf-test": "0.9.3", diff --git a/modules/nf-core/sentieon/collectvcmetrics/main.nf b/modules/nf-core/sentieon/collectvcmetrics/main.nf index af2a186e67a..062cd0c0366 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/main.nf +++ b/modules/nf-core/sentieon/collectvcmetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_COLLECTVCMETRICS { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(vcf), path(tbi) @@ -18,7 +18,7 @@ process SENTIEON_COLLECTVCMETRICS { output: tuple val(meta), path("*.variant_calling_detail_metrics"), emit: metrics tuple val(meta), path("*.variant_calling_summary_metrics"), emit: summary - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -41,10 +41,6 @@ process SENTIEON_COLLECTVCMETRICS { ${args2} \\ ${prefix} - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ stub: @@ -53,9 +49,5 @@ process SENTIEON_COLLECTVCMETRICS { touch ${prefix}.variant_calling_detail_metrics touch ${prefix}.variant_calling_summary_metrics - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ } diff --git a/modules/nf-core/sentieon/collectvcmetrics/meta.yml b/modules/nf-core/sentieon/collectvcmetrics/meta.yml index d3702a851a4..5eb98b93b23 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/meta.yml +++ b/modules/nf-core/sentieon/collectvcmetrics/meta.yml @@ -102,13 +102,27 @@ output: Summary of VCF metrics pattern: "*.collectvcmetrics.txt" ontologies: [] + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - "@adamrtalbot" maintainers: diff --git a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test index 31f1c0dffb5..18004d48fc2 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test +++ b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test @@ -7,12 +7,12 @@ nextflow_process { tag "collectvcmetrics" tag "sentieon/collectvcmetrics" + config "./nextflow.config" script "../main.nf" process "SENTIEON_COLLECTVCMETRICS" test("Test VCF") { - config "./nextflow.config" - + when { process { """ @@ -40,8 +40,7 @@ nextflow_process { assert snapshot( file(process.out.metrics[0][1]).readLines().findAll { !it.startsWith("#") }, file(process.out.summary[0][1]).readLines().findAll { !it.startsWith("#") }, - process.out.versions, - path(process.out.versions[0]).yaml + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -49,7 +48,6 @@ nextflow_process { } test("Test VCF with intervals") { - config "./nextflow.config" when { process { @@ -78,8 +76,7 @@ nextflow_process { assert snapshot( file(process.out.metrics[0][1]).readLines().findAll { !it.startsWith("#") }, file(process.out.summary[0][1]).readLines().findAll { !it.startsWith("#") }, - process.out.versions, - path(process.out.versions[0]).yaml + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -87,7 +84,6 @@ nextflow_process { } test("Test VCF - stub") { - config "./nextflow.config" options "-stub" when { diff --git a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap index 54862ab71a4..f6aceb3aed7 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap @@ -19,7 +19,11 @@ ] ], "2": [ - "versions.yml:md5,da75fdfca2c1a2b065c89087e35f5d82" + [ + "SENTIEON_COLLECTVCMETRICS", + "sentieon", + "202503.02" + ] ], "metrics": [ [ @@ -37,16 +41,20 @@ "test.variant_calling_summary_metrics:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,da75fdfca2c1a2b065c89087e35f5d82" + "versions_sentieon": [ + [ + "SENTIEON_COLLECTVCMETRICS", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T08:04:29.28609603" + "timestamp": "2026-01-21T06:44:32.646401561" }, "Test VCF with intervals": { "content": [ @@ -60,20 +68,21 @@ "0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0", "" ], - [ - "versions.yml:md5,da75fdfca2c1a2b065c89087e35f5d82" - ], { - "SENTIEON_COLLECTVCMETRICS": { - "sentieon": 202503.01 - } + "versions_sentieon": [ + [ + "SENTIEON_COLLECTVCMETRICS", + "sentieon", + "202503.02" + ] + ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:56:47.190574079" + "timestamp": "2026-01-21T06:51:03.501057445" }, "Test VCF": { "content": [ @@ -87,19 +96,20 @@ "0\t0\t0\t8\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0", "" ], - [ - "versions.yml:md5,da75fdfca2c1a2b065c89087e35f5d82" - ], { - "SENTIEON_COLLECTVCMETRICS": { - "sentieon": 202503.01 - } + "versions_sentieon": [ + [ + "SENTIEON_COLLECTVCMETRICS", + "sentieon", + "202503.02" + ] + ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T08:56:40.904662981" + "timestamp": "2026-01-21T06:50:54.098571008" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/coveragemetrics/main.nf b/modules/nf-core/sentieon/coveragemetrics/main.nf index 3d8b44a06bb..4f4aee86461 100644 --- a/modules/nf-core/sentieon/coveragemetrics/main.nf +++ b/modules/nf-core/sentieon/coveragemetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_COVERAGEMETRICS { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' - : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: tuple val(meta), path(bam), path(bai) @@ -22,7 +22,7 @@ process SENTIEON_COVERAGEMETRICS { tuple val(meta), path("${prefix}.${partitions_output}_cumulative_coverage_counts"), emit: coverage_counts, optional: true tuple val(meta), path("${prefix}.${partitions_output}_cumulative_coverage_proportions"), emit: coverage_proportions, optional: true tuple val(meta), path("${prefix}.${partitions_output}_interval_summary"), emit: interval_summary, optional: true - path "versions.yml", emit: versions + tuple val("${task.process}"), val('sentieon'), eval('sentieon driver --version | sed "s/.*-//g"'), topic: versions, emit: versions_sentieon when: task.ext.when == null || task.ext.when @@ -31,7 +31,7 @@ process SENTIEON_COVERAGEMETRICS { prefix = task.ext.prefix ?: "${meta.id}" def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' - def input = bam.sort().collect { "-i ${it}" }.join(' ') + def input = bam.sort().collect {in -> "-i ${in}" }.join(' ') def interval_cmd = interval ? "--interval ${interval}" : "" def gene_list_cmd = gene_list ? "--gene_list ${gene_list}" : "" // Glob that matches any version of 'sample_library_platform_center'. @@ -48,11 +48,6 @@ process SENTIEON_COVERAGEMETRICS { --algo CoverageMetrics \\ ${args2} \\ ${prefix} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ stub: @@ -68,10 +63,5 @@ process SENTIEON_COVERAGEMETRICS { touch ${prefix}.sample_cumulative_coverage_counts touch ${prefix}.sample_cumulative_coverage_proportions touch ${prefix}.sample_interval_summary - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") - END_VERSIONS """ } diff --git a/modules/nf-core/sentieon/coveragemetrics/meta.yml b/modules/nf-core/sentieon/coveragemetrics/meta.yml index 315df827282..f2e12fe9565 100644 --- a/modules/nf-core/sentieon/coveragemetrics/meta.yml +++ b/modules/nf-core/sentieon/coveragemetrics/meta.yml @@ -139,13 +139,27 @@ output: description: The summary for PARTITION_GROUP library, aggregated by interval. pattern: "${sample_id}_interval_summary" ontologies: [] + versions_sentieon: + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - sentieon: + type: string + description: The tool name + - 'sentieon driver --version | sed "s/.*-//g"': + type: string + description: The command used to generate the version of the tool authors: - "@adamrtalbot" maintainers: diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test b/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test index a5a685526f3..71d024c4dc8 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test +++ b/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test @@ -9,11 +9,14 @@ nextflow_process { script "../main.nf" process "SENTIEON_COVERAGEMETRICS" + config "./nextflow.config" test("Test per sample") { - config "./nextflow.config" - when { + params { + module_args = '' + module_args2 = '' + } process { """ input[0] = [ @@ -38,9 +41,11 @@ nextflow_process { } test("Test with interval") { - config "./nextflow.config" - when { + params { + module_args = '' + module_args2 = '' + } process { """ input[0] = [ @@ -65,9 +70,11 @@ nextflow_process { } test("Test omit outputs") { - config "./nextflow_omit.config" - when { + params { + module_args = '' + module_args2 = '--omit_sample_stat --omit_locus_stat --omit_interval_stat' + } process { """ input[0] = [ @@ -92,9 +99,11 @@ nextflow_process { } test("Test readgroup partition") { - config "./nextflow_partitions.config" - when { + params { + module_args = '' + module_args2 = '--partition sample,platform,library,center' + } process { """ input[0] = [ @@ -119,9 +128,12 @@ nextflow_process { } test("Test multiple BAMs") { - config "./nextflow.config" when { + params { + module_args = '' + module_args2 = '' + } process { """ input[0] = [ @@ -156,6 +168,10 @@ nextflow_process { options "-stub" when { + params { + module_args = '' + module_args2 = '' + } process { """ input[0] = [ diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap index a0114c013b5..3047aab1b0c 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap @@ -26,7 +26,11 @@ ], "6": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ], "coverage_counts": [ @@ -51,16 +55,20 @@ "statistics": [ ], - "versions": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + "versions_sentieon": [ + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T08:05:51.88466788" + "timestamp": "2026-01-21T06:54:57.611594148" }, "Test with interval": { "content": [ @@ -114,7 +122,11 @@ ] ], "6": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ], "coverage_counts": [ [ @@ -164,16 +176,20 @@ "test.sample_interval_statistics:md5,4eeb041ef4b6f23318a5cb27ded8d185" ] ], - "versions": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + "versions_sentieon": [ + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T08:05:24.278027366" + "timestamp": "2026-01-21T06:54:48.537598623" }, "Test multiple BAMs": { "content": [ @@ -227,7 +243,11 @@ ] ], "6": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ], "coverage_counts": [ [ @@ -277,16 +297,20 @@ "test.sample_interval_statistics:md5,fbde27e69eb60da6929f84cde88fa71d" ] ], - "versions": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + "versions_sentieon": [ + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T08:06:46.323973672" + "timestamp": "2026-01-21T06:55:15.632397339" }, "Test - stub": { "content": [ @@ -335,7 +359,11 @@ ] ], "6": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ], "coverage_counts": [ [ @@ -380,8 +408,12 @@ "test.sample_interval_statistics:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + "versions_sentieon": [ + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ] } ], @@ -389,7 +421,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-20T16:23:51.428668993" + "timestamp": "2026-01-21T06:55:22.931782396" }, "Test per sample": { "content": [ @@ -443,7 +475,11 @@ ] ], "6": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ], "coverage_counts": [ [ @@ -493,16 +529,20 @@ "test.sample_interval_statistics:md5,fbde27e69eb60da6929f84cde88fa71d" ] ], - "versions": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + "versions_sentieon": [ + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T08:04:57.099283101" + "timestamp": "2026-01-21T06:54:39.444896549" }, "Test readgroup partition": { "content": [ @@ -556,7 +596,11 @@ ] ], "6": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ], "coverage_counts": [ [ @@ -606,15 +650,19 @@ "test.sample_library_platform_center_interval_statistics:md5,fbde27e69eb60da6929f84cde88fa71d" ] ], - "versions": [ - "versions.yml:md5,c216eb43f743f0ea4df1632db5d0cf01" + "versions_sentieon": [ + [ + "SENTIEON_COVERAGEMETRICS", + "sentieon", + "202503.02" + ] ] } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-05-09T08:06:18.628321989" + "timestamp": "2026-01-21T06:55:06.47413819" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config index b186b2e2f70..216c6931c5b 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow.config @@ -1,3 +1,10 @@ +process { + withName: 'SENTIEON_COVERAGEMETRICS' { + ext.args = params.module_args + ext.args2 = params.module_args2 + } +} + env { // NOTE This is how nf-core/sarek users will use Sentieon in real world use // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config deleted file mode 100644 index f55afe56990..00000000000 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_omit.config +++ /dev/null @@ -1,17 +0,0 @@ -env { - // NOTE This is how nf-core/sarek users will use Sentieon in real world use - // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 - SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') - // NOTE This should only happen in GitHub actions or nf-core MegaTests - // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 - SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') - SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how users will test out Sentieon in Sarek with a license file - // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) -} - -process { - withName: "SENTIEON_COVERAGEMETRICS" { - ext.args2 = "--omit_sample_stat --omit_locus_stat --omit_interval_stat" - } -} diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config b/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config deleted file mode 100644 index ddf17bf624e..00000000000 --- a/modules/nf-core/sentieon/coveragemetrics/tests/nextflow_partitions.config +++ /dev/null @@ -1,17 +0,0 @@ -env { - // NOTE This is how nf-core/sarek users will use Sentieon in real world use - // TODO: Update to `env('SENTIEON_LICSRVR_IP')` when minimum Nextflow version is >= 26.04.0 - SENTIEON_LICENSE = System.getenv('SENTIEON_LICSRVR_IP') - // NOTE This should only happen in GitHub actions or nf-core MegaTests - // TODO: Update to `env('SENTIEON_AUTH_MECH')` when minimum Nextflow version is >= 26.04.0 - SENTIEON_AUTH_MECH = System.getenv('SENTIEON_AUTH_MECH') - SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA - // NOTE This is how users will test out Sentieon in Sarek with a license file - // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) -} - -process { - withName: "SENTIEON_COVERAGEMETRICS" { - ext.args2 = "--partition sample,platform,library,center" - } -} diff --git a/modules/nf-core/sentieon/datametrics/main.nf b/modules/nf-core/sentieon/datametrics/main.nf index a84baea6f1b..51035a35d59 100644 --- a/modules/nf-core/sentieon/datametrics/main.nf +++ b/modules/nf-core/sentieon/datametrics/main.nf @@ -33,7 +33,7 @@ process SENTIEON_DATAMETRICS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = bam.sort().collect { "-i ${it}" }.join(' ') + def input = bam.sort().collect {in -> "-i ${in}" }.join(' ') def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : "" diff --git a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test index 8478eb2a790..e915a3b2f90 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test +++ b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test @@ -37,7 +37,8 @@ nextflow_process { assertAll( { assert snapshot( file(process.out.vcf_tbi.get(0).get(1)).name, - path(process.out.vcf[0][1]).vcf.variantsMD5 + path(process.out.vcf[0][1]).vcf.variantsMD5, + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -70,7 +71,8 @@ nextflow_process { assertAll( { assert snapshot( file(process.out.gvcf_tbi.get(0).get(1)).name, - path(process.out.gvcf[0][1]).vcf.variantsMD5 + path(process.out.gvcf[0][1]).vcf.variantsMD5, + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -105,7 +107,8 @@ nextflow_process { file(process.out.gvcf_tbi.get(0).get(1)).name, path(process.out.gvcf[0][1]).vcf.variantsMD5, file(process.out.vcf_tbi.get(0).get(1)).name, - path(process.out.vcf[0][1]).vcf.variantsMD5 + path(process.out.vcf[0][1]).vcf.variantsMD5, + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -140,7 +143,8 @@ nextflow_process { file(process.out.gvcf_tbi.get(0).get(1)).name, path(process.out.gvcf[0][1]).vcf.variantsMD5, file(process.out.vcf_tbi.get(0).get(1)).name, - path(process.out.vcf[0][1]).vcf.variantsMD5 + path(process.out.vcf[0][1]).vcf.variantsMD5, + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -175,7 +179,8 @@ nextflow_process { file(process.out.gvcf_tbi.get(0).get(1)).name, path(process.out.gvcf[0][1]).vcf.variantsMD5, file(process.out.vcf_tbi.get(0).get(1)).name, - path(process.out.vcf[0][1]).vcf.variantsMD5 + path(process.out.vcf[0][1]).vcf.variantsMD5, + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -231,9 +236,9 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.versions_sentieon, file(process.out.vcf_tbi.get(0).get(1)).name, - path(process.out.vcf[0][1]).vcf.variantsMD5 + path(process.out.vcf[0][1]).vcf.variantsMD5, + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -272,9 +277,9 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out.versions_sentieon, file(process.out.vcf_tbi.get(0).get(1)).name, - path(process.out.vcf[0][1]).vcf.variantsMD5 + path(process.out.vcf[0][1]).vcf.variantsMD5, + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) diff --git a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap index c0be9986569..552c566f9cf 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap @@ -2,81 +2,128 @@ "Sentieon Haplotyper VCF": { "content": [ "test.unfiltered.vcf.gz.tbi", - "cea0045051da7877b38a1e25df812a91" + "cea0045051da7877b38a1e25df812a91", + { + "versions_sentieon": [ + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T21:10:48.483709026" + "timestamp": "2026-01-20T20:24:00.027415188" }, "Sentieon Haplotyper Recalibration": { "content": [ - [ - [ - "SENTIEON_HAPLOTYPER", - "sentieon", - "202503.02" - ] - ], "test.unfiltered.vcf.gz.tbi", - "10faa3b669c49826098e09784d8a4716" + "10faa3b669c49826098e09784d8a4716", + { + "versions_sentieon": [ + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T21:14:30.089439343" + "timestamp": "2026-01-20T20:24:47.907057871" }, "Sentieon Haplotyper GVCF": { "content": [ "test.g.vcf.gz.tbi", - "338fc3c37b208d6595948576833eb665" + "338fc3c37b208d6595948576833eb665", + { + "versions_sentieon": [ + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T21:10:57.579158678" + "timestamp": "2026-01-20T20:24:08.910048985" }, "Sentieon Haplotyper BOTH": { "content": [ "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", "test.unfiltered.vcf.gz.tbi", - "cea0045051da7877b38a1e25df812a91" + "cea0045051da7877b38a1e25df812a91", + { + "versions_sentieon": [ + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T21:11:06.832276446" + "timestamp": "2026-01-20T20:24:17.948416042" }, "Sentieon Haplotyper DBSNP BOTH": { "content": [ "test.g.vcf.gz.tbi", "228556b7921205f023fec51098feeb97", "test.unfiltered.vcf.gz.tbi", - "cc1f3d4bd615f3640e7fd103cc39d2f8" + "cc1f3d4bd615f3640e7fd103cc39d2f8", + { + "versions_sentieon": [ + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T21:11:25.551598468" + "timestamp": "2026-01-20T20:24:35.887578614" }, "Sentieon Haplotyper Intervals BOTH": { "content": [ "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", "test.unfiltered.vcf.gz.tbi", - "cea0045051da7877b38a1e25df812a91" + "cea0045051da7877b38a1e25df812a91", + { + "versions_sentieon": [ + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T21:11:15.850393233" + "timestamp": "2026-01-20T20:24:26.897616341" }, "Sentieon Haplotyper - stub": { "content": [ @@ -169,20 +216,22 @@ }, "Sentieon Haplotyper multiple CRAMs": { "content": [ - [ - [ - "SENTIEON_HAPLOTYPER", - "sentieon", - "202503.02" - ] - ], "test.unfiltered.vcf.gz.tbi", - "b5d6e09e336438e38f7bf5531799e3a" + "b5d6e09e336438e38f7bf5531799e3a", + { + "versions_sentieon": [ + [ + "SENTIEON_HAPLOTYPER", + "sentieon", + "202503.02" + ] + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T21:14:39.101976234" + "timestamp": "2026-01-20T20:24:56.57496734" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/hsmetrics/main.nf b/modules/nf-core/sentieon/hsmetrics/main.nf index 8c73b62686e..8e3ceabf300 100644 --- a/modules/nf-core/sentieon/hsmetrics/main.nf +++ b/modules/nf-core/sentieon/hsmetrics/main.nf @@ -23,7 +23,7 @@ process SENTIEON_HSMETRICS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = bam.sort().collect {bam_ -> "-i ${bam_}" }.join(' ') + def input = bam.sort().collect {in -> "-i ${in}" }.join(' ') def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : "" diff --git a/modules/nf-core/sentieon/hsmetrics/meta.yml b/modules/nf-core/sentieon/hsmetrics/meta.yml index d67201d87be..0b2fa185ab8 100644 --- a/modules/nf-core/sentieon/hsmetrics/meta.yml +++ b/modules/nf-core/sentieon/hsmetrics/meta.yml @@ -82,7 +82,7 @@ output: - sentieon: type: string description: The tool name - - 'sentieon driver --version | sed "s/.*-//g"': + - sentieon driver --version | sed 's/.*-//g': type: string description: The command used to generate the version of the tool @@ -94,7 +94,7 @@ topics: - sentieon: type: string description: The tool name - - 'sentieon driver --version | sed "s/.*-//g"': + - sentieon driver --version | sed 's/.*-//g': type: string description: The command used to generate the version of the tool authors: diff --git a/modules/nf-core/sentieon/tnscope/tests/main.nf.test b/modules/nf-core/sentieon/tnscope/tests/main.nf.test index b24de907302..ad4c31f8a51 100644 --- a/modules/nf-core/sentieon/tnscope/tests/main.nf.test +++ b/modules/nf-core/sentieon/tnscope/tests/main.nf.test @@ -79,7 +79,7 @@ nextflow_process { { assert snapshot( path(process.out.vcf[0][1]).vcf.summary, file(process.out.index[0][1]).name, - process.out.versions_sentieon + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) } @@ -130,7 +130,7 @@ nextflow_process { { assert snapshot( path(process.out.vcf[0][1]).vcf.summary, file(process.out.index[0][1]).name, - process.out.versions_sentieon + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) } diff --git a/modules/nf-core/sentieon/tnscope/tests/main.nf.test.snap b/modules/nf-core/sentieon/tnscope/tests/main.nf.test.snap index 1823e252354..e418b99a11f 100644 --- a/modules/nf-core/sentieon/tnscope/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/tnscope/tests/main.nf.test.snap @@ -3,19 +3,21 @@ "content": [ "VcfFile [chromosomes=[], sampleCount=2, variantCount=0, phased=true, phasedAutodetect=true]", "tumour.vcf.gz.tbi", - [ - [ - "SENTIEON_TNSCOPE", - "sentieon", - "202503.02" + { + "versions_sentieon": [ + [ + "SENTIEON_TNSCOPE", + "sentieon", + "202503.02" + ] ] - ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T21:17:05.163602766" + "timestamp": "2026-01-21T06:41:13.859689718" }, "tumour normal - stub": { "content": [ @@ -78,18 +80,20 @@ "content": [ "VcfFile [chromosomes=[], sampleCount=2, variantCount=0, phased=true, phasedAutodetect=true]", "tumour.vcf.gz.tbi", - [ - [ - "SENTIEON_TNSCOPE", - "sentieon", - "202503.02" + { + "versions_sentieon": [ + [ + "SENTIEON_TNSCOPE", + "sentieon", + "202503.02" + ] ] - ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T21:16:42.515227576" + "timestamp": "2026-01-21T06:40:50.157815802" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/wgsmetrics/main.nf b/modules/nf-core/sentieon/wgsmetrics/main.nf index 695e6ef4fa0..9992cf77a9d 100644 --- a/modules/nf-core/sentieon/wgsmetrics/main.nf +++ b/modules/nf-core/sentieon/wgsmetrics/main.nf @@ -25,7 +25,7 @@ process SENTIEON_WGSMETRICS { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def interval = intervals_list ? "--interval ${intervals_list}" : "" - def input = bam.sort().collect { "-i ${it}" }.join(' ') + def input = bam.sort().collect {in -> "-i ${in}" }.join(' ') def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : "" From b597c51f5fdda616cf33662d2be28f8bb6b38e08 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:06:54 +0000 Subject: [PATCH 16/23] Fix singularity container for wgsmetrics and conda versions --- modules/nf-core/sentieon/collectvcmetrics/environment.yml | 2 +- modules/nf-core/sentieon/coveragemetrics/environment.yml | 2 +- modules/nf-core/sentieon/wgsmetrics/main.nf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/sentieon/collectvcmetrics/environment.yml b/modules/nf-core/sentieon/collectvcmetrics/environment.yml index dae76d1b6de..6b8bb523202 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/environment.yml +++ b/modules/nf-core/sentieon/collectvcmetrics/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 diff --git a/modules/nf-core/sentieon/coveragemetrics/environment.yml b/modules/nf-core/sentieon/coveragemetrics/environment.yml index 5a777da99d3..2986b7b43d9 100644 --- a/modules/nf-core/sentieon/coveragemetrics/environment.yml +++ b/modules/nf-core/sentieon/coveragemetrics/environment.yml @@ -4,5 +4,5 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202503.01 + - bioconda::sentieon=202503.02 - conda-forge::gnuplot=5.4.10 diff --git a/modules/nf-core/sentieon/wgsmetrics/main.nf b/modules/nf-core/sentieon/wgsmetrics/main.nf index 9992cf77a9d..d0a641c13a1 100644 --- a/modules/nf-core/sentieon/wgsmetrics/main.nf +++ b/modules/nf-core/sentieon/wgsmetrics/main.nf @@ -5,7 +5,7 @@ process SENTIEON_WGSMETRICS { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3adad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/73/73e9111552beb76e2ad3ad89eb75bed162d7c5b85b2433723ecb4fc96a02674a/data' : 'community.wave.seqera.io/library/sentieon:202503.02--def60555294d04fa'}" input: From abf0c9cc96ee63766f1b2e34c449b140eb82b91a Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:10:06 +0000 Subject: [PATCH 17/23] Fix some undefined it warnings --- modules/nf-core/sentieon/applyvarcal/main.nf | 4 ---- modules/nf-core/sentieon/collectvcmetrics/main.nf | 2 -- modules/nf-core/sentieon/haplotyper/main.nf | 2 +- modules/nf-core/sentieon/qualcal/main.nf | 4 ++-- modules/nf-core/sentieon/tnscope/main.nf | 4 +--- 5 files changed, 4 insertions(+), 12 deletions(-) diff --git a/modules/nf-core/sentieon/applyvarcal/main.nf b/modules/nf-core/sentieon/applyvarcal/main.nf index 2d8c1106fe5..f67c08fcf8f 100644 --- a/modules/nf-core/sentieon/applyvarcal/main.nf +++ b/modules/nf-core/sentieon/applyvarcal/main.nf @@ -41,8 +41,6 @@ process SENTIEON_APPLYVARCAL { --tranches_file ${tranches} \\ ${args2} \\ ${prefix}.vcf.gz - - """ stub: @@ -50,7 +48,5 @@ process SENTIEON_APPLYVARCAL { """ echo | gzip > ${prefix}.vcf.gz touch ${prefix}.vcf.gz.tbi - - """ } diff --git a/modules/nf-core/sentieon/collectvcmetrics/main.nf b/modules/nf-core/sentieon/collectvcmetrics/main.nf index 062cd0c0366..d836acc9d9e 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/main.nf +++ b/modules/nf-core/sentieon/collectvcmetrics/main.nf @@ -40,7 +40,6 @@ process SENTIEON_COLLECTVCMETRICS { -d ${dbsnp} \\ ${args2} \\ ${prefix} - """ stub: @@ -48,6 +47,5 @@ process SENTIEON_COLLECTVCMETRICS { """ touch ${prefix}.variant_calling_detail_metrics touch ${prefix}.variant_calling_summary_metrics - """ } diff --git a/modules/nf-core/sentieon/haplotyper/main.nf b/modules/nf-core/sentieon/haplotyper/main.nf index 1f5400bddaf..64e609a7654 100644 --- a/modules/nf-core/sentieon/haplotyper/main.nf +++ b/modules/nf-core/sentieon/haplotyper/main.nf @@ -34,7 +34,7 @@ process SENTIEON_HAPLOTYPER { def args2 = task.ext.args2 ?: '' // options for the vcf generation def args3 = task.ext.args3 ?: '' // options for the gvcf generation def prefix = task.ext.prefix ?: "${meta.id}" - def input_list = input instanceof List ? input.collect { "-i ${it}" }.join(' ') : "-i ${input}" + def input_list = input instanceof List ? input.collect {in -> "-i ${in}" }.join(' ') : "-i ${input}" def dbsnp_command = dbsnp ? "-d ${dbsnp} " : "" def interval_command = intervals ? "--interval ${intervals}" : "" def recal_table_command = recal_table ? "-q ${recal_table}" : "" diff --git a/modules/nf-core/sentieon/qualcal/main.nf b/modules/nf-core/sentieon/qualcal/main.nf index b89a544899b..b6b0e16c884 100644 --- a/modules/nf-core/sentieon/qualcal/main.nf +++ b/modules/nf-core/sentieon/qualcal/main.nf @@ -30,8 +30,8 @@ process SENTIEON_QUALCAL { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input_list = input.collect { "-i ${it}" }.join(' ') - def knownSites = known_sites ? known_sites.collect { "-k ${it}" }.join(' ') : "" + def input_list = input.collect {in -> "-i ${in}" }.join(' ') + def knownSites = known_sites ? known_sites.collect {in -> "-k ${in}" }.join(' ') : "" def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : "" diff --git a/modules/nf-core/sentieon/tnscope/main.nf b/modules/nf-core/sentieon/tnscope/main.nf index 30a99f280a9..5adaf22a99c 100644 --- a/modules/nf-core/sentieon/tnscope/main.nf +++ b/modules/nf-core/sentieon/tnscope/main.nf @@ -35,7 +35,7 @@ process SENTIEON_TNSCOPE { def dbsnp_str = dbsnp ? "--dbsnp ${dbsnp}" : '' def pon_str = pon ? "--pon ${pon}" : '' def prefix = task.ext.prefix ?: "${meta.id}" - def inputs = input.collect { "-i ${it}" }.join(" ") + def inputs = input.collect {in -> "-i ${in}" }.join(" ") def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " : "" @@ -55,7 +55,6 @@ process SENTIEON_TNSCOPE { ${dbsnp_str} \\ ${pon_str} \\ ${prefix}.vcf.gz - """ stub: @@ -63,6 +62,5 @@ process SENTIEON_TNSCOPE { """ echo | gzip > ${prefix}.vcf.gz touch ${prefix}.vcf.gz.tbi - """ } From c90660f22bf29611ad44bd249b9aa620ba043f56 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:29:54 +0000 Subject: [PATCH 18/23] Update snapshot --- .../wgsmetrics/tests/main.nf.test.snap | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test.snap index f97eafd3bdd..b2f9706c2ee 100644 --- a/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test.snap @@ -12,10 +12,18 @@ ] ], "1": [ - "versions.yml:md5,bd0dc0ec752b43a80ae2fe1c2ee21a13" + [ + "SENTIEON_WGSMETRICS", + "sentieon", + "202503.02" + ] ], - "versions": [ - "versions.yml:md5,bd0dc0ec752b43a80ae2fe1c2ee21a13" + "versions_sentieon": [ + [ + "SENTIEON_WGSMETRICS", + "sentieon", + "202503.02" + ] ], "wgs_metrics": [ [ @@ -26,21 +34,13 @@ "test.txt:md5,d41d8cd98f00b204e9800998ecf8427e" ] ] - }, - [ - "versions.yml:md5,bd0dc0ec752b43a80ae2fe1c2ee21a13" - ], - { - "SENTIEON_WGSMETRICS": { - "sentieon": 202503.01 - } } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:10:23.628449727" + "timestamp": "2026-01-21T09:28:12.500084203" }, "sarscov2 - bam": { "content": [ @@ -52,18 +52,17 @@ "0\t17554" ], [ - "versions.yml:md5,bd0dc0ec752b43a80ae2fe1c2ee21a13" - ], - { - "SENTIEON_WGSMETRICS": { - "sentieon": 202503.01 - } - } + [ + "SENTIEON_WGSMETRICS", + "sentieon", + "202503.02" + ] + ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-21T09:10:18.544792193" + "timestamp": "2026-01-21T09:28:04.664190955" } } \ No newline at end of file From 7b0d8cb36bfaae4ccb6a0fbb5405a423a5373f83 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:35:57 +0000 Subject: [PATCH 19/23] Remove trailing spaces --- modules/nf-core/sentieon/bwamem/main.nf | 2 +- modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test | 2 +- modules/nf-core/sentieon/varcal/main.nf | 4 ---- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index 8e473a8826f..ca37c2c594d 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -47,7 +47,7 @@ process SENTIEON_BWAMEM { rm -f "${prefix}.bai" fi """ - + stub: prefix = task.ext.prefix ?: "${meta.id}.bam" index = prefix.tokenize('.')[-1] == "bam" ? "bai" : "crai" diff --git a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test index 18004d48fc2..7e836759199 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test +++ b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test @@ -12,7 +12,7 @@ nextflow_process { process "SENTIEON_COLLECTVCMETRICS" test("Test VCF") { - + when { process { """ diff --git a/modules/nf-core/sentieon/varcal/main.nf b/modules/nf-core/sentieon/varcal/main.nf index dbc408de816..022ddacf7b7 100644 --- a/modules/nf-core/sentieon/varcal/main.nf +++ b/modules/nf-core/sentieon/varcal/main.nf @@ -75,8 +75,6 @@ process SENTIEON_VARCAL { ${labels_command} \\ ${args} \\ ${prefix}.recal - - """ stub: @@ -86,7 +84,5 @@ process SENTIEON_VARCAL { touch ${prefix}.idx touch ${prefix}.tranches touch ${prefix}plots.R - - """ } From 9a863844892dcd1287b3766ab3c42fc8bf373db9 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:38:15 +0000 Subject: [PATCH 20/23] Fix wgsmetrics linting --- .../sentieon/wgsmetrics/tests/main.nf.test | 2 +- .../sentieon/wgsmetrics/tests/main.nf.test.snap | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test b/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test index bfc818f2b07..08179fb21f3 100644 --- a/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test +++ b/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test @@ -37,7 +37,7 @@ nextflow_process { assertAll( { assert snapshot( file(process.out.wgs_metrics[0][1]).readLines()[1..5], - process.out.versions_sentieon + process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) } diff --git a/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test.snap index b2f9706c2ee..0c10cc9d0e5 100644 --- a/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/wgsmetrics/tests/main.nf.test.snap @@ -51,18 +51,20 @@ "coverage\thigh_quality_coverage_count\t", "0\t17554" ], - [ - [ - "SENTIEON_WGSMETRICS", - "sentieon", - "202503.02" + { + "versions_sentieon": [ + [ + "SENTIEON_WGSMETRICS", + "sentieon", + "202503.02" + ] ] - ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-21T09:28:04.664190955" + "timestamp": "2026-01-21T09:37:25.493486027" } } \ No newline at end of file From 112b1dfc70a7b10af89d07c9e5aaeb379aae0c43 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Wed, 21 Jan 2026 10:34:48 +0000 Subject: [PATCH 21/23] Fix dedup --- .../nf-core/sentieon/dedup/tests/main.nf.test | 23 +- .../sentieon/dedup/tests/main.nf.test.snap | 276 ++++-------------- 2 files changed, 74 insertions(+), 225 deletions(-) diff --git a/modules/nf-core/sentieon/dedup/tests/main.nf.test b/modules/nf-core/sentieon/dedup/tests/main.nf.test index e68b744be26..9f95be7b98e 100644 --- a/modules/nf-core/sentieon/dedup/tests/main.nf.test +++ b/modules/nf-core/sentieon/dedup/tests/main.nf.test @@ -12,7 +12,7 @@ nextflow_process { config "./nextflow.config" - test("Test marking duplicates") { + test("Test marking duplicates, bam") { when { params { @@ -20,7 +20,7 @@ nextflow_process { module_args2 = '' module_args3 = '' module_args4 = '' - module_prefix = '' + module_prefix = "test.dedup.bam" } process { """ @@ -38,7 +38,14 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot(process.out).match() } + { assert snapshot( + bam(process.out.bam[0][1]).getReadsMD5(), + file(process.out.bai[0][1]).name, + process.out.score, + process.out.metrics, + process.out.metrics_multiqc_tsv, + process.out.findAll { key, val -> key.startsWith("versions") } + ).match() } ) } } @@ -67,9 +74,17 @@ nextflow_process { } then { + def fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/refs/heads/modules/data/genomics/sarscov2/genome/genome.fasta' assert process.success assertAll( - { assert snapshot(process.out).match() } + { assert snapshot( + cram(process.out.cram[0][1], fasta).getReadsMD5(), + file(process.out.crai[0][1]).name, + process.out.score, + process.out.metrics, + process.out.metrics_multiqc_tsv, + process.out.findAll { key, val -> key.startsWith("versions") } + ).match() } ) } } diff --git a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap index 8e23521223f..378851b7d72 100644 --- a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap @@ -1,116 +1,33 @@ { "Test removing duplicates, cram": { "content": [ + "894549ee3ced6b5ca2eed2563a985217", + "test.dedup.cram.crai", + [ + [ + { + "id": "test" + }, + "test.dedup.score:md5,7b8776df3e086e3d4962db685af1bb24" + ] + ], + [ + [ + { + "id": "test" + }, + "test.dedup.cram.metrics:md5,0b8459aa98f958fb26b6e7a59f6116f4" + ] + ], + [ + [ + { + "id": "test" + }, + "test.dedup.cram.metrics.multiqc.tsv:md5,0b8459aa98f958fb26b6e7a59f6116f4" + ] + ], { - "0": [ - [ - { - "id": "test" - }, - "test.dedup.cram:md5,3ff9b62cefa56bf6a3c165efbb78963b" - ] - ], - "1": [ - [ - { - "id": "test" - }, - "test.dedup.cram.crai:md5,0cef16cfb91374ab509fe8d17ce621f3" - ] - ], - "2": [ - - ], - "3": [ - [ - { - "id": "test" - }, - "test.dedup.cram.bai:md5,09b8e43b3ff8fd746bba56c66898b5a2" - ] - ], - "4": [ - [ - { - "id": "test" - }, - "test.dedup.score:md5,7b8776df3e086e3d4962db685af1bb24" - ] - ], - "5": [ - [ - { - "id": "test" - }, - "test.dedup.cram.metrics:md5,0b8459aa98f958fb26b6e7a59f6116f4" - ] - ], - "6": [ - [ - { - "id": "test" - }, - "test.dedup.cram.metrics.multiqc.tsv:md5,0b8459aa98f958fb26b6e7a59f6116f4" - ] - ], - "7": [ - [ - "SENTIEON_DEDUP", - "sentieon", - "202503.02" - ] - ], - "bai": [ - [ - { - "id": "test" - }, - "test.dedup.cram.bai:md5,09b8e43b3ff8fd746bba56c66898b5a2" - ] - ], - "bam": [ - - ], - "crai": [ - [ - { - "id": "test" - }, - "test.dedup.cram.crai:md5,0cef16cfb91374ab509fe8d17ce621f3" - ] - ], - "cram": [ - [ - { - "id": "test" - }, - "test.dedup.cram:md5,3ff9b62cefa56bf6a3c165efbb78963b" - ] - ], - "metrics": [ - [ - { - "id": "test" - }, - "test.dedup.cram.metrics:md5,0b8459aa98f958fb26b6e7a59f6116f4" - ] - ], - "metrics_multiqc_tsv": [ - [ - { - "id": "test" - }, - "test.dedup.cram.metrics.multiqc.tsv:md5,0b8459aa98f958fb26b6e7a59f6116f4" - ] - ], - "score": [ - [ - { - "id": "test" - }, - "test.dedup.score:md5,7b8776df3e086e3d4962db685af1bb24" - ] - ], "versions_sentieon": [ [ "SENTIEON_DEDUP", @@ -124,120 +41,37 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T18:10:56.239556583" + "timestamp": "2026-01-21T09:56:02.61941711" }, - "Test marking duplicates": { + "Test marking duplicates, bam": { "content": [ + "894549ee3ced6b5ca2eed2563a985217", + "test.dedup.bam.bai", + [ + [ + { + "id": "test" + }, + "test.dedup.score:md5,7b8776df3e086e3d4962db685af1bb24" + ] + ], + [ + [ + { + "id": "test" + }, + "test.dedup.bam.metrics:md5,8af05682426d5ecbe0a227f6f44e3a20" + ] + ], + [ + [ + { + "id": "test" + }, + "test.dedup.bam.metrics.multiqc.tsv:md5,8af05682426d5ecbe0a227f6f44e3a20" + ] + ], { - "0": [ - [ - { - "id": "test" - }, - "test.cram:md5,31e1db5d25aaea1faeadc37018301fb3" - ] - ], - "1": [ - [ - { - "id": "test" - }, - "test.cram.crai:md5,19a4bd170312993b5b50824173363733" - ] - ], - "2": [ - - ], - "3": [ - [ - { - "id": "test" - }, - "test.cram.bai:md5,4c2f9d6808b4dd0fffdb5ab7e663f047" - ] - ], - "4": [ - [ - { - "id": "test" - }, - "test.score:md5,c8c0f9470f569874ec8959ce7abf7319" - ] - ], - "5": [ - [ - { - "id": "test" - }, - "test.cram.metrics:md5,d32dd5dd3b8b1d7552c0c3cc68286da8" - ] - ], - "6": [ - [ - { - "id": "test" - }, - "test.cram.metrics.multiqc.tsv:md5,d32dd5dd3b8b1d7552c0c3cc68286da8" - ] - ], - "7": [ - [ - "SENTIEON_DEDUP", - "sentieon", - "202503.02" - ] - ], - "bai": [ - [ - { - "id": "test" - }, - "test.cram.bai:md5,4c2f9d6808b4dd0fffdb5ab7e663f047" - ] - ], - "bam": [ - - ], - "crai": [ - [ - { - "id": "test" - }, - "test.cram.crai:md5,19a4bd170312993b5b50824173363733" - ] - ], - "cram": [ - [ - { - "id": "test" - }, - "test.cram:md5,31e1db5d25aaea1faeadc37018301fb3" - ] - ], - "metrics": [ - [ - { - "id": "test" - }, - "test.cram.metrics:md5,d32dd5dd3b8b1d7552c0c3cc68286da8" - ] - ], - "metrics_multiqc_tsv": [ - [ - { - "id": "test" - }, - "test.cram.metrics.multiqc.tsv:md5,d32dd5dd3b8b1d7552c0c3cc68286da8" - ] - ], - "score": [ - [ - { - "id": "test" - }, - "test.score:md5,c8c0f9470f569874ec8959ce7abf7319" - ] - ], "versions_sentieon": [ [ "SENTIEON_DEDUP", @@ -251,7 +85,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-19T18:10:46.627848969" + "timestamp": "2026-01-21T10:09:52.405382938" }, "Test stub": { "content": [ From 78e4647aac94e4a812cd2ab4f35f7d8e27582428 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Wed, 21 Jan 2026 11:42:45 +0000 Subject: [PATCH 22/23] Fix sentieon/dedup --- .../nf-core/sentieon/dedup/tests/main.nf.test | 12 ++-- .../sentieon/dedup/tests/main.nf.test.snap | 58 +++---------------- 2 files changed, 14 insertions(+), 56 deletions(-) diff --git a/modules/nf-core/sentieon/dedup/tests/main.nf.test b/modules/nf-core/sentieon/dedup/tests/main.nf.test index 9f95be7b98e..9e5179d6141 100644 --- a/modules/nf-core/sentieon/dedup/tests/main.nf.test +++ b/modules/nf-core/sentieon/dedup/tests/main.nf.test @@ -41,9 +41,9 @@ nextflow_process { { assert snapshot( bam(process.out.bam[0][1]).getReadsMD5(), file(process.out.bai[0][1]).name, - process.out.score, - process.out.metrics, - process.out.metrics_multiqc_tsv, + path(process.out.score[0][1]).contains("SentieonCommandLine"), + path(process.out.metrics[0][1]).contains("SentieonCommandLine"), + path(process.out.metrics_multiqc_tsv[0][1]).contains("SentieonCommandLine"), process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) @@ -80,9 +80,9 @@ nextflow_process { { assert snapshot( cram(process.out.cram[0][1], fasta).getReadsMD5(), file(process.out.crai[0][1]).name, - process.out.score, - process.out.metrics, - process.out.metrics_multiqc_tsv, + path(process.out.score[0][1]).contains("SentieonCommandLine"), + path(process.out.metrics[0][1]).contains("SentieonCommandLine"), + path(process.out.metrics_multiqc_tsv[0][1]).contains("SentieonCommandLine"), process.out.findAll { key, val -> key.startsWith("versions") } ).match() } ) diff --git a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap index 378851b7d72..1cf940dcc9a 100644 --- a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap @@ -3,30 +3,9 @@ "content": [ "894549ee3ced6b5ca2eed2563a985217", "test.dedup.cram.crai", - [ - [ - { - "id": "test" - }, - "test.dedup.score:md5,7b8776df3e086e3d4962db685af1bb24" - ] - ], - [ - [ - { - "id": "test" - }, - "test.dedup.cram.metrics:md5,0b8459aa98f958fb26b6e7a59f6116f4" - ] - ], - [ - [ - { - "id": "test" - }, - "test.dedup.cram.metrics.multiqc.tsv:md5,0b8459aa98f958fb26b6e7a59f6116f4" - ] - ], + false, + false, + false, { "versions_sentieon": [ [ @@ -41,36 +20,15 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-21T09:56:02.61941711" + "timestamp": "2026-01-21T11:42:11.871897434" }, "Test marking duplicates, bam": { "content": [ "894549ee3ced6b5ca2eed2563a985217", "test.dedup.bam.bai", - [ - [ - { - "id": "test" - }, - "test.dedup.score:md5,7b8776df3e086e3d4962db685af1bb24" - ] - ], - [ - [ - { - "id": "test" - }, - "test.dedup.bam.metrics:md5,8af05682426d5ecbe0a227f6f44e3a20" - ] - ], - [ - [ - { - "id": "test" - }, - "test.dedup.bam.metrics.multiqc.tsv:md5,8af05682426d5ecbe0a227f6f44e3a20" - ] - ], + false, + false, + false, { "versions_sentieon": [ [ @@ -85,7 +43,7 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-01-21T10:09:52.405382938" + "timestamp": "2026-01-21T11:41:33.04379133" }, "Test stub": { "content": [ From c718682852d14e39c6e60b6069cacd5dfd0f4452 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Wed, 21 Jan 2026 12:04:56 +0000 Subject: [PATCH 23/23] [automated] Fix linting with Prettier --- modules/nf-core/sentieon/bwaindex/tests/nextflow.config | 2 +- modules/nf-core/sentieon/dedup/tests/nextflow.config | 1 - modules/nf-core/sentieon/dnascope/tests/nextflow.config | 1 - modules/nf-core/sentieon/hsmetrics/tests/nextflow.config | 1 - modules/nf-core/sentieon/qualcal/tests/nextflow.config | 1 - modules/nf-core/sentieon/readwriter/tests/nextflow.config | 1 - modules/nf-core/sentieon/tnscope/tests/nextflow.config | 1 - modules/nf-core/sentieon/varcal/tests/nextflow.config | 1 - modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config | 1 - 9 files changed, 1 insertion(+), 9 deletions(-) diff --git a/modules/nf-core/sentieon/bwaindex/tests/nextflow.config b/modules/nf-core/sentieon/bwaindex/tests/nextflow.config index e70a23c9aff..b186b2e2f70 100644 --- a/modules/nf-core/sentieon/bwaindex/tests/nextflow.config +++ b/modules/nf-core/sentieon/bwaindex/tests/nextflow.config @@ -8,4 +8,4 @@ env { SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) -} \ No newline at end of file +} diff --git a/modules/nf-core/sentieon/dedup/tests/nextflow.config b/modules/nf-core/sentieon/dedup/tests/nextflow.config index 12689f5f982..48a45c4e8d6 100644 --- a/modules/nf-core/sentieon/dedup/tests/nextflow.config +++ b/modules/nf-core/sentieon/dedup/tests/nextflow.config @@ -19,4 +19,3 @@ process { ext.prefix = params.module_prefix } } - diff --git a/modules/nf-core/sentieon/dnascope/tests/nextflow.config b/modules/nf-core/sentieon/dnascope/tests/nextflow.config index fc73dc91f63..b186b2e2f70 100644 --- a/modules/nf-core/sentieon/dnascope/tests/nextflow.config +++ b/modules/nf-core/sentieon/dnascope/tests/nextflow.config @@ -9,4 +9,3 @@ env { // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } - diff --git a/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config b/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config index 7aac785e3a3..1e494961dcc 100644 --- a/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/hsmetrics/tests/nextflow.config @@ -9,4 +9,3 @@ env { // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } - diff --git a/modules/nf-core/sentieon/qualcal/tests/nextflow.config b/modules/nf-core/sentieon/qualcal/tests/nextflow.config index 7aac785e3a3..1e494961dcc 100644 --- a/modules/nf-core/sentieon/qualcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/qualcal/tests/nextflow.config @@ -9,4 +9,3 @@ env { // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } - diff --git a/modules/nf-core/sentieon/readwriter/tests/nextflow.config b/modules/nf-core/sentieon/readwriter/tests/nextflow.config index 7aac785e3a3..1e494961dcc 100644 --- a/modules/nf-core/sentieon/readwriter/tests/nextflow.config +++ b/modules/nf-core/sentieon/readwriter/tests/nextflow.config @@ -9,4 +9,3 @@ env { // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } - diff --git a/modules/nf-core/sentieon/tnscope/tests/nextflow.config b/modules/nf-core/sentieon/tnscope/tests/nextflow.config index b891e9a0d0d..f292324c613 100644 --- a/modules/nf-core/sentieon/tnscope/tests/nextflow.config +++ b/modules/nf-core/sentieon/tnscope/tests/nextflow.config @@ -28,4 +28,3 @@ env { // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } - diff --git a/modules/nf-core/sentieon/varcal/tests/nextflow.config b/modules/nf-core/sentieon/varcal/tests/nextflow.config index 0d2dc50ac58..9555254fb08 100644 --- a/modules/nf-core/sentieon/varcal/tests/nextflow.config +++ b/modules/nf-core/sentieon/varcal/tests/nextflow.config @@ -15,4 +15,3 @@ env { // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } - diff --git a/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config b/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config index fc73dc91f63..b186b2e2f70 100644 --- a/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config +++ b/modules/nf-core/sentieon/wgsmetrics/tests/nextflow.config @@ -9,4 +9,3 @@ env { // NOTE This is how users will test out Sentieon in Sarek with a license file // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) } -