From e942cbfacea0bb38c7fef26e59c117169fba08f0 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Thu, 5 Sep 2024 20:05:21 +1200 Subject: [PATCH] Added nf-test for pirate (#6560) --- modules/nf-core/pirate/environment.yml | 4 +- modules/nf-core/pirate/main.nf | 12 +++ modules/nf-core/pirate/tests/main.nf.test | 70 +++++++++++++ .../nf-core/pirate/tests/main.nf.test.snap | 90 +++++++++++++++++ tests/config/pytest_modules.yml | 3 - tests/modules/nf-core/pirate/main.nf | 19 ---- tests/modules/nf-core/pirate/nextflow.config | 5 - tests/modules/nf-core/pirate/test.yml | 98 ------------------- 8 files changed, 175 insertions(+), 126 deletions(-) create mode 100644 modules/nf-core/pirate/tests/main.nf.test create mode 100644 modules/nf-core/pirate/tests/main.nf.test.snap delete mode 100644 tests/modules/nf-core/pirate/main.nf delete mode 100644 tests/modules/nf-core/pirate/nextflow.config delete mode 100644 tests/modules/nf-core/pirate/test.yml diff --git a/modules/nf-core/pirate/environment.yml b/modules/nf-core/pirate/environment.yml index c321887d5c0..9fa73890548 100644 --- a/modules/nf-core/pirate/environment.yml +++ b/modules/nf-core/pirate/environment.yml @@ -1,8 +1,10 @@ name: pirate + channels: - conda-forge - bioconda - defaults + dependencies: - - bioconda::pirate=1.0.4 - bioconda::perl-bioperl=1.7.2 + - bioconda::pirate=1.0.4 diff --git a/modules/nf-core/pirate/main.nf b/modules/nf-core/pirate/main.nf index 0537268fe71..a7092e4a9fe 100644 --- a/modules/nf-core/pirate/main.nf +++ b/modules/nf-core/pirate/main.nf @@ -33,4 +33,16 @@ process PIRATE { pirate: \$( echo \$( PIRATE --version 2>&1) | sed 's/PIRATE //' ) END_VERSIONS """ + + stub: + """ + mkdir results + + touch results/PIRATE.gene_families.ordered.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pirate: \$( echo \$( PIRATE --version 2>&1) | sed 's/PIRATE //' ) + END_VERSIONS + """ } diff --git a/modules/nf-core/pirate/tests/main.nf.test b/modules/nf-core/pirate/tests/main.nf.test new file mode 100644 index 00000000000..7237b8acd9f --- /dev/null +++ b/modules/nf-core/pirate/tests/main.nf.test @@ -0,0 +1,70 @@ +nextflow_process { + + name "Test Process PIRATE" + script "../main.nf" + process "PIRATE" + + tag "modules" + tag "modules_nfcore" + tag "pirate" + + test("test-pirate") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test1.gff', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test2.gff', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test3.gff', checkIfExists: true) + ] + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { + assert snapshot( + process.out.results[0][1].collect { file(it).name }, + process.out.aln, + process.out.versions + ).match() + } + ) + } + } + + test("test-pirate-stub") { + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test1.gff', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test2.gff', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test3.gff', checkIfExists: true) + ] + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + +} diff --git a/modules/nf-core/pirate/tests/main.nf.test.snap b/modules/nf-core/pirate/tests/main.nf.test.snap new file mode 100644 index 00000000000..15590c6a8d6 --- /dev/null +++ b/modules/nf-core/pirate/tests/main.nf.test.snap @@ -0,0 +1,90 @@ +{ + "test-pirate": { + "content": [ + [ + "PIRATE.gene_families.ordered.tsv", + "PIRATE.gene_families.tsv", + "PIRATE.genomes_per_allele.tsv", + "PIRATE.log", + "PIRATE.pangenome_summary.txt", + "PIRATE.unique_alleles.tsv", + "binary_presence_absence.fasta", + "binary_presence_absence.nwk", + "cluster_alleles.tab", + "co-ords", + "genome2loci.tab", + "genome_list.txt", + "link_clusters.log", + "loci_list.tab", + "loci_paralog_categories.tab", + "modified_gffs", + "pan_sequences.fasta", + "pangenome.connected_blocks.tsv", + "pangenome.edges", + "pangenome.gfa", + "pangenome.order.tsv", + "pangenome.reversed.tsv", + "pangenome.syntenic_blocks.tsv", + "pangenome.temp", + "pangenome_iterations", + "pangenome_log.txt", + "paralog_clusters.tab", + "representative_sequences.faa", + "representative_sequences.ffn", + "split_groups.log" + ], + [ + + ], + [ + "versions.yml:md5,2f5a68c53da1146ee3000263ea61d769" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-05T16:38:56.92857" + }, + "test-pirate-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "PIRATE.gene_families.ordered.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + "versions.yml:md5,2f5a68c53da1146ee3000263ea61d769" + ], + "aln": [ + + ], + "results": [ + [ + { + "id": "test", + "single_end": false + }, + "PIRATE.gene_families.ordered.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,2f5a68c53da1146ee3000263ea61d769" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-05T16:18:13.292321" + } +} \ No newline at end of file diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 27e6d8ed9ca..12153c89ba8 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -608,9 +608,6 @@ picard/collectrnaseqmetrics: picard/filtersamreads: - modules/nf-core/picard/filtersamreads/** - tests/modules/nf-core/picard/filtersamreads/** -pirate: - - modules/nf-core/pirate/** - - tests/modules/nf-core/pirate/** plink/exclude: - modules/nf-core/plink/exclude/** - tests/modules/nf-core/plink/exclude/** diff --git a/tests/modules/nf-core/pirate/main.nf b/tests/modules/nf-core/pirate/main.nf deleted file mode 100644 index 0def80c4bfe..00000000000 --- a/tests/modules/nf-core/pirate/main.nf +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { PIRATE } from '../../../../modules/nf-core/pirate/main.nf' - -workflow test_pirate { - - input = [ - [ id:'test', single_end:false ], // meta map - [ - file(params.test_data['candidatus_portiera_aleyrodidarum']['genome']['test1_gff'], checkIfExists: true), - file(params.test_data['candidatus_portiera_aleyrodidarum']['genome']['test2_gff'], checkIfExists: true), - file(params.test_data['candidatus_portiera_aleyrodidarum']['genome']['test3_gff'], checkIfExists: true) - ] - ] - - PIRATE ( input ) -} diff --git a/tests/modules/nf-core/pirate/nextflow.config b/tests/modules/nf-core/pirate/nextflow.config deleted file mode 100644 index 8730f1c4b93..00000000000 --- a/tests/modules/nf-core/pirate/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/pirate/test.yml b/tests/modules/nf-core/pirate/test.yml deleted file mode 100644 index 75c7abf8a54..00000000000 --- a/tests/modules/nf-core/pirate/test.yml +++ /dev/null @@ -1,98 +0,0 @@ -- name: pirate test_pirate - command: nextflow run ./tests/modules/nf-core/pirate -entry test_pirate -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/pirate/nextflow.config - tags: - - pirate - files: - - path: output/pirate/results/PIRATE.gene_families.ordered.tsv - contains: ["allele_name"] - - path: output/pirate/results/PIRATE.gene_families.tsv - contains: ["allele_name"] - - path: output/pirate/results/PIRATE.genomes_per_allele.tsv - contains: ["g0197"] - - path: output/pirate/results/PIRATE.log - contains: ["PIRATE input options"] - - path: output/pirate/results/PIRATE.pangenome_summary.txt - md5sum: 4551c291bc06b21f984f25c09329ed7d - - path: output/pirate/results/PIRATE.unique_alleles.tsv - contains: ["allele_name"] - - path: output/pirate/results/binary_presence_absence.fasta - contains: ["test1"] - - path: output/pirate/results/binary_presence_absence.nwk - md5sum: 1fcf7434911bbab39b74791259f1f989 - - path: output/pirate/results/cluster_alleles.tab - contains: ["g0001"] - - path: output/pirate/results/co-ords/test1.co-ords.tab - md5sum: f1e75c045b35bae260dadb1a2f000dfa - - path: output/pirate/results/co-ords/test2.co-ords.tab - md5sum: 953b0d2f1dfd4c3a6a6dd246c9174703 - - path: output/pirate/results/co-ords/test3.co-ords.tab - md5sum: 61f2c52ef77dc9a97a200c57b89b7d69 - - path: output/pirate/results/genome2loci.tab - contains: ["test3_00001", "test3", "oxidoreductase"] - - path: output/pirate/results/genome_list.txt - contains: ["test1", "test2", "test3"] - - path: output/pirate/results/link_clusters.log - contains: ["parsing paralog file"] - - path: output/pirate/results/loci_list.tab - contains: ["test1_00242"] - - path: output/pirate/results/loci_paralog_categories.tab - contains: ["test1", "test2", "test3"] - - path: output/pirate/results/modified_gffs/test1.gff - md5sum: 5dc220e472165c3b693e1017f38fc0e3 - - path: output/pirate/results/modified_gffs/test2.gff - md5sum: 975f5c7fb363caf1be9c53e5e237bb5d - - path: output/pirate/results/modified_gffs/test3.gff - md5sum: a4735a5ac75ce82aadba8a3de6cabc2e - - path: output/pirate/results/pan_sequences.fasta - contains: ["test1", "test2", "test3"] - - path: output/pirate/results/pangenome.connected_blocks.tsv - contains: ["block_number"] - - path: output/pirate/results/pangenome.edges - contains: ["g0259"] - - path: output/pirate/results/pangenome.gfa - contains: ["g0001"] - - path: output/pirate/results/pangenome.order.tsv - contains: ["g0172"] - - path: output/pirate/results/pangenome.reversed.tsv - md5sum: b2396ce09a6e4178761eca6dc7f4434f - - path: output/pirate/results/pangenome.syntenic_blocks.tsv - contains: ["g0091"] - - path: output/pirate/results/pangenome.temp - - path: output/pirate/results/pangenome_iterations/pan_sequences.50.reclustered.reinflated - contains: ["test1_00242"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.60.reclustered.reinflated - contains: ["test1_00242"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.70.reclustered.reinflated - contains: ["test1_00242"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.80.reclustered.reinflated - contains: ["test1_00242"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.90.reclustered.reinflated - contains: ["test1_00242"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.95.reclustered.reinflated - contains: ["test1_00242"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.98.reclustered.reinflated - contains: ["test1_00242"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.blast.output - contains: ["test1", "test2", "test3"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.cdhit_clusters - contains: ["test1_00081"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.core_clusters.tab - contains: ["test1_00242"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.mcl_log.txt - contains: ["chaos"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta - contains: ["test1", "test2", "test3"] - - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.pdb - - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.pot - - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.ptf - - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.pto - - path: output/pirate/results/pangenome_log.txt - contains: ["Creating pangenome on amino acid"] - - path: output/pirate/results/paralog_clusters.tab - contains: ["g0216"] - - path: output/pirate/results/representative_sequences.faa - contains: ["representative_genome"] - - path: output/pirate/results/representative_sequences.ffn - contains: ["representative_genome"] - - path: output/pirate/results/split_groups.log - contains: ["g0"]