From daa7c50161e6a6e25f17c0b11f076f3e7a3c24e3 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 27 Aug 2024 07:51:43 +1200 Subject: [PATCH] Added nf-test for picard/collectmultiplemetrics (#6296) --- .../collectmultiplemetrics/tests/main.nf.test | 112 ++++++++++++++++++ .../tests/main.nf.test.snap | 80 +++++++++++++ tests/config/pytest_modules.yml | 3 - .../picard/collectmultiplemetrics/main.nf | 48 -------- .../collectmultiplemetrics/nextflow.config | 5 - .../picard/collectmultiplemetrics/test.yml | 93 --------------- 6 files changed, 192 insertions(+), 149 deletions(-) create mode 100644 modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test create mode 100644 modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test.snap delete mode 100644 tests/modules/nf-core/picard/collectmultiplemetrics/main.nf delete mode 100644 tests/modules/nf-core/picard/collectmultiplemetrics/nextflow.config delete mode 100644 tests/modules/nf-core/picard/collectmultiplemetrics/test.yml diff --git a/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test b/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test new file mode 100644 index 000000000000..5b67774f7200 --- /dev/null +++ b/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test @@ -0,0 +1,112 @@ + +nextflow_process { + + name "Test Process PICARD_COLLECTMULTIPLEMETRICS" + script "../main.nf" + process "PICARD_COLLECTMULTIPLEMETRICS" + + tag "modules" + tag "modules_nfcore" + tag "picard" + tag "picard/collectmultiplemetrics" + + test("test-picard-collectmultiplemetrics") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + ] + input[1] = [ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = [[id:'genome'],[]] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.metrics[0][1].collect { file(it).name }.toSorted(), + process.out.pdf[0][1].collect { file(it).name }.toSorted(), + process.out.versions + ).match() + } + ) + } + } + + test("test-picard-collectmultiplemetrics-nofasta") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + ] + input[1] = [[id:'genome'],[]] + input[2] = [[id:'genome'],[]] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.metrics[0][1].collect { file(it).name }.toSorted(), + process.out.pdf[0][1].collect { file(it).name }.toSorted(), + process.out.versions + ).match() + } + ) + } + } + + test("test-picard-collectmultiplemetrics-cram") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + ] + input[1] = [ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = [ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.metrics[0][1].collect { file(it).name }.toSorted(), + process.out.pdf[0][1].collect { file(it).name }.toSorted(), + process.out.versions + ).match() + } + ) + } + } + +} diff --git a/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test.snap b/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test.snap new file mode 100644 index 000000000000..1859541b6dd0 --- /dev/null +++ b/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test.snap @@ -0,0 +1,80 @@ +{ + "test-picard-collectmultiplemetrics": { + "content": [ + [ + "test.CollectMultipleMetrics.alignment_summary_metrics", + "test.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "test.CollectMultipleMetrics.insert_size_metrics", + "test.CollectMultipleMetrics.quality_by_cycle_metrics", + "test.CollectMultipleMetrics.quality_distribution_metrics" + ], + [ + "test.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "test.CollectMultipleMetrics.insert_size_histogram.pdf", + "test.CollectMultipleMetrics.quality_by_cycle.pdf", + "test.CollectMultipleMetrics.quality_distribution.pdf", + "test.CollectMultipleMetrics.read_length_histogram.pdf" + ], + [ + "versions.yml:md5,b68b83e8dd0f9360453213acad639338" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.4" + }, + "timestamp": "2024-08-26T10:03:36.631174" + }, + "test-picard-collectmultiplemetrics-cram": { + "content": [ + [ + "test.CollectMultipleMetrics.alignment_summary_metrics", + "test.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "test.CollectMultipleMetrics.insert_size_metrics", + "test.CollectMultipleMetrics.quality_by_cycle_metrics", + "test.CollectMultipleMetrics.quality_distribution_metrics" + ], + [ + "test.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "test.CollectMultipleMetrics.insert_size_histogram.pdf", + "test.CollectMultipleMetrics.quality_by_cycle.pdf", + "test.CollectMultipleMetrics.quality_distribution.pdf", + "test.CollectMultipleMetrics.read_length_histogram.pdf" + ], + [ + "versions.yml:md5,b68b83e8dd0f9360453213acad639338" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.4" + }, + "timestamp": "2024-08-26T10:04:13.955902" + }, + "test-picard-collectmultiplemetrics-nofasta": { + "content": [ + [ + "test.CollectMultipleMetrics.alignment_summary_metrics", + "test.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "test.CollectMultipleMetrics.insert_size_metrics", + "test.CollectMultipleMetrics.quality_by_cycle_metrics", + "test.CollectMultipleMetrics.quality_distribution_metrics" + ], + [ + "test.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "test.CollectMultipleMetrics.insert_size_histogram.pdf", + "test.CollectMultipleMetrics.quality_by_cycle.pdf", + "test.CollectMultipleMetrics.quality_distribution.pdf", + "test.CollectMultipleMetrics.read_length_histogram.pdf" + ], + [ + "versions.yml:md5,b68b83e8dd0f9360453213acad639338" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.4" + }, + "timestamp": "2024-08-26T10:03:54.707587" + } +} \ No newline at end of file diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 1db3368e02a5..c4f245e1ffd0 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -932,9 +932,6 @@ picard/cleansam: picard/collectinsertsizemetrics: - modules/nf-core/picard/collectinsertsizemetrics/** - tests/modules/nf-core/picard/collectinsertsizemetrics/** -picard/collectmultiplemetrics: - - modules/nf-core/picard/collectmultiplemetrics/** - - tests/modules/nf-core/picard/collectmultiplemetrics/** picard/collectrnaseqmetrics: - modules/nf-core/picard/collectrnaseqmetrics/** - tests/modules/nf-core/picard/collectrnaseqmetrics/** diff --git a/tests/modules/nf-core/picard/collectmultiplemetrics/main.nf b/tests/modules/nf-core/picard/collectmultiplemetrics/main.nf deleted file mode 100644 index 12ea00223564..000000000000 --- a/tests/modules/nf-core/picard/collectmultiplemetrics/main.nf +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { PICARD_COLLECTMULTIPLEMETRICS } from '../../../../../modules/nf-core/picard/collectmultiplemetrics/main.nf' - -workflow test_picard_collectmultiplemetrics { - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) - ] - fasta = [ - [id:'genome'], - file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] - fai = [[id:'genome'],[]] - - PICARD_COLLECTMULTIPLEMETRICS ( input, fasta, fai ) -} - -workflow test_picard_collectmultiplemetrics_nofasta { - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) - ] - - PICARD_COLLECTMULTIPLEMETRICS ( input, [[id:'genome'],[]], [[id:'genome'],[]] ) -} - -workflow test_picard_collectmultiplemetrics_cram { - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) - ] - fasta = [ - [id:'genome'], - file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] - fai = [ - [id:'genome'], - file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - ] - - PICARD_COLLECTMULTIPLEMETRICS ( input, fasta, fai ) -} diff --git a/tests/modules/nf-core/picard/collectmultiplemetrics/nextflow.config b/tests/modules/nf-core/picard/collectmultiplemetrics/nextflow.config deleted file mode 100644 index 8730f1c4b930..000000000000 --- a/tests/modules/nf-core/picard/collectmultiplemetrics/nextflow.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - -} diff --git a/tests/modules/nf-core/picard/collectmultiplemetrics/test.yml b/tests/modules/nf-core/picard/collectmultiplemetrics/test.yml deleted file mode 100644 index c8e987d9d283..000000000000 --- a/tests/modules/nf-core/picard/collectmultiplemetrics/test.yml +++ /dev/null @@ -1,93 +0,0 @@ -- name: picard collectmultiplemetrics test_picard_collectmultiplemetrics - command: nextflow run ./tests/modules/nf-core/picard/collectmultiplemetrics -entry test_picard_collectmultiplemetrics -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/picard/collectmultiplemetrics/nextflow.config - tags: - - picard/collectmultiplemetrics - - picard - files: - - path: output/picard/test.CollectMultipleMetrics.alignment_summary_metrics - contains: - - "## METRICS CLASS\tpicard.analysis.AlignmentSummaryMetrics" - - path: output/picard/test.CollectMultipleMetrics.base_distribution_by_cycle.pdf - - path: output/picard/test.CollectMultipleMetrics.base_distribution_by_cycle_metrics - contains: - - "READ_END\tCYCLE\tPCT_A\tPCT_C\tPCT_G\tPCT_T\tPCT_N" - - "1\t1\t20\t26\t32\t22\t0" - - path: output/picard/test.CollectMultipleMetrics.insert_size_histogram.pdf - - path: output/picard/test.CollectMultipleMetrics.insert_size_metrics - contains: - - "MEDIAN_INSERT_SIZE\tMODE_INSERT_SIZE\tMEDIAN_ABSOLUTE_DEVIATION\tMIN_INSERT_SIZE\tMAX_INSERT_SIZE\tMEAN_INSERT_SIZE\tSTANDARD_DEVIATION\tREAD_PAIRS\tPAIR_ORIENTATION\tWIDTH_OF_10_PERCENT\tWIDTH_OF_20_PERCENT\tWIDTH_OF_30_PERCENT\tWIDTH_OF_40_PERCENT\tWIDTH_OF_50_PERCENT\tWIDTH_OF_60_PERCENT\tWIDTH_OF_70_PERCENT\tWIDTH_OF_80_PERCENT\tWIDTH_OF_90_PERCENT\tWIDTH_OF_95_PERCENT\tWIDTH_OF_99_PERCENT\tSAMPLE\tLIBRARY\tREAD_GROUP" - - "209\t159\t46\t77\t364\t207.659794\t66.769018\t97\tFR\t25\t49\t59\t77\t93\t123\t145\t183\t223\t255\t311" - - path: output/picard/test.CollectMultipleMetrics.quality_by_cycle.pdf - - path: output/picard/test.CollectMultipleMetrics.quality_by_cycle_metrics - contains: - - "CYCLE\tMEAN_QUALITY" - - "1\t32" - - "2\t31.35" - - path: output/picard/test.CollectMultipleMetrics.quality_distribution.pdf - - path: output/picard/test.CollectMultipleMetrics.quality_distribution_metrics - contains: - - "QUALITY\tCOUNT_OF_Q" - - "14\t1926" - - path: output/picard/test.CollectMultipleMetrics.read_length_histogram.pdf - - path: output/picard/versions.yml - -- name: picard collectmultiplemetrics test_picard_collectmultiplemetrics_nofasta - command: nextflow run ./tests/modules/nf-core/picard/collectmultiplemetrics -entry test_picard_collectmultiplemetrics_nofasta -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/picard/collectmultiplemetrics/nextflow.config - tags: - - picard/collectmultiplemetrics - - picard - files: - - path: output/picard/test.CollectMultipleMetrics.alignment_summary_metrics - contains: - - "## METRICS CLASS\tpicard.analysis.AlignmentSummaryMetrics" - - path: output/picard/test.CollectMultipleMetrics.base_distribution_by_cycle.pdf - - path: output/picard/test.CollectMultipleMetrics.base_distribution_by_cycle_metrics - contains: - - "READ_END\tCYCLE\tPCT_A\tPCT_C\tPCT_G\tPCT_T\tPCT_N" - - "1\t1\t20\t26\t32\t22\t0" - - path: output/picard/test.CollectMultipleMetrics.insert_size_histogram.pdf - - path: output/picard/test.CollectMultipleMetrics.insert_size_metrics - contains: - - "MEDIAN_INSERT_SIZE\tMODE_INSERT_SIZE\tMEDIAN_ABSOLUTE_DEVIATION\tMIN_INSERT_SIZE\tMAX_INSERT_SIZE\tMEAN_INSERT_SIZE\tSTANDARD_DEVIATION\tREAD_PAIRS\tPAIR_ORIENTATION\tWIDTH_OF_10_PERCENT\tWIDTH_OF_20_PERCENT\tWIDTH_OF_30_PERCENT\tWIDTH_OF_40_PERCENT\tWIDTH_OF_50_PERCENT\tWIDTH_OF_60_PERCENT\tWIDTH_OF_70_PERCENT\tWIDTH_OF_80_PERCENT\tWIDTH_OF_90_PERCENT\tWIDTH_OF_95_PERCENT\tWIDTH_OF_99_PERCENT\tSAMPLE\tLIBRARY\tREAD_GROUP" - - "209\t159\t46\t77\t364\t207.659794\t66.769018\t97\tFR\t25\t49\t59\t77\t93\t123\t145\t183\t223\t255\t311" - - path: output/picard/test.CollectMultipleMetrics.quality_by_cycle.pdf - - path: output/picard/test.CollectMultipleMetrics.quality_by_cycle_metrics - contains: - - "CYCLE\tMEAN_QUALITY" - - "1\t32" - - "2\t31.35" - - path: output/picard/test.CollectMultipleMetrics.quality_distribution.pdf - - path: output/picard/test.CollectMultipleMetrics.quality_distribution_metrics - contains: - - "QUALITY\tCOUNT_OF_Q" - - "14\t1926" - - path: output/picard/test.CollectMultipleMetrics.read_length_histogram.pdf - - path: output/picard/versions.yml - -- name: picard collectmultiplemetrics test_picard_collectmultiplemetrics_cram - command: nextflow run ./tests/modules/nf-core/picard/collectmultiplemetrics -entry test_picard_collectmultiplemetrics_cram -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/picard/collectmultiplemetrics/nextflow.config - tags: - - picard/collectmultiplemetrics - - picard - files: - - path: output/picard/test.CollectMultipleMetrics.alignment_summary_metrics - contains: - - "## METRICS CLASS\tpicard.analysis.AlignmentSummaryMetrics" - - path: output/picard/test.CollectMultipleMetrics.base_distribution_by_cycle.pdf - - path: output/picard/test.CollectMultipleMetrics.base_distribution_by_cycle_metrics - contains: - - "READ_END\tCYCLE\tPCT_A\tPCT_C\tPCT_G\tPCT_T\tPCT_N" - - path: output/picard/test.CollectMultipleMetrics.insert_size_histogram.pdf - - path: output/picard/test.CollectMultipleMetrics.insert_size_metrics - contains: - - "MEDIAN_INSERT_SIZE\tMODE_INSERT_SIZE\tMEDIAN_ABSOLUTE_DEVIATION\tMIN_INSERT_SIZE\tMAX_INSERT_SIZE\tMEAN_INSERT_SIZE\tSTANDARD_DEVIATION\tREAD_PAIRS\tPAIR_ORIENTATION\tWIDTH_OF_10_PERCENT\tWIDTH_OF_20_PERCENT\tWIDTH_OF_30_PERCENT\tWIDTH_OF_40_PERCENT\tWIDTH_OF_50_PERCENT\tWIDTH_OF_60_PERCENT\tWIDTH_OF_70_PERCENT\tWIDTH_OF_80_PERCENT\tWIDTH_OF_90_PERCENT\tWIDTH_OF_95_PERCENT\tWIDTH_OF_99_PERCENT\tSAMPLE\tLIBRARY\tREAD_GROUP" - - path: output/picard/test.CollectMultipleMetrics.quality_by_cycle.pdf - - path: output/picard/test.CollectMultipleMetrics.quality_by_cycle_metrics - contains: - - "CYCLE\tMEAN_QUALITY" - - path: output/picard/test.CollectMultipleMetrics.quality_distribution.pdf - - path: output/picard/test.CollectMultipleMetrics.quality_distribution_metrics - contains: - - "QUALITY\tCOUNT_OF_Q" - - path: output/picard/test.CollectMultipleMetrics.read_length_histogram.pdf - - path: output/picard/versions.yml