diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b17c731..45337952 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[PR #530](https://github.com/nf-core/chipseq/pull/530)] - Update `hommer/annotatepeaks` to topic channels. - [[#531] (https://github.com/nf-core/chipseq/issues/531)] - Changed chromap decompression - untarfiles (deprecated) to untar modules. - [[PR #533](https://github.com/nf-core/chipseq/pull/533)] - Update `khmers/uniquekmers` to topic channels. +- [[PR #534](https://github.com/nf-core/chipseq/pull/534)] - Update `phantompeakqualtools` to topic channels. ### Parameters diff --git a/conf/modules.config b/conf/modules.config index 087aeec1..20433d3b 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -596,8 +596,7 @@ process { ext.prefix = { "${meta.id}_peaks" } publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] } @@ -645,8 +644,7 @@ process { ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/consensus/${meta.id}" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] } diff --git a/modules.json b/modules.json index fa51e66f..2d4e0e43 100644 --- a/modules.json +++ b/modules.json @@ -98,7 +98,7 @@ }, "phantompeakqualtools": { "branch": "master", - "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", + "git_sha": "003c45ac19e684cae37402d54a56e85b0e626b90", "installed_by": ["modules"] }, "picard/addorreplacereadgroups": { diff --git a/modules/nf-core/phantompeakqualtools/environment.yml b/modules/nf-core/phantompeakqualtools/environment.yml index 4eb7d888..f6d30f0b 100644 --- a/modules/nf-core/phantompeakqualtools/environment.yml +++ b/modules/nf-core/phantompeakqualtools/environment.yml @@ -4,4 +4,5 @@ channels: - conda-forge - bioconda dependencies: + - conda-forge::r-base=4.3.3 - bioconda::phantompeakqualtools=1.2.2 diff --git a/modules/nf-core/phantompeakqualtools/main.nf b/modules/nf-core/phantompeakqualtools/main.nf index e1f22699..c362dfb9 100644 --- a/modules/nf-core/phantompeakqualtools/main.nf +++ b/modules/nf-core/phantompeakqualtools/main.nf @@ -4,7 +4,7 @@ process PHANTOMPEAKQUALTOOLS { // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/4a/4a1cddfad5b503ee347cc5de17d172e1876c547fca00aa844559c9e764fb400f/data' : 'community.wave.seqera.io/library/phantompeakqualtools:1.2.2--f8026fe2526a5e18' }" @@ -15,7 +15,8 @@ process PHANTOMPEAKQUALTOOLS { tuple val(meta), path("*.out") , emit: spp tuple val(meta), path("*.pdf") , emit: pdf tuple val(meta), path("*.Rdata"), emit: rdata - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('R'), eval('R --version | sed "1!d; s/.*version //; s/ .*//"'), topic: versions, emit: versions_r + tuple val("${task.process}"), val('phantompeakqualtools'), val('1.2.2'), topic: versions, emit: versions_phantompeakqualtools // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. when: task.ext.when == null || task.ext.when @@ -24,28 +25,17 @@ process PHANTOMPEAKQUALTOOLS { def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def VERSION = '1.2.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ RUN_SPP=`which run_spp.R` Rscript $args -e "library(caTools); source(\\"\$RUN_SPP\\")" -c="$bam" -savp="${prefix}.spp.pdf" -savd="${prefix}.spp.Rdata" -out="${prefix}.spp.out" $args2 - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - phantompeakqualtools: $VERSION - END_VERSIONS """ stub: def prefix = task.ext.prefix ?: "${meta.id}" - def VERSION = '1.2.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. """ touch ${prefix}.spp.pdf touch ${prefix}.spp.Rdata touch ${prefix}.spp.out - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - phantompeakqualtools: $VERSION - END_VERSIONS """ } diff --git a/modules/nf-core/phantompeakqualtools/meta.yml b/modules/nf-core/phantompeakqualtools/meta.yml index 1d4eaba7..e877cc72 100644 --- a/modules/nf-core/phantompeakqualtools/meta.yml +++ b/modules/nf-core/phantompeakqualtools/meta.yml @@ -67,13 +67,46 @@ output: description: Rdata file containing the R session pattern: "*.{Rdata}" ontologies: [] + versions_r: + - - ${task.process}: + type: string + description: The name of the process + - R: + type: string + description: The name of the tool + - R --version | sed "1!d; s/.*version //; s/ .*//": + type: eval + description: The expression ot obtain the version of the tool + versions_phantompeakqualtools: + - - ${task.process}: + type: string + description: The name of the process + - phantompeakqualtools: + type: string + description: The name of the tool + - '1.2.2': + type: string + description: The expression to obtain 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 name of the process + - R: + type: string + description: The name of the tool + - R --version | sed "1!d; s/.*version //; s/ .*//": + type: eval + description: The expression ot obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - phantompeakqualtools: + type: string + description: The name of the tool + - "1.2.2": + type: string + description: The expression to obtain the version of the tool authors: - "@drpatelh" - "@edmundmiller" diff --git a/modules/nf-core/phantompeakqualtools/tests/main.nf.test b/modules/nf-core/phantompeakqualtools/tests/main.nf.test index a2eac9d3..757a375f 100644 --- a/modules/nf-core/phantompeakqualtools/tests/main.nf.test +++ b/modules/nf-core/phantompeakqualtools/tests/main.nf.test @@ -28,8 +28,8 @@ nextflow_process { { assert snapshot(process.out.spp, file(process.out.pdf.get(0).get(1)).name, file(process.out.rdata.get(0).get(1)).name, - process.out.versions) - .match() + process.out.findAll { key, val -> key.startsWith('versions') } + ).match() } ) } @@ -55,8 +55,8 @@ nextflow_process { { assert snapshot(process.out.spp, file(process.out.pdf.get(0).get(1)).name, file(process.out.rdata.get(0).get(1)).name, - process.out.versions) - .match() + process.out.findAll { key, val -> key.startsWith('versions') } + ).match() } ) } diff --git a/modules/nf-core/phantompeakqualtools/tests/main.nf.test.snap b/modules/nf-core/phantompeakqualtools/tests/main.nf.test.snap index 1021aeb8..18e85202 100644 --- a/modules/nf-core/phantompeakqualtools/tests/main.nf.test.snap +++ b/modules/nf-core/phantompeakqualtools/tests/main.nf.test.snap @@ -30,7 +30,18 @@ ] ], "3": [ - "versions.yml:md5,e0a48a40af2cf7d5de72c4c3cb47a4fc" + [ + "PHANTOMPEAKQUALTOOLS", + "R", + "4.3.3" + ] + ], + "4": [ + [ + "PHANTOMPEAKQUALTOOLS", + "phantompeakqualtools", + "1.2.2" + ] ], "pdf": [ [ @@ -59,16 +70,27 @@ "test.spp.out:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,e0a48a40af2cf7d5de72c4c3cb47a4fc" + "versions_phantompeakqualtools": [ + [ + "PHANTOMPEAKQUALTOOLS", + "phantompeakqualtools", + "1.2.2" + ] + ], + "versions_r": [ + [ + "PHANTOMPEAKQUALTOOLS", + "R", + "4.3.3" + ] ] } ], + "timestamp": "2026-07-24T11:59:53.747861", "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" - }, - "timestamp": "2024-06-27T10:46:22.786363" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } }, "sarscov2 - bam - single_end": { "content": [ @@ -83,15 +105,28 @@ ], "test.spp.pdf", "test.spp.Rdata", - [ - "versions.yml:md5,e0a48a40af2cf7d5de72c4c3cb47a4fc" - ] + { + "versions_phantompeakqualtools": [ + [ + "PHANTOMPEAKQUALTOOLS", + "phantompeakqualtools", + "1.2.2" + ] + ], + "versions_r": [ + [ + "PHANTOMPEAKQUALTOOLS", + "R", + "4.3.3" + ] + ] + } ], + "timestamp": "2026-07-24T11:59:43.988452", "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" - }, - "timestamp": "2024-06-27T16:21:12.000709154" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } }, "sarscov2 - bam - paired_end": { "content": [ @@ -106,14 +141,27 @@ ], "test.spp.pdf", "test.spp.Rdata", - [ - "versions.yml:md5,e0a48a40af2cf7d5de72c4c3cb47a4fc" - ] + { + "versions_phantompeakqualtools": [ + [ + "PHANTOMPEAKQUALTOOLS", + "phantompeakqualtools", + "1.2.2" + ] + ], + "versions_r": [ + [ + "PHANTOMPEAKQUALTOOLS", + "R", + "4.3.3" + ] + ] + } ], + "timestamp": "2026-07-24T11:59:49.842671", "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" - }, - "timestamp": "2024-06-27T16:21:22.432426907" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } } } \ No newline at end of file diff --git a/tests/bowtie2.nf.test.snap b/tests/bowtie2.nf.test.snap index a1a164ba..18856daa 100644 --- a/tests/bowtie2.nf.test.snap +++ b/tests/bowtie2.nf.test.snap @@ -75,6 +75,10 @@ "MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS": { "R": "4.5.3" }, + "PHANTOMPEAKQUALTOOLS": { + "R": "4.3.3", + "phantompeakqualtools": "1.2.2" + }, "PICARD_COLLECTMULTIPLEMETRICS": { "picard": "3.4.0" }, @@ -952,20 +956,20 @@ "samplesheet.valid.csv:md5,276425084544b3baf533e2f17207a384" ] ], + "timestamp": "2026-07-24T09:13:20.719045", "meta": { - "nf-test": "0.9.3", - "nextflow": "26.04.1" - }, - "timestamp": "2026-07-23T13:13:17.36470343" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } }, "bowtie2 with stub": { "content": [ 20 ], + "timestamp": "2026-07-24T09:14:19.141863", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" - }, - "timestamp": "2026-07-21T12:39:15.303231" + } } } \ No newline at end of file diff --git a/tests/chromap.nf.test.snap b/tests/chromap.nf.test.snap index 10ca5111..4177e7f0 100644 --- a/tests/chromap.nf.test.snap +++ b/tests/chromap.nf.test.snap @@ -74,6 +74,10 @@ "MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS": { "R": "4.5.3" }, + "PHANTOMPEAKQUALTOOLS": { + "R": "4.3.3", + "phantompeakqualtools": "1.2.2" + }, "PICARD_ADDORREPLACEREADGROUPS": { "picard": "3.4.0" }, @@ -958,20 +962,20 @@ "samplesheet.valid.csv:md5,276425084544b3baf533e2f17207a384" ] ], + "timestamp": "2026-07-24T09:24:27.701718", "meta": { - "nf-test": "0.9.3", - "nextflow": "26.04.1" - }, - "timestamp": "2026-07-23T13:29:13.96008322" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } }, "chromap with stub": { "content": [ 20 ], + "timestamp": "2026-07-24T09:25:29.211272", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" - }, - "timestamp": "2026-07-21T12:50:29.057511" + } } } \ No newline at end of file diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index d44a6d0c..a6f9ed8b 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -74,6 +74,10 @@ "MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS": { "R": "4.5.3" }, + "PHANTOMPEAKQUALTOOLS": { + "R": "4.3.3", + "phantompeakqualtools": "1.2.2" + }, "PICARD_COLLECTMULTIPLEMETRICS": { "picard": "3.4.0" }, @@ -951,10 +955,10 @@ "samplesheet.valid.csv:md5,276425084544b3baf533e2f17207a384" ] ], + "timestamp": "2026-07-24T09:36:43.457966", "meta": { - "nf-test": "0.9.3", - "nextflow": "26.04.1" - }, - "timestamp": "2026-07-23T13:48:35.7050288" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } } } \ No newline at end of file diff --git a/tests/skip_consensus_peaks.nf.test.snap b/tests/skip_consensus_peaks.nf.test.snap index eb404349..dde2cdd3 100644 --- a/tests/skip_consensus_peaks.nf.test.snap +++ b/tests/skip_consensus_peaks.nf.test.snap @@ -3,11 +3,11 @@ "content": [ 20 ], + "timestamp": "2026-07-24T09:48:19.518854", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" - }, - "timestamp": "2026-07-21T13:10:05.459362" + } }, "skip_consensus_peaks": { "content": [ @@ -73,6 +73,10 @@ "MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS": { "R": "4.5.3" }, + "PHANTOMPEAKQUALTOOLS": { + "R": "4.3.3", + "phantompeakqualtools": "1.2.2" + }, "PICARD_COLLECTMULTIPLEMETRICS": { "picard": "3.4.0" }, @@ -892,10 +896,10 @@ "samplesheet.valid.csv:md5,276425084544b3baf533e2f17207a384" ] ], + "timestamp": "2026-07-24T09:47:16.170912", "meta": { - "nf-test": "0.9.3", - "nextflow": "26.04.1" - }, - "timestamp": "2026-07-23T14:02:02.337853806" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } } } \ No newline at end of file diff --git a/tests/skip_trimming.nf.test.snap b/tests/skip_trimming.nf.test.snap index d0119228..72c7cda8 100644 --- a/tests/skip_trimming.nf.test.snap +++ b/tests/skip_trimming.nf.test.snap @@ -74,6 +74,10 @@ "MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS": { "R": "4.5.3" }, + "PHANTOMPEAKQUALTOOLS": { + "R": "4.3.3", + "phantompeakqualtools": "1.2.2" + }, "PICARD_COLLECTMULTIPLEMETRICS": { "picard": "3.4.0" }, @@ -829,20 +833,20 @@ "samplesheet.valid.csv:md5,276425084544b3baf533e2f17207a384" ] ], + "timestamp": "2026-07-24T09:58:33.92544", "meta": { - "nf-test": "0.9.3", - "nextflow": "26.04.1" - }, - "timestamp": "2026-07-23T14:18:19.305798532" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } }, "skip_trimming with stub": { "content": [ 190 ], + "timestamp": "2026-07-24T10:02:44.695311", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" - }, - "timestamp": "2026-07-21T13:23:05.44245" + } } } \ No newline at end of file diff --git a/tests/star.nf.test.snap b/tests/star.nf.test.snap index 360d870f..0b5b6119 100644 --- a/tests/star.nf.test.snap +++ b/tests/star.nf.test.snap @@ -67,6 +67,10 @@ "MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS": { "R": "4.5.3" }, + "PHANTOMPEAKQUALTOOLS": { + "R": "4.3.3", + "phantompeakqualtools": "1.2.2" + }, "PICARD_COLLECTMULTIPLEMETRICS": { "picard": "3.4.0" }, @@ -983,20 +987,20 @@ "SPT5_T15_REP2.mLb.clN.sorted.bam.idxstats:md5,aa2db2bcb3aa876cfbfe24b49d98aabd" ] ], + "timestamp": "2026-07-24T10:13:45.338341", "meta": { - "nf-test": "0.9.3", - "nextflow": "26.04.1" - }, - "timestamp": "2026-07-23T14:46:30.377133073" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } }, "star with stub": { "content": [ 20 ], + "timestamp": "2026-07-24T10:14:50.096693", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" - }, - "timestamp": "2026-07-15T12:28:44.226288" + } } } \ No newline at end of file