diff --git a/modules/nf-core/varscan/fpfilter/main.nf b/modules/nf-core/varscan/fpfilter/main.nf index d0d8bb8ddb3d..e8eb644b6d32 100644 --- a/modules/nf-core/varscan/fpfilter/main.nf +++ b/modules/nf-core/varscan/fpfilter/main.nf @@ -13,7 +13,7 @@ process VARSCAN_FPFILTER { output: tuple val(meta), path("*.pass.vcf.gz"), emit: pass_vcf tuple val(meta), path("*.fail.vcf.gz"), emit: fail_vcf - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('varscan'), eval("varscan 2>&1 | sed -n '2s/.*v//p'"), emit: versions_varscan, topic: versions when: task.ext.when == null || task.ext.when @@ -34,11 +34,6 @@ process VARSCAN_FPFILTER { bgzip ${prefix}.pass.vcf bgzip ${prefix}.fail.vcf - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - varscan: \$(varscan 2>&1 | grep VarScan | head -n 1 | sed 's/VarScan //g' | sed 's/,.*//g' | sed 's/^v//' | sed 's/_.*//') - END_VERSIONS """ stub: @@ -49,10 +44,5 @@ process VARSCAN_FPFILTER { echo "" | gzip > ${prefix}.pass.vcf.gz echo "" | gzip > ${prefix}.fail.vcf.gz - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - varscan: \$(varscan 2>&1 | grep VarScan | head -n 1 | sed 's/VarScan //g' | sed 's/,.*//g' | sed 's/^v//' | sed 's/_.*//') - END_VERSIONS """ } diff --git a/modules/nf-core/varscan/fpfilter/meta.yml b/modules/nf-core/varscan/fpfilter/meta.yml index b4d42345ac51..82b3beade909 100644 --- a/modules/nf-core/varscan/fpfilter/meta.yml +++ b/modules/nf-core/varscan/fpfilter/meta.yml @@ -1,4 +1,3 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "varscan_fpfilter" description: VarScan2 is a tool for variant detection in massively parallel sequencing data. It can detect SNPs, indels, and copy number variations in @@ -19,9 +18,9 @@ tools: documentation: "https://dkoboldt.github.io/varscan/" tool_dev_url: "https://github.com/dkoboldt/varscan" doi: "10.1101/gr.129684.111" - licence: ["The Non-Profit Open Software License version 3.0 (NPOSL-3.0)"] + licence: + - "The Non-Profit Open Software License version 3.0 (NPOSL-3.0)" identifier: biotools:varscan - input: - - meta: type: map @@ -34,7 +33,7 @@ input: pattern: "*.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: "http://edamontology.org/format_3989" # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP - rc: type: file description: Read counts file from bam-readcount @@ -53,7 +52,7 @@ output: pattern: "*.pass.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP fail_vcf: - - meta: type: map @@ -66,14 +65,30 @@ output: pattern: "*.fail.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP + versions_varscan: + - - ${task.process}: + type: string + description: The name of the process + - varscan: + type: string + description: The name of the tool + - varscan 2>&1 | sed -n '2s/.*v//p': + type: eval + 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 + - varscan: + type: string + description: The name of the tool + - varscan 2>&1 | sed -n '2s/.*v//p': + type: eval + description: The expression to obtain the version of the tool + authors: - "@vmelichar" maintainers: diff --git a/modules/nf-core/varscan/fpfilter/tests/main.nf.test b/modules/nf-core/varscan/fpfilter/tests/main.nf.test index 591b40b98aba..40320e29d72b 100644 --- a/modules/nf-core/varscan/fpfilter/tests/main.nf.test +++ b/modules/nf-core/varscan/fpfilter/tests/main.nf.test @@ -86,7 +86,7 @@ nextflow_process { assert snapshot( path(process.out.pass_vcf.get(0).get(1)).vcf.variantsMD5, path(process.out.fail_vcf.get(0).get(1)).vcf.variantsMD5, - process.out.versions, + sanitizeOutput(process.out, unstableKeys: ["vcf"]), ).match() } ) diff --git a/modules/nf-core/varscan/fpfilter/tests/main.nf.test.snap b/modules/nf-core/varscan/fpfilter/tests/main.nf.test.snap index a064258baa35..c67c44d60341 100644 --- a/modules/nf-core/varscan/fpfilter/tests/main.nf.test.snap +++ b/modules/nf-core/varscan/fpfilter/tests/main.nf.test.snap @@ -21,7 +21,11 @@ ] ], "2": [ - "versions.yml:md5,93abb838631426ac5528b39b1e867481" + [ + "VARSCAN_FPFILTER", + "varscan", + "2.4.6" + ] ], "fail_vcf": [ [ @@ -41,29 +45,57 @@ "test.pass.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ], - "versions": [ - "versions.yml:md5,93abb838631426ac5528b39b1e867481" + "versions_varscan": [ + [ + "VARSCAN_FPFILTER", + "varscan", + "2.4.6" + ] ] } ], + "timestamp": "2026-06-18T12:20:29.020655376", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2025-07-28T10:17:06.573224273" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } }, "human - mpileup": { "content": [ "8e1b97375c4d8501f3873496b80a4dc9", "55341b65671b6af9cde4309b2f7033ce", - [ - "versions.yml:md5,93abb838631426ac5528b39b1e867481" - ] + { + "fail_vcf": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fail.vcf.gz:md5,dcfae92129fbc1134795e0fc32832d00" + ] + ], + "pass_vcf": [ + [ + { + "id": "test", + "single_end": false + }, + "test.pass.vcf.gz:md5,ab67893779f5339be49a1dced06a7049" + ] + ], + "versions_varscan": [ + [ + "VARSCAN_FPFILTER", + "varscan", + "2.4.6" + ] + ] + } ], + "timestamp": "2026-06-18T12:20:19.24310901", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2025-07-28T15:52:46.081739882" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } } } \ No newline at end of file diff --git a/modules/nf-core/varscan/processsomatic/main.nf b/modules/nf-core/varscan/processsomatic/main.nf index 904f6947b6cc..9699753d929b 100644 --- a/modules/nf-core/varscan/processsomatic/main.nf +++ b/modules/nf-core/varscan/processsomatic/main.nf @@ -17,7 +17,7 @@ process VARSCAN_PROCESSSOMATIC { tuple val(meta), path("*.Somatic.hc.vcf.gz") , emit: somatic_hc_vcf tuple val(meta), path("*.LOH.vcf.gz") , emit: loh_vcf tuple val(meta), path("*.LOH.hc.vcf.gz") , emit: loh_hc_vcf - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('varscan'), eval("varscan 2>&1 | sed -n '2s/.*v//p'"), emit: versions_varscan, topic: versions when: task.ext.when == null || task.ext.when @@ -32,11 +32,6 @@ process VARSCAN_PROCESSSOMATIC { ${vcf.baseName} bgzip *.vcf - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - varscan: \$(varscan 2>&1 | grep VarScan | head -n 1 | sed 's/VarScan //g' | sed 's/,.*//g' | sed 's/^v//' | sed 's/_.*//') - END_VERSIONS """ stub: @@ -48,10 +43,5 @@ process VARSCAN_PROCESSSOMATIC { echo "" | gzip > ${output_name}.Somatic.hc.vcf.gz echo "" | gzip > ${output_name}.LOH.vcf.gz echo "" | gzip > ${output_name}.LOH.hc.vcf.gz - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - varscan: \$(varscan 2>&1 | grep VarScan | head -n 1 | sed 's/VarScan //g' | sed 's/,.*//g' | sed 's/^v//' | sed 's/_.*//') - END_VERSIONS """ } diff --git a/modules/nf-core/varscan/processsomatic/meta.yml b/modules/nf-core/varscan/processsomatic/meta.yml index 24073fafff96..698f069a67e7 100644 --- a/modules/nf-core/varscan/processsomatic/meta.yml +++ b/modules/nf-core/varscan/processsomatic/meta.yml @@ -1,11 +1,10 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "varscan_processsomatic" description: VarScan2 is a tool for variant detection in massively parallel sequencing data. It can detect SNPs, indels, and copy number variations in both somatic and germline samples. It is particularly useful for analyzing tumor/normal sample pairs. This subtool divides variants based on status - (germline, somatic, loss of heterozygosity) and confidence level (high-confidence - or not) and outputs them in separate VCF files. + (germline, somatic, loss of heterozygosity) and confidence level + (high-confidence or not) and outputs them in separate VCF files. keywords: - variant calling - germline @@ -20,9 +19,9 @@ tools: documentation: "https://dkoboldt.github.io/varscan/" tool_dev_url: "https://github.com/dkoboldt/varscan" doi: "10.1101/gr.129684.111" - licence: ["The Non-Profit Open Software License version 3.0 (NPOSL-3.0)"] + licence: + - "The Non-Profit Open Software License version 3.0 (NPOSL-3.0)" identifier: biotools:varscan - input: - - meta: type: map @@ -35,7 +34,7 @@ input: pattern: "*.{snvs,indels}.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: "http://edamontology.org/format_3989" # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP output: germline_vcf: - - meta: @@ -49,7 +48,7 @@ output: pattern: "*.Germline.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP germline_hc_vcf: - - meta: type: map @@ -62,7 +61,7 @@ output: pattern: "*.Germline.hc.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP somatic_vcf: - - meta: type: map @@ -75,7 +74,7 @@ output: pattern: "*.Somatic.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP somatic_hc_vcf: - - meta: type: map @@ -88,7 +87,7 @@ output: pattern: "*.Somatic.hc.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP loh_vcf: - - meta: type: map @@ -101,7 +100,7 @@ output: pattern: "*.LOH.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP loh_hc_vcf: - - meta: type: map @@ -115,14 +114,30 @@ output: pattern: "*.LOH.hc.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP + versions_varscan: + - - ${task.process}: + type: string + description: The name of the process + - varscan: + type: string + description: The name of the tool + - varscan 2>&1 | sed -n '2s/.*v//p': + type: eval + 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 + - varscan: + type: string + description: The name of the tool + - varscan 2>&1 | sed -n '2s/.*v//p': + type: eval + description: The expression to obtain the version of the tool + authors: - "@vmelichar" maintainers: diff --git a/modules/nf-core/varscan/processsomatic/tests/main.nf.test b/modules/nf-core/varscan/processsomatic/tests/main.nf.test index c751b13b2f0c..9f550e7f2277 100644 --- a/modules/nf-core/varscan/processsomatic/tests/main.nf.test +++ b/modules/nf-core/varscan/processsomatic/tests/main.nf.test @@ -50,7 +50,7 @@ nextflow_process { path(process.out.somatic_hc_vcf.get(0).get(1)).vcf.variantsMD5, path(process.out.loh_vcf.get(0).get(1)).vcf.variantsMD5, path(process.out.loh_hc_vcf.get(0).get(1)).vcf.variantsMD5, - process.out.versions, + process.out.findAll { key, val -> key.startsWith('versions') } ).match() } ) diff --git a/modules/nf-core/varscan/processsomatic/tests/main.nf.test.snap b/modules/nf-core/varscan/processsomatic/tests/main.nf.test.snap index 2931c2ca76a9..01bb0fdfd28d 100644 --- a/modules/nf-core/varscan/processsomatic/tests/main.nf.test.snap +++ b/modules/nf-core/varscan/processsomatic/tests/main.nf.test.snap @@ -50,15 +50,19 @@ "empty.Somatic.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ], - "versions": [ - "versions.yml:md5,80c7278cfacd3ab0f81b92d4b3ad2d15" + "versions_varscan": [ + [ + "VARSCAN_PROCESSSOMATIC", + "varscan", + "2.4.6" + ] ] } ], - "timestamp": "2026-02-18T09:15:53.790621131", + "timestamp": "2026-06-18T12:21:15.509140749", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.04.0" } }, "human - mpileup": { @@ -69,14 +73,20 @@ "e37d2a23d697b8b528d37f2a39ef3adc", "60ec3cd2057c6dd0d35c94ff81938096", "60ec3cd2057c6dd0d35c94ff81938096", - [ - "versions.yml:md5,80c7278cfacd3ab0f81b92d4b3ad2d15" - ] + { + "versions_varscan": [ + [ + "VARSCAN_PROCESSSOMATIC", + "varscan", + "2.4.6" + ] + ] + } ], - "timestamp": "2025-07-25T13:32:20.427966821", + "timestamp": "2026-06-18T12:21:08.776020568", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.5", + "nextflow": "26.04.0" } } } \ No newline at end of file diff --git a/modules/nf-core/varscan/somatic/main.nf b/modules/nf-core/varscan/somatic/main.nf index 1b8fdbff96cf..fedb92e7a0a9 100644 --- a/modules/nf-core/varscan/somatic/main.nf +++ b/modules/nf-core/varscan/somatic/main.nf @@ -13,7 +13,7 @@ process VARSCAN_SOMATIC { output: tuple val(meta), path("*.snvs.vcf.gz") , emit: vcf_snvs tuple val(meta), path("*.indels.vcf.gz"), emit: vcf_indels - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('varscan'), eval("varscan 2>&1 | sed -n '2s/.*v//p'"), emit: versions_varscan, topic: versions when: task.ext.when == null || task.ext.when @@ -37,11 +37,6 @@ process VARSCAN_SOMATIC { bgzip ${prefix}.snvs.vcf bgzip ${prefix}.indels.vcf - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - varscan: \$(varscan 2>&1 | grep VarScan | head -n 1 | sed 's/VarScan //g' | sed 's/,.*//g' | sed 's/^v//' | sed 's/_.*//') - END_VERSIONS """ stub: @@ -52,10 +47,5 @@ process VARSCAN_SOMATIC { echo "" | gzip > ${prefix}.snvs.vcf.gz echo "" | gzip > ${prefix}.indels.vcf.gz - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - varscan: \$(varscan 2>&1 | grep VarScan | head -n 1 | sed 's/VarScan //g' | sed 's/,.*//g' | sed 's/^v//' | sed 's/_.*//') - END_VERSIONS """ } diff --git a/modules/nf-core/varscan/somatic/meta.yml b/modules/nf-core/varscan/somatic/meta.yml index 07280178cf7d..2f10930cb4aa 100644 --- a/modules/nf-core/varscan/somatic/meta.yml +++ b/modules/nf-core/varscan/somatic/meta.yml @@ -1,4 +1,3 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "varscan_somatic" description: VarScan2 is a tool for variant detection in massively parallel sequencing data. It can detect SNPs, indels, and copy number variations in @@ -18,30 +17,27 @@ tools: documentation: "https://dkoboldt.github.io/varscan/" tool_dev_url: "https://github.com/dkoboldt/varscan" doi: "10.1101/gr.129684.111" - licence: ["The Non-Profit Open Software License version 3.0 (NPOSL-3.0)"] + licence: + - "The Non-Profit Open Software License version 3.0 (NPOSL-3.0)" identifier: biotools:varscan - input: - - meta: type: map description: | Groovy Map containing sample information e.g. `[ id:'sample1' ]` - - normal_mpileup: type: file description: mpileup file from normal sample pattern: "*.mpileup" ontologies: - edam: "http://edamontology.org/format_3015" # Pileup - - tumour_mpileup: type: file description: mpileup file from tumour sample pattern: "*.mpileup" ontologies: - - edam: "http://edamontology.org/format_3015" # - + - edam: "http://edamontology.org/format_3015" # Pileup output: vcf_snvs: - - meta: @@ -55,7 +51,7 @@ output: pattern: "*.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP vcf_indels: - - meta: type: map @@ -68,14 +64,30 @@ output: pattern: "*.vcf.gz" ontologies: - edam: "http://edamontology.org/format_3016" # VCF - - edam: http://edamontology.org/format_3989 # GZIP format + - edam: "http://edamontology.org/format_3989" # GZIP + versions_varscan: + - - ${task.process}: + type: string + description: The name of the process + - varscan: + type: string + description: The name of the tool + - varscan 2>&1 | sed -n '2s/.*v//p': + type: eval + 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 + - varscan: + type: string + description: The name of the tool + - varscan 2>&1 | sed -n '2s/.*v//p': + type: eval + description: The expression to obtain the version of the tool + authors: - "@vmelichar" maintainers: diff --git a/modules/nf-core/varscan/somatic/tests/main.nf.test b/modules/nf-core/varscan/somatic/tests/main.nf.test index 689576ba9d6c..af1a6feaafa1 100644 --- a/modules/nf-core/varscan/somatic/tests/main.nf.test +++ b/modules/nf-core/varscan/somatic/tests/main.nf.test @@ -34,7 +34,7 @@ nextflow_process { assert snapshot( path(process.out.vcf_indels.get(0).get(1)).vcf.variantsMD5, path(process.out.vcf_snvs.get(0).get(1)).vcf.variantsMD5, - process.out.versions, + sanitizeOutput(process.out, unstableKeys: ["vcf_indels", "vcf_snvs"]), ).match() } ) diff --git a/modules/nf-core/varscan/somatic/tests/main.nf.test.snap b/modules/nf-core/varscan/somatic/tests/main.nf.test.snap index 3caab1698134..de675fd6d922 100644 --- a/modules/nf-core/varscan/somatic/tests/main.nf.test.snap +++ b/modules/nf-core/varscan/somatic/tests/main.nf.test.snap @@ -21,7 +21,11 @@ ] ], "2": [ - "versions.yml:md5,29808739574a0ca98904b613207fff2a" + [ + "VARSCAN_SOMATIC", + "varscan", + "2.4.6" + ] ], "vcf_indels": [ [ @@ -41,29 +45,57 @@ "test.snvs.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ], - "versions": [ - "versions.yml:md5,29808739574a0ca98904b613207fff2a" + "versions_varscan": [ + [ + "VARSCAN_SOMATIC", + "varscan", + "2.4.6" + ] ] } ], + "timestamp": "2026-06-18T12:22:01.901613234", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2025-07-24T16:23:31.848519166" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } }, "human - mpileup": { "content": [ "807221f6df664ddae870cf0e87c351a6", "36f3d8a2f25c6e8b9bc5a15518cae5d1", - [ - "versions.yml:md5,29808739574a0ca98904b613207fff2a" - ] + { + "vcf_indels": [ + [ + { + "id": "test", + "single_end": false + }, + "test.indels.vcf.gz" + ] + ], + "vcf_snvs": [ + [ + { + "id": "test", + "single_end": false + }, + "test.snvs.vcf.gz" + ] + ], + "versions_varscan": [ + [ + "VARSCAN_SOMATIC", + "varscan", + "2.4.6" + ] + ] + } ], + "timestamp": "2026-06-18T12:21:54.961926236", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2025-07-24T16:32:43.644174694" + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } } } \ No newline at end of file