From 963235f9dde9625282554d2d371260718fa0a775 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:18:52 +0200 Subject: [PATCH 01/18] Update actions/upload-artifact digest to b4b15b8 (#6769) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e689240e9b7..4be8bbe5c92 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -472,7 +472,7 @@ jobs: - name: Upload logs on failure if: failure() - uses: actions/upload-artifact@604373da6381bf24206979c74d06a550515601b9 # v4 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 with: name: logs-${{ matrix.profile }}-${{ steps.parsed.outputs.result }} path: | From 3aa0aec1d52d492fe241919f0c6100ebf0074082 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BAlia=20Mir=20Pedrol?= Date: Fri, 11 Oct 2024 11:57:36 +0200 Subject: [PATCH 02/18] use multi-line string for warning (#6770) * use multi-line string for warning * fix star/align meta.yml information --- modules/nf-core/star/align/meta.yml | 111 ++++++++++-------- .../nf-core/utils_nextflow_pipeline/main.nf | 14 ++- 2 files changed, 72 insertions(+), 53 deletions(-) diff --git a/modules/nf-core/star/align/meta.yml b/modules/nf-core/star/align/meta.yml index d9cba2aa704..5cfe763e369 100644 --- a/modules/nf-core/star/align/meta.yml +++ b/modules/nf-core/star/align/meta.yml @@ -56,27 +56,30 @@ input: output: - log_final: - meta: - type: file - description: STAR final log file - pattern: "*Log.final.out" + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - "*Log.final.out": type: file description: STAR final log file pattern: "*Log.final.out" - log_out: - meta: - type: file - description: STAR lot out file - pattern: "*Log.out" + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - "*Log.out": type: file description: STAR lot out file pattern: "*Log.out" - log_progress: - meta: - type: file - description: STAR log progress file - pattern: "*Log.progress.out" + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - "*Log.progress.out": type: file description: STAR log progress file @@ -88,57 +91,70 @@ output: pattern: "versions.yml" - bam: - meta: - type: file - description: Output BAM file containing read alignments - pattern: "*.{bam}" + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - "*d.out.bam": type: file description: Output BAM file containing read alignments pattern: "*.{bam}" - bam_sorted: - meta: - type: file - description: Sorted BAM file of read alignments (optional) - pattern: "*sortedByCoord.out.bam" + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - ${prefix}.sortedByCoord.out.bam: type: file description: Sorted BAM file of read alignments (optional) pattern: "*sortedByCoord.out.bam" - bam_sorted_aligned: - - meta: {} - - ${prefix}.Aligned.sortedByCoord.out.bam: {} - - bam_transcript: - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ${prefix}.Aligned.sortedByCoord.out.bam: type: file - description: Output BAM file of transcriptome alignment (optional) - pattern: "*toTranscriptome.out.bam" + description: Sorted BAM file of read alignments (optional) + pattern: "*.Aligned.sortedByCoord.out.bam" + - bam_transcript: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - "*toTranscriptome.out.bam": type: file description: Output BAM file of transcriptome alignment (optional) pattern: "*toTranscriptome.out.bam" - bam_unsorted: - meta: - type: file - description: Unsorted BAM file of read alignments (optional) - pattern: "*Aligned.unsort.out.bam" + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - "*Aligned.unsort.out.bam": type: file description: Unsorted BAM file of read alignments (optional) pattern: "*Aligned.unsort.out.bam" - fastq: - meta: - type: file - description: Unmapped FastQ files (optional) - pattern: "*fastq.gz" + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - "*fastq.gz": type: file description: Unmapped FastQ files (optional) pattern: "*fastq.gz" - tab: - meta: - type: file - description: STAR output tab file(s) (optional) - pattern: "*.tab" + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - "*.tab": type: file description: STAR output tab file(s) (optional) @@ -149,12 +165,9 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - pattern: "*.SJ.out.tab" - "*.SJ.out.tab": - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + type: file + description: STAR output splice junction tab file pattern: "*.SJ.out.tab" - read_per_gene_tab: - meta: @@ -162,18 +175,16 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - pattern: "*.ReadsPerGene.out.tab" - "*.ReadsPerGene.out.tab": + type: file + description: STAR output read per gene tab file + pattern: "*.ReadsPerGene.out.tab" + - junction: + - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - pattern: "*.ReadsPerGene.out.tab" - - junction: - - meta: - type: file - description: STAR chimeric junction output file (optional) - pattern: "*.out.junction" - "*.out.junction": type: file description: STAR chimeric junction output file (optional) @@ -186,25 +197,25 @@ output: e.g. [ id:'test', single_end:false ] pattern: "*.out.sam" - "*.out.sam": + type: file + description: STAR output SAM file(s) (optional) + pattern: "*.out.sam" + - wig: + - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - pattern: "*.out.sam" - - wig: - - meta: - type: file - description: STAR output wiggle format file(s) (optional) - pattern: "*.wig" - "*.wig": type: file description: STAR output wiggle format file(s) (optional) pattern: "*.wig" - bedgraph: - meta: - type: file - description: STAR output bedGraph format file(s) (optional) - pattern: "*.bg" + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - "*.bg": type: file description: STAR output bedGraph format file(s) (optional) diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf index b17b8774516..0fcbf7b3f23 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -109,8 +109,16 @@ def checkCondaChannels() { def channel_priority_violation = required_channels_in_order != channels.findAll { ch -> ch in required_channels_in_order } if (channels_missing | channel_priority_violation) { - log.warn( - "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " There is a problem with your Conda configuration!\n\n" + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + " Please refer to https://bioconda.github.io/\n" + " The observed channel order is \n" + " ${channels}\n" + " but the following channel order is required:\n" + " ${required_channels_in_order}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - ) + log.warn """\ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + There is a problem with your Conda configuration! + You will need to set-up the conda-forge and bioconda channels correctly. + Please refer to https://bioconda.github.io/ + The observed channel order is + ${channels} + but the following channel order is required: + ${required_channels_in_order} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + """.stripIndent(true) } } From cf17ca47590cc578dfb47db1c2a44ef86f89976d Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 11 Oct 2024 11:58:31 +0200 Subject: [PATCH 03/18] multiqc_plots is a folder not a file (#6762) --- modules/nf-core/multiqc/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 9724d2f34ef..cc0643e1d58 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -52,7 +52,7 @@ process MULTIQC { stub: """ mkdir multiqc_data - touch multiqc_plots + mkdir multiqc_plots touch multiqc_report.html cat <<-END_VERSIONS > versions.yml From 573ba82ecf1505775d1a4332bc3cf55cacc3d094 Mon Sep 17 00:00:00 2001 From: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com> Date: Fri, 11 Oct 2024 16:57:19 +0200 Subject: [PATCH 04/18] Bump openms tools to version 3.2.0 (#6754) * update container version-tag * update snapshots * bump conda versions --- .../openms/decoydatabase/environment.yml | 2 +- modules/nf-core/openms/decoydatabase/main.nf | 4 +-- .../decoydatabase/tests/main.nf.test.snap | 10 +++---- .../nf-core/openms/idfilter/environment.yml | 2 +- modules/nf-core/openms/idfilter/main.nf | 6 ++-- .../openms/idfilter/tests/main.nf.test.snap | 24 ++++++++-------- .../openms/idmassaccuracy/environment.yml | 2 +- modules/nf-core/openms/idmassaccuracy/main.nf | 4 +-- .../idmassaccuracy/tests/main.nf.test.snap | 12 ++++---- .../nf-core/openms/idmerger/environment.yml | 2 +- modules/nf-core/openms/idmerger/main.nf | 4 +-- .../openms/idmerger/tests/main.nf.test.snap | 18 ++++++------ .../nf-core/openms/idripper/environment.yml | 2 +- modules/nf-core/openms/idripper/main.nf | 4 +-- .../openms/idripper/tests/main.nf.test.snap | 28 ++++++++++++------- .../openms/idscoreswitcher/environment.yml | 2 +- .../nf-core/openms/idscoreswitcher/main.nf | 4 +-- .../idscoreswitcher/tests/main.nf.test.snap | 24 ++++++++++------ .../openms/peakpickerhires/environment.yml | 2 +- .../nf-core/openms/peakpickerhires/main.nf | 4 +-- .../peakpickerhires/tests/main.nf.test.snap | 18 ++++++------ .../openms/peptideindexer/environment.yml | 2 +- modules/nf-core/openms/peptideindexer/main.nf | 4 +-- .../peptideindexer/tests/main.nf.test.snap | 24 ++++++++-------- .../cometadapter/environment.yml | 2 +- .../openmsthirdparty/cometadapter/main.nf | 4 +-- .../openmsthirdparty/cometadapter/meta.yml | 2 +- .../cometadapter/tests/main.nf.test.snap | 4 +-- 28 files changed, 118 insertions(+), 102 deletions(-) diff --git a/modules/nf-core/openms/decoydatabase/environment.yml b/modules/nf-core/openms/decoydatabase/environment.yml index 3391b183243..31614292dbe 100644 --- a/modules/nf-core/openms/decoydatabase/environment.yml +++ b/modules/nf-core/openms/decoydatabase/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms=3.1.0 + - bioconda::openms=3.2.0 diff --git a/modules/nf-core/openms/decoydatabase/main.nf b/modules/nf-core/openms/decoydatabase/main.nf index cfac99c3623..5c3a55ce341 100644 --- a/modules/nf-core/openms/decoydatabase/main.nf +++ b/modules/nf-core/openms/decoydatabase/main.nf @@ -4,8 +4,8 @@ process OPENMS_DECOYDATABASE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3' : - 'biocontainers/openms:3.1.0--h8964181_3' }" + 'https://depot.galaxyproject.org/singularity/openms:3.2.0--haddbca4_4' : + 'biocontainers/openms:3.2.0--haddbca4_4' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/openms/decoydatabase/tests/main.nf.test.snap b/modules/nf-core/openms/decoydatabase/tests/main.nf.test.snap index 1206179a894..699b8c2d8ef 100644 --- a/modules/nf-core/openms/decoydatabase/tests/main.nf.test.snap +++ b/modules/nf-core/openms/decoydatabase/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,29955625bab2d7680a741faab680f3a6" + "versions.yml:md5,6c32e4ec0949f616baefa1b17efbe426" ], "decoy_fasta": [ [ @@ -22,14 +22,14 @@ ] ], "versions": [ - "versions.yml:md5,29955625bab2d7680a741faab680f3a6" + "versions.yml:md5,6c32e4ec0949f616baefa1b17efbe426" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-12T16:26:35.886966049" + "timestamp": "2024-10-08T11:22:32.701406062" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idfilter/environment.yml b/modules/nf-core/openms/idfilter/environment.yml index 5793e993cc5..5ec74436391 100644 --- a/modules/nf-core/openms/idfilter/environment.yml +++ b/modules/nf-core/openms/idfilter/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.1.0" + - "bioconda::openms=3.2.0" diff --git a/modules/nf-core/openms/idfilter/main.nf b/modules/nf-core/openms/idfilter/main.nf index 6c8d5bbdb61..763c2bf955d 100644 --- a/modules/nf-core/openms/idfilter/main.nf +++ b/modules/nf-core/openms/idfilter/main.nf @@ -2,10 +2,10 @@ process OPENMS_IDFILTER { tag "$meta.id" label 'process_single' - conda "bioconda::openms=3.1.0" + conda "bioconda::openms=3.2.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3' : - 'biocontainers/openms:3.1.0--h8964181_3' }" + 'https://depot.galaxyproject.org/singularity/openms:3.2.0--haddbca4_4' : + 'biocontainers/openms:3.2.0--haddbca4_4' }" input: tuple val(meta), path(id_file), path(filter_file) diff --git a/modules/nf-core/openms/idfilter/tests/main.nf.test.snap b/modules/nf-core/openms/idfilter/tests/main.nf.test.snap index 21d221158a8..0b74a186c17 100644 --- a/modules/nf-core/openms/idfilter/tests/main.nf.test.snap +++ b/modules/nf-core/openms/idfilter/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,180b8b0b5aa3a0439c4695e8c2a20c7b" + "versions.yml:md5,8a95c69294e90ae931b766218dc87dec" ], "filtered": [ [ @@ -22,15 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,180b8b0b5aa3a0439c4695e8c2a20c7b" + "versions.yml:md5,8a95c69294e90ae931b766218dc87dec" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-03-18T12:24:23.590979361" + "timestamp": "2024-10-08T11:45:00.758602574" }, "proteomics - filter - idxml": { "content": [ @@ -40,29 +40,29 @@ { "id": "test" }, - "test.idXML:md5,9efbb130c9a34807a4db1be64a7d395f" + "test.idXML:md5,59b0c4592ee45e1d2158b399ba838002" ] ], "1": [ - "versions.yml:md5,180b8b0b5aa3a0439c4695e8c2a20c7b" + "versions.yml:md5,8a95c69294e90ae931b766218dc87dec" ], "filtered": [ [ { "id": "test" }, - "test.idXML:md5,9efbb130c9a34807a4db1be64a7d395f" + "test.idXML:md5,59b0c4592ee45e1d2158b399ba838002" ] ], "versions": [ - "versions.yml:md5,180b8b0b5aa3a0439c4695e8c2a20c7b" + "versions.yml:md5,8a95c69294e90ae931b766218dc87dec" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-03-18T12:24:09.504917196" + "timestamp": "2024-10-08T11:44:53.291545021" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idmassaccuracy/environment.yml b/modules/nf-core/openms/idmassaccuracy/environment.yml index 5793e993cc5..5ec74436391 100644 --- a/modules/nf-core/openms/idmassaccuracy/environment.yml +++ b/modules/nf-core/openms/idmassaccuracy/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.1.0" + - "bioconda::openms=3.2.0" diff --git a/modules/nf-core/openms/idmassaccuracy/main.nf b/modules/nf-core/openms/idmassaccuracy/main.nf index 9759ad40919..b1e8deac16b 100644 --- a/modules/nf-core/openms/idmassaccuracy/main.nf +++ b/modules/nf-core/openms/idmassaccuracy/main.nf @@ -4,8 +4,8 @@ process OPENMS_IDMASSACCURACY { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h191ead1_4' : - 'biocontainers/openms:3.1.0--h191ead1_4' }" + 'https://depot.galaxyproject.org/singularity/openms:3.2.0--haddbca4_4' : + 'biocontainers/openms:3.2.0--haddbca4_4' }" input: tuple val(meta), path(mzmls), path(idxmls) diff --git a/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test.snap b/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test.snap index 9accf9a2acc..c9f056e174f 100644 --- a/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test.snap +++ b/modules/nf-core/openms/idmassaccuracy/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] ], "2": [ - "versions.yml:md5,84212cbbf016bbcae0eb1bb0fcc30db7" + "versions.yml:md5,9bf83a6db02732d209de6819818aed26" ], "frag_err": [ [ @@ -38,7 +38,7 @@ ] ], "versions": [ - "versions.yml:md5,84212cbbf016bbcae0eb1bb0fcc30db7" + "versions.yml:md5,9bf83a6db02732d209de6819818aed26" ] } ], @@ -46,7 +46,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-16T05:12:06.655389198" + "timestamp": "2024-10-08T11:26:08.231171982" }, "proteomics - openms - mass_error": { "content": [ @@ -63,7 +63,7 @@ ], "2": [ - "versions.yml:md5,84212cbbf016bbcae0eb1bb0fcc30db7" + "versions.yml:md5,9bf83a6db02732d209de6819818aed26" ], "frag_err": [ [ @@ -77,7 +77,7 @@ ], "versions": [ - "versions.yml:md5,84212cbbf016bbcae0eb1bb0fcc30db7" + "versions.yml:md5,9bf83a6db02732d209de6819818aed26" ] } ], @@ -85,6 +85,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-16T05:11:55.087464408" + "timestamp": "2024-10-08T11:25:57.38948188" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idmerger/environment.yml b/modules/nf-core/openms/idmerger/environment.yml index 3391b183243..31614292dbe 100644 --- a/modules/nf-core/openms/idmerger/environment.yml +++ b/modules/nf-core/openms/idmerger/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::openms=3.1.0 + - bioconda::openms=3.2.0 diff --git a/modules/nf-core/openms/idmerger/main.nf b/modules/nf-core/openms/idmerger/main.nf index 99ffdafa912..62a7a506237 100644 --- a/modules/nf-core/openms/idmerger/main.nf +++ b/modules/nf-core/openms/idmerger/main.nf @@ -4,8 +4,8 @@ process OPENMS_IDMERGER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3' : - 'biocontainers/openms:3.1.0--h8964181_3' }" + 'https://depot.galaxyproject.org/singularity/openms:3.2.0--haddbca4_4' : + 'biocontainers/openms:3.2.0--haddbca4_4' }" input: tuple val(meta), path(idxmls) diff --git a/modules/nf-core/openms/idmerger/tests/main.nf.test.snap b/modules/nf-core/openms/idmerger/tests/main.nf.test.snap index 6603da98f0b..fa034582afb 100644 --- a/modules/nf-core/openms/idmerger/tests/main.nf.test.snap +++ b/modules/nf-core/openms/idmerger/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "proteomics - openms - idxml": { "content": [ [ - "versions.yml:md5,09d83e713284f55e18cebcc20eda07b9" + "versions.yml:md5,8051ce1c0fe4404798507d607ebf52a3" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-12T17:33:25.047982404" + "timestamp": "2024-10-08T12:02:35.595648853" }, "proteomics - openms - idxml - stub": { "content": [ @@ -23,7 +23,7 @@ ] ], "1": [ - "versions.yml:md5,09d83e713284f55e18cebcc20eda07b9" + "versions.yml:md5,8051ce1c0fe4404798507d607ebf52a3" ], "idxml": [ [ @@ -34,14 +34,14 @@ ] ], "versions": [ - "versions.yml:md5,09d83e713284f55e18cebcc20eda07b9" + "versions.yml:md5,8051ce1c0fe4404798507d607ebf52a3" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-12T17:33:34.498327729" + "timestamp": "2024-10-08T12:02:42.76246364" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idripper/environment.yml b/modules/nf-core/openms/idripper/environment.yml index 5793e993cc5..5ec74436391 100644 --- a/modules/nf-core/openms/idripper/environment.yml +++ b/modules/nf-core/openms/idripper/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.1.0" + - "bioconda::openms=3.2.0" diff --git a/modules/nf-core/openms/idripper/main.nf b/modules/nf-core/openms/idripper/main.nf index 7350af4253e..463afa25773 100644 --- a/modules/nf-core/openms/idripper/main.nf +++ b/modules/nf-core/openms/idripper/main.nf @@ -4,8 +4,8 @@ process OPENMS_IDRIPPER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3': - 'biocontainers/openms:3.1.0--h8964181_3' }" + 'https://depot.galaxyproject.org/singularity/openms:3.2.0--haddbca4_4': + 'biocontainers/openms:3.2.0--haddbca4_4' }" input: tuple val(meta), path(merged_idxml) diff --git a/modules/nf-core/openms/idripper/tests/main.nf.test.snap b/modules/nf-core/openms/idripper/tests/main.nf.test.snap index 2b58f423925..2851a262ca8 100644 --- a/modules/nf-core/openms/idripper/tests/main.nf.test.snap +++ b/modules/nf-core/openms/idripper/tests/main.nf.test.snap @@ -8,13 +8,13 @@ "id": "test" }, [ - "HepG2_rep1_small.idXML:md5,ca1c4549a42e0b0c0be8345cf5062dfd", - "HepG2_rep2_small.idXML:md5,14a4e9a7dca3c62db38b6345a63d80d5" + "HepG2_rep1_small.idXML:md5,0124479eaf5bba215a801aff613f08d6", + "HepG2_rep2_small.idXML:md5,4b26909ad111957d4bbfa9981c80e92d" ] ] ], "1": [ - "versions.yml:md5,7a7ebf177e4987780b6371dab640e6c0" + "versions.yml:md5,e016c1da0449e1d29d4c34198ff1a948" ], "idxmls": [ [ @@ -22,17 +22,21 @@ "id": "test" }, [ - "HepG2_rep1_small.idXML:md5,ca1c4549a42e0b0c0be8345cf5062dfd", - "HepG2_rep2_small.idXML:md5,14a4e9a7dca3c62db38b6345a63d80d5" + "HepG2_rep1_small.idXML:md5,0124479eaf5bba215a801aff613f08d6", + "HepG2_rep2_small.idXML:md5,4b26909ad111957d4bbfa9981c80e92d" ] ] ], "versions": [ - "versions.yml:md5,7a7ebf177e4987780b6371dab640e6c0" + "versions.yml:md5,e016c1da0449e1d29d4c34198ff1a948" ] } ], - "timestamp": "2024-01-05T10:53:57.761966016" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T12:02:51.318615048" }, "proteomics - split - idxml - stub": { "content": [ @@ -49,7 +53,7 @@ ] ], "1": [ - "versions.yml:md5,7a7ebf177e4987780b6371dab640e6c0" + "versions.yml:md5,e016c1da0449e1d29d4c34198ff1a948" ], "idxmls": [ [ @@ -63,10 +67,14 @@ ] ], "versions": [ - "versions.yml:md5,7a7ebf177e4987780b6371dab640e6c0" + "versions.yml:md5,e016c1da0449e1d29d4c34198ff1a948" ] } ], - "timestamp": "2024-01-05T10:54:05.672792514" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T12:02:59.481185212" } } \ No newline at end of file diff --git a/modules/nf-core/openms/idscoreswitcher/environment.yml b/modules/nf-core/openms/idscoreswitcher/environment.yml index 5793e993cc5..5ec74436391 100644 --- a/modules/nf-core/openms/idscoreswitcher/environment.yml +++ b/modules/nf-core/openms/idscoreswitcher/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.1.0" + - "bioconda::openms=3.2.0" diff --git a/modules/nf-core/openms/idscoreswitcher/main.nf b/modules/nf-core/openms/idscoreswitcher/main.nf index e2421176045..41ecb2df7fb 100644 --- a/modules/nf-core/openms/idscoreswitcher/main.nf +++ b/modules/nf-core/openms/idscoreswitcher/main.nf @@ -4,8 +4,8 @@ process OPENMS_IDSCORESWITCHER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3': - 'biocontainers/openms:3.1.0--h8964181_3' }" + 'https://depot.galaxyproject.org/singularity/openms:3.2.0--haddbca4_4': + 'biocontainers/openms:3.2.0--haddbca4_4' }" input: tuple val(meta), path(idxml) diff --git a/modules/nf-core/openms/idscoreswitcher/tests/main.nf.test.snap b/modules/nf-core/openms/idscoreswitcher/tests/main.nf.test.snap index 3d9d95a45b6..287209db145 100644 --- a/modules/nf-core/openms/idscoreswitcher/tests/main.nf.test.snap +++ b/modules/nf-core/openms/idscoreswitcher/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,fc26aec256a1ab21dd6eec546146e7f5" + "versions.yml:md5,6ba0a7c237c0553ecaa343d7d0638e32" ], "idxml": [ [ @@ -22,11 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,fc26aec256a1ab21dd6eec546146e7f5" + "versions.yml:md5,6ba0a7c237c0553ecaa343d7d0638e32" ] } ], - "timestamp": "2024-01-05T15:38:28.11227936" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T12:08:26.611231415" }, "proteomics - switch_score - idxml": { "content": [ @@ -36,25 +40,29 @@ { "id": "test" }, - "test.idXML:md5,c9cb1593610b60cc1d9ca2c4defab690" + "test.idXML:md5,51e9c25b89ab47dab73d947e43f0633b" ] ], "1": [ - "versions.yml:md5,fc26aec256a1ab21dd6eec546146e7f5" + "versions.yml:md5,6ba0a7c237c0553ecaa343d7d0638e32" ], "idxml": [ [ { "id": "test" }, - "test.idXML:md5,c9cb1593610b60cc1d9ca2c4defab690" + "test.idXML:md5,51e9c25b89ab47dab73d947e43f0633b" ] ], "versions": [ - "versions.yml:md5,fc26aec256a1ab21dd6eec546146e7f5" + "versions.yml:md5,6ba0a7c237c0553ecaa343d7d0638e32" ] } ], - "timestamp": "2024-01-05T15:38:21.402742579" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T12:08:17.9635299" } } \ No newline at end of file diff --git a/modules/nf-core/openms/peakpickerhires/environment.yml b/modules/nf-core/openms/peakpickerhires/environment.yml index 456a019bf14..d4d40e896b1 100644 --- a/modules/nf-core/openms/peakpickerhires/environment.yml +++ b/modules/nf-core/openms/peakpickerhires/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.1.0" + - "bioconda::openms=3.2.0" diff --git a/modules/nf-core/openms/peakpickerhires/main.nf b/modules/nf-core/openms/peakpickerhires/main.nf index f4f621aed1f..153cab4f91a 100644 --- a/modules/nf-core/openms/peakpickerhires/main.nf +++ b/modules/nf-core/openms/peakpickerhires/main.nf @@ -4,8 +4,8 @@ process OPENMS_PEAKPICKERHIRES { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3' : - 'biocontainers/openms:3.1.0--h8964181_3' }" + 'https://depot.galaxyproject.org/singularity/openms:3.2.0--haddbca4_4' : + 'biocontainers/openms:3.2.0--haddbca4_4' }" input: tuple val(meta), path(mzml) diff --git a/modules/nf-core/openms/peakpickerhires/tests/main.nf.test.snap b/modules/nf-core/openms/peakpickerhires/tests/main.nf.test.snap index 0f056d2cdd9..c99a542ed53 100644 --- a/modules/nf-core/openms/peakpickerhires/tests/main.nf.test.snap +++ b/modules/nf-core/openms/peakpickerhires/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "proteomics - mzML": { "content": [ [ - "versions.yml:md5,b4ddcc39c47d566b91e172fcf25e8b80" + "versions.yml:md5,3db8a4b45ffebff2eac6118cbca4bb4e" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-12T17:29:48.256324624" + "timestamp": "2024-10-08T12:13:25.732124582" }, "proteomics - mzML - stub": { "content": [ @@ -23,7 +23,7 @@ ] ], "1": [ - "versions.yml:md5,b4ddcc39c47d566b91e172fcf25e8b80" + "versions.yml:md5,3db8a4b45ffebff2eac6118cbca4bb4e" ], "mzml": [ [ @@ -34,14 +34,14 @@ ] ], "versions": [ - "versions.yml:md5,b4ddcc39c47d566b91e172fcf25e8b80" + "versions.yml:md5,3db8a4b45ffebff2eac6118cbca4bb4e" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-12T17:29:57.976530253" + "timestamp": "2024-10-08T12:13:32.716358119" } } \ No newline at end of file diff --git a/modules/nf-core/openms/peptideindexer/environment.yml b/modules/nf-core/openms/peptideindexer/environment.yml index e4ec4037ee8..d6e51812af3 100644 --- a/modules/nf-core/openms/peptideindexer/environment.yml +++ b/modules/nf-core/openms/peptideindexer/environment.yml @@ -3,4 +3,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms=3.1.0" + - "bioconda::openms=3.2.0" diff --git a/modules/nf-core/openms/peptideindexer/main.nf b/modules/nf-core/openms/peptideindexer/main.nf index ae7c245a547..2bf824c3931 100644 --- a/modules/nf-core/openms/peptideindexer/main.nf +++ b/modules/nf-core/openms/peptideindexer/main.nf @@ -4,8 +4,8 @@ process OPENMS_PEPTIDEINDEXER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms:3.1.0--h8964181_3': - 'biocontainers/openms:3.1.0--h8964181_3' }" + 'https://depot.galaxyproject.org/singularity/openms:3.2.0--haddbca4_4': + 'biocontainers/openms:3.2.0--haddbca4_4' }" input: tuple val(meta), path(id_file) diff --git a/modules/nf-core/openms/peptideindexer/tests/main.nf.test.snap b/modules/nf-core/openms/peptideindexer/tests/main.nf.test.snap index 433905ac1e7..bc41f96655e 100644 --- a/modules/nf-core/openms/peptideindexer/tests/main.nf.test.snap +++ b/modules/nf-core/openms/peptideindexer/tests/main.nf.test.snap @@ -7,30 +7,30 @@ { "id": "test" }, - "test_pi.idXML:md5,39d2a1b6f504ef50d9e682045aa8aed3" + "test_pi.idXML:md5,f18620bed99c99f292b4e1804c3a47ad" ] ], "1": [ - "versions.yml:md5,04d2b88660370f1cdfb1fc68cb3caf80" + "versions.yml:md5,01ee06728114ec0a7b0980ad83eedd42" ], "id_file_pi": [ [ { "id": "test" }, - "test_pi.idXML:md5,39d2a1b6f504ef50d9e682045aa8aed3" + "test_pi.idXML:md5,f18620bed99c99f292b4e1804c3a47ad" ] ], "versions": [ - "versions.yml:md5,04d2b88660370f1cdfb1fc68cb3caf80" + "versions.yml:md5,01ee06728114ec0a7b0980ad83eedd42" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-03-20T15:04:51.120367545" + "timestamp": "2024-10-08T11:26:20.161342857" }, "proteomics - refresh_idxml - stub": { "content": [ @@ -44,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,04d2b88660370f1cdfb1fc68cb3caf80" + "versions.yml:md5,01ee06728114ec0a7b0980ad83eedd42" ], "id_file_pi": [ [ @@ -55,14 +55,14 @@ ] ], "versions": [ - "versions.yml:md5,04d2b88660370f1cdfb1fc68cb3caf80" + "versions.yml:md5,01ee06728114ec0a7b0980ad83eedd42" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-03-20T12:38:05.159279937" + "timestamp": "2024-10-08T11:26:28.558838022" } } \ No newline at end of file diff --git a/modules/nf-core/openmsthirdparty/cometadapter/environment.yml b/modules/nf-core/openmsthirdparty/cometadapter/environment.yml index 3c2729e75f1..dfc10603608 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/environment.yml +++ b/modules/nf-core/openmsthirdparty/cometadapter/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::openms-thirdparty=3.1.0" + - "bioconda::openms-thirdparty=3.2.0" diff --git a/modules/nf-core/openmsthirdparty/cometadapter/main.nf b/modules/nf-core/openmsthirdparty/cometadapter/main.nf index b193974ae86..15a28391d56 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/main.nf +++ b/modules/nf-core/openmsthirdparty/cometadapter/main.nf @@ -4,8 +4,8 @@ process OPENMSTHIRDPARTY_COMETADAPTER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/openms-thirdparty:3.1.0--h9ee0642_4' : - 'biocontainers/openms-thirdparty:3.1.0--h9ee0642_4' }" + 'https://depot.galaxyproject.org/singularity/openms-thirdparty:3.2.0--h9ee0642_4' : + 'biocontainers/openms-thirdparty:3.2.0--h9ee0642_4' }" input: tuple val(meta), path(mzml), path(fasta) diff --git a/modules/nf-core/openmsthirdparty/cometadapter/meta.yml b/modules/nf-core/openmsthirdparty/cometadapter/meta.yml index fc7e688102d..453781fb3bf 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/meta.yml +++ b/modules/nf-core/openmsthirdparty/cometadapter/meta.yml @@ -13,7 +13,7 @@ tools: homepage: "https://openms.de" documentation: "https://openms.readthedocs.io/en/latest/index.html" tool_dev_url: "https://github.com/OpenMS/OpenMS" - doi: "10.1038/nmeth.3959" + doi: "10.1038/s41592-024-02197-7" licence: ["BSD"] identifier: "" diff --git a/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test.snap b/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test.snap index 9eb65951ab5..939aa4151ec 100644 --- a/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test.snap +++ b/modules/nf-core/openmsthirdparty/cometadapter/tests/main.nf.test.snap @@ -45,7 +45,7 @@ "content": [ { "OPENMSTHIRDPARTY_COMETADAPTER": { - "CometAdapter": "3.1.0", + "CometAdapter": "3.2.0", "Comet": "2023.01 rev. 2" } } @@ -54,6 +54,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-13T13:57:35.577894316" + "timestamp": "2024-10-08T11:29:53.094774827" } } \ No newline at end of file From 55554aef178ebe6cb1d8224c4617f568ed7bba5d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 06:19:04 +0200 Subject: [PATCH 05/18] Update pre-commit hook python-jsonschema/check-jsonschema to v0.29.4 (#6773) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d195d3d9044..c5c1c433593 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ repos: additional_dependencies: - prettier@3.2.5 - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.29.3 + rev: 0.29.4 hooks: - id: check-jsonschema # match meta.ymls in one of the subdirectories of modules/nf-core From 7fd374ec22647b9aac628095498313661701b6a1 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Sat, 12 Oct 2024 13:25:41 +0200 Subject: [PATCH 06/18] Add TAR module (#6772) * start filling in mneta * Fix linting * Replace switch with ifelse * Fix ype in in if else --- modules/nf-core/tar/environment.yml | 12 ++ modules/nf-core/tar/main.nf | 74 +++++++ modules/nf-core/tar/meta.yml | 67 +++++++ modules/nf-core/tar/tests/main.nf.test | 210 ++++++++++++++++++++ modules/nf-core/tar/tests/main.nf.test.snap | 126 ++++++++++++ 5 files changed, 489 insertions(+) create mode 100644 modules/nf-core/tar/environment.yml create mode 100644 modules/nf-core/tar/main.nf create mode 100644 modules/nf-core/tar/meta.yml create mode 100644 modules/nf-core/tar/tests/main.nf.test create mode 100644 modules/nf-core/tar/tests/main.nf.test.snap diff --git a/modules/nf-core/tar/environment.yml b/modules/nf-core/tar/environment.yml new file mode 100644 index 00000000000..1decc62432d --- /dev/null +++ b/modules/nf-core/tar/environment.yml @@ -0,0 +1,12 @@ +channels: + - conda-forge + - bioconda + +dependencies: + - conda-forge::bzip2=1.0.8 + - conda-forge::gzip=1.13 + - conda-forge::lzip=1.21 + - conda-forge::lzop=1.04 + - conda-forge::tar=1.34 + - conda-forge::xz=5.2.6 + - conda-forge::zstd=1.5.6 diff --git a/modules/nf-core/tar/main.nf b/modules/nf-core/tar/main.nf new file mode 100644 index 00000000000..60f828101b9 --- /dev/null +++ b/modules/nf-core/tar/main.nf @@ -0,0 +1,74 @@ +process TAR { + tag "${meta.id}" + label 'process_single' + + 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/98/98946ea8217c35441352a94f3e0cd1dfa24137c323e8b0f5dfcb3123b465d0b1/data': + 'community.wave.seqera.io/library/bzip2_gzip_lzip_lzop_pruned:5a822ddcf829e7af' }" + + input: + tuple val(meta), path(input) + val compress_type + + output: + tuple val(meta), path("*.tar${compress_type}"), emit: archive + 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}" + valid_compress_types = ['.bz2', '.xz', '.lz', '.lzma', '.lzo', '.zst', '.gz', ''] + if (!compress_type in valid_compress_types) { + error("ERROR: Invalid compress_type: ${compress_type} for TAR. Set as empty string for no compression. Compression options: ${valid_compress_types.join(", ")}") + } + + if (compress_type == '.bz2') { + compress_flag = '--bzip2' + } else if (compress_type == '.xz') { + compress_flag = '--xz' + } else if (compress_type == '.lz') { + compress_flag = '--lzip' + } else if (compress_type == '.lzma') { + compress_flag = '--lzma' + } else if (compress_type == '.lzo') { + compress_flag = '--lzop' + } else if (compress_type == '.zst') { + compress_flag = '--zstd' + } else if (compress_type == '.gz') { + compress_flag = '--gzip' + } else if (compress_type == '') { + compress_flag = '' + } else { + error("ERROR: Invalid compress_type: ${compress_type} for TAR. Set as empty string for no compression. Compression options: ${valid_compress_types.join(", ")}") + } + + """ + tar \\ + -c \\ + ${compress_flag} \\ + ${args} \\ + -f ${prefix}.tar${compress_type} \\ + ${input} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + tar: \$(tar --version | grep tar | sed 's/.*) //g') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + echo "" | gzip -c > ${prefix}.tar.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + tar: \$(tar --version | grep tar | sed 's/.*) //g') + END_VERSIONS + """ +} diff --git a/modules/nf-core/tar/meta.yml b/modules/nf-core/tar/meta.yml new file mode 100644 index 00000000000..9a3cbde631b --- /dev/null +++ b/modules/nf-core/tar/meta.yml @@ -0,0 +1,67 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "tar" +description: Compress directories into tarballs with various compression options +keywords: + - untar + - tar + - tarball + - compression + - archive + - gzip + - targz +tools: + - "tar": + description: "GNU Tar provides the ability to create tar archives, as well as + various other kinds of manipulation." + homepage: "https://www.gnu.org/software/tar/" + documentation: "https://www.gnu.org/software/tar/manual/" + licence: ["GPLv3"] + identifier: "" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - input: + type: directory + description: A file or directory to be archived + pattern: "*/" + ontologies: + - edam: "http://edamontology.org/data_1049" + - - compress_type: + type: string + description: | + A string defining which type of (optional) compression to apply to the archive. + Provide an empty string in quotes for no compression + pattern: ".bz2|.xz|.lz|.lzma|.lzo|.zst|.gz" +output: + - archive: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + pattern: "*.tar{.bz2,.xz,.lz,.lzma,.lzo,.zst,.gz,}" + ontologies: &id001 + - edam: "http://edamontology.org/format_25722" + - edam: "http://edamontology.org/format_2573" + - edam: "http://edamontology.org/format_3462" + + - "*.tar${compress_type}": + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + pattern: "*.tar{.bz2,.xz,.lz,.lzma,.lzo,.zst,.gz,}" + ontologies: *id001 + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@jfy133" +maintainers: + - "@jfy133" diff --git a/modules/nf-core/tar/tests/main.nf.test b/modules/nf-core/tar/tests/main.nf.test new file mode 100644 index 00000000000..0c8dc4793b3 --- /dev/null +++ b/modules/nf-core/tar/tests/main.nf.test @@ -0,0 +1,210 @@ +// nf-core modules test tar +nextflow_process { + + name "Test Process TAR" + script "../main.nf" + process "TAR" + + tag "modules" + tag "modules_nfcore" + tag "tar" + tag "untar" + + setup { + run("UNTAR") { + script "../../untar/main.nf" + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/kraken2.tar.gz', checkIfExists: true) + ] + """ + } + } + } + + test("sarscov2 - genome - db - kraken2 - none") { + + when { + process { + """ + input[0] = UNTAR.out.untar + input[1] = '' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.archive[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - genome - db - kraken2 - .gz") { + + when { + process { + """ + input[0] = UNTAR.out.untar + input[1] = '.gz' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.archive[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - genome - db - kraken2 - .bz2") { + + when { + process { + """ + input[0] = UNTAR.out.untar + input[1] = '.bz2' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.archive[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - genome - db - kraken2 - .lzip") { + + when { + process { + """ + input[0] = UNTAR.out.untar + input[1] = '.lz' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.archive[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - genome - db - kraken2 - .lzma") { + + when { + process { + """ + input[0] = UNTAR.out.untar + input[1] = '.lzma' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.archive[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - genome - db - kraken2 - .lzo") { + + when { + process { + """ + input[0] = UNTAR.out.untar + input[1] = '.lzo' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.archive[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - genome - db - kraken2 - .zst") { + + when { + process { + """ + input[0] = UNTAR.out.untar + input[1] = '.zst' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.archive[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - genome - db - kraken2 - stub") { + + options "-stub" + + when { + process { + """ + input[0] = UNTAR.out.untar + input[1] = '.gz' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/tar/tests/main.nf.test.snap b/modules/nf-core/tar/tests/main.nf.test.snap new file mode 100644 index 00000000000..9881e7ee714 --- /dev/null +++ b/modules/nf-core/tar/tests/main.nf.test.snap @@ -0,0 +1,126 @@ +{ + "sarscov2 - genome - db - kraken2 - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tar.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,5244284efaeb7329ac2e3a8c72432461" + ], + "archive": [ + [ + { + "id": "test" + }, + "test.tar.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,5244284efaeb7329ac2e3a8c72432461" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T17:39:29.878210779" + }, + "sarscov2 - genome - db - kraken2 - .bz2": { + "content": [ + "test.tar.bz2", + [ + "versions.yml:md5,5244284efaeb7329ac2e3a8c72432461" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T19:04:03.312488057" + }, + "sarscov2 - genome - db - kraken2 - .zst": { + "content": [ + "test.tar.zst", + [ + "versions.yml:md5,5244284efaeb7329ac2e3a8c72432461" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T19:04:42.327014114" + }, + "sarscov2 - genome - db - kraken2 - .lzip": { + "content": [ + "test.tar.lz", + [ + "versions.yml:md5,5244284efaeb7329ac2e3a8c72432461" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T19:04:12.94431061" + }, + "sarscov2 - genome - db - kraken2 - .lzo": { + "content": [ + "test.tar.lzo", + [ + "versions.yml:md5,5244284efaeb7329ac2e3a8c72432461" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T19:04:32.489438637" + }, + "sarscov2 - genome - db - kraken2 - .lzma": { + "content": [ + "test.tar.lzma", + [ + "versions.yml:md5,5244284efaeb7329ac2e3a8c72432461" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T19:04:22.523407809" + }, + "sarscov2 - genome - db - kraken2 - .gz": { + "content": [ + "test.tar.gz", + [ + "versions.yml:md5,5244284efaeb7329ac2e3a8c72432461" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T19:03:54.163215135" + }, + "sarscov2 - genome - db - kraken2 - none": { + "content": [ + "test.tar", + [ + "versions.yml:md5,5244284efaeb7329ac2e3a8c72432461" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T18:56:50.875583591" + } +} \ No newline at end of file From 283613159e079152f1336cef0db1c836086206e0 Mon Sep 17 00:00:00 2001 From: Daniel Straub <42973691+d4straub@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:47:35 +0200 Subject: [PATCH 07/18] Update MaxBin2: allow multiple abund files (#6776) * allow multiple abund files * Apply suggestions from code review Co-authored-by: James A. Fellows Yates * Update modules/nf-core/maxbin2/main.nf Co-authored-by: James A. Fellows Yates --------- Co-authored-by: James A. Fellows Yates --- modules/nf-core/maxbin2/main.nf | 12 +++++++++++- modules/nf-core/maxbin2/meta.yml | 15 +++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/maxbin2/main.nf b/modules/nf-core/maxbin2/main.nf index 9b7a0fd41c2..845c8e4ed91 100644 --- a/modules/nf-core/maxbin2/main.nf +++ b/modules/nf-core/maxbin2/main.nf @@ -13,6 +13,7 @@ process MAXBIN2 { output: tuple val(meta), path("*.fasta.gz") , emit: binned_fastas tuple val(meta), path("*.summary") , emit: summary + tuple val(meta), path("*.abundance") , emit: abundance , optional: true tuple val(meta), path("*.log.gz") , emit: log tuple val(meta), path("*.marker.gz") , emit: marker_counts tuple val(meta), path("*.noclass.gz") , emit: unbinned_fasta @@ -27,7 +28,16 @@ process MAXBIN2 { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def associate_files = reads ? "-reads $reads" : "-abund $abund" + if (reads && abund) { error("ERROR: MaxBin2 can only accept one of `reads` or `abund`, no both. Check input.") } + def associate_files = "" + if ( reads ) { + associate_files = "-reads $reads" + } else if ( abund instanceof List ) { + associate_files = "-abund ${abund[0]}" + for (i in 2..abund.size()) { associate_files += " -abund$i ${abund[i-1]}" } + } else { + associate_files = "-abund $abund" + } """ mkdir input/ && mv $contigs input/ run_MaxBin.pl \\ diff --git a/modules/nf-core/maxbin2/meta.yml b/modules/nf-core/maxbin2/meta.yml index 538ba07f3fd..9546afb1aaa 100644 --- a/modules/nf-core/maxbin2/meta.yml +++ b/modules/nf-core/maxbin2/meta.yml @@ -35,8 +35,8 @@ input: supply at the same time as abundance files. pattern: "*.fasta" - abund: - type: file - description: Contig abundance files, i.e. reads against each contig. See MaxBin2 + type: list + description: One or more contig abundance files, i.e. average depth of reads against each contig. See MaxBin2 README for details. Do not supply at the same time as read files. output: - binned_fastas: @@ -60,6 +60,17 @@ output: description: Summary file describing which contigs are being classified into which bin pattern: "*.summary" + - abundance: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.abundance": + type: file + description: Abundance of each bin if multiple abundance files were supplied + which bin + pattern: "*.abundance" - log: - meta: type: map From a4835a6fa6e0b9d8ed2459dba29915bf9847c719 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 14 Oct 2024 16:11:14 +0200 Subject: [PATCH 08/18] Fix tar to always follow symlinks due to nxf staging in work dirs (#6778) --- modules/nf-core/tar/main.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/nf-core/tar/main.nf b/modules/nf-core/tar/main.nf index 60f828101b9..4b49fe8ff32 100644 --- a/modules/nf-core/tar/main.nf +++ b/modules/nf-core/tar/main.nf @@ -49,6 +49,7 @@ process TAR { """ tar \\ -c \\ + -h \\ ${compress_flag} \\ ${args} \\ -f ${prefix}.tar${compress_type} \\ From 4026bab16a91b1b0b18d80ff465819ca725f33fd Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Tue, 15 Oct 2024 12:14:02 +0100 Subject: [PATCH 09/18] Fix usage of empty versions channel from trimming (#6781) * Fix usage of empty versions channel from trimming * Fix snap --- subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf | 2 +- subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main.nf | 2 +- .../fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap | 4 ++-- .../nf-core/fastq_qc_trim_filter_setstrandedness/main.nf | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf index ab6cbb320c5..9c355a5e328 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf +++ b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf @@ -160,5 +160,5 @@ workflow FASTQ_FASTQC_UMITOOLS_FASTP { fastqc_trim_html // channel: [ val(meta), [ html ] ] fastqc_trim_zip // channel: [ val(meta), [ zip ] ] - versions = ch_versions.ifEmpty(null) // channel: [ versions.yml ] + versions = ch_versions // channel: [ versions.yml ] } diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main.nf b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main.nf index db2e5b329ca..4ffc3698478 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main.nf +++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main.nf @@ -119,5 +119,5 @@ workflow FASTQ_FASTQC_UMITOOLS_TRIMGALORE { trim_log // channel: [ val(meta), [ txt ] ] trim_read_count // channel: [ val(meta), val(count) ] - versions = ch_versions.ifEmpty(null) // channel: [ versions.yml ] + versions = ch_versions // channel: [ versions.yml ] } diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap index 264ffb2225e..46bf3acf29e 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap @@ -377,7 +377,7 @@ ], [ - null + ] ], "meta": { @@ -521,4 +521,4 @@ }, "timestamp": "2024-07-22T17:06:09.844235" } -} \ No newline at end of file +} 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 c655af41588..05078d23dcb 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf @@ -139,7 +139,7 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { // // SUBWORKFLOW: Read QC, extract UMI and trim adapters with TrimGalore! // - if (trimmer == 'trimgalore') { + if (trimmer == 'trimgalore' && !skip_trimming) { FASTQ_FASTQC_UMITOOLS_TRIMGALORE ( ch_filtered_reads, skip_fastqc, @@ -162,7 +162,7 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { // // SUBWORKFLOW: Read QC, extract UMI and trim adapters with fastp // - if (trimmer == 'fastp') { + if (trimmer == 'fastp' && !skip_trimming) { FASTQ_FASTQC_UMITOOLS_FASTP ( ch_filtered_reads, skip_fastqc, From 0755c617637d21b2c290b26d225debe3070aa109 Mon Sep 17 00:00:00 2001 From: Sateesh_Peri <33637490+sateeshperi@users.noreply.github.com> Date: Tue, 15 Oct 2024 19:06:13 +0530 Subject: [PATCH 10/18] update bismark apps (#6774) * update bismark v0.24.2, rm input stageAs, add stub, update tests+snap * udpate bismark/genomepreparation tests * update bismark/align main to take separate fasta and update tests+snap * update bismark/methylationextractor main, tests+snap * update bismark/coverage2cytosine main, tests+snap * update bismark/deduplicate main, tests+snap * typo fix * bismark/report/ update main, stub tests+snap * bismark/summary update ver, +stub, tests+snap --- modules/nf-core/bismark/align/environment.yml | 2 +- modules/nf-core/bismark/align/main.nf | 25 +- modules/nf-core/bismark/align/meta.yml | 17 +- .../nf-core/bismark/align/tests/main.nf.test | 237 ++++++------------ .../bismark/align/tests/main.nf.test.snap | 63 ++--- modules/nf-core/bismark/align/tests/tags.yml | 2 - .../bismark/coverage2cytosine/environment.yml | 2 +- .../nf-core/bismark/coverage2cytosine/main.nf | 26 +- .../bismark/coverage2cytosine/meta.yml | 17 +- .../coverage2cytosine/tests/main.nf.test | 15 +- .../coverage2cytosine/tests/main.nf.test.snap | 10 +- .../bismark/coverage2cytosine/tests/tags.yml | 2 - .../bismark/deduplicate/environment.yml | 2 +- modules/nf-core/bismark/deduplicate/main.nf | 23 +- modules/nf-core/bismark/deduplicate/meta.yml | 1 + .../bismark/deduplicate/tests/main.nf.test | 10 +- .../deduplicate/tests/main.nf.test.snap | 10 +- .../bismark/deduplicate/tests/tags.yml | 2 - .../bismark/genomepreparation/environment.yml | 2 +- .../nf-core/bismark/genomepreparation/main.nf | 27 +- .../bismark/genomepreparation/meta.yml | 13 +- .../genomepreparation/tests/main.nf.test | 41 ++- .../genomepreparation/tests/main.nf.test.snap | 129 +++++++--- .../bismark/genomepreparation/tests/tags.yml | 2 - .../methylationextractor/environment.yml | 2 +- .../bismark/methylationextractor/main.nf | 22 +- .../bismark/methylationextractor/meta.yml | 8 +- .../methylationextractor/tests/main.nf.test | 12 +- .../tests/main.nf.test.snap | 38 +-- .../methylationextractor/tests/tags.yml | 2 - .../nf-core/bismark/report/environment.yml | 2 +- modules/nf-core/bismark/report/main.nf | 17 +- modules/nf-core/bismark/report/meta.yml | 1 + .../nf-core/bismark/report/tests/main.nf.test | 38 ++- .../bismark/report/tests/main.nf.test.snap | 13 +- modules/nf-core/bismark/report/tests/tags.yml | 2 - .../nf-core/bismark/summary/environment.yml | 2 +- modules/nf-core/bismark/summary/main.nf | 21 +- modules/nf-core/bismark/summary/meta.yml | 3 +- .../bismark/summary/tests/main.nf.test | 25 +- .../bismark/summary/tests/main.nf.test.snap | 8 +- .../nf-core/bismark/summary/tests/tags.yml | 2 - 42 files changed, 520 insertions(+), 378 deletions(-) delete mode 100644 modules/nf-core/bismark/align/tests/tags.yml delete mode 100644 modules/nf-core/bismark/coverage2cytosine/tests/tags.yml delete mode 100644 modules/nf-core/bismark/deduplicate/tests/tags.yml delete mode 100644 modules/nf-core/bismark/genomepreparation/tests/tags.yml delete mode 100644 modules/nf-core/bismark/methylationextractor/tests/tags.yml delete mode 100644 modules/nf-core/bismark/report/tests/tags.yml delete mode 100644 modules/nf-core/bismark/summary/tests/tags.yml diff --git a/modules/nf-core/bismark/align/environment.yml b/modules/nf-core/bismark/align/environment.yml index fbc3fdf202c..9bc4753bdab 100644 --- a/modules/nf-core/bismark/align/environment.yml +++ b/modules/nf-core/bismark/align/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::bismark=0.24.0 + - bioconda::bismark=0.24.2 diff --git a/modules/nf-core/bismark/align/main.nf b/modules/nf-core/bismark/align/main.nf index 3487979ec95..f6f04b93695 100644 --- a/modules/nf-core/bismark/align/main.nf +++ b/modules/nf-core/bismark/align/main.nf @@ -4,17 +4,18 @@ process BISMARK_ALIGN { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bismark:0.24.0--hdfd78af_0' : - 'biocontainers/bismark:0.24.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bismark:0.24.2--hdfd78af_0' : + 'biocontainers/bismark:0.24.2--hdfd78af_0' }" input: tuple val(meta), path(reads) - path index + tuple val(meta2), path(fasta) + tuple val(meta3), path(index) output: tuple val(meta), path("*bam") , emit: bam tuple val(meta), path("*report.txt"), emit: report - tuple val(meta), path("*fq.gz") , optional:true, emit: unmapped + tuple val(meta), path("*fq.gz") , emit: unmapped, optional: true path "versions.yml" , emit: versions when: @@ -54,8 +55,9 @@ process BISMARK_ALIGN { args += " --multicore ${ccore}" } } - """ + mv $fasta $index/ + bismark \\ $fastq \\ --genome $index \\ @@ -67,4 +69,17 @@ process BISMARK_ALIGN { bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bam + touch ${prefix}.report.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/bismark/align/meta.yml b/modules/nf-core/bismark/align/meta.yml index e0a979b39e1..fa794b79303 100644 --- a/modules/nf-core/bismark/align/meta.yml +++ b/modules/nf-core/bismark/align/meta.yml @@ -31,7 +31,21 @@ input: description: | List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. - - - index: + - - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: | + Reference genome FASTA file + - - meta3: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - index: type: directory description: Bismark genome index directory pattern: "BismarkIndex" @@ -75,3 +89,4 @@ authors: - "@phue" maintainers: - "@phue" + - "@sateeshperi" diff --git a/modules/nf-core/bismark/align/tests/main.nf.test b/modules/nf-core/bismark/align/tests/main.nf.test index d6fac9f8821..2ee01b84ef4 100644 --- a/modules/nf-core/bismark/align/tests/main.nf.test +++ b/modules/nf-core/bismark/align/tests/main.nf.test @@ -3,264 +3,181 @@ nextflow_process { name "Test Process BISMARK_ALIGN" script "../main.nf" process "BISMARK_ALIGN" + tag "modules" tag "modules_nfcore" tag "bismark" tag "bismark/align" tag "bismark/genomepreparation" - test("Should run bismark/align (bowtie2 single end) without failures") { - config './nextflow_bowtie2.config' - - setup { - run("BISMARK_GENOMEPREPARATION") { - script "../../genomepreparation/main.nf" - process { - """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) - """ - } + setup { + run("BISMARK_GENOMEPREPARATION") { + script "../../genomepreparation/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + """ } } + } + + test("bowtie2 single-end / sarscov2 genome [fasta]") { + config './nextflow_bowtie2.config' when { - params { - outdir = "$outputDir" - } process { """ - input[0] = [ + input[0] = Channel.of([ [ id:'test', single_end:true ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true) - ] - input[1] = BISMARK_GENOMEPREPARATION.out.index + ]) + input[1] = Channel.of([ [ id:'sarscov2'], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]) + input[2] = BISMARK_GENOMEPREPARATION.out.index """ } } then { assertAll( - { assert process.success }, - { - with(process.out.report) { - with(get(0)) { - assert get(1).endsWith("bt2_SE_report.txt") - assert path(get(1)).readLines().last().contains("Bismark completed in") - } + { assert process.success }, + { assert snapshot( + process.out.bam.collect { bam(it[1]).getReadsMD5() }, + file(process.out.report[0][1]).readLines().contains("Number of alignments with a unique best hit from the different alignments:\t5009"), + process.out.unmapped, + process.out.versions + ).match() } - }, - { assert snapshot( - process.out.bam.collect { bam(it[1]).getReadsMD5() }, - process.out.unmapped, - process.out.versions - ).match() - } ) } } - test("Should run bismark/align (bowtie2 paired end) without failures") { + test("bowtie2 paired-end / sarscov2 genome [fasta]") { config './nextflow_bowtie2.config' - setup { - run("BISMARK_GENOMEPREPARATION") { - script "../../genomepreparation/main.nf" - process { - """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) - """ - } - } - } when { - params { - outdir = "$outputDir" - } process { """ - input[0] = [ - [ id:'test', single_end:false ], + input[0] = Channel.of([ + [ id:'test', single_end:true ], [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_2.fastq.gz', checkIfExists: true) ] - ] - input[1] = BISMARK_GENOMEPREPARATION.out.index + ]) + input[1] = Channel.of([ [ id:'sarscov2'], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]) + input[2] = BISMARK_GENOMEPREPARATION.out.index """ } } then { assertAll( - { assert process.success }, - { - with(process.out.report) { - with(get(0)) { - assert get(1).endsWith("_bt2_PE_report.txt") - assert path(get(1)).readLines().last().contains("Bismark completed in") - } + { assert process.success }, + { assert snapshot( + process.out.bam.collect { bam(it[1][0]).getReadsMD5() }, + file(process.out.report[0][1][0]).readLines().contains("Number of alignments with a unique best hit from the different alignments:\t5009"), + process.out.unmapped, + process.out.versions + ).match() } - }, - { assert snapshot( - process.out.bam.collect { bam(it[1]).getReadsMD5() }, - process.out.unmapped, - process.out.versions - ).match() - } ) } } - test("Should run bismark/align (hisat2 single end) without failures") { + test("hisat2 single-end / sarscov2 genome [fasta]") { config './nextflow_hisat2.config' - setup { - run("BISMARK_GENOMEPREPARATION") { - script "../../genomepreparation/main.nf" - process { - """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) - """ - } - } - } - when { - params { - outdir = "$outputDir" - } process { """ - input[0] = [ + input[0] = Channel.of([ [ id:'test', single_end:true ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true) - ] - input[1] = BISMARK_GENOMEPREPARATION.out.index + ]) + input[1] = Channel.of([ [ id:'sarscov2'], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]) + input[2] = BISMARK_GENOMEPREPARATION.out.index """ } } then { assertAll( - { assert process.success }, - { - with(process.out.report) { - with(get(0)) { - assert get(1).endsWith("hisat2_SE_report.txt") - assert path(get(1)).readLines().last().contains("Bismark completed in") - } + { assert process.success }, + { assert snapshot( + process.out.bam.collect { bam(it[1]).getReadsMD5() }, + file(process.out.report[0][1]).readLines().contains("Number of alignments with a unique best hit from the different alignments:\t5009"), + process.out.unmapped, + process.out.versions + ).match() } - }, - { assert snapshot( - process.out.bam.collect { bam(it[1]).getReadsMD5() }, - process.out.unmapped, - process.out.versions - ).match() - } ) } } - test("Should run bismark/align (hisat2 paired end) without failures") { + test("hisat2 paired-end / sarscov2 genome [fasta]") { config './nextflow_hisat2.config' - setup { - run("BISMARK_GENOMEPREPARATION") { - script "../../genomepreparation/main.nf" - process { - """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) - """ - } - } - } - when { - params { - outdir = "$outputDir" - } process { """ - input[0] = [ - [ id:'test', single_end:false ], + input[0] = Channel.of([ + [ id:'test', single_end:true ], [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_2.fastq.gz', checkIfExists: true) ] - ] - input[1] = BISMARK_GENOMEPREPARATION.out.index + ]) + input[1] = Channel.of([ [ id:'sarscov2'], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]) + input[2] = BISMARK_GENOMEPREPARATION.out.index """ } } then { assertAll( - { assert process.success }, - { - with(process.out.report) { - with(get(0)) { - assert get(1).endsWith("hisat2_PE_report.txt") - assert path(get(1)).readLines().last().contains("Bismark completed in") - } + { assert process.success }, + { assert snapshot( + process.out.bam.collect { bam(it[1][0]).getReadsMD5() }, + file(process.out.report[0][1][0]).readLines().contains("Number of alignments with a unique best hit from the different alignments:\t5009"), + process.out.unmapped, + process.out.versions + ).match() } - }, - { assert snapshot( - process.out.bam.collect { bam(it[1]).getReadsMD5() }, - process.out.unmapped, - process.out.versions - ).match() - } ) } } - test("Should run bismark/align (minimap2 single end) without failures") { + test("minimap2 single-end / sarscov2 genome [fasta]") { config './nextflow_minimap2.config' - setup { - run("BISMARK_GENOMEPREPARATION") { - script "../../genomepreparation/main.nf" - process { - """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) - """ - } - } - } - when { - params { - outdir = "$outputDir" - } process { """ - input[0] = [ + input[0] = Channel.of([ [ id:'test', single_end:true ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true) - ] - input[1] = BISMARK_GENOMEPREPARATION.out.index + ]) + input[1] = Channel.of([ [ id:'sarscov2'], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]) + input[2] = BISMARK_GENOMEPREPARATION.out.index """ } } then { assertAll( - { assert process.success }, - { - with(process.out.report) { - with(get(0)) { - assert get(1).endsWith("mm2_SE_report.txt") - assert path(get(1)).readLines().last().contains("Bismark completed in") - } + { assert process.success }, + { assert snapshot( + process.out.bam.collect { bam(it[1]).getReadsMD5() }, + file(process.out.report[0][1]).readLines().contains("Number of alignments with a unique best hit from the different alignments:\t5047"), + process.out.unmapped, + process.out.versions + ).match() } - }, - { assert snapshot( - process.out.bam.collect { bam(it[1]).getReadsMD5() }, - process.out.unmapped, - process.out.versions - ).match() - } ) } } + } diff --git a/modules/nf-core/bismark/align/tests/main.nf.test.snap b/modules/nf-core/bismark/align/tests/main.nf.test.snap index 66b89918bf8..3842cd6d91d 100644 --- a/modules/nf-core/bismark/align/tests/main.nf.test.snap +++ b/modules/nf-core/bismark/align/tests/main.nf.test.snap @@ -1,92 +1,97 @@ { - "Should run bismark/align (hisat2 paired end) without failures": { + "bowtie2 paired-end / sarscov2 genome [fasta]": { "content": [ [ - "fb9d284aec4b2c727af3c5ffd77c6381" + "936c0d5ce713130113e99e09a5b53afd" ], + true, [ ], [ - "versions.yml:md5,908dc37f43469e417f419f1173047da5" + "versions.yml:md5,50c4bb6313fda6a7c6212ceb5dd638f5" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-08-03T19:23:02.893088" + "timestamp": "2024-10-13T17:35:23.192447327" }, - "Should run bismark/align (bowtie2 paired end) without failures": { + "hisat2 paired-end / sarscov2 genome [fasta]": { "content": [ [ - "458c5350c3f96a8dde710985bfb62827" + "936c0d5ce713130113e99e09a5b53afd" ], + true, [ ], [ - "versions.yml:md5,908dc37f43469e417f419f1173047da5" + "versions.yml:md5,50c4bb6313fda6a7c6212ceb5dd638f5" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-08-03T19:22:24.892023" + "timestamp": "2024-10-13T17:36:10.145541495" }, - "Should run bismark/align (hisat2 single end) without failures": { + "minimap2 single-end / sarscov2 genome [fasta]": { "content": [ [ - "936c0d5ce713130113e99e09a5b53afd" + "d354e6c6d6a06e36630590de8f27031a" ], + true, [ ], [ - "versions.yml:md5,908dc37f43469e417f419f1173047da5" + "versions.yml:md5,50c4bb6313fda6a7c6212ceb5dd638f5" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-08-03T19:22:43.401686" + "timestamp": "2024-10-13T17:36:32.094369612" }, - "Should run bismark/align (minimap2 single end) without failures": { + "bowtie2 single-end / sarscov2 genome [fasta]": { "content": [ [ - "d354e6c6d6a06e36630590de8f27031a" + "936c0d5ce713130113e99e09a5b53afd" ], + true, [ ], [ - "versions.yml:md5,908dc37f43469e417f419f1173047da5" + "versions.yml:md5,50c4bb6313fda6a7c6212ceb5dd638f5" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-08-03T19:23:20.046695" + "timestamp": "2024-10-13T17:34:58.431003479" }, - "Should run bismark/align (bowtie2 single end) without failures": { + "hisat2 single-end / sarscov2 genome [fasta]": { "content": [ [ "936c0d5ce713130113e99e09a5b53afd" ], + true, [ ], [ - "versions.yml:md5,908dc37f43469e417f419f1173047da5" + "versions.yml:md5,50c4bb6313fda6a7c6212ceb5dd638f5" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-08-03T19:22:05.435199" + "timestamp": "2024-10-13T17:35:45.557280528" } } \ No newline at end of file diff --git a/modules/nf-core/bismark/align/tests/tags.yml b/modules/nf-core/bismark/align/tests/tags.yml deleted file mode 100644 index dd99d8190f5..00000000000 --- a/modules/nf-core/bismark/align/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -bismark/align: - - modules/nf-core/bismark/align/** diff --git a/modules/nf-core/bismark/coverage2cytosine/environment.yml b/modules/nf-core/bismark/coverage2cytosine/environment.yml index fbc3fdf202c..9bc4753bdab 100644 --- a/modules/nf-core/bismark/coverage2cytosine/environment.yml +++ b/modules/nf-core/bismark/coverage2cytosine/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::bismark=0.24.0 + - bioconda::bismark=0.24.2 diff --git a/modules/nf-core/bismark/coverage2cytosine/main.nf b/modules/nf-core/bismark/coverage2cytosine/main.nf index 0ad2d434bca..37ce2e5c518 100644 --- a/modules/nf-core/bismark/coverage2cytosine/main.nf +++ b/modules/nf-core/bismark/coverage2cytosine/main.nf @@ -4,15 +4,16 @@ process BISMARK_COVERAGE2CYTOSINE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bismark:0.24.0--hdfd78af_0' : - 'biocontainers/bismark:0.24.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bismark:0.24.2--hdfd78af_0' : + 'biocontainers/bismark:0.24.2--hdfd78af_0' }" input: tuple val(meta), path(coverage_file) - path index + tuple val(meta2), path(fasta) + tuple val(meta3), path(index) output: - tuple val(meta), path("*.cov.gz"), optional: true , emit: coverage + tuple val(meta), path("*.cov.gz") , emit: coverage, optional: true tuple val(meta), path("*report.txt.gz") , emit: report tuple val(meta), path("*cytosine_context_summary.txt") , emit: summary path "versions.yml" , emit: versions @@ -23,8 +24,9 @@ process BISMARK_COVERAGE2CYTOSINE { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - """ + mv $fasta $index/ + coverage2cytosine \\ $coverage_file \\ --genome $index \\ @@ -37,4 +39,18 @@ process BISMARK_COVERAGE2CYTOSINE { bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.cov.gz + touch ${prefix}.report.txt.gz + touch ${prefix}.cytosine_context_summary.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/bismark/coverage2cytosine/meta.yml b/modules/nf-core/bismark/coverage2cytosine/meta.yml index f35117f4f27..705b57f51b9 100644 --- a/modules/nf-core/bismark/coverage2cytosine/meta.yml +++ b/modules/nf-core/bismark/coverage2cytosine/meta.yml @@ -31,7 +31,21 @@ input: type: file description: | A file containing methylation calls per position, in the format produced by bismark_methylation_extractor. - - - index: + - - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: | + Reference genome FASTA file + - - meta3: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - index: type: directory description: Bismark genome index directory pattern: "BismarkIndex" @@ -75,3 +89,4 @@ authors: - "@ewels" maintainers: - "@ewels" + - "@sateeshperi" diff --git a/modules/nf-core/bismark/coverage2cytosine/tests/main.nf.test b/modules/nf-core/bismark/coverage2cytosine/tests/main.nf.test index 3ed5c0d2d37..ac4f7ae265d 100644 --- a/modules/nf-core/bismark/coverage2cytosine/tests/main.nf.test +++ b/modules/nf-core/bismark/coverage2cytosine/tests/main.nf.test @@ -3,6 +3,7 @@ nextflow_process { name "Test Process BISMARK_COVERAGE2CYTOSINE" script "../main.nf" process "BISMARK_COVERAGE2CYTOSINE" + tag "modules" tag "modules_nfcore" tag "bismark" @@ -10,14 +11,17 @@ nextflow_process { tag "bismark/methylationextractor" tag "bismark/genomepreparation" - test("Should run bismark/coverage2cytosine without failures") { + test("sarscov2 genome [fasta] | sarscov2 paired-end methylated [bam]") { setup { run("BISMARK_GENOMEPREPARATION") { script "../../genomepreparation/main.nf" process { """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) """ } } @@ -26,10 +30,10 @@ nextflow_process { script "../../methylationextractor/main.nf" process { """ - input[0] = [ + input[0] = Channel.of([ [ id:'test', single_end:false ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.methylated.bam', checkIfExists: true) - ] + ]) input[1] = BISMARK_GENOMEPREPARATION.out.index """ } @@ -40,7 +44,8 @@ nextflow_process { process { """ input[0] = BISMARK_METHYLATIONEXTRACTOR.out.coverage - input[1] = BISMARK_GENOMEPREPARATION.out.index + input[1] = input[1] = Channel.of([ [ id:'sarscov2'], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]) + input[2] = BISMARK_GENOMEPREPARATION.out.index """ } } diff --git a/modules/nf-core/bismark/coverage2cytosine/tests/main.nf.test.snap b/modules/nf-core/bismark/coverage2cytosine/tests/main.nf.test.snap index e7d2c195d1e..58c029867dd 100644 --- a/modules/nf-core/bismark/coverage2cytosine/tests/main.nf.test.snap +++ b/modules/nf-core/bismark/coverage2cytosine/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "Should run bismark/coverage2cytosine without failures": { + "sarscov2 genome [fasta] | sarscov2 paired-end methylated [bam]": { "content": [ { "0": [ @@ -24,7 +24,7 @@ ] ], "3": [ - "versions.yml:md5,9ad535f8f13a38c9bc3f0975fbfee39c" + "versions.yml:md5,d68e9a778e9c156a80869e880c0518c8" ], "coverage": [ @@ -48,14 +48,14 @@ ] ], "versions": [ - "versions.yml:md5,9ad535f8f13a38c9bc3f0975fbfee39c" + "versions.yml:md5,d68e9a778e9c156a80869e880c0518c8" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "23.10.4" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-02T10:10:27.945147685" + "timestamp": "2024-10-13T18:20:45.406703493" } } \ No newline at end of file diff --git a/modules/nf-core/bismark/coverage2cytosine/tests/tags.yml b/modules/nf-core/bismark/coverage2cytosine/tests/tags.yml deleted file mode 100644 index aec54b6754d..00000000000 --- a/modules/nf-core/bismark/coverage2cytosine/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -bismark/coverage2cytosine: - - modules/nf-core/bismark/coverage2cytosine/** diff --git a/modules/nf-core/bismark/deduplicate/environment.yml b/modules/nf-core/bismark/deduplicate/environment.yml index fbc3fdf202c..9bc4753bdab 100644 --- a/modules/nf-core/bismark/deduplicate/environment.yml +++ b/modules/nf-core/bismark/deduplicate/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::bismark=0.24.0 + - bioconda::bismark=0.24.2 diff --git a/modules/nf-core/bismark/deduplicate/main.nf b/modules/nf-core/bismark/deduplicate/main.nf index e41b601ba9f..2da9312c9d9 100644 --- a/modules/nf-core/bismark/deduplicate/main.nf +++ b/modules/nf-core/bismark/deduplicate/main.nf @@ -4,8 +4,8 @@ process BISMARK_DEDUPLICATE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bismark:0.24.0--hdfd78af_0' : - 'biocontainers/bismark:0.24.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bismark:0.24.2--hdfd78af_0' : + 'biocontainers/bismark:0.24.2--hdfd78af_0' }" input: tuple val(meta), path(bam) @@ -19,9 +19,9 @@ process BISMARK_DEDUPLICATE { task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - def seqtype = meta.single_end ? '-s' : '-p' + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def seqtype = meta.single_end ? '-s' : '-p' """ deduplicate_bismark \\ $args \\ @@ -33,4 +33,17 @@ process BISMARK_DEDUPLICATE { bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.deduplicated.bam + touch ${prefix}.deduplication_report.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/bismark/deduplicate/meta.yml b/modules/nf-core/bismark/deduplicate/meta.yml index 31ffeb945b1..5de7c2102a6 100644 --- a/modules/nf-core/bismark/deduplicate/meta.yml +++ b/modules/nf-core/bismark/deduplicate/meta.yml @@ -62,3 +62,4 @@ authors: - "@phue" maintainers: - "@phue" + - "@sateeshperi" diff --git a/modules/nf-core/bismark/deduplicate/tests/main.nf.test b/modules/nf-core/bismark/deduplicate/tests/main.nf.test index 1f67b7d2585..a82b4b73f7c 100644 --- a/modules/nf-core/bismark/deduplicate/tests/main.nf.test +++ b/modules/nf-core/bismark/deduplicate/tests/main.nf.test @@ -3,23 +3,21 @@ nextflow_process { name "Test Process BISMARK_DEDUPLICATE" script "../main.nf" process "BISMARK_DEDUPLICATE" + tag "bismark" tag "bismark/deduplicate" tag "modules" tag "modules_nfcore" - test("Should run bismark/deduplicate without failures") { + test("sarscov2 paired-end methylated [bam]") { when { - params { - outdir = "$outputDir" - } process { """ - input[0] = [ + input[0] = Channel.of([ [ id:'test', single_end:false ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.methylated.bam', checkIfExists: true) - ] + ]) """ } } diff --git a/modules/nf-core/bismark/deduplicate/tests/main.nf.test.snap b/modules/nf-core/bismark/deduplicate/tests/main.nf.test.snap index 7e4aea38990..98e72559b96 100644 --- a/modules/nf-core/bismark/deduplicate/tests/main.nf.test.snap +++ b/modules/nf-core/bismark/deduplicate/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "Should run bismark/deduplicate without failures": { + "sarscov2 paired-end methylated [bam]": { "content": [ [ "8036b4b920354438ddd1871c88f5088" @@ -14,13 +14,13 @@ ] ], [ - "versions.yml:md5,1859cf7d4e598dec0678f073c9e2f539" + "versions.yml:md5,80ac07cad7c9ea075ffd7b75d74c39cd" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-08-03T19:28:29.457009" + "timestamp": "2024-10-13T18:31:09.804719461" } } \ No newline at end of file diff --git a/modules/nf-core/bismark/deduplicate/tests/tags.yml b/modules/nf-core/bismark/deduplicate/tests/tags.yml deleted file mode 100644 index 35ac3505927..00000000000 --- a/modules/nf-core/bismark/deduplicate/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -bismark/deduplicate: - - modules/nf-core/bismark/deduplicate/** diff --git a/modules/nf-core/bismark/genomepreparation/environment.yml b/modules/nf-core/bismark/genomepreparation/environment.yml index fbc3fdf202c..9bc4753bdab 100644 --- a/modules/nf-core/bismark/genomepreparation/environment.yml +++ b/modules/nf-core/bismark/genomepreparation/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::bismark=0.24.0 + - bioconda::bismark=0.24.2 diff --git a/modules/nf-core/bismark/genomepreparation/main.nf b/modules/nf-core/bismark/genomepreparation/main.nf index 7f5a2eeedfb..e8b9fedae20 100644 --- a/modules/nf-core/bismark/genomepreparation/main.nf +++ b/modules/nf-core/bismark/genomepreparation/main.nf @@ -4,15 +4,15 @@ process BISMARK_GENOMEPREPARATION { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bismark:0.24.0--hdfd78af_0' : - 'biocontainers/bismark:0.24.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bismark:0.24.2--hdfd78af_0' : + 'biocontainers/bismark:0.24.2--hdfd78af_0' }" input: - path fasta, stageAs: "BismarkIndex/*" + tuple val(meta), path(fasta) output: - path "BismarkIndex" , emit: index - path "versions.yml" , emit: versions + tuple val(meta), path("BismarkIndex"), emit: index + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -20,10 +20,27 @@ process BISMARK_GENOMEPREPARATION { script: def args = task.ext.args ?: '' """ + mkdir BismarkIndex + mv $fasta BismarkIndex/ + bismark_genome_preparation \\ $args \\ BismarkIndex + rm BismarkIndex/$fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + """ + mkdir BismarkIndex + touch BismarkIndex/$fasta + cat <<-END_VERSIONS > versions.yml "${task.process}": bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') diff --git a/modules/nf-core/bismark/genomepreparation/meta.yml b/modules/nf-core/bismark/genomepreparation/meta.yml index 18ca34a9f8d..c1880271b15 100644 --- a/modules/nf-core/bismark/genomepreparation/meta.yml +++ b/modules/nf-core/bismark/genomepreparation/meta.yml @@ -23,11 +23,21 @@ tools: licence: ["GPL-3.0-or-later"] identifier: biotools:bismark input: - - - fasta: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: type: file description: Input genome fasta file output: - index: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - BismarkIndex: type: directory description: Bismark genome index directory @@ -41,3 +51,4 @@ authors: - "@phue" maintainers: - "@phue" + - "@sateeshperi" diff --git a/modules/nf-core/bismark/genomepreparation/tests/main.nf.test b/modules/nf-core/bismark/genomepreparation/tests/main.nf.test index bd9b95e38fe..3ba99722783 100644 --- a/modules/nf-core/bismark/genomepreparation/tests/main.nf.test +++ b/modules/nf-core/bismark/genomepreparation/tests/main.nf.test @@ -3,31 +3,54 @@ nextflow_process { name "Test Process BISMARK_GENOMEPREPARATION" script "../main.nf" process "BISMARK_GENOMEPREPARATION" - tag "bismark" - tag "bismark/genomepreparation" + tag "modules" + tag "bismark/genomepreparation" + tag "bismark" tag "modules_nfcore" - test("Should run bismark/genomepreparation without failures") { + test("sarscov2 genome [fasta]") { when { - params { - outdir = "$outputDir" - } process { """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[0] = Channel.of([ + [ id:'test' ], // 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() } + { assert process.success }, + { assert snapshot(process.out).match() } ) } + } + + test("sarscov2 genome [fasta] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // 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/bismark/genomepreparation/tests/main.nf.test.snap b/modules/nf-core/bismark/genomepreparation/tests/main.nf.test.snap index a343efad4c4..caf8afc8891 100644 --- a/modules/nf-core/bismark/genomepreparation/tests/main.nf.test.snap +++ b/modules/nf-core/bismark/genomepreparation/tests/main.nf.test.snap @@ -1,65 +1,114 @@ { - "Should run bismark/genomepreparation without failures": { + "sarscov2 genome [fasta] - stub": { "content": [ { "0": [ [ + { + "id": "test" + }, + [ + "genome.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "1": [ + "versions.yml:md5,4d9a42530334575b18a6bde4ae72f7d6" + ], + "index": [ + [ + { + "id": "test" + }, + [ + "genome.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,4d9a42530334575b18a6bde4ae72f7d6" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-13T08:26:30.051110425" + }, + "sarscov2 genome [fasta]": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, [ [ - "BS_CT.1.bt2:md5,10a8854e5eeb95629f46d24b0d8da70c", - "BS_CT.2.bt2:md5,bc5d407e6fce3e1cdb4b23ab2a20f707", - "BS_CT.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", - "BS_CT.4.bt2:md5,6c4f549575e5882ff3a97ae10ae2e7be", - "BS_CT.rev.1.bt2:md5,d37d586b41b6a36efb25839961d242cb", - "BS_CT.rev.2.bt2:md5,48bf400de85cd7324fbf6bf38fe2dc95", - "genome_mfa.CT_conversion.fa:md5,903b9f357eea4a5f36e21e78e0fe1dfa" - ], - [ - "BS_GA.1.bt2:md5,a6fa4068ed10872568f32568c66cb600", - "BS_GA.2.bt2:md5,fc5b634e2f5137801e3801d62ad05f74", - "BS_GA.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", - "BS_GA.4.bt2:md5,b1e855685ed634daa7df8e180c9b2fc4", - "BS_GA.rev.1.bt2:md5,17f51e65f44477962226a83b369b2bc4", - "BS_GA.rev.2.bt2:md5,d36044c5dfe37af0411f60d446585bc6", - "genome_mfa.GA_conversion.fa:md5,e529375ec2039112161465b5169fcd59" + [ + "BS_CT.1.bt2:md5,10a8854e5eeb95629f46d24b0d8da70c", + "BS_CT.2.bt2:md5,bc5d407e6fce3e1cdb4b23ab2a20f707", + "BS_CT.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", + "BS_CT.4.bt2:md5,6c4f549575e5882ff3a97ae10ae2e7be", + "BS_CT.rev.1.bt2:md5,d37d586b41b6a36efb25839961d242cb", + "BS_CT.rev.2.bt2:md5,48bf400de85cd7324fbf6bf38fe2dc95", + "genome_mfa.CT_conversion.fa:md5,903b9f357eea4a5f36e21e78e0fe1dfa" + ], + [ + "BS_GA.1.bt2:md5,a6fa4068ed10872568f32568c66cb600", + "BS_GA.2.bt2:md5,fc5b634e2f5137801e3801d62ad05f74", + "BS_GA.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", + "BS_GA.4.bt2:md5,b1e855685ed634daa7df8e180c9b2fc4", + "BS_GA.rev.1.bt2:md5,17f51e65f44477962226a83b369b2bc4", + "BS_GA.rev.2.bt2:md5,d36044c5dfe37af0411f60d446585bc6", + "genome_mfa.GA_conversion.fa:md5,e529375ec2039112161465b5169fcd59" + ] ] - ], - "genome.fasta:md5,6e9fe4042a72f2345f644f239272b7e6" + ] ] ], "1": [ - "versions.yml:md5,92d3bda85e8d9517fce396c615141003" + "versions.yml:md5,4d9a42530334575b18a6bde4ae72f7d6" ], "index": [ [ + { + "id": "test" + }, [ [ - "BS_CT.1.bt2:md5,10a8854e5eeb95629f46d24b0d8da70c", - "BS_CT.2.bt2:md5,bc5d407e6fce3e1cdb4b23ab2a20f707", - "BS_CT.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", - "BS_CT.4.bt2:md5,6c4f549575e5882ff3a97ae10ae2e7be", - "BS_CT.rev.1.bt2:md5,d37d586b41b6a36efb25839961d242cb", - "BS_CT.rev.2.bt2:md5,48bf400de85cd7324fbf6bf38fe2dc95", - "genome_mfa.CT_conversion.fa:md5,903b9f357eea4a5f36e21e78e0fe1dfa" - ], - [ - "BS_GA.1.bt2:md5,a6fa4068ed10872568f32568c66cb600", - "BS_GA.2.bt2:md5,fc5b634e2f5137801e3801d62ad05f74", - "BS_GA.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", - "BS_GA.4.bt2:md5,b1e855685ed634daa7df8e180c9b2fc4", - "BS_GA.rev.1.bt2:md5,17f51e65f44477962226a83b369b2bc4", - "BS_GA.rev.2.bt2:md5,d36044c5dfe37af0411f60d446585bc6", - "genome_mfa.GA_conversion.fa:md5,e529375ec2039112161465b5169fcd59" + [ + "BS_CT.1.bt2:md5,10a8854e5eeb95629f46d24b0d8da70c", + "BS_CT.2.bt2:md5,bc5d407e6fce3e1cdb4b23ab2a20f707", + "BS_CT.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", + "BS_CT.4.bt2:md5,6c4f549575e5882ff3a97ae10ae2e7be", + "BS_CT.rev.1.bt2:md5,d37d586b41b6a36efb25839961d242cb", + "BS_CT.rev.2.bt2:md5,48bf400de85cd7324fbf6bf38fe2dc95", + "genome_mfa.CT_conversion.fa:md5,903b9f357eea4a5f36e21e78e0fe1dfa" + ], + [ + "BS_GA.1.bt2:md5,a6fa4068ed10872568f32568c66cb600", + "BS_GA.2.bt2:md5,fc5b634e2f5137801e3801d62ad05f74", + "BS_GA.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", + "BS_GA.4.bt2:md5,b1e855685ed634daa7df8e180c9b2fc4", + "BS_GA.rev.1.bt2:md5,17f51e65f44477962226a83b369b2bc4", + "BS_GA.rev.2.bt2:md5,d36044c5dfe37af0411f60d446585bc6", + "genome_mfa.GA_conversion.fa:md5,e529375ec2039112161465b5169fcd59" + ] ] - ], - "genome.fasta:md5,6e9fe4042a72f2345f644f239272b7e6" + ] ] ], "versions": [ - "versions.yml:md5,92d3bda85e8d9517fce396c615141003" + "versions.yml:md5,4d9a42530334575b18a6bde4ae72f7d6" ] } ], - "timestamp": "2023-10-17T16:14:41.509500586" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-13T08:26:20.352083082" } } \ No newline at end of file diff --git a/modules/nf-core/bismark/genomepreparation/tests/tags.yml b/modules/nf-core/bismark/genomepreparation/tests/tags.yml deleted file mode 100644 index 279f91bba2d..00000000000 --- a/modules/nf-core/bismark/genomepreparation/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -bismark/genomepreparation: - - modules/nf-core/bismark/genomepreparation/** diff --git a/modules/nf-core/bismark/methylationextractor/environment.yml b/modules/nf-core/bismark/methylationextractor/environment.yml index fbc3fdf202c..9bc4753bdab 100644 --- a/modules/nf-core/bismark/methylationextractor/environment.yml +++ b/modules/nf-core/bismark/methylationextractor/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::bismark=0.24.0 + - bioconda::bismark=0.24.2 diff --git a/modules/nf-core/bismark/methylationextractor/main.nf b/modules/nf-core/bismark/methylationextractor/main.nf index 44395155492..3a71d35deed 100644 --- a/modules/nf-core/bismark/methylationextractor/main.nf +++ b/modules/nf-core/bismark/methylationextractor/main.nf @@ -4,12 +4,12 @@ process BISMARK_METHYLATIONEXTRACTOR { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bismark:0.24.0--hdfd78af_0' : - 'biocontainers/bismark:0.24.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bismark:0.24.2--hdfd78af_0' : + 'biocontainers/bismark:0.24.2--hdfd78af_0' }" input: tuple val(meta), path(bam) - path index + tuple val(meta2), path(index) output: tuple val(meta), path("*.bedGraph.gz") , emit: bedgraph @@ -49,4 +49,20 @@ process BISMARK_METHYLATIONEXTRACTOR { bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bedGraph.gz + touch ${prefix}.txt.gz + touch ${prefix}.cov.gz + touch ${prefix}_splitting_report.txt + touch ${prefix}.M-bias.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/bismark/methylationextractor/meta.yml b/modules/nf-core/bismark/methylationextractor/meta.yml index 673cb1ca557..2aaefdfab16 100644 --- a/modules/nf-core/bismark/methylationextractor/meta.yml +++ b/modules/nf-core/bismark/methylationextractor/meta.yml @@ -31,7 +31,12 @@ input: type: file description: BAM file containing read alignments pattern: "*.{bam}" - - - index: + - - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - index: type: directory description: Bismark genome index directory pattern: "BismarkIndex" @@ -95,3 +100,4 @@ authors: - "@phue" maintainers: - "@phue" + - "@sateeshperi" diff --git a/modules/nf-core/bismark/methylationextractor/tests/main.nf.test b/modules/nf-core/bismark/methylationextractor/tests/main.nf.test index dea2c1fed8c..fce2e35be5a 100644 --- a/modules/nf-core/bismark/methylationextractor/tests/main.nf.test +++ b/modules/nf-core/bismark/methylationextractor/tests/main.nf.test @@ -3,20 +3,24 @@ nextflow_process { name "Test Process BISMARK_METHYLATIONEXTRACTOR" script "../main.nf" process "BISMARK_METHYLATIONEXTRACTOR" + tag "modules" tag "modules_nfcore" tag "bismark" tag "bismark/methylationextractor" tag "bismark/genomepreparation" - test("Should run bismark/methylationextractor without failures") { + test("sarscov2 paired-end methylated [bam] / sarscov2 genome [fasta]") { setup { run("BISMARK_GENOMEPREPARATION") { script "../../genomepreparation/main.nf" process { """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) """ } } @@ -25,10 +29,10 @@ nextflow_process { when { process { """ - input[0] = [ + input[0] = Channel.of([ [ id:'test', single_end:false ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.methylated.bam', checkIfExists: true) - ] + ]) input[1] = BISMARK_GENOMEPREPARATION.out.index """ } diff --git a/modules/nf-core/bismark/methylationextractor/tests/main.nf.test.snap b/modules/nf-core/bismark/methylationextractor/tests/main.nf.test.snap index 52c26306a1c..dd83c755fa8 100644 --- a/modules/nf-core/bismark/methylationextractor/tests/main.nf.test.snap +++ b/modules/nf-core/bismark/methylationextractor/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "Should run bismark/methylationextractor without failures": { + "sarscov2 paired-end methylated [bam] / sarscov2 genome [fasta]": { "content": [ { "0": [ @@ -18,12 +18,12 @@ "single_end": false }, [ - "CHG_OB_test.paired_end.methylated.txt.gz:md5,2dcbf53d334758bc8ea8e7f7a9482f0b", - "CHG_OT_test.paired_end.methylated.txt.gz:md5,08bf48d70cf160f03f16106246c042a3", - "CHH_OB_test.paired_end.methylated.txt.gz:md5,3d9a2ed915593c69551cdf825d92e595", - "CHH_OT_test.paired_end.methylated.txt.gz:md5,979b5e8e8e9b8b7de556383be736cf20", - "CpG_OB_test.paired_end.methylated.txt.gz:md5,4ee4561c082c6659fa245a27d6ac9744", - "CpG_OT_test.paired_end.methylated.txt.gz:md5,63c7462425494fab87c10babebab49bb" + "CHG_OB_test.paired_end.methylated.txt.gz:md5,de98c596d927732d0a5a4cf4b3b9e7ae", + "CHG_OT_test.paired_end.methylated.txt.gz:md5,64ea7598db55ae810bc6846afe1941b8", + "CHH_OB_test.paired_end.methylated.txt.gz:md5,fac33b1186436430913d844662862972", + "CHH_OT_test.paired_end.methylated.txt.gz:md5,2a1509bd87032f9ae2c7ca5d0d728b3a", + "CpG_OB_test.paired_end.methylated.txt.gz:md5,dfecc0ceaca41ac848ff7d6e990a3f17", + "CpG_OT_test.paired_end.methylated.txt.gz:md5,5280f3ea983ee0f33b7c467f63f6c6d1" ] ] ], @@ -42,7 +42,7 @@ "id": "test", "single_end": false }, - "test.paired_end.methylated_splitting_report.txt:md5,4ebaa7ff42aad09b4c7edd38150fef12" + "test.paired_end.methylated_splitting_report.txt:md5,25f4f2fbf35cc9d7dc9e21209c40ca07" ] ], "4": [ @@ -55,7 +55,7 @@ ] ], "5": [ - "versions.yml:md5,b2efe40312b4b8fcd8276d788f89c1da" + "versions.yml:md5,c01f97c8def49098023fded456717776" ], "bedgraph": [ [ @@ -91,12 +91,12 @@ "single_end": false }, [ - "CHG_OB_test.paired_end.methylated.txt.gz:md5,2dcbf53d334758bc8ea8e7f7a9482f0b", - "CHG_OT_test.paired_end.methylated.txt.gz:md5,08bf48d70cf160f03f16106246c042a3", - "CHH_OB_test.paired_end.methylated.txt.gz:md5,3d9a2ed915593c69551cdf825d92e595", - "CHH_OT_test.paired_end.methylated.txt.gz:md5,979b5e8e8e9b8b7de556383be736cf20", - "CpG_OB_test.paired_end.methylated.txt.gz:md5,4ee4561c082c6659fa245a27d6ac9744", - "CpG_OT_test.paired_end.methylated.txt.gz:md5,63c7462425494fab87c10babebab49bb" + "CHG_OB_test.paired_end.methylated.txt.gz:md5,de98c596d927732d0a5a4cf4b3b9e7ae", + "CHG_OT_test.paired_end.methylated.txt.gz:md5,64ea7598db55ae810bc6846afe1941b8", + "CHH_OB_test.paired_end.methylated.txt.gz:md5,fac33b1186436430913d844662862972", + "CHH_OT_test.paired_end.methylated.txt.gz:md5,2a1509bd87032f9ae2c7ca5d0d728b3a", + "CpG_OB_test.paired_end.methylated.txt.gz:md5,dfecc0ceaca41ac848ff7d6e990a3f17", + "CpG_OT_test.paired_end.methylated.txt.gz:md5,5280f3ea983ee0f33b7c467f63f6c6d1" ] ] ], @@ -106,18 +106,18 @@ "id": "test", "single_end": false }, - "test.paired_end.methylated_splitting_report.txt:md5,4ebaa7ff42aad09b4c7edd38150fef12" + "test.paired_end.methylated_splitting_report.txt:md5,25f4f2fbf35cc9d7dc9e21209c40ca07" ] ], "versions": [ - "versions.yml:md5,b2efe40312b4b8fcd8276d788f89c1da" + "versions.yml:md5,c01f97c8def49098023fded456717776" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "23.10.4" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-02T08:07:52.585249564" + "timestamp": "2024-10-13T18:09:13.593807534" } } \ No newline at end of file diff --git a/modules/nf-core/bismark/methylationextractor/tests/tags.yml b/modules/nf-core/bismark/methylationextractor/tests/tags.yml deleted file mode 100644 index 272e4df1f43..00000000000 --- a/modules/nf-core/bismark/methylationextractor/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -bismark/methylationextractor: - - modules/nf-core/bismark/methylationextractor/** diff --git a/modules/nf-core/bismark/report/environment.yml b/modules/nf-core/bismark/report/environment.yml index fbc3fdf202c..9bc4753bdab 100644 --- a/modules/nf-core/bismark/report/environment.yml +++ b/modules/nf-core/bismark/report/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::bismark=0.24.0 + - bioconda::bismark=0.24.2 diff --git a/modules/nf-core/bismark/report/main.nf b/modules/nf-core/bismark/report/main.nf index 6570f098c54..e68ee8e56ea 100644 --- a/modules/nf-core/bismark/report/main.nf +++ b/modules/nf-core/bismark/report/main.nf @@ -4,8 +4,8 @@ process BISMARK_REPORT { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bismark:0.24.0--hdfd78af_0' : - 'biocontainers/bismark:0.24.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bismark:0.24.2--hdfd78af_0' : + 'biocontainers/bismark:0.24.2--hdfd78af_0' }" input: tuple val(meta), path(align_report), path(dedup_report), path(splitting_report), path(mbias) @@ -27,4 +27,17 @@ process BISMARK_REPORT { bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.report.txt + touch ${prefix}.report.html + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/bismark/report/meta.yml b/modules/nf-core/bismark/report/meta.yml index 52fece5aeeb..c1191e9b46d 100644 --- a/modules/nf-core/bismark/report/meta.yml +++ b/modules/nf-core/bismark/report/meta.yml @@ -61,3 +61,4 @@ authors: - "@phue" maintainers: - "@phue" + - "@sateeshperi" diff --git a/modules/nf-core/bismark/report/tests/main.nf.test b/modules/nf-core/bismark/report/tests/main.nf.test index aa373e9aa04..9082bbde836 100644 --- a/modules/nf-core/bismark/report/tests/main.nf.test +++ b/modules/nf-core/bismark/report/tests/main.nf.test @@ -3,6 +3,7 @@ nextflow_process { name "Test Process BISMARK_REPORT" script "../main.nf" process "BISMARK_REPORT" + tag "modules" tag "modules_nfcore" tag "bismark" @@ -12,14 +13,17 @@ nextflow_process { tag "bismark/methylationextractor" tag "bismark/genomepreparation" - test("Should run bismark/report without failures") { + test("sarscov2 genome [fasta] | sarscov2 single-end methylated [fastq]") { setup { run("BISMARK_GENOMEPREPARATION") { script "../../genomepreparation/main.nf" process { """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) """ } } @@ -28,14 +32,12 @@ nextflow_process { script "../../align/main.nf" process { """ - input[0] = [ - [ id:'test', single_end:false ], - [ - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_2.fastq.gz', checkIfExists: true) - ] - ] - input[1] = BISMARK_GENOMEPREPARATION.out.index + input[0] = Channel.of([ + [ id:'test', single_end:true ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true) + ]) + input[1] = Channel.of([ [ id:'sarscov2'], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]) + input[2] = BISMARK_GENOMEPREPARATION.out.index """ } } @@ -61,9 +63,6 @@ nextflow_process { } when { - params { - outdir = "$outputDir" - } process { """ input[0] = BISMARK_ALIGN.out.report @@ -77,15 +76,10 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match("versions") }, - { - with(process.out.report) { - with(get(0)) { - assert get(1).endsWith('_PE_report.html') - assert path(get(1)).readLines().last().contains('') - } - } - } + { assert snapshot( + file(process.out.report[0][1]).name, + process.out.versions + ).match() }, ) } diff --git a/modules/nf-core/bismark/report/tests/main.nf.test.snap b/modules/nf-core/bismark/report/tests/main.nf.test.snap index dc05e655138..e1ebf0223d9 100644 --- a/modules/nf-core/bismark/report/tests/main.nf.test.snap +++ b/modules/nf-core/bismark/report/tests/main.nf.test.snap @@ -1,10 +1,15 @@ { - "versions": { + "sarscov2 genome [fasta] | sarscov2 single-end methylated [fastq]": { "content": [ + "test.methylated_1_bismark_bt2_SE_report.html", [ - "versions.yml:md5,c2e2c0bd500e9ce95ae7ab82f667270b" + "versions.yml:md5,12d0b9440211d6540bbdc42e14fa18e6" ] ], - "timestamp": "2023-10-17T16:13:42.879192383" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-14T18:47:46.955822618" } -} \ No newline at end of file +} diff --git a/modules/nf-core/bismark/report/tests/tags.yml b/modules/nf-core/bismark/report/tests/tags.yml deleted file mode 100644 index c72a1f94fec..00000000000 --- a/modules/nf-core/bismark/report/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -bismark/report: - - modules/nf-core/bismark/report/** diff --git a/modules/nf-core/bismark/summary/environment.yml b/modules/nf-core/bismark/summary/environment.yml index fbc3fdf202c..9bc4753bdab 100644 --- a/modules/nf-core/bismark/summary/environment.yml +++ b/modules/nf-core/bismark/summary/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::bismark=0.24.0 + - bioconda::bismark=0.24.2 diff --git a/modules/nf-core/bismark/summary/main.nf b/modules/nf-core/bismark/summary/main.nf index 34cebffbfb3..2aadfc03c94 100644 --- a/modules/nf-core/bismark/summary/main.nf +++ b/modules/nf-core/bismark/summary/main.nf @@ -3,8 +3,8 @@ process BISMARK_SUMMARY { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bismark:0.24.0--hdfd78af_0' : - 'biocontainers/bismark:0.24.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bismark:0.24.2--hdfd78af_0' : + 'biocontainers/bismark:0.24.2--hdfd78af_0' }" input: val(bam) @@ -14,8 +14,8 @@ process BISMARK_SUMMARY { path(mbias) output: - path "*report.{html,txt}", emit: summary - path "versions.yml" , emit: versions + path("*report.{html,txt}"), emit: summary + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -30,4 +30,17 @@ process BISMARK_SUMMARY { bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.report.txt + touch ${prefix}.report.html + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bismark: \$(echo \$(bismark -v 2>&1) | sed 's/^.*Bismark Version: v//; s/Copyright.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/bismark/summary/meta.yml b/modules/nf-core/bismark/summary/meta.yml index 907a2d706b6..da18a5c8817 100644 --- a/modules/nf-core/bismark/summary/meta.yml +++ b/modules/nf-core/bismark/summary/meta.yml @@ -45,7 +45,7 @@ input: pattern: "*.txt" output: - summary: - - "*report.{html": + - "*report.{html,txt}": type: file description: Bismark summary pattern: "*.{html,txt}" @@ -58,3 +58,4 @@ authors: - "@phue" maintainers: - "@phue" + - "@sateeshperi" diff --git a/modules/nf-core/bismark/summary/tests/main.nf.test b/modules/nf-core/bismark/summary/tests/main.nf.test index 2621fc582f2..046a59592b5 100644 --- a/modules/nf-core/bismark/summary/tests/main.nf.test +++ b/modules/nf-core/bismark/summary/tests/main.nf.test @@ -3,6 +3,7 @@ nextflow_process { name "Test Process BISMARK_SUMMARY" script "../main.nf" process "BISMARK_SUMMARY" + tag "modules" tag "modules_nfcore" tag "bismark" @@ -12,14 +13,17 @@ nextflow_process { tag "bismark/genomepreparation" tag "bismark/methylationextractor" - test("Should run bismark/summary without failures") { + test("sarscov2 genome [fasta] | sarscov2 single-end methylated [fastq]") { setup { run("BISMARK_GENOMEPREPARATION") { script "../../genomepreparation/main.nf" process { """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) """ } } @@ -28,14 +32,12 @@ nextflow_process { script "../../align/main.nf" process { """ - input[0] = [ - [ id:'test', single_end:false ], - [ - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_2.fastq.gz', checkIfExists: true) - ] - ] - input[1] = BISMARK_GENOMEPREPARATION.out.index + input[0] = Channel.of([ + [ id:'test', single_end:true ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true) + ]) + input[1] = Channel.of([ [ id:'sarscov2'], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]) + input[2] = BISMARK_GENOMEPREPARATION.out.index """ } } @@ -61,9 +63,6 @@ nextflow_process { } when { - params { - outdir = "$outputDir" - } process { """ input[0] = BISMARK_ALIGN.out.bam.collect { meta, bam -> bam } diff --git a/modules/nf-core/bismark/summary/tests/main.nf.test.snap b/modules/nf-core/bismark/summary/tests/main.nf.test.snap index acb445c1cc2..d9d0209ec54 100644 --- a/modules/nf-core/bismark/summary/tests/main.nf.test.snap +++ b/modules/nf-core/bismark/summary/tests/main.nf.test.snap @@ -2,9 +2,13 @@ "versions": { "content": [ [ - "versions.yml:md5,22bb5a457e4eef7ab3556e464263ce04" + "versions.yml:md5,daa43bc3da654ba5a8acbc9d272a9e90" ] ], - "timestamp": "2023-10-17T15:12:35.102032381" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-14T18:31:02.192850471" } } \ No newline at end of file diff --git a/modules/nf-core/bismark/summary/tests/tags.yml b/modules/nf-core/bismark/summary/tests/tags.yml deleted file mode 100644 index 3d7ee0379bc..00000000000 --- a/modules/nf-core/bismark/summary/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -bismark/summary: - - modules/nf-core/bismark/summary/** From 2f9a5431355897e299cb41928c45f51ea8410c42 Mon Sep 17 00:00:00 2001 From: Felix Lenner <52530259+fellen31@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:04:22 +0200 Subject: [PATCH 11/18] New module: deepvariant/vcfstatsreport (#6777) * New module: deepvariant/vcfstatsreport * Add stub tests * exclude conda tests * Update main.nf Single thread. --- .github/workflows/test.yml | 2 + .../deepvariant/vcfstatsreport/main.nf | 59 ++++ .../deepvariant/vcfstatsreport/meta.yml | 47 ++++ .../vcfstatsreport/tests/main.nf.test | 183 ++++++++++++ .../vcfstatsreport/tests/main.nf.test.snap | 266 ++++++++++++++++++ .../deepvariant/vcfstatsreport/tests/tags.yml | 2 + 6 files changed, 559 insertions(+) create mode 100644 modules/nf-core/deepvariant/vcfstatsreport/main.nf create mode 100644 modules/nf-core/deepvariant/vcfstatsreport/meta.yml create mode 100644 modules/nf-core/deepvariant/vcfstatsreport/tests/main.nf.test create mode 100644 modules/nf-core/deepvariant/vcfstatsreport/tests/main.nf.test.snap create mode 100644 modules/nf-core/deepvariant/vcfstatsreport/tests/tags.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4be8bbe5c92..96851ec4a8d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -548,6 +548,8 @@ jobs: path: modules/nf-core/deepvariant/postprocessvariants - profile: conda path: modules/nf-core/deepvariant/rundeepvariant + - profile: conda + path: modules/nf-core/deepvariant/vcfstatsreport - profile: conda path: modules/nf-core/ensemblvep/vep - profile: conda diff --git a/modules/nf-core/deepvariant/vcfstatsreport/main.nf b/modules/nf-core/deepvariant/vcfstatsreport/main.nf new file mode 100644 index 00000000000..5bbf06b633f --- /dev/null +++ b/modules/nf-core/deepvariant/vcfstatsreport/main.nf @@ -0,0 +1,59 @@ +process DEEPVARIANT_VCFSTATSREPORT { + tag "$meta.id" + label 'process_single' + + // FIXME Conda is not supported at the moment + // BUG https://github.com/nf-core/modules/issues/1754 + // BUG https://github.com/bioconda/bioconda-recipes/issues/30310 + container "nf-core/deepvariant:1.6.1" + + input: + tuple val(meta), path(vcf) + + output: + tuple val(meta), path("${prefix}.visual_report.html"), emit: report + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "DEEPVARIANT module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + // WARN https://github.com/nf-core/modules/pull/5801#issuecomment-2194293755 + // FIXME Revert this on next version bump + def VERSION = '1.6.1' + + """ + /opt/deepvariant/bin/vcf_stats_report \\ + --input_vcf=${vcf} \\ + --outfile_base ${prefix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + deepvariant: $VERSION + END_VERSIONS + """ + + stub: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "DEEPVARIANT module does not support Conda. Please use Docker / Singularity / Podman instead." + } + prefix = task.ext.prefix ?: "${meta.id}" + // WARN https://github.com/nf-core/modules/pull/5801#issuecomment-2194293755 + // FIXME Revert this on next version bump + def VERSION = '1.6.1' + """ + touch ${prefix}.visual_report.html + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + deepvariant: $VERSION + END_VERSIONS + """ +} diff --git a/modules/nf-core/deepvariant/vcfstatsreport/meta.yml b/modules/nf-core/deepvariant/vcfstatsreport/meta.yml new file mode 100644 index 00000000000..c882a1b1249 --- /dev/null +++ b/modules/nf-core/deepvariant/vcfstatsreport/meta.yml @@ -0,0 +1,47 @@ +name: deepvariant_vcfstatsreport +description: DeepVariant is an analysis pipeline that uses a deep neural network to + call genetic variants from next-generation DNA sequencing data +keywords: + - variant calling + - machine learning + - neural network +tools: + - deepvariant: + description: DeepVariant is an analysis pipeline that uses a deep neural network + to call genetic variants from next-generation DNA sequencing data + homepage: https://github.com/google/deepvariant + documentation: https://github.com/google/deepvariant + tool_dev_url: https://github.com/google/deepvariant + doi: "10.1038/nbt.4235" + licence: ["BSD-3-clause"] + identifier: biotools:deepvariant +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF file + pattern: "{*.vcf,vcf.gz,bcf,bcf.gz}" +output: + - report: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ${prefix}.visual_report.html: + type: file + description: Visual report in HTML format + pattern: "*.html" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@fellen31" +maintainers: + - "@fellen31" diff --git a/modules/nf-core/deepvariant/vcfstatsreport/tests/main.nf.test b/modules/nf-core/deepvariant/vcfstatsreport/tests/main.nf.test new file mode 100644 index 00000000000..bec946efd8c --- /dev/null +++ b/modules/nf-core/deepvariant/vcfstatsreport/tests/main.nf.test @@ -0,0 +1,183 @@ +nextflow_process { + + name "Test Process DEEPVARIANT_VCFSTATSREPORT" + script "../main.nf" + process "DEEPVARIANT_VCFSTATSREPORT" + + tag "deepvariant/vcfstatsreport" + tag "deepvariant" + tag "modules" + tag "modules_nfcore" + + test("vcf") { + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("vcf.gz") { + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("bcf") { + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/vcf/test.bcf', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("bcf.gz") { + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/vcf/test.bcf.gz', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("vcf - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("vcf.gz - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("bcf - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/vcf/test.bcf', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("bcf.gz - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/vcf/test.bcf.gz', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/deepvariant/vcfstatsreport/tests/main.nf.test.snap b/modules/nf-core/deepvariant/vcfstatsreport/tests/main.nf.test.snap new file mode 100644 index 00000000000..9a9ac3cef60 --- /dev/null +++ b/modules/nf-core/deepvariant/vcfstatsreport/tests/main.nf.test.snap @@ -0,0 +1,266 @@ +{ + "bcf.gz": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,28e2e19d97cdeddf25813534384ae9ca" + ] + ], + "1": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ], + "report": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,28e2e19d97cdeddf25813534384ae9ca" + ] + ], + "versions": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-14T08:19:35.672028563" + }, + "bcf": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,28e2e19d97cdeddf25813534384ae9ca" + ] + ], + "1": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ], + "report": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,28e2e19d97cdeddf25813534384ae9ca" + ] + ], + "versions": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T07:47:10.485269156" + }, + "vcf.gz - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ], + "report": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-14T08:34:50.411910578" + }, + "vcf.gz": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,28e2e19d97cdeddf25813534384ae9ca" + ] + ], + "1": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ], + "report": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,28e2e19d97cdeddf25813534384ae9ca" + ] + ], + "versions": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T07:47:00.438649988" + }, + "vcf": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,28e2e19d97cdeddf25813534384ae9ca" + ] + ], + "1": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ], + "report": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,28e2e19d97cdeddf25813534384ae9ca" + ] + ], + "versions": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-11T07:44:07.427456921" + }, + "bcf - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ], + "report": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-14T08:35:03.341417618" + }, + "bcf.gz - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ], + "report": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-14T08:35:13.52398762" + }, + "vcf - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ], + "report": [ + [ + { + "id": "test" + }, + "test.visual_report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,3378d1cbd4b3ba7579dcd6c47266f996" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-14T08:34:35.977457571" + } +} \ No newline at end of file diff --git a/modules/nf-core/deepvariant/vcfstatsreport/tests/tags.yml b/modules/nf-core/deepvariant/vcfstatsreport/tests/tags.yml new file mode 100644 index 00000000000..3b1f592291c --- /dev/null +++ b/modules/nf-core/deepvariant/vcfstatsreport/tests/tags.yml @@ -0,0 +1,2 @@ +deepvariant/vcfstatsreport: + - modules/nf-core/deepvariant/vcfstatsreport/** From 9082d6440bdffbb4f5d9bd9d753361933b3febcb Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Tue, 15 Oct 2024 19:40:03 +0100 Subject: [PATCH 12/18] Don't skip whole trimming workflows (#6785) --- .../nf-core/fastq_qc_trim_filter_setstrandedness/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 05078d23dcb..c655af41588 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf @@ -139,7 +139,7 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { // // SUBWORKFLOW: Read QC, extract UMI and trim adapters with TrimGalore! // - if (trimmer == 'trimgalore' && !skip_trimming) { + if (trimmer == 'trimgalore') { FASTQ_FASTQC_UMITOOLS_TRIMGALORE ( ch_filtered_reads, skip_fastqc, @@ -162,7 +162,7 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { // // SUBWORKFLOW: Read QC, extract UMI and trim adapters with fastp // - if (trimmer == 'fastp' && !skip_trimming) { + if (trimmer == 'fastp') { FASTQ_FASTQC_UMITOOLS_FASTP ( ch_filtered_reads, skip_fastqc, From 847683c1bb3a94d846e18916f14c2bc60a447041 Mon Sep 17 00:00:00 2001 From: Felix Lenner <52530259+fellen31@users.noreply.github.com> Date: Wed, 16 Oct 2024 13:26:57 +0200 Subject: [PATCH 13/18] Fix SVDB/merge stubs (#6787) --- modules/nf-core/svdb/merge/main.nf | 7 +- modules/nf-core/svdb/merge/tests/main.nf.test | 52 ++++++++++++++ .../svdb/merge/tests/main.nf.test.snap | 68 +++++++++++++++++++ 3 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 modules/nf-core/svdb/merge/tests/main.nf.test.snap diff --git a/modules/nf-core/svdb/merge/main.nf b/modules/nf-core/svdb/merge/main.nf index c24a9a7c388..afc34bb4bcd 100644 --- a/modules/nf-core/svdb/merge/main.nf +++ b/modules/nf-core/svdb/merge/main.nf @@ -36,7 +36,10 @@ process SVDB_MERGE { $prio \\ --vcf $input \\ > ${prefix}.vcf - bgzip ${prefix}.vcf + + bgzip \\ + --threads ${task.cpus} \\ + ${prefix}.vcf cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -48,7 +51,7 @@ process SVDB_MERGE { stub: def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.vcf.gz + echo | gzip > ${prefix}.vcf.gz cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/svdb/merge/tests/main.nf.test b/modules/nf-core/svdb/merge/tests/main.nf.test index 42f7c570677..b0743a699f0 100644 --- a/modules/nf-core/svdb/merge/tests/main.nf.test +++ b/modules/nf-core/svdb/merge/tests/main.nf.test @@ -56,4 +56,56 @@ nextflow_process { } + test("test_svdb_merge - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + [file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true) ] + ]) + input[1] = [ 'tiddit', 'cnvnator'] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_svdb_merge_noprio - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + [file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true) ] + ]) + input[1] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + } diff --git a/modules/nf-core/svdb/merge/tests/main.nf.test.snap b/modules/nf-core/svdb/merge/tests/main.nf.test.snap new file mode 100644 index 00000000000..e79b2583b38 --- /dev/null +++ b/modules/nf-core/svdb/merge/tests/main.nf.test.snap @@ -0,0 +1,68 @@ +{ + "test_svdb_merge - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,772f39343052d54d9bcb21d4892da203" + ], + "vcf": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,772f39343052d54d9bcb21d4892da203" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-16T09:00:41.058996433" + }, + "test_svdb_merge_noprio - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,772f39343052d54d9bcb21d4892da203" + ], + "vcf": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,772f39343052d54d9bcb21d4892da203" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-16T09:00:49.58223306" + } +} \ No newline at end of file From aa2f43221437b20cd204fb7ddbc7302fe859780f Mon Sep 17 00:00:00 2001 From: Sateesh_Peri <33637490+sateeshperi@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:38:11 +0530 Subject: [PATCH 14/18] rm fasta from bwameth index folder to be handled separately (#6780) * rm fasta from bwameth index folder to be handled separately + update test + snaps * provide fasta separtely to index folder * add stub test --- modules/nf-core/bwameth/align/main.nf | 10 +-- modules/nf-core/bwameth/align/meta.yml | 15 +++- .../nf-core/bwameth/align/tests/main.nf.test | 69 +++++++++++-------- .../bwameth/align/tests/main.nf.test.snap | 32 ++++----- modules/nf-core/bwameth/index/main.nf | 25 +++++-- modules/nf-core/bwameth/index/meta.yml | 14 +++- .../nf-core/bwameth/index/tests/main.nf.test | 11 +-- .../bwameth/index/tests/main.nf.test.snap | 42 ++++++----- 8 files changed, 139 insertions(+), 79 deletions(-) diff --git a/modules/nf-core/bwameth/align/main.nf b/modules/nf-core/bwameth/align/main.nf index 476463ae0df..8ce2ee32299 100644 --- a/modules/nf-core/bwameth/align/main.nf +++ b/modules/nf-core/bwameth/align/main.nf @@ -9,7 +9,8 @@ process BWAMETH_ALIGN { input: tuple val(meta), path(reads) - path index + tuple val(meta2), path(fasta) + tuple val(meta3), path(index) output: tuple val(meta), path("*.bam"), emit: bam @@ -24,17 +25,16 @@ process BWAMETH_ALIGN { def prefix = task.ext.prefix ?: "${meta.id}" def read_group = meta.read_group ? "-R ${meta.read_group}" : "" """ - INDEX=`find -L ${index} -name "*.bwameth.c2t" | sed 's/\\.bwameth.c2t\$//'` - # Modify the timestamps so that bwameth doesn't complain about building the index # See https://github.com/nf-core/methylseq/pull/217 - touch -c -- * + touch -c $index/* + mv $fasta $index/ bwameth.py \\ $args \\ $read_group \\ -t $task.cpus \\ - --reference \$INDEX \\ + --reference $index/$fasta \\ $reads \\ | samtools view $args2 -@ $task.cpus -bhS -o ${prefix}.bam - diff --git a/modules/nf-core/bwameth/align/meta.yml b/modules/nf-core/bwameth/align/meta.yml index 6cd78268d11..593d17304fc 100644 --- a/modules/nf-core/bwameth/align/meta.yml +++ b/modules/nf-core/bwameth/align/meta.yml @@ -33,7 +33,20 @@ input: description: | List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. - - - index: + - - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Input genome fasta file + - - meta3: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - index: type: directory description: Directory containing bwameth genome index output: diff --git a/modules/nf-core/bwameth/align/tests/main.nf.test b/modules/nf-core/bwameth/align/tests/main.nf.test index 94b1f56fde6..211e0956267 100644 --- a/modules/nf-core/bwameth/align/tests/main.nf.test +++ b/modules/nf-core/bwameth/align/tests/main.nf.test @@ -16,26 +16,29 @@ nextflow_process { script "../../../bwameth/index/main.nf" process { """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) - + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) """ } } } - test("test-bwameth-align-single-end") { + test("sarscov2 methylated single_end [fastq]") { when { process { """ - input[0] = [ - [ id:'test', single_end:true ], // meta map - [ - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true) - ] - ] - input[1] = BWAMETH_INDEX.out.index - + input[0] = Channel.of([ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[2] = BWAMETH_INDEX.out.index """ } } @@ -52,20 +55,23 @@ nextflow_process { } } - test("test-bwameth-align-paired-end") { + test("sarscov2 methylated paired_end [fastq]") { when { process { """ - input[0] = [ - [ id:'test', single_end:false ], // meta map - [ - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_2.fastq.gz', checkIfExists: true) - ] - ] - input[1] = BWAMETH_INDEX.out.index - + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[2] = BWAMETH_INDEX.out.index """ } } @@ -88,15 +94,18 @@ nextflow_process { when { process { """ - input[0] = [ - [ id:'test', single_end:false ], // meta map - [ - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_2.fastq.gz', checkIfExists: true) - ] - ] - input[1] = BWAMETH_INDEX.out.index - + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.methylated_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[2] = BWAMETH_INDEX.out.index """ } } diff --git a/modules/nf-core/bwameth/align/tests/main.nf.test.snap b/modules/nf-core/bwameth/align/tests/main.nf.test.snap index 2c8c120f351..a90108105f1 100644 --- a/modules/nf-core/bwameth/align/tests/main.nf.test.snap +++ b/modules/nf-core/bwameth/align/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "test-bwameth-align-single-end": { + "sarscov2 methylated single_end [fastq]": { "content": [ "5fdda0ada69daa3956c65a24c9d1c1e0", [ @@ -10,20 +10,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-04T20:43:02.509483" - }, - "test-bwameth-align-paired-end": { - "content": [ - "cbd5cfa8b446e26987898a45a94770ba", - [ - "versions.yml:md5,c00660f78aeab4fabe00092c70656098" - ] - ], - "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" - }, - "timestamp": "2024-09-04T20:43:10.963043" + "timestamp": "2024-10-16T07:50:08.241201566" }, "test-bwameth-align-paired-end-stub": { "content": [ @@ -58,6 +45,19 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-04T20:43:17.04632" + "timestamp": "2024-10-16T08:00:51.770330645" + }, + "sarscov2 methylated paired_end [fastq]": { + "content": [ + "cbd5cfa8b446e26987898a45a94770ba", + [ + "versions.yml:md5,c00660f78aeab4fabe00092c70656098" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-16T07:50:20.75109829" } } \ No newline at end of file diff --git a/modules/nf-core/bwameth/index/main.nf b/modules/nf-core/bwameth/index/main.nf index 33c83d90791..5059f134fb6 100644 --- a/modules/nf-core/bwameth/index/main.nf +++ b/modules/nf-core/bwameth/index/main.nf @@ -8,11 +8,11 @@ process BWAMETH_INDEX { 'biocontainers/bwameth:0.2.7--pyh7cba7a3_0' }" input: - path fasta, stageAs: "bwameth/*" + tuple val(meta), path(fasta) output: - path "bwameth" , emit: index - path "versions.yml" , emit: versions + tuple val(meta), path("BwamethIndex"), emit: index + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -20,7 +20,24 @@ process BWAMETH_INDEX { script: def args = task.ext.args ?: '' """ - bwameth.py index $fasta + mkdir BwamethIndex + mv $fasta BwamethIndex/ + + bwameth.py index BwamethIndex/$fasta + + rm BwamethIndex/$fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwameth: \$(bwameth.py --version | cut -f2 -d" ") + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + """ + mkdir BwamethIndex + touch BwamethIndex/$fasta cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/bwameth/index/meta.yml b/modules/nf-core/bwameth/index/meta.yml index d92273c4d7e..2194e225804 100644 --- a/modules/nf-core/bwameth/index/meta.yml +++ b/modules/nf-core/bwameth/index/meta.yml @@ -19,12 +19,21 @@ tools: licence: ["MIT"] identifier: "" input: - - - fasta: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: type: file description: Input genome fasta file output: - index: - - bwameth: + - meta: + type: directory + description: Directory containing bwameth genome index + pattern: "index" + - BwamethIndex: type: directory description: Directory containing bwameth genome index pattern: "index" @@ -37,3 +46,4 @@ authors: - "@phue" maintainers: - "@phue" + - "@sateeshperi" diff --git a/modules/nf-core/bwameth/index/tests/main.nf.test b/modules/nf-core/bwameth/index/tests/main.nf.test index a314788ab00..152c8366881 100644 --- a/modules/nf-core/bwameth/index/tests/main.nf.test +++ b/modules/nf-core/bwameth/index/tests/main.nf.test @@ -10,12 +10,15 @@ nextflow_process { tag "bwameth" tag "bwameth/index" - test("test-bwameth-index") { - + test("sarscov2 genome [fasta]") { + when { process { """ - input[0] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) """ } } @@ -27,5 +30,5 @@ nextflow_process { ) } } - + } diff --git a/modules/nf-core/bwameth/index/tests/main.nf.test.snap b/modules/nf-core/bwameth/index/tests/main.nf.test.snap index 27f07221db3..fb427880686 100644 --- a/modules/nf-core/bwameth/index/tests/main.nf.test.snap +++ b/modules/nf-core/bwameth/index/tests/main.nf.test.snap @@ -1,16 +1,20 @@ { - "test-bwameth-index": { + "sarscov2 genome [fasta]": { "content": [ { "0": [ [ - "genome.fasta:md5,6e9fe4042a72f2345f644f239272b7e6", - "genome.fasta.bwameth.c2t:md5,98039984526a41d04d6bd92fcc040c62", - "genome.fasta.bwameth.c2t.amb:md5,249a4195069071ce47cd0bae68abe376", - "genome.fasta.bwameth.c2t.ann:md5,46524d4359dcdfb203a235ab3b930dbb", - "genome.fasta.bwameth.c2t.bwt:md5,84f65df7d42dbe84c9ccfaddfdd5ea6b", - "genome.fasta.bwameth.c2t.pac:md5,4d8e51cb0bbdeaf24576bdf0264d8653", - "genome.fasta.bwameth.c2t.sa:md5,d25f6486f5134f57ed5b258f6fbb8673" + { + "id": "test" + }, + [ + "genome.fasta.bwameth.c2t:md5,98039984526a41d04d6bd92fcc040c62", + "genome.fasta.bwameth.c2t.amb:md5,249a4195069071ce47cd0bae68abe376", + "genome.fasta.bwameth.c2t.ann:md5,46524d4359dcdfb203a235ab3b930dbb", + "genome.fasta.bwameth.c2t.bwt:md5,84f65df7d42dbe84c9ccfaddfdd5ea6b", + "genome.fasta.bwameth.c2t.pac:md5,4d8e51cb0bbdeaf24576bdf0264d8653", + "genome.fasta.bwameth.c2t.sa:md5,d25f6486f5134f57ed5b258f6fbb8673" + ] ] ], "1": [ @@ -18,13 +22,17 @@ ], "index": [ [ - "genome.fasta:md5,6e9fe4042a72f2345f644f239272b7e6", - "genome.fasta.bwameth.c2t:md5,98039984526a41d04d6bd92fcc040c62", - "genome.fasta.bwameth.c2t.amb:md5,249a4195069071ce47cd0bae68abe376", - "genome.fasta.bwameth.c2t.ann:md5,46524d4359dcdfb203a235ab3b930dbb", - "genome.fasta.bwameth.c2t.bwt:md5,84f65df7d42dbe84c9ccfaddfdd5ea6b", - "genome.fasta.bwameth.c2t.pac:md5,4d8e51cb0bbdeaf24576bdf0264d8653", - "genome.fasta.bwameth.c2t.sa:md5,d25f6486f5134f57ed5b258f6fbb8673" + { + "id": "test" + }, + [ + "genome.fasta.bwameth.c2t:md5,98039984526a41d04d6bd92fcc040c62", + "genome.fasta.bwameth.c2t.amb:md5,249a4195069071ce47cd0bae68abe376", + "genome.fasta.bwameth.c2t.ann:md5,46524d4359dcdfb203a235ab3b930dbb", + "genome.fasta.bwameth.c2t.bwt:md5,84f65df7d42dbe84c9ccfaddfdd5ea6b", + "genome.fasta.bwameth.c2t.pac:md5,4d8e51cb0bbdeaf24576bdf0264d8653", + "genome.fasta.bwameth.c2t.sa:md5,d25f6486f5134f57ed5b258f6fbb8673" + ] ] ], "versions": [ @@ -33,9 +41,9 @@ } ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-28T13:57:11.602104" + "timestamp": "2024-10-14T20:32:13.750317299" } } \ No newline at end of file From eaeecb111aa52667b1a43eaf11cdd016f01faf78 Mon Sep 17 00:00:00 2001 From: Evangelos Karatzas <32259775+vagkaratzas@users.noreply.github.com> Date: Wed, 16 Oct 2024 15:59:20 +0100 Subject: [PATCH 15/18] proovframe map init push (#6790) * proovframe map init push * stub test renamed properly * text contains test instead, because conda was failing (produces 0s column isntead of a values column) * meta spacing fixed --- .../nf-core/proovframe/map/environment.yml | 7 +++ modules/nf-core/proovframe/map/main.nf | 48 +++++++++++++++ modules/nf-core/proovframe/map/meta.yml | 56 ++++++++++++++++++ .../nf-core/proovframe/map/tests/main.nf.test | 59 +++++++++++++++++++ .../proovframe/map/tests/main.nf.test.snap | 49 +++++++++++++++ 5 files changed, 219 insertions(+) create mode 100644 modules/nf-core/proovframe/map/environment.yml create mode 100644 modules/nf-core/proovframe/map/main.nf create mode 100644 modules/nf-core/proovframe/map/meta.yml create mode 100644 modules/nf-core/proovframe/map/tests/main.nf.test create mode 100644 modules/nf-core/proovframe/map/tests/main.nf.test.snap diff --git a/modules/nf-core/proovframe/map/environment.yml b/modules/nf-core/proovframe/map/environment.yml new file mode 100644 index 00000000000..a1a698f477b --- /dev/null +++ b/modules/nf-core/proovframe/map/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::proovframe=0.9.7" diff --git a/modules/nf-core/proovframe/map/main.nf b/modules/nf-core/proovframe/map/main.nf new file mode 100644 index 00000000000..75eb835ca26 --- /dev/null +++ b/modules/nf-core/proovframe/map/main.nf @@ -0,0 +1,48 @@ +process PROOVFRAME_MAP { + 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/proovframe:0.9.7--hdfd78af_1': + 'biocontainers/proovframe:0.9.7--hdfd78af_1' }" + + input: + tuple val(meta), path(faa), path(fasta) + + output: + tuple val(meta), path("*.tsv"), emit: tsv + 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}" + """ + proovframe \\ + map \\ + ${args} \\ + -a ${faa} \\ + -o ${prefix}.tsv \\ + ${fasta} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + proovframe: 0.9.7 + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + proovframe: 0.9.7 + END_VERSIONS + """ +} diff --git a/modules/nf-core/proovframe/map/meta.yml b/modules/nf-core/proovframe/map/meta.yml new file mode 100644 index 00000000000..5c938864055 --- /dev/null +++ b/modules/nf-core/proovframe/map/meta.yml @@ -0,0 +1,56 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "proovframe_map" +description: frame-shift correction for long read (meta)genomics - maps proteins to reads +keywords: + - frame-shift correction + - long-read sequencing + - sequence analysis +tools: + - "proovframe": + description: "frame-shift correction for long read (meta)genomics" + homepage: "https://github.com/thackl/proovframe" + documentation: "https://github.com/thackl/proovframe" + tool_dev_url: "https://github.com/thackl/proovframe" + doi: "10.1101/2021.08.23.457338" + licence: ["MIT"] + identifier: biotools:proovframe + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - faa: + type: file + description: A FASTA file containing a database of guide protein sequences + pattern: "*.{faa,fasta,fa}" + - fasta: + type: file + description: A FASTA file containing raw read nucleotide sequences + pattern: "*.{fasta,fa}" + +output: + - tsv: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.tsv": + type: file + description: Output TSV file with the frameshift-aware protein to read alignments + pattern: "*.tsv" + - versions: + - "versions.yml": + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@manuelcarbajo" + - "@MGS-sails" + - "@vagkaratzas" +maintainers: + - "@vagkaratzas" diff --git a/modules/nf-core/proovframe/map/tests/main.nf.test b/modules/nf-core/proovframe/map/tests/main.nf.test new file mode 100644 index 00000000000..3a3068ffc18 --- /dev/null +++ b/modules/nf-core/proovframe/map/tests/main.nf.test @@ -0,0 +1,59 @@ +nextflow_process { + + name "Test Process PROOVFRAME_MAP" + script "../main.nf" + process "PROOVFRAME_MAP" + + tag "modules" + tag "modules_nfcore" + tag "proovframe" + tag "proovframe/map" + + test("sarscov2 - tsv") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/proteome.fasta', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path(process.out.tsv[0][1]).text.contains('MT192765.1 ENSSASP00005000002.1 100.0 7096 1 0 259 21545 1') }, + { assert snapshot(process.out.versions).match() } + ) + } + + } + + test("sarscov2 - tsv - stub") { + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/proteome.fasta', checkIfExists: true), + 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/proovframe/map/tests/main.nf.test.snap b/modules/nf-core/proovframe/map/tests/main.nf.test.snap new file mode 100644 index 00000000000..b0224d1728e --- /dev/null +++ b/modules/nf-core/proovframe/map/tests/main.nf.test.snap @@ -0,0 +1,49 @@ +{ + "sarscov2 - tsv": { + "content": [ + [ + "versions.yml:md5,f49f29b8134fdb539364ee46855eb313" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "23.04.5" + }, + "timestamp": "2024-10-16T15:02:00.599243234" + }, + "sarscov2 - tsv - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,f49f29b8134fdb539364ee46855eb313" + ], + "tsv": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,f49f29b8134fdb539364ee46855eb313" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "23.04.5" + }, + "timestamp": "2024-10-16T15:02:21.855444606" + } +} \ No newline at end of file From 3c464e75051db485c1b37ab9f1ea2182fb3d3533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Schcolnicov?= <90359308+nschcolnicov@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:09:03 -0300 Subject: [PATCH 16/18] Added samshee (#6749) * Added samshee * Fix pre-commit * Fix linting * Add more options * Remove nextflow.config * Addressing PR comments * Add python version * Add file schema testing and missing arg * Fixing test * Fix test * fix tests conda * Fix conda env.yml --------- Co-authored-by: zxBIB Schcolnicov --- modules/nf-core/samshee/environment.yml | 6 + modules/nf-core/samshee/main.nf | 47 ++++++++ modules/nf-core/samshee/meta.yml | 47 ++++++++ modules/nf-core/samshee/tests/main.nf.test | 85 ++++++++++++++ .../nf-core/samshee/tests/main.nf.test.snap | 107 ++++++++++++++++++ modules/nf-core/samshee/tests/nextflow.config | 9 ++ 6 files changed, 301 insertions(+) create mode 100644 modules/nf-core/samshee/environment.yml create mode 100644 modules/nf-core/samshee/main.nf create mode 100644 modules/nf-core/samshee/meta.yml create mode 100644 modules/nf-core/samshee/tests/main.nf.test create mode 100644 modules/nf-core/samshee/tests/main.nf.test.snap create mode 100644 modules/nf-core/samshee/tests/nextflow.config diff --git a/modules/nf-core/samshee/environment.yml b/modules/nf-core/samshee/environment.yml new file mode 100644 index 00000000000..35a8e2e7852 --- /dev/null +++ b/modules/nf-core/samshee/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::samshee=0.2.1 + - python=3.13.0 diff --git a/modules/nf-core/samshee/main.nf b/modules/nf-core/samshee/main.nf new file mode 100644 index 00000000000..6d7ba2e6017 --- /dev/null +++ b/modules/nf-core/samshee/main.nf @@ -0,0 +1,47 @@ +process SAMSHEE { + tag "$meta.id" + label 'process_single' + + 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/65/659cdc3068a6fbce17ccb199bb3afc8600c65940743c1a0214b3bf0eed4df1a3/data' : + 'community.wave.seqera.io/library/pip_samshee:9b655e3c18eee356' }" + + input: + tuple val(meta), path(samplesheet) + path(file_schema_validator) + + output: + tuple val(meta), path("*_formatted.csv"), emit: samplesheet + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def arg_file_schema_validator = file_schema_validator ? "--schema '{\"\$ref\": \"file:${file_schema_validator}\"}'" : "" + def args = task.ext.args ?: "" + """ + # Run validation command and capture output + python -m samshee $samplesheet \ + $args \ + $arg_file_schema_validator \ + > ${samplesheet.baseName}_formatted.csv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samshee: \$( python -m pip show --version samshee | grep "Version" | sed -e "s/Version: //g" ) + python: \$( python --version | sed -e "s/Python //g" ) + END_VERSIONS + """ + + stub: + """ + touch ${samplesheet.baseName}_formatted.csv + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samshee: \$( python -m pip show --version samshee | grep "Version" | sed -e "s/Version: //g" ) + python: \$( python --version | sed -e "s/Python //g" ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/samshee/meta.yml b/modules/nf-core/samshee/meta.yml new file mode 100644 index 00000000000..50789dfbaef --- /dev/null +++ b/modules/nf-core/samshee/meta.yml @@ -0,0 +1,47 @@ +name: samshee +description: Module to validate illumina® Sample Sheet v2 files. +keywords: + - samplesheet + - illumina + - bclconvert + - bcl2fastq +tools: + - samshee: + description: A schema-agnostic parser and writer for illumina® sample sheets v2 and similar documents. + homepage: https://github.com/lit-regensburg/samshee + documentation: https://github.com/lit-regensburg/samshee/blob/main/README.md + tool_dev_url: https://github.com/lit-regensburg/samshee + licence: [MIT license] + identifier: "" +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', lane:1 ] + - samplesheet: + type: file + description: "illumina v2 samplesheet" + pattern: "*.{csv}" + - - file_schema_validator: + type: string + description: "Optional JSON file used additional samplesheet validation settings" +output: + - samplesheet: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', lane:1 ] + - "*_formatted.csv": + type: file + description: "illumina v2 samplesheet" + - versions: + - versions.yml: + type: file + description: File containing software version + pattern: "versions.yml" +authors: + - "@nschcolnicov" +maintainers: + - "@nschcolnicov" diff --git a/modules/nf-core/samshee/tests/main.nf.test b/modules/nf-core/samshee/tests/main.nf.test new file mode 100644 index 00000000000..5bec682f18f --- /dev/null +++ b/modules/nf-core/samshee/tests/main.nf.test @@ -0,0 +1,85 @@ +nextflow_process { + + name "Test Process samshee" + script "../main.nf" + process "SAMSHEE" + config "./nextflow.config" + tag "modules" + tag "modules_nfcore" + tag "samshee" + + test("test samplesheet_v1") { + + when { + params { + v1_schema = true + json_schema_validator = '{"required": ["Data"]}' + name_schema_validator = null + } + process { + """ + input[0] = [ [ id: 'test', lane:1 ], file("https://raw.githubusercontent.com/nf-core/test-datasets/demultiplex/testdata/miseq_35147139/miseq_35147139_samplesheet.csv", checkIfExists: true) ] + input[1] = file("schema.json") + new File("schema.json").text = '''{ + "\$schema": "https://json-schema.org/draft/2020-12/schema", + "required": ["Settings"] + }''' + """ + } + } + + then { + assert process.success + assert snapshot(process.out).match() + } + + } + test("test samplesheet_v2") { + + when { + params { + v1_schema = null + json_schema_validator = null + name_schema_validator = '{"$ref": "urn:samshee:illuminav2/v1"}' + } + process { + """ + input[0] = [ [ id: 'test', lane:1 ], file("https://raw.githubusercontent.com/nf-core/test-datasets/demultiplex/testdata/NextSeq2000/SampleSheet.csv", checkIfExists: true) ] + input[1] = [] + """ + } + } + + then { + assert process.success + assert snapshot(process.out).match() + } + + } + + test("stub") { + + options "-stub" + + when { + params { + v1_schema = null + json_schema_validator = null + name_schema_validator = null + } + process { + """ + input[0] = [ [ id: 'test', lane:1 ], file("https://raw.githubusercontent.com/nf-core/test-datasets/demultiplex/testdata/NextSeq2000/SampleSheet.csv", checkIfExists: true) ] + input[1] = [] + """ + } + } + + then { + assert process.success + assert snapshot(process.out).match() + } + + } + +} diff --git a/modules/nf-core/samshee/tests/main.nf.test.snap b/modules/nf-core/samshee/tests/main.nf.test.snap new file mode 100644 index 00000000000..b3729eba261 --- /dev/null +++ b/modules/nf-core/samshee/tests/main.nf.test.snap @@ -0,0 +1,107 @@ +{ + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "lane": 1 + }, + "SampleSheet_formatted.csv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,77af0194d386117bf52aaabdf350a976" + ], + "samplesheet": [ + [ + { + "id": "test", + "lane": 1 + }, + "SampleSheet_formatted.csv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,77af0194d386117bf52aaabdf350a976" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-16T15:25:40.722007136" + }, + "test samplesheet_v1": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "lane": 1 + }, + "miseq_35147139_samplesheet_formatted.csv:md5,2a6ee5b13242aeefdeeaa98671f1ee26" + ] + ], + "1": [ + "versions.yml:md5,77af0194d386117bf52aaabdf350a976" + ], + "samplesheet": [ + [ + { + "id": "test", + "lane": 1 + }, + "miseq_35147139_samplesheet_formatted.csv:md5,2a6ee5b13242aeefdeeaa98671f1ee26" + ] + ], + "versions": [ + "versions.yml:md5,77af0194d386117bf52aaabdf350a976" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-16T15:25:02.353128191" + }, + "test samplesheet_v2": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "lane": 1 + }, + "SampleSheet_formatted.csv:md5,9a1cac9e958256a17c7f43a8e15cb697" + ] + ], + "1": [ + "versions.yml:md5,77af0194d386117bf52aaabdf350a976" + ], + "samplesheet": [ + [ + { + "id": "test", + "lane": 1 + }, + "SampleSheet_formatted.csv:md5,9a1cac9e958256a17c7f43a8e15cb697" + ] + ], + "versions": [ + "versions.yml:md5,77af0194d386117bf52aaabdf350a976" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-16T15:25:24.540910786" + } +} \ No newline at end of file diff --git a/modules/nf-core/samshee/tests/nextflow.config b/modules/nf-core/samshee/tests/nextflow.config new file mode 100644 index 00000000000..ecf1ff663e4 --- /dev/null +++ b/modules/nf-core/samshee/tests/nextflow.config @@ -0,0 +1,9 @@ +process { + withName: SAMSHEE { + ext.args = [ + params.json_schema_validator ? "--schema '${params.json_schema_validator}'" : "", + params.name_schema_validator ? "--schema '${params.name_schema_validator}'" : "", + params.v1_schema ? "--output-format sectioned" : "", + ].join(" ").trim() + } +} From 7741dfc830e77a8ead2fcb50b01461ee09d0cdfe Mon Sep 17 00:00:00 2001 From: Annick Renevey <47788523+rannick@users.noreply.github.com> Date: Thu, 17 Oct 2024 10:26:08 +0200 Subject: [PATCH 17/18] Arriba download update (#6745) * add specific files created * typo * add from nf-test template * remove from pytest_modules * update environement file * update arriba * add tests * use latest conda build * arriba conda env * update environement * update meta * update tags in test * move arriba test to stubs as timeout for merge queue --- modules/nf-core/arriba/arriba/environment.yml | 3 + modules/nf-core/arriba/arriba/main.nf | 17 ++- modules/nf-core/arriba/arriba/meta.yml | 39 +------ .../nf-core/arriba/arriba/tests/main.nf.test | 107 ++++++++++++++++++ .../arriba/arriba/tests/main.nf.test.snap | 55 +++++++++ .../arriba/arriba/tests}/nextflow.config | 5 - modules/nf-core/arriba/download/main.nf | 9 +- modules/nf-core/arriba/download/meta.yml | 32 +++++- .../arriba/download/tests/main.nf.test | 29 +++-- .../arriba/download/tests/main.nf.test.snap | 62 +++++----- .../nf-core/arriba/download/tests/tags.yml | 2 + tests/config/pytest_modules.yml | 15 ++- tests/modules/nf-core/arriba/arriba/main.nf | 61 ---------- tests/modules/nf-core/arriba/arriba/test.yml | 87 -------------- 14 files changed, 281 insertions(+), 242 deletions(-) create mode 100644 modules/nf-core/arriba/arriba/tests/main.nf.test create mode 100644 modules/nf-core/arriba/arriba/tests/main.nf.test.snap rename {tests/modules/nf-core/arriba/arriba => modules/nf-core/arriba/arriba/tests}/nextflow.config (84%) create mode 100644 modules/nf-core/arriba/download/tests/tags.yml delete mode 100644 tests/modules/nf-core/arriba/arriba/main.nf delete mode 100644 tests/modules/nf-core/arriba/arriba/test.yml diff --git a/modules/nf-core/arriba/arriba/environment.yml b/modules/nf-core/arriba/arriba/environment.yml index d0883a0d205..c3a88ffbdf8 100644 --- a/modules/nf-core/arriba/arriba/environment.yml +++ b/modules/nf-core/arriba/arriba/environment.yml @@ -1,5 +1,8 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda + dependencies: - bioconda::arriba=2.4.0 diff --git a/modules/nf-core/arriba/arriba/main.nf b/modules/nf-core/arriba/arriba/main.nf index 761d0bf3587..75dbf93ad9f 100644 --- a/modules/nf-core/arriba/arriba/main.nf +++ b/modules/nf-core/arriba/arriba/main.nf @@ -8,14 +8,13 @@ process ARRIBA_ARRIBA { 'biocontainers/arriba:2.4.0--h0033a41_2' }" input: - tuple val(meta), path(bam) + tuple val(meta), path(bam) tuple val(meta2), path(fasta) tuple val(meta3), path(gtf) - tuple val(meta4), path(blacklist) - tuple val(meta5), path(known_fusions) - tuple val(meta6), path(structural_variants) - tuple val(meta7), path(tags) - tuple val(meta8), path(protein_domains) + path(blacklist) + path(known_fusions) + path(cytobands) + path(protein_domains) output: tuple val(meta), path("*.fusions.tsv") , emit: fusions @@ -30,8 +29,7 @@ process ARRIBA_ARRIBA { def prefix = task.ext.prefix ?: "${meta.id}" def blacklist = blacklist ? "-b $blacklist" : "-f blacklist" def known_fusions = known_fusions ? "-k $known_fusions" : "" - def structural_variants = structural_variants ? "-d $structual_variants" : "" - def tags = tags ? "-t $tags" : "" + def cytobands = cytobands ? "-d $cytobands" : "" def protein_domains = protein_domains ? "-p $protein_domains" : "" """ @@ -43,8 +41,7 @@ process ARRIBA_ARRIBA { -O ${prefix}.fusions.discarded.tsv \\ $blacklist \\ $known_fusions \\ - $structural_variants \\ - $tags \\ + $cytobands \\ $protein_domains \\ $args diff --git a/modules/nf-core/arriba/arriba/meta.yml b/modules/nf-core/arriba/arriba/meta.yml index f230dda1fbe..91ba2103961 100644 --- a/modules/nf-core/arriba/arriba/meta.yml +++ b/modules/nf-core/arriba/arriba/meta.yml @@ -43,48 +43,19 @@ input: type: file description: Annotation GTF file pattern: "*.{gtf}" - - - meta4: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - blacklist: + - - blacklist: type: file description: Blacklist file pattern: "*.{tsv}" - - - meta5: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - known_fusions: + - - known_fusions: type: file description: Known fusions file pattern: "*.{tsv}" - - - meta6: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - structural_variants: - type: file - description: Structural variants file - pattern: "*.{tsv}" - - - meta7: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - tags: + - - cytobands: type: file - description: Tags file + description: Cytobands file pattern: "*.{tsv}" - - - meta8: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - protein_domains: + - - protein_domains: type: file description: Protein domains file pattern: "*.{gff3}" diff --git a/modules/nf-core/arriba/arriba/tests/main.nf.test b/modules/nf-core/arriba/arriba/tests/main.nf.test new file mode 100644 index 00000000000..4cff86e50ef --- /dev/null +++ b/modules/nf-core/arriba/arriba/tests/main.nf.test @@ -0,0 +1,107 @@ + +nextflow_process { + + name "Test Process ARRIBA_ARRIBA" + script "../main.nf" + process "ARRIBA_ARRIBA" + + tag "modules" + tag "modules_nfcore" + tag "arriba" + tag "arriba/arriba" + tag "arriba/download" + tag "star/genomegenerate" + tag "star/align" + + setup { + config "./nextflow.config" + options "-stub" + run("ARRIBA_DOWNLOAD") { + script "../../../arriba/download/main.nf" + process { + """ + input[0] = 'GRCh38' + """ + } + } + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + options "-stub" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + run("STAR_ALIGN") { + script "../../../star/align/main.nf" + options "-stub" + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + } + + test("homo_sapiens - paired_end - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.rna.paired_end.sorted.bam', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = [] + + input[4] = [] + + input[5] = [] + + input[6] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/arriba/arriba/tests/main.nf.test.snap b/modules/nf-core/arriba/arriba/tests/main.nf.test.snap new file mode 100644 index 00000000000..14d46f6b87a --- /dev/null +++ b/modules/nf-core/arriba/arriba/tests/main.nf.test.snap @@ -0,0 +1,55 @@ +{ + "homo_sapiens - paired_end - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fusions.tsv:md5,f50b84b1db4b83ba62ec1deacc69c260" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fusions.discarded.tsv:md5,f50b84b1db4b83ba62ec1deacc69c260" + ] + ], + "2": [ + "versions.yml:md5,d323796555db4a58fe4c6bc08d1dec30" + ], + "fusions": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fusions.tsv:md5,f50b84b1db4b83ba62ec1deacc69c260" + ] + ], + "fusions_fail": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fusions.discarded.tsv:md5,f50b84b1db4b83ba62ec1deacc69c260" + ] + ], + "versions": [ + "versions.yml:md5,d323796555db4a58fe4c6bc08d1dec30" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T15:41:23.945072" + } +} \ No newline at end of file diff --git a/tests/modules/nf-core/arriba/arriba/nextflow.config b/modules/nf-core/arriba/arriba/tests/nextflow.config similarity index 84% rename from tests/modules/nf-core/arriba/arriba/nextflow.config rename to modules/nf-core/arriba/arriba/tests/nextflow.config index 1b66d8dfa7f..d3d5b00f665 100644 --- a/tests/modules/nf-core/arriba/arriba/nextflow.config +++ b/modules/nf-core/arriba/arriba/tests/nextflow.config @@ -1,13 +1,8 @@ process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: STAR_GENOMEGENERATE { ext.args = '--genomeSAindexNbases 11' } - withName: STAR_ALIGN { ext.args = '--readFilesCommand zcat --outSAMtype BAM Unsorted --outSAMunmapped Within --outBAMcompression 0 --outFilterMultimapNmax 50 --peOverlapNbasesMin 10 --alignSplicedMateMapLminOverLmate 0.5 --alignSJstitchMismatchNmax 5 -1 5 5 --chimSegmentMin 10 --chimOutType WithinBAM HardClip --chimJunctionOverhangMin 10 --chimScoreDropMax 30 --chimScoreJunctionNonGTAG 0 --chimScoreSeparation 1 --chimSegmentReadGapMax 3 --chimMultimapNmax 50' } - } diff --git a/modules/nf-core/arriba/download/main.nf b/modules/nf-core/arriba/download/main.nf index 96a4e33628f..2e63b2d0b17 100644 --- a/modules/nf-core/arriba/download/main.nf +++ b/modules/nf-core/arriba/download/main.nf @@ -8,10 +8,14 @@ process ARRIBA_DOWNLOAD { 'biocontainers/arriba:2.4.0--h0033a41_2' }" input: + val(genome) output: - path "*" , emit: reference - path "versions.yml" , emit: versions + path "blacklist*${genome}*.tsv.gz" , emit: blacklist + path "cytobands*${genome}*.tsv" , emit: cytobands + path "protein_domains*${genome}*.gff3" , emit: protein_domains + path "known_fusions*${genome}*.tsv.gz" , emit: known_fusions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -36,7 +40,6 @@ process ARRIBA_DOWNLOAD { touch protein_domains_hg38_GRCh38_v2.4.0.gff3 touch cytobands_hg38_GRCh38_v2.4.0.tsv touch known_fusions_hg38_GRCh38_v2.4.0.tsv.gz - touch protein_domains_hg38_GRCh38_v2.4.0.gff3 cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/arriba/download/meta.yml b/modules/nf-core/arriba/download/meta.yml index 531c66c2f77..892b7ac9b78 100644 --- a/modules/nf-core/arriba/download/meta.yml +++ b/modules/nf-core/arriba/download/meta.yml @@ -15,12 +15,34 @@ tools: licence: ["MIT"] identifier: biotools:Arriba +input: + - - genome: + type: string + description: hg38, hg19, GRCh38, GRCh37 for humans are accepted output: - - reference: - - "*": - type: directory - description: Folder with arriba references - pattern: "*" + - blacklist: + - blacklist*${genome}*.tsv.gz: + type: str + description: The blacklist removes recurrent alignment artifacts and transcripts + which are present in healthy tissue + pattern: ".tsv.gz" + - cytobands: + - cytobands*${genome}*.tsv: + type: file + description: Coordinates of the Giemsa staining bands. This information is used + to draw ideograms + pattern: ".tsv" + - protein_domains: + - protein_domains*${genome}*.gff3: + type: file + description: Protein domain annotations + patter: "*.gff3" + - known_fusions: + - known_fusions*${genome}*.tsv.gz: + type: file + description: Arriba is more sensitive to those fusions to improve the detection + rate of expected or highly relevant events, such as recurrent fusions + patter: "*.tsv.gz" - versions: - versions.yml: type: file diff --git a/modules/nf-core/arriba/download/tests/main.nf.test b/modules/nf-core/arriba/download/tests/main.nf.test index cccc95db2c0..2c32c7a0f3a 100644 --- a/modules/nf-core/arriba/download/tests/main.nf.test +++ b/modules/nf-core/arriba/download/tests/main.nf.test @@ -11,11 +11,10 @@ nextflow_process { tag "arriba/download" test("test-arriba-download") { - when { process { """ - + input[0] = 'GRCh38' """ } } @@ -23,11 +22,27 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out.reference[0].collect { file(it).name }.toSorted(), - process.out.versions - ).match() - } + { assert snapshot(process.out).match() } + ) + } + + } + + test("download - stub") { + + options "-stub" + + when { + process { + """ + input[0] = 'GRCh38' + """ + } + } + + then { + assertAll( + { assert process.success } ) } } diff --git a/modules/nf-core/arriba/download/tests/main.nf.test.snap b/modules/nf-core/arriba/download/tests/main.nf.test.snap index eda3f706640..fe9b18b9483 100644 --- a/modules/nf-core/arriba/download/tests/main.nf.test.snap +++ b/modules/nf-core/arriba/download/tests/main.nf.test.snap @@ -1,35 +1,43 @@ { - "test-arriba-download": { + "download": { "content": [ - [ - "CREDITS", - "RefSeq_viral_genomes_v2.4.0.fa.gz", - "blacklist_hg19_hs37d5_GRCh37_v2.4.0.tsv.gz", - "blacklist_hg38_GRCh38_v2.4.0.tsv.gz", - "blacklist_mm10_GRCm38_v2.4.0.tsv.gz", - "blacklist_mm39_GRCm39_v2.4.0.tsv.gz", - "cytobands_hg19_hs37d5_GRCh37_v2.4.0.tsv", - "cytobands_hg38_GRCh38_v2.4.0.tsv", - "cytobands_mm10_GRCm38_v2.4.0.tsv", - "cytobands_mm39_GRCm39_v2.4.0.tsv", - "known_fusions_hg19_hs37d5_GRCh37_v2.4.0.tsv.gz", - "known_fusions_hg38_GRCh38_v2.4.0.tsv.gz", - "known_fusions_mm10_GRCm38_v2.4.0.tsv.gz", - "known_fusions_mm39_GRCm39_v2.4.0.tsv.gz", - "protein_domains_hg19_hs37d5_GRCh37_v2.4.0.gff3", - "protein_domains_hg38_GRCh38_v2.4.0.gff3", - "protein_domains_mm10_GRCm38_v2.4.0.gff3", - "protein_domains_mm39_GRCm39_v2.4.0.gff3", - "versions.yml" - ], - [ - "versions.yml:md5,98c69df5eaea5caf0b4af7b8d7af4893" - ] + { + "0": [ + "blacklist_hg38_GRCh38_v2.4.0.tsv.gz:md5,e3098a4be51aece78aede64b55c39318" + ], + "1": [ + "cytobands_hg38_GRCh38_v2.4.0.tsv:md5,7bd504feefb33fcfc9be0517439a423c" + ], + "2": [ + "protein_domains_hg38_GRCh38_v2.4.0.gff3:md5,43c387a784ebeed71b4147076cebf978" + ], + "3": [ + "known_fusions_hg38_GRCh38_v2.4.0.tsv.gz:md5,4f00f81ccb5f4db283f1a22b8b0da67c" + ], + "4": [ + "versions.yml:md5,98c69df5eaea5caf0b4af7b8d7af4893" + ], + "blacklist": [ + "blacklist_hg38_GRCh38_v2.4.0.tsv.gz:md5,e3098a4be51aece78aede64b55c39318" + ], + "cytobands": [ + "cytobands_hg38_GRCh38_v2.4.0.tsv:md5,7bd504feefb33fcfc9be0517439a423c" + ], + "known_fusions": [ + "known_fusions_hg38_GRCh38_v2.4.0.tsv.gz:md5,4f00f81ccb5f4db283f1a22b8b0da67c" + ], + "protein_domains": [ + "protein_domains_hg38_GRCh38_v2.4.0.gff3:md5,43c387a784ebeed71b4147076cebf978" + ], + "versions": [ + "versions.yml:md5,98c69df5eaea5caf0b4af7b8d7af4893" + ] + } ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-22T17:00:38.086459" + "timestamp": "2024-10-08T11:12:17.010496" } } \ No newline at end of file diff --git a/modules/nf-core/arriba/download/tests/tags.yml b/modules/nf-core/arriba/download/tests/tags.yml new file mode 100644 index 00000000000..f510bbf1a14 --- /dev/null +++ b/modules/nf-core/arriba/download/tests/tags.yml @@ -0,0 +1,2 @@ +arriba/download: + - "modules/nf-core/arriba/download/**" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 5d8a9be3c4f..584db480a14 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1,9 +1,18 @@ amps: - modules/nf-core/amps/** - tests/modules/nf-core/amps/** -arriba/arriba: - - modules/nf-core/arriba/arriba/** - - tests/modules/nf-core/arriba/arriba/** +angsd/contamination: + - modules/nf-core/angsd/contamination/** + - tests/modules/nf-core/angsd/contamination/** +angsd/docounts: + - modules/nf-core/angsd/docounts/** + - tests/modules/nf-core/angsd/docounts/** +arcashla/extract: + - modules/nf-core/arcashla/extract/** + - tests/modules/nf-core/arcashla/extract/** +ariba/getref: + - modules/nf-core/ariba/getref/** + - tests/modules/nf-core/ariba/getref/** artic/guppyplex: - modules/nf-core/artic/guppyplex/** - tests/modules/nf-core/artic/guppyplex/** diff --git a/tests/modules/nf-core/arriba/arriba/main.nf b/tests/modules/nf-core/arriba/arriba/main.nf deleted file mode 100644 index 2d5b9a3ce71..00000000000 --- a/tests/modules/nf-core/arriba/arriba/main.nf +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { STAR_GENOMEGENERATE } from '../../../../../modules/nf-core/star/genomegenerate/main.nf' -include { STAR_ALIGN } from '../../../../../modules/nf-core/star/align/main.nf' -include { ARRIBA_ARRIBA } from '../../../../../modules/nf-core/arriba/arriba/main.nf' - -workflow test_arriba_single_end { - - input = [ [ id:'test', single_end:true ], // meta map - [ file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_1_fastq_gz'], checkIfExists: true), - ] - ] - fasta = [ - [ id:'test_fasta' ], // meta map - [ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ] - ] - fai = [ - [ id:'test_fai' ], // meta map - [ file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) ] - ] - gtf = [ - [ id:'test_fasta_gtf' ], // meta map - [ file(params.test_data['homo_sapiens']['genome']['genome_gtf'], checkIfExists: true) ] - ] - star_ignore_sjdbgtf = false - seq_platform = 'illumina' - seq_center = false - - STAR_GENOMEGENERATE ( fasta, gtf ) - STAR_ALIGN ( input, STAR_GENOMEGENERATE.out.index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center ) - ARRIBA_ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf , [[],[]], [[],[]], [[],[]], [[],[]], [[],[]]) -} - -workflow test_arriba_paired_end { - - input = [ [ id:'test', single_end:false ], // meta map - [ file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_1_fastq_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_2_fastq_gz'], checkIfExists: true) ] - ] - fasta = [ - [ id:'test_fasta' ], // meta map - [ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ] - ] - fai = [ - [ id:'test_gtf' ], // meta map - [ file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) ] - ] - gtf = [ - [ id:'test_fasta_fai' ], // meta map - [ file(params.test_data['homo_sapiens']['genome']['genome_gtf'], checkIfExists: true) ] - ] - star_ignore_sjdbgtf = false - seq_platform = 'illumina' - seq_center = false - - STAR_GENOMEGENERATE ( fasta, gtf ) - STAR_ALIGN ( input, STAR_GENOMEGENERATE.out.index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center ) - ARRIBA_ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf, [[],[]], [[],[]], [[],[]], [[],[]], [[],[]]) -} diff --git a/tests/modules/nf-core/arriba/arriba/test.yml b/tests/modules/nf-core/arriba/arriba/test.yml deleted file mode 100644 index 19db9f0d6b6..00000000000 --- a/tests/modules/nf-core/arriba/arriba/test.yml +++ /dev/null @@ -1,87 +0,0 @@ -- name: arriba arriba test_arriba_single_end - command: nextflow run ./tests/modules/nf-core/arriba/arriba -entry test_arriba_single_end -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/arriba/arriba/nextflow.config - tags: - - arriba - - arriba/arriba - files: - - path: output/arriba/test.fusions.discarded.tsv - - path: output/arriba/test.fusions.tsv - md5sum: 7c3383f7eb6d79b84b0bd30a7ef02d70 - - path: output/star/star/Genome - md5sum: a654229fbca6071dcb6b01ce7df704da - - path: output/star/star/Log.out - - path: output/star/star/SA - md5sum: 8c3edc46697b72c9e92440d4cf43506c - - path: output/star/star/SAindex - md5sum: 9f085c626553b1c52f2827421972ac10 - - path: output/star/star/chrLength.txt - md5sum: c81f40f27e72606d7d07097c1d56a5b5 - - path: output/star/star/chrName.txt - md5sum: 5ae68a67b70976ee95342a7451cb5af1 - - path: output/star/star/chrNameLength.txt - md5sum: b190587cae0531f3cf25552d8aa674db - - path: output/star/star/chrStart.txt - md5sum: 8d3291e6bcdbe9902fbd7c887494173f - - path: output/star/star/exonInfo.tab - md5sum: 0d560290fab688b7268d88d5494bf9fe - - path: output/star/star/geneInfo.tab - md5sum: 8b608537307443ffaee4927d2b428805 - - path: output/star/star/genomeParameters.txt - md5sum: 9e42067b1ec70b773257529230dd7b3a - - path: output/star/star/sjdbInfo.txt - md5sum: 5690ea9d9f09f7ff85b7fd47bd234903 - - path: output/star/star/sjdbList.fromGTF.out.tab - md5sum: 8760c33e966dad0b39f440301ebbdee4 - - path: output/star/star/sjdbList.out.tab - md5sum: 9e4f991abbbfeb3935a2bb21b9e258f1 - - path: output/star/star/transcriptInfo.tab - md5sum: 0c3a5adb49d15e5feff81db8e29f2e36 - - path: output/star/test.Aligned.out.bam - - path: output/star/test.Log.final.out - - path: output/star/test.Log.out - - path: output/star/test.Log.progress.out - - path: output/star/test.SJ.out.tab - -- name: arriba arriba test_arriba_paired_end - command: nextflow run ./tests/modules/nf-core/arriba/arriba -entry test_arriba_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/arriba/arriba/nextflow.config - tags: - - arriba - - arriba/arriba - files: - - path: output/arriba/test.fusions.discarded.tsv - - path: output/arriba/test.fusions.tsv - md5sum: 7c3383f7eb6d79b84b0bd30a7ef02d70 - - path: output/star/star/Genome - md5sum: a654229fbca6071dcb6b01ce7df704da - - path: output/star/star/Log.out - - path: output/star/star/SA - md5sum: 8c3edc46697b72c9e92440d4cf43506c - - path: output/star/star/SAindex - md5sum: 9f085c626553b1c52f2827421972ac10 - - path: output/star/star/chrLength.txt - md5sum: c81f40f27e72606d7d07097c1d56a5b5 - - path: output/star/star/chrName.txt - md5sum: 5ae68a67b70976ee95342a7451cb5af1 - - path: output/star/star/chrNameLength.txt - md5sum: b190587cae0531f3cf25552d8aa674db - - path: output/star/star/chrStart.txt - md5sum: 8d3291e6bcdbe9902fbd7c887494173f - - path: output/star/star/exonInfo.tab - md5sum: 0d560290fab688b7268d88d5494bf9fe - - path: output/star/star/geneInfo.tab - md5sum: 8b608537307443ffaee4927d2b428805 - - path: output/star/star/genomeParameters.txt - md5sum: 9e42067b1ec70b773257529230dd7b3a - - path: output/star/star/sjdbInfo.txt - md5sum: 5690ea9d9f09f7ff85b7fd47bd234903 - - path: output/star/star/sjdbList.fromGTF.out.tab - md5sum: 8760c33e966dad0b39f440301ebbdee4 - - path: output/star/star/sjdbList.out.tab - md5sum: 9e4f991abbbfeb3935a2bb21b9e258f1 - - path: output/star/star/transcriptInfo.tab - md5sum: 0c3a5adb49d15e5feff81db8e29f2e36 - - path: output/star/test.Aligned.out.bam - - path: output/star/test.Log.final.out - - path: output/star/test.Log.out - - path: output/star/test.Log.progress.out - - path: output/star/test.SJ.out.tab From 84b38813467877822f33a76a2f997bc40325331b Mon Sep 17 00:00:00 2001 From: Annick Renevey <47788523+rannick@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:03:47 +0200 Subject: [PATCH 18/18] Update arriba no check (#6765) * add specific files created * typo * add from nf-test template * remove from pytest_modules * update environement file * update arriba * add tests * use latest conda build * arriba conda env * update environement * update meta * update tags in test * remove ssl check --- modules/nf-core/arriba/download/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/arriba/download/main.nf b/modules/nf-core/arriba/download/main.nf index 2e63b2d0b17..c45120adb5d 100644 --- a/modules/nf-core/arriba/download/main.nf +++ b/modules/nf-core/arriba/download/main.nf @@ -22,7 +22,7 @@ process ARRIBA_DOWNLOAD { script: """ - wget https://github.com/suhrig/arriba/releases/download/v2.4.0/arriba_v2.4.0.tar.gz -O arriba_v2.4.0.tar.gz + wget https://github.com/suhrig/arriba/releases/download/v2.4.0/arriba_v2.4.0.tar.gz -O arriba_v2.4.0.tar.gz --no-check-certificate tar -xzvf arriba_v2.4.0.tar.gz rm arriba_v2.4.0.tar.gz mv arriba_v2.4.0/database/* .