From e8e7ac1e4ead5adb59002b568b9d9744cc6d6393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20H=C3=B6rtenhuber?= Date: Mon, 30 Sep 2024 08:51:14 +0200 Subject: [PATCH 01/36] maxbin2: fix missing meta.yml content (#6710) fix missing meta.yml content --- modules/nf-core/maxbin2/meta.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/nf-core/maxbin2/meta.yml b/modules/nf-core/maxbin2/meta.yml index 6b5a98c766d..538ba07f3fd 100644 --- a/modules/nf-core/maxbin2/meta.yml +++ b/modules/nf-core/maxbin2/meta.yml @@ -108,6 +108,9 @@ output: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - "*_bin.tar.gz": + type: file + description: Marker bins + pattern: "*_bin.tar.gz" - marker_genes: - meta: type: map From ec48f56f6e1571e23800aaaba41cceda13408e02 Mon Sep 17 00:00:00 2001 From: Jose Espinosa-Carrasco Date: Mon, 30 Sep 2024 11:56:53 +0200 Subject: [PATCH 02/36] Switch from oras to https in phantompeakqualtools module (#6711) Switch from oras to https --- modules/nf-core/phantompeakqualtools/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/phantompeakqualtools/main.nf b/modules/nf-core/phantompeakqualtools/main.nf index f0f7dc634a0..e1f22699685 100644 --- a/modules/nf-core/phantompeakqualtools/main.nf +++ b/modules/nf-core/phantompeakqualtools/main.nf @@ -5,7 +5,7 @@ process PHANTOMPEAKQUALTOOLS { // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/phantompeakqualtools:1.2.2--50be7727b2a72700' : + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/4a/4a1cddfad5b503ee347cc5de17d172e1876c547fca00aa844559c9e764fb400f/data' : 'community.wave.seqera.io/library/phantompeakqualtools:1.2.2--f8026fe2526a5e18' }" input: From 26757a6a54d05c3133c01c564c192ff617c5ea33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20H=C3=B6rtenhuber?= Date: Mon, 30 Sep 2024 12:53:54 +0200 Subject: [PATCH 03/36] Fix mirdeep2_mapper meta.yml (#6712) * fix missing meta.yml content * fix meta.yml for mirdeep2_mapper * fix hierarchy --- modules/nf-core/mirdeep2/mapper/meta.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/mirdeep2/mapper/meta.yml b/modules/nf-core/mirdeep2/mapper/meta.yml index 5844344cf97..a482c4805c5 100644 --- a/modules/nf-core/mirdeep2/mapper/meta.yml +++ b/modules/nf-core/mirdeep2/mapper/meta.yml @@ -36,9 +36,18 @@ input: pattern: "*" output: - outputs: - - meta: {} - - "*.fa": {} - - "*.arf": {} + - meta: + type: map + description: Groovy Map containing sample information, e.g. `[ id:'sample1', single_end:false ]` + - "*.fa": + type: file + description: Collapsed reads in FASTA format. + pattern: "*.fa" + - "*.arf": + type: file + description: Alignment Read Format (ARF) file containing the mapping of reads + to the genome. + pattern: "*.arf" - versions: - versions.yml: type: file From 83e2df1e4ec594beb8a575b4db0b4197900f4ebd Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:23:30 +0200 Subject: [PATCH 04/36] update vcfeval inputs + nf-test conversion (#6714) update vcfeval inputs --- .../rtgtools/rocplot/tests/main.nf.test | 4 +- modules/nf-core/rtgtools/vcfeval/main.nf | 20 +- modules/nf-core/rtgtools/vcfeval/meta.yml | 4 +- .../rtgtools/vcfeval/tests/main.nf.test | 113 +++ .../rtgtools/vcfeval/tests/main.nf.test.snap | 677 ++++++++++++++++++ .../rtgtools/vcfeval/tests/nextflow.config | 4 + tests/config/pytest_modules.yml | 3 - .../modules/nf-core/rtgtools/vcfeval/main.nf | 50 -- .../nf-core/rtgtools/vcfeval/nextflow.config | 8 - .../modules/nf-core/rtgtools/vcfeval/test.yml | 67 -- 10 files changed, 809 insertions(+), 141 deletions(-) create mode 100644 modules/nf-core/rtgtools/vcfeval/tests/main.nf.test create mode 100644 modules/nf-core/rtgtools/vcfeval/tests/main.nf.test.snap create mode 100644 modules/nf-core/rtgtools/vcfeval/tests/nextflow.config delete mode 100644 tests/modules/nf-core/rtgtools/vcfeval/main.nf delete mode 100644 tests/modules/nf-core/rtgtools/vcfeval/nextflow.config delete mode 100644 tests/modules/nf-core/rtgtools/vcfeval/test.yml diff --git a/modules/nf-core/rtgtools/rocplot/tests/main.nf.test b/modules/nf-core/rtgtools/rocplot/tests/main.nf.test index c7c37084e52..52c5386d16c 100644 --- a/modules/nf-core/rtgtools/rocplot/tests/main.nf.test +++ b/modules/nf-core/rtgtools/rocplot/tests/main.nf.test @@ -35,8 +35,8 @@ nextflow_process { file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz.tbi', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz.tbi', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed', checkIfExists: true) ] input[1] = UNTAR.out.untar println(projectDir) diff --git a/modules/nf-core/rtgtools/vcfeval/main.nf b/modules/nf-core/rtgtools/vcfeval/main.nf index 98f9adb18dd..330a1f3d964 100644 --- a/modules/nf-core/rtgtools/vcfeval/main.nf +++ b/modules/nf-core/rtgtools/vcfeval/main.nf @@ -8,7 +8,7 @@ process RTGTOOLS_VCFEVAL { 'biocontainers/rtg-tools:3.12.1--hdfd78af_0' }" input: - tuple val(meta), path(query_vcf), path(query_vcf_tbi), path(truth_vcf), path(truth_vcf_tbi), path(truth_bed), path(evaluation_bed) + tuple val(meta), path(query_vcf), path(query_vcf_tbi), path(truth_vcf), path(truth_vcf_tbi), path(truth_bed), path(regions_bed) tuple val(meta2), path(sdf) output: @@ -33,8 +33,8 @@ process RTGTOOLS_VCFEVAL { script: def args = task.ext.args ?: "" def prefix = task.ext.prefix ?: "${meta.id}" - def bed_regions = truth_bed ? "--bed-regions=${truth_bed}" : "" - def eval_regions = evaluation_bed ? "--evaluation-regions=${evaluation_bed}" : "" + def bed_regions = regions_bed ? "--bed-regions=${regions_bed}" : "" + def eval_regions = truth_bed ? "--evaluation-regions=${truth_bed}" : "" def truth_index = truth_vcf_tbi ? "" : "rtg index ${truth_vcf}" def query_index = query_vcf_tbi ? "" : "rtg index ${query_vcf}" def avail_mem = task.memory.toGiga() + "G" @@ -68,17 +68,17 @@ process RTGTOOLS_VCFEVAL { def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.tp.vcf.gz + echo | gzip > ${prefix}.tp.vcf.gz touch ${prefix}.tp.vcf.gz.tbi - touch ${prefix}.fn.vcf.gz + echo | gzip > ${prefix}.fn.vcf.gz touch ${prefix}.fn.vcf.gz.tbi - touch ${prefix}.fp.vcf.gz + echo | gzip > ${prefix}.fp.vcf.gz touch ${prefix}.fp.vcf.gz.tbi - touch ${prefix}.tp-baseline.vcf.gz + echo | gzip > ${prefix}.tp-baseline.vcf.gz touch ${prefix}.tp-baseline.vcf.gz.tbi - touch ${prefix}.snp_roc.tsv.gz - touch ${prefix}.non_snp_roc.tsv.gz - touch ${prefix}.weighted_roc.tsv.gz + echo | gzip > ${prefix}.snp_roc.tsv.gz + echo | gzip > ${prefix}.non_snp_roc.tsv.gz + echo | gzip > ${prefix}.weighted_roc.tsv.gz touch ${prefix}.summary.txt touch ${prefix}.phasing.txt diff --git a/modules/nf-core/rtgtools/vcfeval/meta.yml b/modules/nf-core/rtgtools/vcfeval/meta.yml index 9814124ee79..4c59bab5216 100644 --- a/modules/nf-core/rtgtools/vcfeval/meta.yml +++ b/modules/nf-core/rtgtools/vcfeval/meta.yml @@ -40,11 +40,13 @@ input: type: file description: A BED file containining the strict regions where VCFeval should only evaluate the fully overlapping variants (optional) + This input should be used to provide the golden truth BED files. pattern: "*.bed" - - evaluation_bed: + - regions_bed: type: file description: A BED file containing the regions where VCFeval will evaluate every fully and partially overlapping variant (optional) + This input should be used to provide the regions used by the analysis pattern: "*.bed" - - meta2: type: map diff --git a/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test b/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test new file mode 100644 index 00000000000..55abc842759 --- /dev/null +++ b/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test @@ -0,0 +1,113 @@ +nextflow_process { + + name "Test Process RTGTOOLS_VCFEVAL" + script "../main.nf" + process "RTGTOOLS_VCFEVAL" + + tag "modules" + tag "modules_nfcore" + tag "rtgtools" + tag "rtgtools/vcfeval" + tag "untar" + + setup { + run("UNTAR") { + script "../../../untar/main.nf" + process { + """ + input[0] = Channel.value([ + [id:'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome_sdf.tar.gz', checkIfExists:true) + ]) + """ + } + } + } + + test("homo_sapiens - [vcf, tbi, truth, truth_tbi, truth_bed, regions_bed], sdf") { + + when { + process { + """ + input[0] = Channel.of([ + [id:'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz.tbi', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz.tbi', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed', checkIfExists:true) + ]) + input[1] = UNTAR.out.untar + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("homo_sapiens - [vcf, [], truth, [], [], []], sdf") { + + when { + process { + """ + input[0] = Channel.of([ + [id:'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz', checkIfExists:true), + [], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz', checkIfExists:true), + [], + [], + [] + ]) + input[1] = UNTAR.out.untar + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("homo_sapiens - [vcf, tbi, truth, truth_tbi, truth_bed, regions_bed], sdf - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [id:'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz.tbi', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz.tbi', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed', checkIfExists:true) + ]) + input[1] = UNTAR.out.untar + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test.snap b/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test.snap new file mode 100644 index 00000000000..4f39e2d4641 --- /dev/null +++ b/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test.snap @@ -0,0 +1,677 @@ +{ + "homo_sapiens - [vcf, tbi, truth, truth_tbi, truth_bed, regions_bed], sdf": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,5171021307097220337dbcaccc860495" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "10": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,de36bf613b3dacf4a043311336bb4a94" + ] + ], + "11": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,f4c8df93c8bdab603036bbc27b4a28c3" + ] + ], + "12": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,31988234bee208cacb3de90dabe1797f" + ] + ], + "13": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "2": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,fc419367818700d47df073615aeb9077" + ] + ], + "3": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "4": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,5171021307097220337dbcaccc860495" + ] + ], + "5": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "6": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,fc419367818700d47df073615aeb9077" + ] + ], + "7": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "8": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,11d7393a16c25ac0a092382fecafee9b" + ] + ], + "9": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,eb0910409b8b088655defbd152103b81" + ] + ], + "baseline_tbi": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "baseline_vcf": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,fc419367818700d47df073615aeb9077" + ] + ], + "fn_tbi": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "fn_vcf": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,fc419367818700d47df073615aeb9077" + ] + ], + "fp_tbi": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "fp_vcf": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,5171021307097220337dbcaccc860495" + ] + ], + "non_snp_roc": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,eb0910409b8b088655defbd152103b81" + ] + ], + "phasing": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,31988234bee208cacb3de90dabe1797f" + ] + ], + "snp_roc": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,11d7393a16c25ac0a092382fecafee9b" + ] + ], + "summary": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,f4c8df93c8bdab603036bbc27b4a28c3" + ] + ], + "tp_tbi": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "tp_vcf": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,5171021307097220337dbcaccc860495" + ] + ], + "versions": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "weighted_roc": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,de36bf613b3dacf4a043311336bb4a94" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T15:17:31.564974666" + }, + "homo_sapiens - [vcf, [], truth, [], [], []], sdf": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,5125ee41457c9d93f46b19e32788edb4" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,a0e9ac2d38c04bd591ab8f857c5c9133" + ] + ], + "10": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,5dfacd641b080cc8ad22eebec015c698" + ] + ], + "11": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,f33feb32f84958fb931063044fba369b" + ] + ], + "12": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,133677dbd8be657439ea2b03fdfb8795" + ] + ], + "13": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "2": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,df96e4e4014cdb3050cb6f221f0cdca9" + ] + ], + "3": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "4": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,d4bfa2c7271351ca19589f0f57f210b7" + ] + ], + "5": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "6": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,920af25c3c18a438b11440702562fa35" + ] + ], + "7": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,95938320b425e28cf06c45ab45ad0360" + ] + ], + "8": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,85edc0101bb9e8d3edc11abe4fdcda93" + ] + ], + "9": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,30283ede3bcc5dd247f8a84bf345bf9a" + ] + ], + "baseline_tbi": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,95938320b425e28cf06c45ab45ad0360" + ] + ], + "baseline_vcf": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,920af25c3c18a438b11440702562fa35" + ] + ], + "fn_tbi": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "fn_vcf": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,df96e4e4014cdb3050cb6f221f0cdca9" + ] + ], + "fp_tbi": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "fp_vcf": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,d4bfa2c7271351ca19589f0f57f210b7" + ] + ], + "non_snp_roc": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,30283ede3bcc5dd247f8a84bf345bf9a" + ] + ], + "phasing": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,133677dbd8be657439ea2b03fdfb8795" + ] + ], + "snp_roc": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,85edc0101bb9e8d3edc11abe4fdcda93" + ] + ], + "summary": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,f33feb32f84958fb931063044fba369b" + ] + ], + "tp_tbi": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,a0e9ac2d38c04bd591ab8f857c5c9133" + ] + ], + "tp_vcf": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,5125ee41457c9d93f46b19e32788edb4" + ] + ], + "versions": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "weighted_roc": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,5dfacd641b080cc8ad22eebec015c698" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T15:18:04.344989466" + }, + "homo_sapiens - [vcf, tbi, truth, truth_tbi, truth_bed, regions_bed], sdf - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "11": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "12": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "13": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "2": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "3": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "5": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "7": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "9": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "baseline_tbi": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "baseline_vcf": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "fn_tbi": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fn_vcf": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "fp_tbi": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fp_vcf": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "non_snp_roc": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "phasing": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "snp_roc": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "summary": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tp_tbi": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tp_vcf": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "weighted_roc": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T15:23:21.165461388" + } +} \ No newline at end of file diff --git a/modules/nf-core/rtgtools/vcfeval/tests/nextflow.config b/modules/nf-core/rtgtools/vcfeval/tests/nextflow.config new file mode 100644 index 00000000000..7563521514f --- /dev/null +++ b/modules/nf-core/rtgtools/vcfeval/tests/nextflow.config @@ -0,0 +1,4 @@ +process { + withName: UNTAR { + } +} diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index c5ede631186..485641f1da0 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -578,9 +578,6 @@ roary: rtgtools/format: - modules/nf-core/rtgtools/format/** - tests/modules/nf-core/rtgtools/format/** -rtgtools/vcfeval: - - modules/nf-core/rtgtools/vcfeval/** - - tests/modules/nf-core/rtgtools/vcfeval/** scramble/clusteranalysis: - modules/nf-core/scramble/clusteranalysis/** - tests/modules/nf-core/scramble/clusteranalysis/** diff --git a/tests/modules/nf-core/rtgtools/vcfeval/main.nf b/tests/modules/nf-core/rtgtools/vcfeval/main.nf deleted file mode 100644 index 7ca921fcaed..00000000000 --- a/tests/modules/nf-core/rtgtools/vcfeval/main.nf +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { RTGTOOLS_VCFEVAL } from '../../../../../modules/nf-core/rtgtools/vcfeval/main.nf' -include { UNTAR } from '../../../../modules/nf-core/untar/main.nf' - -workflow test_rtgtools_vcfeval { - - input = [ - [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) - ] - - compressed_sdf = [ - [ id:'test' ], - file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) - ] - - sdf = UNTAR( compressed_sdf ).untar - - RTGTOOLS_VCFEVAL ( input, sdf ) -} - -workflow test_rtgtools_vcfeval_no_optional_inputs { - - input = [ - [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), - [], - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), - [], - [], - [] - ] - - compressed_sdf = [ - [ id:'test' ], - file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) - ] - - sdf = UNTAR( compressed_sdf ).untar - - RTGTOOLS_VCFEVAL ( input, sdf ) -} diff --git a/tests/modules/nf-core/rtgtools/vcfeval/nextflow.config b/tests/modules/nf-core/rtgtools/vcfeval/nextflow.config deleted file mode 100644 index 4ced2e3b2ab..00000000000 --- a/tests/modules/nf-core/rtgtools/vcfeval/nextflow.config +++ /dev/null @@ -1,8 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: UNTAR { - publishDir = [enabled:false] - } -} diff --git a/tests/modules/nf-core/rtgtools/vcfeval/test.yml b/tests/modules/nf-core/rtgtools/vcfeval/test.yml deleted file mode 100644 index 8f89d2b44b6..00000000000 --- a/tests/modules/nf-core/rtgtools/vcfeval/test.yml +++ /dev/null @@ -1,67 +0,0 @@ -- name: rtgtools vcfeval test_rtgtools_vcfeval - command: nextflow run ./tests/modules/nf-core/rtgtools/vcfeval -entry test_rtgtools_vcfeval -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/rtgtools/vcfeval/nextflow.config - tags: - - rtgtools/vcfeval - - rtgtools - files: - - path: output/rtgtools/test.fn.vcf.gz - md5sum: 65142f7398361eebb00028255c4645f9 - - path: output/rtgtools/test.fn.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.fp.vcf.gz - md5sum: 459988c1aa5206214587044971db2518 - - path: output/rtgtools/test.fp.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.non_snp_roc.tsv.gz - md5sum: 0ccf995d071c7d27812e9e899b67050a - - path: output/rtgtools/test.phasing.txt - md5sum: 31988234bee208cacb3de90dabe1797f - - path: output/rtgtools/test.snp_roc.tsv.gz - md5sum: cff421e8b15db7d92355fbef0be5ec93 - - path: output/rtgtools/test.summary.txt - md5sum: f4c8df93c8bdab603036bbc27b4a28c3 - - path: output/rtgtools/test.tp-baseline.vcf.gz - md5sum: 65142f7398361eebb00028255c4645f9 - - path: output/rtgtools/test.tp-baseline.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.tp.vcf.gz - md5sum: 459988c1aa5206214587044971db2518 - - path: output/rtgtools/test.tp.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.weighted_roc.tsv.gz - md5sum: 946dd5b0a6f33993bc2f7378c503c5cc - - path: output/rtgtools/versions.yml - -- name: rtgtools vcfeval test_rtgtools_vcfeval_no_optional_inputs - command: nextflow run ./tests/modules/nf-core/rtgtools/vcfeval -entry test_rtgtools_vcfeval_no_optional_inputs -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/rtgtools/vcfeval/nextflow.config - tags: - - rtgtools/vcfeval - - rtgtools - files: - - path: output/rtgtools/test.fn.vcf.gz - md5sum: 6a148698fa6c20d6e5bbe384d962363a - - path: output/rtgtools/test.fn.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.fp.vcf.gz - md5sum: 9c1606449d3c256233bdd2b6c8016776 - - path: output/rtgtools/test.fp.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.non_snp_roc.tsv.gz - md5sum: 9990107a5d8951e124d452f6cac26062 - - path: output/rtgtools/test.phasing.txt - md5sum: 133677dbd8be657439ea2b03fdfb8795 - - path: output/rtgtools/test.snp_roc.tsv.gz - md5sum: cde86d34fa86475194e29a74dfc9090c - - path: output/rtgtools/test.summary.txt - md5sum: f33feb32f84958fb931063044fba369b - - path: output/rtgtools/test.tp-baseline.vcf.gz - md5sum: 5d9bb9b55b03d42c1726c0c32498b624 - - path: output/rtgtools/test.tp-baseline.vcf.gz.tbi - md5sum: 95938320b425e28cf06c45ab45ad0360 - - path: output/rtgtools/test.tp.vcf.gz - md5sum: d771fa4d28b42b43e698cee93c92cf65 - - path: output/rtgtools/test.tp.vcf.gz.tbi - md5sum: a0e9ac2d38c04bd591ab8f857c5c9133 - - path: output/rtgtools/test.weighted_roc.tsv.gz - md5sum: 005c2e8bacaaab0b409da449301d67fd - - path: output/rtgtools/versions.yml From 023b45c4bb222b85a12b1bdc36d45b941d308702 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:18:20 +0200 Subject: [PATCH 05/36] chore(deps): update pre-commit hook python-jsonschema/check-jsonschema to v0.29.3 (#6715) 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 2387066d67f..d195d3d9044 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.2 + rev: 0.29.3 hooks: - id: check-jsonschema # match meta.ymls in one of the subdirectories of modules/nf-core From bfa8975eefb8df3e480a44ac9e594f23f52b2963 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Mon, 30 Sep 2024 18:31:48 +0200 Subject: [PATCH 06/36] bedtools/genomecov - Update main.nf to use https over oras (#6713) Update main.nf to use https over oras --- modules/nf-core/bedtools/genomecov/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/bedtools/genomecov/main.nf b/modules/nf-core/bedtools/genomecov/main.nf index 8403c530380..35e2ab14b34 100644 --- a/modules/nf-core/bedtools/genomecov/main.nf +++ b/modules/nf-core/bedtools/genomecov/main.nf @@ -4,7 +4,7 @@ process BEDTOOLS_GENOMECOV { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/bedtools_coreutils:ba273c06a3909a15': + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/63/6397750e9730a3fbcc5b4c43f14bd141c64c723fd7dad80e47921a68a7c3cd21/data': 'community.wave.seqera.io/library/bedtools_coreutils:a623c13f66d5262b' }" input: From eb7b70119bfb1877334c996d13e520c61b21067d Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Wed, 2 Oct 2024 13:19:06 +0200 Subject: [PATCH 07/36] update sentieon to version 202308.03 (#6722) * update sentieon to version 202308.03 * update snapshot --- .../sentieon/applyvarcal/environment.yml | 2 +- modules/nf-core/sentieon/applyvarcal/main.nf | 4 +- .../nf-core/sentieon/bwaindex/environment.yml | 2 +- modules/nf-core/sentieon/bwaindex/main.nf | 4 +- .../nf-core/sentieon/bwamem/environment.yml | 2 +- modules/nf-core/sentieon/bwamem/main.nf | 4 +- .../sentieon/bwamem/tests/main.nf.test.snap | 50 +++++++------- .../sentieon/collectvcmetrics/environment.yml | 2 +- .../nf-core/sentieon/collectvcmetrics/main.nf | 4 +- .../collectvcmetrics/tests/main.nf.test.snap | 20 +++--- .../sentieon/coveragemetrics/environment.yml | 2 +- .../nf-core/sentieon/coveragemetrics/main.nf | 4 +- .../coveragemetrics/tests/main.nf.test.snap | 36 +++++----- .../sentieon/datametrics/environment.yml | 2 +- modules/nf-core/sentieon/datametrics/main.nf | 4 +- .../datametrics/tests/main.nf.test.snap | 66 +++++++++---------- .../nf-core/sentieon/dedup/environment.yml | 2 +- modules/nf-core/sentieon/dedup/main.nf | 4 +- .../sentieon/dedup/tests/main.nf.test.snap | 56 ++++++++-------- .../sentieon/dnamodelapply/environment.yml | 2 +- .../nf-core/sentieon/dnamodelapply/main.nf | 4 +- .../nf-core/sentieon/dnascope/environment.yml | 2 +- modules/nf-core/sentieon/dnascope/main.nf | 4 +- .../sentieon/gvcftyper/environment.yml | 2 +- modules/nf-core/sentieon/gvcftyper/main.nf | 4 +- .../gvcftyper/tests/main.nf.test.snap | 38 +++++------ .../sentieon/haplotyper/environment.yml | 2 +- modules/nf-core/sentieon/haplotyper/main.nf | 4 +- .../haplotyper/tests/main.nf.test.snap | 50 +++++++------- modules/nf-core/sentieon/qualcal/main.nf | 4 +- .../sentieon/qualcal/tests/main.nf.test.snap | 44 ++++++------- .../sentieon/readwriter/environment.yml | 2 +- modules/nf-core/sentieon/readwriter/main.nf | 4 +- .../readwriter/tests/main.nf.test.snap | 32 ++++----- .../nf-core/sentieon/tnfilter/environment.yml | 2 +- modules/nf-core/sentieon/tnfilter/main.nf | 4 +- .../sentieon/tnhaplotyper2/environment.yml | 2 +- .../nf-core/sentieon/tnhaplotyper2/main.nf | 4 +- .../nf-core/sentieon/tnscope/environment.yml | 2 +- modules/nf-core/sentieon/tnscope/main.nf | 4 +- .../nf-core/sentieon/varcal/environment.yml | 2 +- modules/nf-core/sentieon/varcal/main.nf | 4 +- .../sentieon/wgsmetrics/environment.yml | 2 +- modules/nf-core/sentieon/wgsmetrics/main.nf | 4 +- 44 files changed, 249 insertions(+), 249 deletions(-) diff --git a/modules/nf-core/sentieon/applyvarcal/environment.yml b/modules/nf-core/sentieon/applyvarcal/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/applyvarcal/environment.yml +++ b/modules/nf-core/sentieon/applyvarcal/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/applyvarcal/main.nf b/modules/nf-core/sentieon/applyvarcal/main.nf index 9f64f5a2f32..724912d689e 100644 --- a/modules/nf-core/sentieon/applyvarcal/main.nf +++ b/modules/nf-core/sentieon/applyvarcal/main.nf @@ -5,8 +5,8 @@ process SENTIEON_APPLYVARCAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(vcf_tbi), path(recal), path(recal_index), path(tranches) diff --git a/modules/nf-core/sentieon/bwaindex/environment.yml b/modules/nf-core/sentieon/bwaindex/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/bwaindex/environment.yml +++ b/modules/nf-core/sentieon/bwaindex/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/bwaindex/main.nf b/modules/nf-core/sentieon/bwaindex/main.nf index 2d3f1afa61f..4372cc04bae 100644 --- a/modules/nf-core/sentieon/bwaindex/main.nf +++ b/modules/nf-core/sentieon/bwaindex/main.nf @@ -5,8 +5,8 @@ process SENTIEON_BWAINDEX { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/sentieon/bwamem/environment.yml b/modules/nf-core/sentieon/bwamem/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/bwamem/environment.yml +++ b/modules/nf-core/sentieon/bwamem/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index 76e364decac..c038a857bf5 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -5,8 +5,8 @@ process SENTIEON_BWAMEM { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index 0dc67a9a5b6..77070ccc45b 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -8,12 +8,12 @@ "id": "test", "single_end": true }, - "test.bam:md5,58bc2194d084cf8462a3a7f6114c303a", - "test.bam.bai:md5,4fd9b026ff2306cc292cd695e11d5628" + "test.bam:md5,7b62831cb67d6d4a8e33b3cb788dfb1b", + "test.bam.bai:md5,6fc1dff58fab0491ecfa48f016041a18" ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -21,12 +21,12 @@ "id": "test", "single_end": true }, - "test.bam:md5,58bc2194d084cf8462a3a7f6114c303a", - "test.bam.bai:md5,4fd9b026ff2306cc292cd695e11d5628" + "test.bam:md5,7b62831cb67d6d4a8e33b3cb788dfb1b", + "test.bam.bai:md5,6fc1dff58fab0491ecfa48f016041a18" ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -34,7 +34,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:58:40.112926615" + "timestamp": "2024-10-02T10:25:33.275731212" }, "Paired-End - stub": { "content": [ @@ -50,7 +50,7 @@ ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -63,7 +63,7 @@ ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -71,7 +71,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:59:20.476791905" + "timestamp": "2024-10-02T10:26:16.58588651" }, "Paired-End": { "content": [ @@ -82,12 +82,12 @@ "id": "test", "single_end": false }, - "test.bam:md5,3418d864f42215d1c0c8d604d9571b0d", + "test.bam:md5,b0c8606d660dbe50a34cf80a376bb268", "test.bam.bai:md5,be4ad85790468042f7fc01ca2e36a919" ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -95,12 +95,12 @@ "id": "test", "single_end": false }, - "test.bam:md5,3418d864f42215d1c0c8d604d9571b0d", + "test.bam:md5,b0c8606d660dbe50a34cf80a376bb268", "test.bam.bai:md5,be4ad85790468042f7fc01ca2e36a919" ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -108,7 +108,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:59:00.346034062" + "timestamp": "2024-10-02T10:25:55.068934639" }, "Single-End - stub": { "content": [ @@ -124,7 +124,7 @@ ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -137,7 +137,7 @@ ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -145,7 +145,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:59:10.054146084" + "timestamp": "2024-10-02T10:26:05.151760076" }, "Single-End Output CRAM": { "content": [ @@ -156,12 +156,12 @@ "id": "test", "single_end": true }, - "test.cram:md5,04d88bd709dc0bc27ca81a09e80d4a1b", - "test.cram.crai:md5,ac34c713fe95aa8a1fd6291bdbb76dcf" + "test.cram:md5,817cf0847ae0c89062e2ee4be312101a", + "test.cram.crai:md5,60f801c550a18982e55207adb31ec351" ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -169,12 +169,12 @@ "id": "test", "single_end": true }, - "test.cram:md5,04d88bd709dc0bc27ca81a09e80d4a1b", - "test.cram.crai:md5,ac34c713fe95aa8a1fd6291bdbb76dcf" + "test.cram:md5,817cf0847ae0c89062e2ee4be312101a", + "test.cram.crai:md5,60f801c550a18982e55207adb31ec351" ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -182,6 +182,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:58:49.962693499" + "timestamp": "2024-10-02T10:25:44.360755915" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/collectvcmetrics/environment.yml b/modules/nf-core/sentieon/collectvcmetrics/environment.yml index f065ece32f4..d1a652d9586 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/environment.yml +++ b/modules/nf-core/sentieon/collectvcmetrics/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::sentieon=202308.02" + - "bioconda::sentieon=202308.03" diff --git a/modules/nf-core/sentieon/collectvcmetrics/main.nf b/modules/nf-core/sentieon/collectvcmetrics/main.nf index 47038ca82f9..c4897a9ba98 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/main.nf +++ b/modules/nf-core/sentieon/collectvcmetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_COLLECTVCMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta) , path(vcf), path(tbi) diff --git a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap index 1769bf458ad..66598400e90 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] ], "2": [ - "versions.yml:md5,3598e0348efd4895a499bcca3c121577" + "versions.yml:md5,b323d4c67c15a60c781d0b693058b80b" ], "metrics": [ [ @@ -38,15 +38,15 @@ ] ], "versions": [ - "versions.yml:md5,3598e0348efd4895a499bcca3c121577" + "versions.yml:md5,b323d4c67c15a60c781d0b693058b80b" ] } ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-12T14:04:32.056180428" + "timestamp": "2024-10-02T10:26:43.851386846" }, "Test VCF with intervals": { "content": [ @@ -61,14 +61,14 @@ "" ], [ - "versions.yml:md5,3598e0348efd4895a499bcca3c121577" + "versions.yml:md5,b323d4c67c15a60c781d0b693058b80b" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-12T13:27:27.277407951" + "timestamp": "2024-10-02T10:26:36.744267657" }, "Test VCF": { "content": [ @@ -83,13 +83,13 @@ "" ], [ - "versions.yml:md5,3598e0348efd4895a499bcca3c121577" + "versions.yml:md5,b323d4c67c15a60c781d0b693058b80b" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-12T13:27:19.639784594" + "timestamp": "2024-10-02T10:26:27.119501631" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/coveragemetrics/environment.yml b/modules/nf-core/sentieon/coveragemetrics/environment.yml index f065ece32f4..d1a652d9586 100644 --- a/modules/nf-core/sentieon/coveragemetrics/environment.yml +++ b/modules/nf-core/sentieon/coveragemetrics/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::sentieon=202308.02" + - "bioconda::sentieon=202308.03" diff --git a/modules/nf-core/sentieon/coveragemetrics/main.nf b/modules/nf-core/sentieon/coveragemetrics/main.nf index cf9afca190e..1ff7b07af11 100644 --- a/modules/nf-core/sentieon/coveragemetrics/main.nf +++ b/modules/nf-core/sentieon/coveragemetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_COVERAGEMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta) , path(bam), path(bai) diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap index cae0395fd71..31d11a34fa1 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap @@ -26,7 +26,7 @@ ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ @@ -52,7 +52,7 @@ ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -60,7 +60,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:42.344116091" + "timestamp": "2024-10-02T10:27:12.750615072" }, "Test with interval": { "content": [ @@ -114,7 +114,7 @@ ] ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ [ @@ -165,7 +165,7 @@ ] ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -173,7 +173,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:35.316973881" + "timestamp": "2024-10-02T10:27:02.629834795" }, "Test multiple BAMs": { "content": [ @@ -227,7 +227,7 @@ ] ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ [ @@ -278,7 +278,7 @@ ] ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -286,7 +286,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:57.275424452" + "timestamp": "2024-10-02T10:27:30.422776076" }, "Test - stub": { "content": [ @@ -310,7 +310,7 @@ ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ @@ -331,7 +331,7 @@ ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -339,7 +339,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T15:36:05.272586496" + "timestamp": "2024-10-02T10:27:36.672912519" }, "Test per sample": { "content": [ @@ -393,7 +393,7 @@ ] ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ [ @@ -444,7 +444,7 @@ ] ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -452,7 +452,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:28.382765881" + "timestamp": "2024-10-02T10:26:52.908981157" }, "Test readgroup partition": { "content": [ @@ -506,7 +506,7 @@ ] ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ [ @@ -557,7 +557,7 @@ ] ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -565,6 +565,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:49.706927947" + "timestamp": "2024-10-02T10:27:20.950349637" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/datametrics/environment.yml b/modules/nf-core/sentieon/datametrics/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/datametrics/environment.yml +++ b/modules/nf-core/sentieon/datametrics/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/datametrics/main.nf b/modules/nf-core/sentieon/datametrics/main.nf index 6567cc7218f..85bf6b507e6 100644 --- a/modules/nf-core/sentieon/datametrics/main.nf +++ b/modules/nf-core/sentieon/datametrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DATAMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/sentieon/datametrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/datametrics/tests/main.nf.test.snap index 25b1ae128fb..d31612106bb 100644 --- a/modules/nf-core/sentieon/datametrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/datametrics/tests/main.nf.test.snap @@ -21,7 +21,7 @@ ] ], "10": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ], "2": [ [ @@ -186,7 +186,7 @@ ] ], "versions": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ] } ], @@ -194,7 +194,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-20T12:01:01.974389137" + "timestamp": "2024-10-02T10:22:45.899449567" }, "metrics - with plots": { "content": [ @@ -205,7 +205,7 @@ "id": "test", "single_end": false }, - "test_mq_metrics.txt:md5,4f4540509edee8dc3ad78caf1733e206" + "test_mq_metrics.txt:md5,159ed897b11e7621703365134f60c1f7" ] ], "1": [ @@ -214,11 +214,11 @@ "id": "test", "single_end": false }, - "test_qd_metrics.txt:md5,f53e8b0da374aa35908cfd2180bf1406" + "test_qd_metrics.txt:md5,fa86f2f5cc195ea48565401f68ba0730" ] ], "10": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ], "2": [ [ @@ -226,7 +226,7 @@ "id": "test", "single_end": false }, - "test_gc_summary.txt:md5,33e6d54497ac882486c38ec05b2ca60a" + "test_gc_summary.txt:md5,367143e0f7680555bb68173561919e5f" ] ], "3": [ @@ -235,7 +235,7 @@ "id": "test", "single_end": false }, - "test_gc_metrics.txt:md5,1ed8166e64c9a44e40ab6e5173489ef2" + "test_gc_metrics.txt:md5,42d6ee7ce81858329b66c38e6558d66d" ] ], "4": [ @@ -244,7 +244,7 @@ "id": "test", "single_end": false }, - "test_aln_metrics.txt:md5,1cf61ba2d564cf427976d2543fd770ac" + "test_aln_metrics.txt:md5,1950af402ff3751023761de5bb649b43" ] ], "5": [ @@ -253,7 +253,7 @@ "id": "test", "single_end": false }, - "test_is_metrics.txt:md5,be543f33974d1ed4663ef2676a416669" + "test_is_metrics.txt:md5,0ce93baa9d470f9b6344094218d74e59" ] ], "6": [ @@ -298,7 +298,7 @@ "id": "test", "single_end": false }, - "test_aln_metrics.txt:md5,1cf61ba2d564cf427976d2543fd770ac" + "test_aln_metrics.txt:md5,1950af402ff3751023761de5bb649b43" ] ], "gc_metrics": [ @@ -307,7 +307,7 @@ "id": "test", "single_end": false }, - "test_gc_metrics.txt:md5,1ed8166e64c9a44e40ab6e5173489ef2" + "test_gc_metrics.txt:md5,42d6ee7ce81858329b66c38e6558d66d" ] ], "gc_plot": [ @@ -325,7 +325,7 @@ "id": "test", "single_end": false }, - "test_gc_summary.txt:md5,33e6d54497ac882486c38ec05b2ca60a" + "test_gc_summary.txt:md5,367143e0f7680555bb68173561919e5f" ] ], "is_metrics": [ @@ -334,7 +334,7 @@ "id": "test", "single_end": false }, - "test_is_metrics.txt:md5,be543f33974d1ed4663ef2676a416669" + "test_is_metrics.txt:md5,0ce93baa9d470f9b6344094218d74e59" ] ], "is_plot": [ @@ -352,7 +352,7 @@ "id": "test", "single_end": false }, - "test_mq_metrics.txt:md5,4f4540509edee8dc3ad78caf1733e206" + "test_mq_metrics.txt:md5,159ed897b11e7621703365134f60c1f7" ] ], "mq_plot": [ @@ -370,7 +370,7 @@ "id": "test", "single_end": false }, - "test_qd_metrics.txt:md5,f53e8b0da374aa35908cfd2180bf1406" + "test_qd_metrics.txt:md5,fa86f2f5cc195ea48565401f68ba0730" ] ], "qd_plot": [ @@ -383,7 +383,7 @@ ] ], "versions": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ] } ], @@ -391,7 +391,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-20T12:00:41.711146115" + "timestamp": "2024-10-02T10:22:36.981327826" }, "metrics - no plots": { "content": [ @@ -402,7 +402,7 @@ "id": "test", "single_end": false }, - "test_mq_metrics.txt:md5,4f4540509edee8dc3ad78caf1733e206" + "test_mq_metrics.txt:md5,159ed897b11e7621703365134f60c1f7" ] ], "1": [ @@ -411,11 +411,11 @@ "id": "test", "single_end": false }, - "test_qd_metrics.txt:md5,f53e8b0da374aa35908cfd2180bf1406" + "test_qd_metrics.txt:md5,fa86f2f5cc195ea48565401f68ba0730" ] ], "10": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ], "2": [ [ @@ -423,7 +423,7 @@ "id": "test", "single_end": false }, - "test_gc_summary.txt:md5,33e6d54497ac882486c38ec05b2ca60a" + "test_gc_summary.txt:md5,367143e0f7680555bb68173561919e5f" ] ], "3": [ @@ -432,7 +432,7 @@ "id": "test", "single_end": false }, - "test_gc_metrics.txt:md5,1ed8166e64c9a44e40ab6e5173489ef2" + "test_gc_metrics.txt:md5,42d6ee7ce81858329b66c38e6558d66d" ] ], "4": [ @@ -441,7 +441,7 @@ "id": "test", "single_end": false }, - "test_aln_metrics.txt:md5,1cf61ba2d564cf427976d2543fd770ac" + "test_aln_metrics.txt:md5,1950af402ff3751023761de5bb649b43" ] ], "5": [ @@ -450,7 +450,7 @@ "id": "test", "single_end": false }, - "test_is_metrics.txt:md5,be543f33974d1ed4663ef2676a416669" + "test_is_metrics.txt:md5,0ce93baa9d470f9b6344094218d74e59" ] ], "6": [ @@ -471,7 +471,7 @@ "id": "test", "single_end": false }, - "test_aln_metrics.txt:md5,1cf61ba2d564cf427976d2543fd770ac" + "test_aln_metrics.txt:md5,1950af402ff3751023761de5bb649b43" ] ], "gc_metrics": [ @@ -480,7 +480,7 @@ "id": "test", "single_end": false }, - "test_gc_metrics.txt:md5,1ed8166e64c9a44e40ab6e5173489ef2" + "test_gc_metrics.txt:md5,42d6ee7ce81858329b66c38e6558d66d" ] ], "gc_plot": [ @@ -492,7 +492,7 @@ "id": "test", "single_end": false }, - "test_gc_summary.txt:md5,33e6d54497ac882486c38ec05b2ca60a" + "test_gc_summary.txt:md5,367143e0f7680555bb68173561919e5f" ] ], "is_metrics": [ @@ -501,7 +501,7 @@ "id": "test", "single_end": false }, - "test_is_metrics.txt:md5,be543f33974d1ed4663ef2676a416669" + "test_is_metrics.txt:md5,0ce93baa9d470f9b6344094218d74e59" ] ], "is_plot": [ @@ -513,7 +513,7 @@ "id": "test", "single_end": false }, - "test_mq_metrics.txt:md5,4f4540509edee8dc3ad78caf1733e206" + "test_mq_metrics.txt:md5,159ed897b11e7621703365134f60c1f7" ] ], "mq_plot": [ @@ -525,14 +525,14 @@ "id": "test", "single_end": false }, - "test_qd_metrics.txt:md5,f53e8b0da374aa35908cfd2180bf1406" + "test_qd_metrics.txt:md5,fa86f2f5cc195ea48565401f68ba0730" ] ], "qd_plot": [ ], "versions": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ] } ], @@ -540,6 +540,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-20T12:00:27.37021578" + "timestamp": "2024-10-02T10:22:26.909097428" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/dedup/environment.yml b/modules/nf-core/sentieon/dedup/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/dedup/environment.yml +++ b/modules/nf-core/sentieon/dedup/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/dedup/main.nf b/modules/nf-core/sentieon/dedup/main.nf index f0b387f64f6..5735df73406 100644 --- a/modules/nf-core/sentieon/dedup/main.nf +++ b/modules/nf-core/sentieon/dedup/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DEDUP { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap index c1cd83ec347..26117a7cdf4 100644 --- a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap @@ -7,7 +7,7 @@ { "id": "test" }, - "test.cram:md5,d2993113f4614f5196fc74d489412fc4" + "test.cram:md5,e46e97256846338e1cff32d862105491" ] ], "1": [ @@ -34,7 +34,7 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "5": [ @@ -42,7 +42,7 @@ { "id": "test" }, - "test.cram.metrics:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "6": [ @@ -50,11 +50,11 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics.multiqc.tsv:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "7": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ], "bai": [ [ @@ -80,7 +80,7 @@ { "id": "test" }, - "test.cram:md5,d2993113f4614f5196fc74d489412fc4" + "test.cram:md5,e46e97256846338e1cff32d862105491" ] ], "metrics": [ @@ -88,7 +88,7 @@ { "id": "test" }, - "test.cram.metrics:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "metrics_multiqc_tsv": [ @@ -96,7 +96,7 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics.multiqc.tsv:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "score": [ @@ -104,19 +104,19 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "versions": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-26T13:02:23.640202" + "timestamp": "2024-10-02T10:28:10.570152622" }, "Test removing duplicates": { "content": [ @@ -126,7 +126,7 @@ { "id": "test" }, - "test.cram:md5,e67398ab64430191f9d15cb8a8f425c7" + "test.cram:md5,8075d3e7c66d36fdbb81270eefc996d4" ] ], "1": [ @@ -153,7 +153,7 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "5": [ @@ -161,7 +161,7 @@ { "id": "test" }, - "test.cram.metrics:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics:md5,2a41239de0275a8321f4658286d97d65" ] ], "6": [ @@ -169,11 +169,11 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics.multiqc.tsv:md5,2a41239de0275a8321f4658286d97d65" ] ], "7": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ], "bai": [ [ @@ -199,7 +199,7 @@ { "id": "test" }, - "test.cram:md5,e67398ab64430191f9d15cb8a8f425c7" + "test.cram:md5,8075d3e7c66d36fdbb81270eefc996d4" ] ], "metrics": [ @@ -207,7 +207,7 @@ { "id": "test" }, - "test.cram.metrics:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics:md5,2a41239de0275a8321f4658286d97d65" ] ], "metrics_multiqc_tsv": [ @@ -215,7 +215,7 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics.multiqc.tsv:md5,2a41239de0275a8321f4658286d97d65" ] ], "score": [ @@ -223,19 +223,19 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "versions": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-26T13:02:33.698037" + "timestamp": "2024-10-02T10:28:19.377946074" }, "Test stub": { "content": [ @@ -292,7 +292,7 @@ ] ], "7": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ], "bai": [ [ @@ -346,14 +346,14 @@ ] ], "versions": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-26T13:02:41.360148" + "timestamp": "2024-10-02T10:28:28.792696026" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/dnamodelapply/environment.yml b/modules/nf-core/sentieon/dnamodelapply/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/dnamodelapply/environment.yml +++ b/modules/nf-core/sentieon/dnamodelapply/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/dnamodelapply/main.nf b/modules/nf-core/sentieon/dnamodelapply/main.nf index b4b10ce4d09..85fd601b393 100644 --- a/modules/nf-core/sentieon/dnamodelapply/main.nf +++ b/modules/nf-core/sentieon/dnamodelapply/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DNAMODELAPPLY { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(idx) diff --git a/modules/nf-core/sentieon/dnascope/environment.yml b/modules/nf-core/sentieon/dnascope/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/dnascope/environment.yml +++ b/modules/nf-core/sentieon/dnascope/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf index 63d7d23b8a2..bdeb62521a3 100644 --- a/modules/nf-core/sentieon/dnascope/main.nf +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DNASCOPE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai), path(intervals) diff --git a/modules/nf-core/sentieon/gvcftyper/environment.yml b/modules/nf-core/sentieon/gvcftyper/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/gvcftyper/environment.yml +++ b/modules/nf-core/sentieon/gvcftyper/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/gvcftyper/main.nf b/modules/nf-core/sentieon/gvcftyper/main.nf index e2e5d2434d9..6817c6dbe27 100644 --- a/modules/nf-core/sentieon/gvcftyper/main.nf +++ b/modules/nf-core/sentieon/gvcftyper/main.nf @@ -5,8 +5,8 @@ process SENTIEON_GVCFTYPER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(gvcfs), path(tbis), path(intervals) diff --git a/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap b/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap index 5e7e40fb6be..627b62fd872 100644 --- a/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap @@ -2,58 +2,58 @@ "sentieon gvcftyper dbsnp": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "21606383c760bf676d4c1f747b97d118" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:47.508154" + "timestamp": "2024-10-02T10:29:01.102534193" }, "sentieon gvcftyper dbsnp intervals": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "21606383c760bf676d4c1f747b97d118" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:13:05.636172" + "timestamp": "2024-10-02T10:29:20.933217951" }, "sentieon gvcftyper vcf.gz": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "d13216836f1452e200b215b796606671" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:38.720056" + "timestamp": "2024-10-02T10:28:50.937002394" }, "sentieon gvcftyper intervals": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "d13216836f1452e200b215b796606671" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:56.700687" + "timestamp": "2024-10-02T10:29:11.029924476" }, "sentieon gvcftyper - stub": { "content": [ @@ -75,7 +75,7 @@ ] ], "2": [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "vcf_gz": [ [ @@ -94,28 +94,28 @@ ] ], "versions": [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:03:46.379477" + "timestamp": "2024-10-02T10:29:30.788262037" }, "sentieon gvcftyper vcf": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "d13216836f1452e200b215b796606671" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:29.24482" + "timestamp": "2024-10-02T10:28:41.276698125" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/haplotyper/environment.yml b/modules/nf-core/sentieon/haplotyper/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/haplotyper/environment.yml +++ b/modules/nf-core/sentieon/haplotyper/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/haplotyper/main.nf b/modules/nf-core/sentieon/haplotyper/main.nf index 33122d86b2f..a04b342caf0 100644 --- a/modules/nf-core/sentieon/haplotyper/main.nf +++ b/modules/nf-core/sentieon/haplotyper/main.nf @@ -5,8 +5,8 @@ process SENTIEON_HAPLOTYPER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(input), path(input_index), path(intervals), path(recal_table) diff --git a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap index 5b77a02f5ee..0527f0fcbe4 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap @@ -2,49 +2,49 @@ "Sentieon Haplotyper VCF": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.unfiltered.vcf.gz.tbi", "cea0045051da7877b38a1e25df812a91" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:16:51.711057" + "timestamp": "2024-10-02T10:29:42.675527558" }, "Sentieon Haplotyper Recalibration": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.unfiltered.vcf.gz.tbi", "10faa3b669c49826098e09784d8a4716" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T15:21:57.012186" + "timestamp": "2024-10-02T10:30:38.708688756" }, "Sentieon Haplotyper GVCF": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:17:01.797501" + "timestamp": "2024-10-02T10:29:53.99302993" }, "Sentieon Haplotyper BOTH": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", @@ -53,14 +53,14 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:17:12.021226" + "timestamp": "2024-10-02T10:30:03.323463525" }, "Sentieon Haplotyper DBSNP BOTH": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "228556b7921205f023fec51098feeb97", @@ -69,14 +69,14 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:30:48.065511" + "timestamp": "2024-10-02T10:30:25.917634004" }, "Sentieon Haplotyper Intervals BOTH": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", @@ -85,9 +85,9 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:17:22.554336" + "timestamp": "2024-10-02T10:30:14.249175276" }, "Sentieon Haplotyper - stub": { "content": [ @@ -125,7 +125,7 @@ ] ], "4": [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "gvcf": [ [ @@ -160,28 +160,28 @@ ] ], "versions": [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:47:33.117516" + "timestamp": "2024-10-02T10:30:56.435076872" }, "Sentieon Haplotyper multiple CRAMs": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.unfiltered.vcf.gz.tbi", "b5d6e09e336438e38f7bf5531799e3a" ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T17:04:30.67684393" + "timestamp": "2024-10-02T10:30:49.266709749" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/qualcal/main.nf b/modules/nf-core/sentieon/qualcal/main.nf index 91785ce52a3..de4287e1970 100644 --- a/modules/nf-core/sentieon/qualcal/main.nf +++ b/modules/nf-core/sentieon/qualcal/main.nf @@ -4,8 +4,8 @@ process SENTIEON_QUALCAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(input), path(input_index) diff --git a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap index 860131a7d01..676768d5de6 100644 --- a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap @@ -18,7 +18,7 @@ { "id": "test" }, - "test.recalibrated.bam:md5,f77f009ae183d0985e301ca43f0d8bc9" + "test.recalibrated.bam:md5,4fb1bab59ea9b0e04415a319f26622fb" ] ], "3": [ @@ -38,7 +38,7 @@ ] ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ [ @@ -61,7 +61,7 @@ { "id": "test" }, - "test.recalibrated.bam:md5,f77f009ae183d0985e301ca43f0d8bc9" + "test.recalibrated.bam:md5,4fb1bab59ea9b0e04415a319f26622fb" ] ], "table": [ @@ -76,7 +76,7 @@ ] ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -84,7 +84,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:40:58.953198101" + "timestamp": "2024-10-02T10:31:32.425231469" }, "BAM - stub": { "content": [ @@ -130,7 +130,7 @@ ] ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ [ @@ -173,7 +173,7 @@ ] ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -181,7 +181,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:41:20.102366914" + "timestamp": "2024-10-02T10:31:54.72910232" }, "Generate recalibration table - CRAM": { "content": [ @@ -207,7 +207,7 @@ ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ @@ -230,7 +230,7 @@ ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -238,7 +238,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:40:45.702266837" + "timestamp": "2024-10-02T10:31:19.033117607" }, "no recal BAM - stub": { "content": [ @@ -279,7 +279,7 @@ ] ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ [ @@ -317,7 +317,7 @@ ] ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -325,7 +325,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:41:27.713572216" + "timestamp": "2024-10-02T10:32:01.710216891" }, "Recalibrate - CRAM": { "content": [ @@ -346,7 +346,7 @@ { "id": "test" }, - "test.recalibrated.cram:md5,a092db2ad452a51f95c43e768dfe498d" + "test.recalibrated.cram:md5,9a51a1fd90e0a7cbec18762c6917c3d2" ] ], "3": [ @@ -366,7 +366,7 @@ ] ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ [ @@ -389,7 +389,7 @@ { "id": "test" }, - "test.recalibrated.cram:md5,a092db2ad452a51f95c43e768dfe498d" + "test.recalibrated.cram:md5,9a51a1fd90e0a7cbec18762c6917c3d2" ] ], "table": [ @@ -404,7 +404,7 @@ ] ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -412,7 +412,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:41:12.389107209" + "timestamp": "2024-10-02T10:31:46.677277887" }, "Generate recalibration table - BAM": { "content": [ @@ -438,7 +438,7 @@ ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ @@ -461,7 +461,7 @@ ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -469,6 +469,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:40:37.232122352" + "timestamp": "2024-10-02T10:31:08.50547086" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/readwriter/environment.yml b/modules/nf-core/sentieon/readwriter/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/readwriter/environment.yml +++ b/modules/nf-core/sentieon/readwriter/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/readwriter/main.nf b/modules/nf-core/sentieon/readwriter/main.nf index 1011c7b2e13..7e00b9e98f5 100644 --- a/modules/nf-core/sentieon/readwriter/main.nf +++ b/modules/nf-core/sentieon/readwriter/main.nf @@ -5,8 +5,8 @@ process SENTIEON_READWRITER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(input), path(index) diff --git a/modules/nf-core/sentieon/readwriter/tests/main.nf.test.snap b/modules/nf-core/sentieon/readwriter/tests/main.nf.test.snap index 6e71a1d2bf5..0af607892b9 100644 --- a/modules/nf-core/sentieon/readwriter/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/readwriter/tests/main.nf.test.snap @@ -4,56 +4,56 @@ "2f11e4fe3390b8ad0a1852616fd1da04", "test.bam.bai", [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:14:43.34615" + "timestamp": "2024-10-02T10:32:10.696224516" }, "cram": { "content": [ "2f11e4fe3390b8ad0a1852616fd1da04", "test.cram.crai", [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:14:53.60186" + "timestamp": "2024-10-02T10:32:23.080911465" }, "merging - output bam": { "content": [ "ed89d81d2d6adafdbb819a1a4ec86493", "test.bam.bai", [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:15:03.780064" + "timestamp": "2024-10-02T10:32:36.741074568" }, "merging - output bam to cram": { "content": [ "ed89d81d2d6adafdbb819a1a4ec86493", "test.cram.crai", [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:15:15.313494" + "timestamp": "2024-10-02T10:33:50.523887508" }, "sentieon readwriter - stub": { "content": [ @@ -84,7 +84,7 @@ ] ], "3": [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ], "index": [ [ @@ -112,14 +112,14 @@ ] ], "versions": [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:15:23.88137" + "timestamp": "2024-10-02T10:34:00.856232997" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/tnfilter/environment.yml b/modules/nf-core/sentieon/tnfilter/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/tnfilter/environment.yml +++ b/modules/nf-core/sentieon/tnfilter/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/tnfilter/main.nf b/modules/nf-core/sentieon/tnfilter/main.nf index 57f8f20f57a..e1de21d534d 100644 --- a/modules/nf-core/sentieon/tnfilter/main.nf +++ b/modules/nf-core/sentieon/tnfilter/main.nf @@ -5,8 +5,8 @@ process SENTIEON_TNFILTER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(vcf_tbi), path(stats), path(contamination), path(segments), path(orientation_priors) diff --git a/modules/nf-core/sentieon/tnhaplotyper2/environment.yml b/modules/nf-core/sentieon/tnhaplotyper2/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/tnhaplotyper2/environment.yml +++ b/modules/nf-core/sentieon/tnhaplotyper2/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/tnhaplotyper2/main.nf b/modules/nf-core/sentieon/tnhaplotyper2/main.nf index dfa9796754a..4a001cd1a6e 100644 --- a/modules/nf-core/sentieon/tnhaplotyper2/main.nf +++ b/modules/nf-core/sentieon/tnhaplotyper2/main.nf @@ -5,8 +5,8 @@ process SENTIEON_TNHAPLOTYPER2 { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(input), path(input_index), path(intervals) diff --git a/modules/nf-core/sentieon/tnscope/environment.yml b/modules/nf-core/sentieon/tnscope/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/tnscope/environment.yml +++ b/modules/nf-core/sentieon/tnscope/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/tnscope/main.nf b/modules/nf-core/sentieon/tnscope/main.nf index ac13542f978..b588aeb419d 100644 --- a/modules/nf-core/sentieon/tnscope/main.nf +++ b/modules/nf-core/sentieon/tnscope/main.nf @@ -5,8 +5,8 @@ process SENTIEON_TNSCOPE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/sentieon/varcal/environment.yml b/modules/nf-core/sentieon/varcal/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/varcal/environment.yml +++ b/modules/nf-core/sentieon/varcal/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/varcal/main.nf b/modules/nf-core/sentieon/varcal/main.nf index 7c85c121020..d78eacb44a0 100644 --- a/modules/nf-core/sentieon/varcal/main.nf +++ b/modules/nf-core/sentieon/varcal/main.nf @@ -5,8 +5,8 @@ process SENTIEON_VARCAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(tbi) // input vcf and tbi of variants to recalibrate diff --git a/modules/nf-core/sentieon/wgsmetrics/environment.yml b/modules/nf-core/sentieon/wgsmetrics/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/wgsmetrics/environment.yml +++ b/modules/nf-core/sentieon/wgsmetrics/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/wgsmetrics/main.nf b/modules/nf-core/sentieon/wgsmetrics/main.nf index fad8d071700..9f268f5a858 100644 --- a/modules/nf-core/sentieon/wgsmetrics/main.nf +++ b/modules/nf-core/sentieon/wgsmetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_WGSMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai) From b8d36829fa84b6e404364abff787e8b07f6d058c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Schcolnicov?= <90359308+nschcolnicov@users.noreply.github.com> Date: Wed, 2 Oct 2024 17:19:05 -0300 Subject: [PATCH 08/36] Bumped MQC to 1.25.1 (#6726) Co-authored-by: zxBIB Schcolnicov --- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 4 +-- .../nf-core/multiqc/tests/main.nf.test.snap | 26 +++++++++---------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index f1cd99b0792..6f5b867b768 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.24.1 + - bioconda::multiqc=1.25.1 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index b9ccebdbbc0..9724d2f34ef 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.25--pyhdfd78af_0' : - 'biocontainers/multiqc:1.25--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.25.1--pyhdfd78af_0' : + 'biocontainers/multiqc:1.25.1--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index b779e46924b..2fcbb5ff7d1 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" + "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T12:41:34.562023" + "timestamp": "2024-10-02T17:51:46.317523" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" + "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T11:27:11.933869532" + "timestamp": "2024-10-02T17:52:20.680978" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" + "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T11:26:56.709849369" + "timestamp": "2024-10-02T17:52:09.185842" } -} +} \ No newline at end of file From 3cf419b5480c5ca8893f5ea6e1746d2b3a7c326d Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Thu, 3 Oct 2024 08:57:52 +0200 Subject: [PATCH 09/36] Update motus merge module (#6701) * Update motus merge module * Add stub test * Update modules/nf-core/motus/merge/tests/main.nf.test * Review suggestions * Remove old pytest * Update pytest_modules.yml * remove the extra output --------- Co-authored-by: Lili Andersson-Li <64467552+LilyAnderssonLee@users.noreply.github.com> Co-authored-by: Lili Andersson-Li --- modules/nf-core/motus/merge/main.nf | 22 ++++- .../nf-core/motus/merge/tests/main.nf.test | 89 +++++++++++++++++++ .../motus/merge/tests/main.nf.test.snap | 63 +++++++++++++ modules/nf-core/motus/merge/tests/tags.yml | 2 + tests/config/pytest_modules.yml | 3 - tests/modules/nf-core/motus/merge/main.nf | 51 ----------- .../nf-core/motus/merge/nextflow.config | 8 -- tests/modules/nf-core/motus/merge/test.yml | 19 ---- 8 files changed, 174 insertions(+), 83 deletions(-) create mode 100644 modules/nf-core/motus/merge/tests/main.nf.test create mode 100644 modules/nf-core/motus/merge/tests/main.nf.test.snap create mode 100644 modules/nf-core/motus/merge/tests/tags.yml delete mode 100644 tests/modules/nf-core/motus/merge/main.nf delete mode 100644 tests/modules/nf-core/motus/merge/nextflow.config delete mode 100644 tests/modules/nf-core/motus/merge/test.yml diff --git a/modules/nf-core/motus/merge/main.nf b/modules/nf-core/motus/merge/main.nf index 06cb93cc7c1..392024aed6a 100644 --- a/modules/nf-core/motus/merge/main.nf +++ b/modules/nf-core/motus/merge/main.nf @@ -4,8 +4,8 @@ process MOTUS_MERGE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/motus:3.0.3--pyhdfd78af_0': - 'biocontainers/motus:3.0.3--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/motus:3.1.0--pyhdfd78af_0': + 'biocontainers/motus:3.1.0--pyhdfd78af_0' }" input: tuple val(meta), path(input) @@ -42,4 +42,22 @@ process MOTUS_MERGE { motus: \$VERSION END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def cmd_input = input.size() > 1 ? "-i ${input.join(',')}" : input.isDirectory() ? "-d ${input}" : "-i ${input}" + def suffix = task.ext.args?.contains("-B") ? "biom" : "txt" + + """ + touch ${prefix}.txt + + VERSION=\$(cat ${profile_version_yml} | grep '/*motus:.*' | sed 's/.*otus: //g') + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + motus: \$VERSION + END_VERSIONS + """ + } diff --git a/modules/nf-core/motus/merge/tests/main.nf.test b/modules/nf-core/motus/merge/tests/main.nf.test new file mode 100644 index 00000000000..13f0121ec3e --- /dev/null +++ b/modules/nf-core/motus/merge/tests/main.nf.test @@ -0,0 +1,89 @@ +nextflow_process { + name "Test Process MOTUS_MERGE" + script "../main.nf" + process "MOTUS_MERGE" + tag "modules" + tag "modules_nfcore" + tag "motus" + tag "motus/downloaddb" + tag "motus/profile" + tag "motus/merge" + + + setup { + run("MOTUS_DOWNLOADDB") { + script "modules/nf-core/motus/downloaddb/main.nf" + process { + """ + input[0] = Channel.of([ + file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py') + ]) + """ + } + } + + run("MOTUS_PROFILE") { + script "modules/nf-core/motus/profile/main.nf" + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true ), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true ) + ] + ] + + input[1] = MOTUS_DOWNLOADDB.out.db + """ + } + } + } + + test("sarscov2 - illumina paired end [fastq]") { + + + when { + process { + """ + input[0] = MOTUS_PROFILE.out.out.map{ [[id:"test"], it[1]] }.groupTuple() + input[1] = MOTUS_DOWNLOADDB.out.db + input[2] = MOTUS_PROFILE.out.versions.first() + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + path(process.out.txt[0][1]).readLines()[3..10], + process.out.versions, + ).match() + } + ) + } + } + + test("sarscov2 - illumina paired end [fastq] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = MOTUS_PROFILE.out.out.map{ [[id:"test"], it[1]] }.groupTuple() + input[1] = MOTUS_DOWNLOADDB.out.db + input[2] = MOTUS_PROFILE.out.versions.first() + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( process.out ).match() } + ) + } + } +} diff --git a/modules/nf-core/motus/merge/tests/main.nf.test.snap b/modules/nf-core/motus/merge/tests/main.nf.test.snap new file mode 100644 index 00000000000..a8d75f4f1aa --- /dev/null +++ b/modules/nf-core/motus/merge/tests/main.nf.test.snap @@ -0,0 +1,63 @@ +{ + "sarscov2 - illumina paired end [fastq]": { + "content": [ + [ + "Leptospira alexanderi [ref_mOTU_v31_00001]\t0.0000000000", + "Leptospira weilii [ref_mOTU_v31_00002]\t0.0000000000", + "Chryseobacterium sp. [ref_mOTU_v31_00004]\t0.0000000000", + "Chryseobacterium gallinarum [ref_mOTU_v31_00005]\t0.0000000000", + "Chryseobacterium indologenes [ref_mOTU_v31_00006]\t0.0000000000", + "Chryseobacterium artocarpi/ureilyticum [ref_mOTU_v31_00007]\t0.0000000000", + "Chryseobacterium jejuense [ref_mOTU_v31_00008]\t0.0000000000", + "Chryseobacterium sp. G972 [ref_mOTU_v31_00009]\t0.0000000000" + ], + [ + "versions.yml:md5,fb03dc5dcf4912bd54b06f9ee59a7eef" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-03T06:11:21.297394816" + }, + "sarscov2 - illumina paired end [fastq] - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + "versions.yml:md5,fb03dc5dcf4912bd54b06f9ee59a7eef" + ], + "biom": [ + + ], + "txt": [ + [ + { + "id": "test" + }, + "test.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,fb03dc5dcf4912bd54b06f9ee59a7eef" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.04.1" + }, + "timestamp": "2024-10-02T12:18:09.391582" + } +} \ No newline at end of file diff --git a/modules/nf-core/motus/merge/tests/tags.yml b/modules/nf-core/motus/merge/tests/tags.yml new file mode 100644 index 00000000000..44edb8d0758 --- /dev/null +++ b/modules/nf-core/motus/merge/tests/tags.yml @@ -0,0 +1,2 @@ +motus/merge: + - modules/nf-core/motus/merge/** diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 485641f1da0..2d544dfd48c 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -437,9 +437,6 @@ mmseqs/tsv2exprofiledb: motus/downloaddb: - modules/nf-core/motus/downloaddb/** - tests/modules/nf-core/motus/downloaddb/** -motus/merge: - - modules/nf-core/motus/merge/** - - tests/modules/nf-core/motus/merge/** msisensor/msi: - modules/nf-core/msisensor/msi/** - tests/modules/nf-core/msisensor/msi/** diff --git a/tests/modules/nf-core/motus/merge/main.nf b/tests/modules/nf-core/motus/merge/main.nf deleted file mode 100644 index 22260b3f433..00000000000 --- a/tests/modules/nf-core/motus/merge/main.nf +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { MOTUS_DOWNLOADDB } from '../../../../../modules/nf-core/motus/downloaddb/main.nf' -include { MOTUS_PROFILE } from '../../../../../modules/nf-core/motus/profile/main.nf' -include { MOTUS_MERGE } from '../../../../../modules/nf-core/motus/merge/main.nf' -include { MOTUS_MERGE as MOTUS_MERGE_BIOM } from '../../../../../modules/nf-core/motus/merge/main.nf' - -workflow test_motus_merge { - - input = Channel.fromList( - [ - [ - [ id:'test', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ], - [ - [ id:'test2', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ] - ] - ) - - MOTUS_DOWNLOADDB ( file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py') ) - MOTUS_PROFILE ( input, MOTUS_DOWNLOADDB.out.db ) - MOTUS_MERGE ( MOTUS_PROFILE.out.out.map{ [[id:"test"], it[1]] }.groupTuple(), MOTUS_DOWNLOADDB.out.db, MOTUS_PROFILE.out.versions.first() ) - -} - -workflow test_motus_merge_biom { - - input = Channel.fromList( - [ - [ - [ id:'test', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ], - [ - [ id:'test2', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ] - ] - ) - - MOTUS_DOWNLOADDB ( file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py') ) - MOTUS_PROFILE ( input, MOTUS_DOWNLOADDB.out.db ) - MOTUS_MERGE_BIOM ( MOTUS_PROFILE.out.out.map{ [[id:"test"], it[1]] }.groupTuple(), MOTUS_DOWNLOADDB.out.db, MOTUS_PROFILE.out.versions.first() ) - -} - diff --git a/tests/modules/nf-core/motus/merge/nextflow.config b/tests/modules/nf-core/motus/merge/nextflow.config deleted file mode 100644 index d5b9187c2fe..00000000000 --- a/tests/modules/nf-core/motus/merge/nextflow.config +++ /dev/null @@ -1,8 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: MOTUS_MERGE_BIOM { - ext.args = "-B" - } -} diff --git a/tests/modules/nf-core/motus/merge/test.yml b/tests/modules/nf-core/motus/merge/test.yml deleted file mode 100644 index aa786fecd2a..00000000000 --- a/tests/modules/nf-core/motus/merge/test.yml +++ /dev/null @@ -1,19 +0,0 @@ -- name: motus merge test_motus_merge - command: nextflow run ./tests/modules/nf-core/motus/merge -entry test_motus_merge -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/motus/merge/nextflow.config - tags: - - motus - - motus/merge - files: - - path: output/motus/test.txt - contains: - - "consensus_taxonomy" - -- name: motus merge test_motus_merge_biom - command: nextflow run ./tests/modules/nf-core/motus/merge -entry test_motus_merge_biom -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/motus/merge/nextflow.config - tags: - - motus - - motus/merge - files: - - path: output/motus/test.biom - contains: - - "Biological Observation Matrix 1.0.0" From 5212d5eff3e0e216f66c6de13e1c7fbca02cb307 Mon Sep 17 00:00:00 2001 From: Joris van Steenbrugge Date: Thu, 3 Oct 2024 09:33:54 +0200 Subject: [PATCH 10/36] pypgx/createinputvcf (#6720) * pypgx/createinputvcf * add pgx_genes and assembly_version value channels * improved vcf testing --------- Co-authored-by: Jorisvansteenbrugge <7196110+Jorisvansteenbrugge@users.noreply.github.com> --- .../pypgx/createinputvcf/environment.yml | 7 ++ modules/nf-core/pypgx/createinputvcf/main.nf | 59 ++++++++++++++ modules/nf-core/pypgx/createinputvcf/meta.yml | 76 +++++++++++++++++++ .../pypgx/createinputvcf/tests/main.nf.test | 76 +++++++++++++++++++ .../createinputvcf/tests/main.nf.test.snap | 65 ++++++++++++++++ .../pypgx/createinputvcf/tests/tags.yml | 2 + 6 files changed, 285 insertions(+) create mode 100644 modules/nf-core/pypgx/createinputvcf/environment.yml create mode 100644 modules/nf-core/pypgx/createinputvcf/main.nf create mode 100644 modules/nf-core/pypgx/createinputvcf/meta.yml create mode 100644 modules/nf-core/pypgx/createinputvcf/tests/main.nf.test create mode 100644 modules/nf-core/pypgx/createinputvcf/tests/main.nf.test.snap create mode 100644 modules/nf-core/pypgx/createinputvcf/tests/tags.yml diff --git a/modules/nf-core/pypgx/createinputvcf/environment.yml b/modules/nf-core/pypgx/createinputvcf/environment.yml new file mode 100644 index 00000000000..36c4150bd25 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/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::pypgx=0.25.0 diff --git a/modules/nf-core/pypgx/createinputvcf/main.nf b/modules/nf-core/pypgx/createinputvcf/main.nf new file mode 100644 index 00000000000..6de30339a65 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/main.nf @@ -0,0 +1,59 @@ +process PYPGX_CREATEINPUTVCF { + tag "$meta.id" + label "process_single" + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/pypgx:0.25.0--pyh7e72e81_0': + 'biocontainers/pypgx:0.25.0--pyh7e72e81_0' }" + + input: + tuple val(meta), path(bam), path(bai) + tuple val(meta2), path(fasta) + val(pgx_genes) + val(assembly_version) + + + + output: + tuple val(meta), path("*.vcf.gz"), emit: vcf + tuple val(meta), path("*.vcf.gz.tbi"), emit: tbi + path("versions.yml"), emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def assembly = "${assembly_version}" ?: "GRCh38" + def prefix = task.ext.prefix ?: "${meta.id}" + def pgx_genes = "--genes ${pgx_genes.join(' ')}" ?: '' + + """ + pypgx create-input-vcf \\ + ${args} \\ + ${pgx_genes} \\ + --assembly ${assembly} \\ + ${prefix}.vcf.gz \\ + ${fasta} \\ + $bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pypgx: \$(echo \$(pypgx -v 2>&1) | sed 's/.* //') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + echo "" | gzip > ${prefix}.vcf.gz + touch ${prefix}.vcf.gz.tbi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pypgx: \$(echo \$(pypgx -v 2>&1) | sed 's/.* //') + END_VERSIONS + """ +} diff --git a/modules/nf-core/pypgx/createinputvcf/meta.yml b/modules/nf-core/pypgx/createinputvcf/meta.yml new file mode 100644 index 00000000000..3e95800769b --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/meta.yml @@ -0,0 +1,76 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "pypgx_createinputvcf" +description: Call SNVs/indels from BAM files for all target genes. +keywords: + - pypgx + - Pharmacogenetics + - variants +tools: + - "pypgx": + description: "A Python package for pharmacogenomics research" + homepage: "https://pypgx.readthedocs.io/en/latest/" + documentation: "https://pypgx.readthedocs.io/en/latest/" + tool_dev_url: "https://github.com/sbslee/pypgx" + doi: "10.1371/journal.pone.0272129" + licence: ["MIT"] + identifier: "" +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [id: 'test'] + - bam: + type: file + description: Input BAM file + pattern: "*.{bam}" + - bai: + type: file + description: Input BAM index file + pattern: "*.{bam.bai}" + - - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. [id: 'test'] + - fasta: + type: file + description: Reference genome file + pattern: "*.{fasta,fa,fna,fasta.gz,fa.gz,fna.gz}" + - - pgx_genes: + type: list + description: List of PGx genes supported by PyPGx to include in variant calling. + - - assembly_version: + type: string + description: Genome assembly version to use for variant calling. + pattern: "{GRCh37,GRCh38}" +output: + - vcf: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [id: 'test'] + - "*.vcf.gz": + type: file + description: VCF file containing called SNVs/indels + pattern: "*.vcf.gz" + - tbi: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [id: 'test'] + - "*.vcf.gz.tbi": + type: file + description: File containing the VCF tabix index + pattern: "*.vcf.gz.tbi" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@jorisvansteenbrugge" +maintainers: + - "@jorisvansteenbrugge" diff --git a/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test b/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test new file mode 100644 index 00000000000..1faef5d16b9 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test @@ -0,0 +1,76 @@ +// nf-core modules test pypgx/createinputvcf +nextflow_process { + + name "Test Process PYPGX_CREATEINPUTVCF" + script "../main.nf" + process "PYPGX_CREATEINPUTVCF" + + tag "modules" + tag "modules_nfcore" + tag "pypgx" + tag "pypgx/createinputvcf" + + + test("human paired end bam CYP2D6 locus - GR37_chr22.fasta") { + when { + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.PGx.CYP2D6.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.PGx.CYP2D6.bam.bai', checkIfExists: true) + ] + input[1] = [ + [id: 'GRCh37'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/GRCh37_chr22.fasta.gz', checkIfExists: true) + ] + input[2] = ["CYP2D6"] + input[3] = "GRCh37" + """ + } + } + + then { + def vcfFile = path(process.out.vcf[0][1]).vcf + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.vcf[0][1]).name, + process.out.versions, + vcfFile.variantsMD5).match() }, + {assert vcfFile.chromosomes == ['22'] as Set}, + {assert vcfFile.sampleCount == 1} + ) + } + } + + + test("stub") { + options "-stub" + + when { + process { + """ + input[0] = [ + [id: 'test'], + [], + [] + ] + input[1] = [ + [id: 'test_genome'], + [] + ] + input[2] = [] + input[3] = "" + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test.snap b/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test.snap new file mode 100644 index 00000000000..f41606648d0 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test.snap @@ -0,0 +1,65 @@ +{ + "human paired end bam CYP2D6 locus - GR37_chr22.fasta": { + "content": [ + "test.vcf.gz", + [ + "versions.yml:md5,6afe5f69d9cb49f74eb1958a8ba2e990" + ], + "3a4fe74d4e0b45036ebd91bdae36b225" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.3" + }, + "timestamp": "2024-10-03T08:47:44.853651" + }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,6afe5f69d9cb49f74eb1958a8ba2e990" + ], + "tbi": [ + [ + { + "id": "test" + }, + "test.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "vcf": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,6afe5f69d9cb49f74eb1958a8ba2e990" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.3" + }, + "timestamp": "2024-10-03T08:47:53.567926" + } +} \ No newline at end of file diff --git a/modules/nf-core/pypgx/createinputvcf/tests/tags.yml b/modules/nf-core/pypgx/createinputvcf/tests/tags.yml new file mode 100644 index 00000000000..9bab1c03b35 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/tests/tags.yml @@ -0,0 +1,2 @@ +pypgx/createinputvcf: + - "modules/nf-core/pypgx/createinputvcf/**" From cc60acf0fe70fc1293f5aa34d6ca05b7a044f034 Mon Sep 17 00:00:00 2001 From: Joris van Steenbrugge Date: Thu, 3 Oct 2024 13:31:24 +0200 Subject: [PATCH 11/36] Support nft-compress in nf-test.config (#6727) * Load nft-compress for nf-test support for compressed files in nf-test * alphabetic order --- nf-test.config | 1 + 1 file changed, 1 insertion(+) diff --git a/nf-test.config b/nf-test.config index 194d44e8317..e0967518457 100644 --- a/nf-test.config +++ b/nf-test.config @@ -14,6 +14,7 @@ config { // load the necessary plugins plugins { load "nft-bam@0.3.0" + load "nft-compress@0.1.0" load "nft-vcf@1.0.7" } } From f351fad4807767e8b88b1844c94efa28ff12c645 Mon Sep 17 00:00:00 2001 From: Eric Wei Date: Thu, 3 Oct 2024 08:57:20 -0700 Subject: [PATCH 12/36] Add bcftools/pluginsetgt (#6718) * Create module from template * Fill in main.nf * Fill in meta.yml * Add tests * Add description * Add non-file mandatory command arguments --- .../bcftools/pluginsetgt/environment.yml | 7 + modules/nf-core/bcftools/pluginsetgt/main.nf | 80 +++++ modules/nf-core/bcftools/pluginsetgt/meta.yml | 108 ++++++ .../bcftools/pluginsetgt/tests/main.nf.test | 308 ++++++++++++++++ .../pluginsetgt/tests/main.nf.test.snap | 333 ++++++++++++++++++ .../pluginsetgt/tests/nextflow.config | 4 + .../pluginsetgt/tests/vcf_gz_index.config | 5 + .../pluginsetgt/tests/vcf_gz_index_csi.config | 5 + .../pluginsetgt/tests/vcf_gz_index_tbi.config | 5 + 9 files changed, 855 insertions(+) create mode 100644 modules/nf-core/bcftools/pluginsetgt/environment.yml create mode 100644 modules/nf-core/bcftools/pluginsetgt/main.nf create mode 100644 modules/nf-core/bcftools/pluginsetgt/meta.yml create mode 100644 modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test create mode 100644 modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test.snap create mode 100644 modules/nf-core/bcftools/pluginsetgt/tests/nextflow.config create mode 100644 modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index.config create mode 100644 modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_csi.config create mode 100644 modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_tbi.config diff --git a/modules/nf-core/bcftools/pluginsetgt/environment.yml b/modules/nf-core/bcftools/pluginsetgt/environment.yml new file mode 100644 index 00000000000..a394b026327 --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/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::bcftools=1.21" diff --git a/modules/nf-core/bcftools/pluginsetgt/main.nf b/modules/nf-core/bcftools/pluginsetgt/main.nf new file mode 100644 index 00000000000..489b563a5dc --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/main.nf @@ -0,0 +1,80 @@ +process BCFTOOLS_PLUGINSETGT { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bcftools:1.21--h8b25389_0': + 'biocontainers/bcftools:1.21--h8b25389_0' }" + + input: + tuple val(meta), path(vcf), path(index) + val(target_gt) + val(new_gt) + path(regions) + path(targets) + + output: + tuple val(meta), path("*.{vcf,vcf.gz,bcf,bcf.gz}"), emit: vcf + tuple val(meta), path("*.tbi") , emit: tbi, optional: true + tuple val(meta), path("*.csi") , emit: csi, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def regions_file = regions ? "--regions-file ${regions}" : "" + def targets_file = targets ? "--targets-file ${targets}" : "" + def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : + args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : + args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : + args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : + "vcf" + """ + bcftools plugin setGT \\ + --output ${prefix}.${extension} \\ + ${regions_file} \\ + ${targets_file} \\ + $args \\ + --threads $task.cpus \\ + ${vcf} \\ + -- \\ + --target-gt ${target_gt} \\ + --new-gt ${new_gt} \\ + $args2 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : + args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : + args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : + args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : + "vcf" + def index = args.contains("--write-index=tbi") || args.contains("-W=tbi") ? "tbi" : + args.contains("--write-index=csi") || args.contains("-W=csi") ? "csi" : + args.contains("--write-index") || args.contains("-W") ? "csi" : + "" + def create_cmd = extension.endsWith(".gz") ? "echo '' | gzip >" : "touch" + def create_index = extension.endsWith(".gz") && index.matches("csi|tbi") ? "touch ${prefix}.${extension}.${index}" : "" + + """ + ${create_cmd} ${prefix}.${extension} + ${create_index} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/bcftools/pluginsetgt/meta.yml b/modules/nf-core/bcftools/pluginsetgt/meta.yml new file mode 100644 index 00000000000..820ea48cea1 --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/meta.yml @@ -0,0 +1,108 @@ +--- +name: "bcftools_pluginsetgt" +description: Sets genotypes according to the specified criteria and filtering expressions. For example, missing genotypes can be set to ref, but much more than that. +keywords: + - setgt + - bcftools + - genotype + - vcf +tools: + - "bcftools": + description: "BCFtools is a set of utilities that manipulate variant calls in + the Variant Call Format (VCF) and its binary counterpart BCF. All commands work + transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.\ + \ Most commands accept VCF, bgzipped VCF and BCF with filetype detected automatically + even when streaming from a pipe. Indexed VCF and BCF will work in all situations. + Un-indexed VCF and BCF and streams will work in most, but not all situations." + homepage: "https://samtools.github.io/bcftools/howtos/index.html" + documentation: "https://samtools.github.io/bcftools/bcftools.html" + tool_dev_url: "https://github.com/samtools/bcftools" + doi: "10.1093/bioinformatics/btp352" + licence: ["MIT"] + args_id: "$args" + identifier: biotools:bcftools + - "bcftools plugin setGT": + description: "Bcftools plugins are tools that can be used with bcftools to manipulate + variant calls in Variant Call Format (VCF) and BCF. The setGT plugin sets genotypes according to the specified criteria and filtering expressions. For example, missing genotypes can be set to ref, but much more than that." + homepage: "https://samtools.github.io/bcftools/howtos/plugins.html" + documentation: "https://samtools.github.io/bcftools/howtos/plugin.setGT.html" + tool_dev_url: "https://github.com/samtools/bcftools" + doi: "10.1093/bioinformatics/btp352" + licence: ["MIT"] + args_id: "$args2" + identifier: biotools:bcftools + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: | + The vcf file to be inspected. + e.g. 'file.vcf' + - index: + type: file + description: | + The tab index for the VCF file to be inspected. + e.g. 'file.tbi' + - - target_gt: + type: string + description: | + Genotypes to change + - - new_gt: + type: string + description: | + Genotypes to set + - - regions: + type: file + description: | + Optionally, restrict the operation to regions listed in this file. + e.g. 'file.vcf' + - - targets: + type: file + description: | + Optionally, restrict the operation to regions listed in this file (doesn't rely upon index files) + e.g. 'file.vcf' +output: + - vcf: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.{vcf,vcf.gz,bcf,bcf.gz}": + type: file + description: VCF output file containing set genotypes + pattern: "*.{vcf,vcf.gz,bcf,bcf.gz}" + - tbi: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.tbi": + type: file + description: Alternative VCF file index + pattern: "*.tbi" + - csi: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.csi": + type: file + description: Default VCF file index + pattern: "*.csi" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@eweizy" +maintainers: + - "@eweizy" diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test b/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test new file mode 100644 index 00000000000..ab915458cfc --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test @@ -0,0 +1,308 @@ +nextflow_process { + + name "Test Process BCFTOOLS_PLUGINSETGT" + script "../main.nf" + process "BCFTOOLS_PLUGINSETGT" + + tag "modules" + tag "modules_nfcore" + tag "bcftools" + tag "bcftools/pluginsetgt" + + test("sarscov2 - [vcf, tbi], [], []") { + + config "./nextflow.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index") { + + config "./vcf_gz_index.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.tbi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.versions + ).match() }, + { assert process.out.csi[0][1].endsWith(".csi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_csi") { + + config "./vcf_gz_index_csi.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.tbi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.versions + ).match() }, + { assert process.out.csi[0][1].endsWith(".csi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_tbi") { + + config "./vcf_gz_index_tbi.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.tbi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.versions + ).match() }, + { assert process.out.tbi[0][1].endsWith(".tbi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], vcf, tsv, []") { + + config "./nextflow.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test3.vcf.gz', checkIfExists: true) + input[4] = file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.targets.tsv.gz', checkIfExists: true) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - stub") { + + config "./nextflow.config" + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.vcf[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index - stub") { + + config "./vcf_gz_index.config" + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.csi[0][1].endsWith(".csi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_csi - stub") { + + config "./vcf_gz_index_csi.config" + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.csi[0][1].endsWith(".csi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_tbi - stub") { + + config "./vcf_gz_index_tbi.config" + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.tbi[0][1].endsWith(".tbi") } + ) + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test.snap b/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test.snap new file mode 100644 index 00000000000..d7bd1c430fc --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test.snap @@ -0,0 +1,333 @@ +{ + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_csi - stub": { + "content": [ + { + "0": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + + ], + "2": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ], + "csi": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tbi": [ + + ], + "vcf": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:20:17.908216187" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_tbi": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,9fb75c9fdb304b49c3895476666a85bb" + ] + ], + [ + + ], + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.tbi" + ] + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:19:20.519406077" + }, + "sarscov2 - [vcf, tbi], [], []": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out.vcf:md5,9fb75c9fdb304b49c3895476666a85bb" + ] + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:10:46.935219433" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index - stub": { + "content": [ + { + "0": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + + ], + "2": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ], + "csi": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tbi": [ + + ], + "vcf": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:20:01.440738039" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_tbi - stub": { + "content": [ + { + "0": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ], + "csi": [ + + ], + "tbi": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "vcf": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:20:30.745502548" + }, + "sarscov2 - [vcf, tbi], vcf, tsv, []": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out.vcf:md5,55e955c359bf9094bb692660f3c1c677" + ] + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:19:35.097141661" + }, + "sarscov2 - [vcf, tbi], [], [], [] - stub": { + "content": [ + "out.vcf", + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:19:47.7899858" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,9fb75c9fdb304b49c3895476666a85bb" + ] + ], + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi" + ] + ], + [ + + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:18:49.513524959" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_csi": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,9fb75c9fdb304b49c3895476666a85bb" + ] + ], + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi" + ] + ], + [ + + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:19:04.133512404" + } +} \ No newline at end of file diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/nextflow.config b/modules/nf-core/bcftools/pluginsetgt/tests/nextflow.config new file mode 100644 index 00000000000..eb8000d60bb --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/nextflow.config @@ -0,0 +1,4 @@ +process { + ext.args = '--no-version --output-type v' + ext.args2 = "-s 42" +} diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index.config b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index.config new file mode 100644 index 00000000000..9507854d716 --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index.config @@ -0,0 +1,5 @@ +process { + ext.prefix = { "${meta.id}_vcf" } + ext.args = "--output-type z --write-index --no-version" + ext.args2 = "-s 42" +} diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_csi.config b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_csi.config new file mode 100644 index 00000000000..9e53fe2596d --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_csi.config @@ -0,0 +1,5 @@ +process { + ext.prefix = { "${meta.id}_vcf" } + ext.args = "--output-type z --write-index=csi --no-version" + ext.args2 = "-s 42" +} diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_tbi.config b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_tbi.config new file mode 100644 index 00000000000..38abb7860dd --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_tbi.config @@ -0,0 +1,5 @@ +process { + ext.prefix = { "${meta.id}_vcf" } + ext.args = "--output-type z --write-index=tbi --no-version" + ext.args2 = "-s 42" +} From ac55541b663c35e9ff50f79d32049ce7492a6ea5 Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Thu, 3 Oct 2024 11:15:18 -0500 Subject: [PATCH 13/36] pints 1.1.13 (#6709) * build(pints): Switch to PyPI The bioconda builds aren't getting updated, and the biocontainers containers aren't getting updated. They're publishing to PyPI consistently, so we'll meet them where they're at. Really need the stuff in https://github.com/hyulab/PINTS/pull/19/commits/101c0cb1f5bd1e31d6f2d72fe6fa0246d22bec56 like yesterday. * chore: Add renovate comment * build: Include pybedtools manually And htslib for bgzip. pybedtools wiht pip needs gcc to install. * chore: Copy code from @ewels https://github.com/nf-core/modules/issues/6694#issuecomment-2376197663 Co-authored-by: ewels * build: Fix uv shebang * fix(#6694): Remove async code * style: Run ruff * fix(#6694): Clean up some errors And by that I mean comment out the code. Seriously anyone reading these? * chore: Clean up httpx * refactor: Simplify script * fix: Remove oras * fix: containerimage => containerImage * fix: Remove oras and mediatype => mediaType * style: Run ruff --------- Co-authored-by: ewels --- .github/scripts/wave_singularity.py | 54 +++++++++++++++++++ modules/nf-core/pints/caller/environment.yml | 9 +++- modules/nf-core/pints/caller/main.nf | 4 +- .../nf-core/pints/caller/tests/main.nf.test | 5 +- .../pints/caller/tests/main.nf.test.snap | 37 ++++++++++--- 5 files changed, 96 insertions(+), 13 deletions(-) create mode 100755 .github/scripts/wave_singularity.py diff --git a/.github/scripts/wave_singularity.py b/.github/scripts/wave_singularity.py new file mode 100755 index 00000000000..5e97395674f --- /dev/null +++ b/.github/scripts/wave_singularity.py @@ -0,0 +1,54 @@ +#!/usr/bin/env -S uv run +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "httpx", +# ] +# /// + +import logging + +import httpx + +logger = logging.getLogger(__name__) + +image_url = "oras://community.wave.seqera.io/library/pybedtools_bedtools_htslib_pip_pypints:aa20de1f1b5ddb30" + +if image_url.startswith("oras://"): + image_url = image_url.replace("oras://", "") + +wave_api_url = "https://wave.seqera.io" +url = f"{wave_api_url}/v1alpha1/inspect" + +# if platform_pat: +# data["toweraccesstoken"] = platform_pat +# else: +# TODO +logger.warning("'platform_pat' not set, no auth to wave back end") + +try: + logger.info(f"calling image inspect at {url} for image url {image_url}") + response = httpx.post( + url=url, + json={"containerImage": image_url}, + headers={"content-type": "application/json"}, + ) + + data = response.json() + logger.debug(data) + layers = data.get("container", {}).get("manifest", {}).get("layers", []) + is_singularity = len(layers) == 1 and layers[0].get("mediaType", "").endswith(".sif") + if not is_singularity: + print(layers) + raise ValueError("not a singularity image") + if "digest" not in layers[0]: + print(layers) + raise ValueError("no 'digest' in first layer found") + + digest = layers[0]["digest"].replace("sha256:", "") + container_url = f"https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/{digest[:2]}/{digest}/data" + print(container_url) + +except httpx.RequestError as exc: + print(f"An error occurred while requesting {exc.request.url!r}.") + print("No singularity image for you") diff --git a/modules/nf-core/pints/caller/environment.yml b/modules/nf-core/pints/caller/environment.yml index afcdc7eb7f3..1c29653cc0a 100644 --- a/modules/nf-core/pints/caller/environment.yml +++ b/modules/nf-core/pints/caller/environment.yml @@ -2,4 +2,11 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::pypints=1.1.10 + - pybedtools + - bedtools + - htslib + - pip + - pip: # FIXME https://github.com/nf-core/modules/issues/5814 + # NOTE PINTS isn't adding conda builds and is a few versions behind. + # renovate: datasource=pypi depName=pypints + - pypints==1.1.13 diff --git a/modules/nf-core/pints/caller/main.nf b/modules/nf-core/pints/caller/main.nf index 2c0ede18afe..7f927c9dd28 100644 --- a/modules/nf-core/pints/caller/main.nf +++ b/modules/nf-core/pints/caller/main.nf @@ -5,8 +5,8 @@ process PINTS_CALLER { conda "${moduleDir}/environment.yml" // NOTE Stopped publishing at 1.1.9 https://quay.io/repository/biocontainers/pypints?tab=tags container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/pints_caller:650ef63c9768bb5a' : - 'community.wave.seqera.io/library/pints_caller:b1e6404513917871' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/f1/f1a9e30012e1b41baf9acd1ff94e01161138d8aa17f4e97aa32f2dc4effafcd1/data' : + 'community.wave.seqera.io/library/pybedtools_bedtools_htslib_pip_pypints:39699b96998ec5f6' }" input: tuple val(meta), path(bams), path(bais) diff --git a/modules/nf-core/pints/caller/tests/main.nf.test b/modules/nf-core/pints/caller/tests/main.nf.test index 0bb2a7cb1bf..e0e2f8ea3f9 100644 --- a/modules/nf-core/pints/caller/tests/main.nf.test +++ b/modules/nf-core/pints/caller/tests/main.nf.test @@ -35,7 +35,7 @@ nextflow_process { process.out.divergent_TREs, process.out.bidirectional_TREs, file(process.out.unidirectional_TREs.get(0).get(1).get(0)).name, - process.out.versions, + path(process.out.versions.get(0)).yaml, ).match("bams") }, ) @@ -65,9 +65,10 @@ nextflow_process { process.out.divergent_TREs, process.out.bidirectional_TREs, file(process.out.unidirectional_TREs[0][1]).name, - process.out.versions, + path(process.out.versions.get(0)).yaml, ).match("single_bam") }, + { assert snapshot(path(process.out.versions.get(0)).yaml).match("versions") }, ) } } diff --git a/modules/nf-core/pints/caller/tests/main.nf.test.snap b/modules/nf-core/pints/caller/tests/main.nf.test.snap index 767aa4970ce..d6d2a14bab5 100644 --- a/modules/nf-core/pints/caller/tests/main.nf.test.snap +++ b/modules/nf-core/pints/caller/tests/main.nf.test.snap @@ -1,4 +1,19 @@ { + "versions": { + "content": [ + { + "PINTS_CALLER": { + "python": "3.12.6", + "pints": "1.1.13" + } + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-29T22:22:29.559913" + }, "bams": { "content": [ [ @@ -24,15 +39,18 @@ ] ], "test_1_unidirectional_peaks.bed", - [ - "versions.yml:md5,6142633d4306c8a74b9716c4aac7e956" - ] + { + "PINTS_CALLER": { + "python": "3.12.6", + "pints": "1.1.13" + } + } ], "meta": { "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-23T12:17:21.517020581" + "timestamp": "2024-09-29T22:19:23.738834" }, "single_bam": { "content": [ @@ -55,14 +73,17 @@ ] ], "test_1_unidirectional_peaks.bed", - [ - "versions.yml:md5,6142633d4306c8a74b9716c4aac7e956" - ] + { + "PINTS_CALLER": { + "python": "3.12.6", + "pints": "1.1.13" + } + } ], "meta": { "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-23T11:07:12.112579276" + "timestamp": "2024-09-29T22:22:29.544608" } } \ No newline at end of file From 2d82007b83328343d0e2a9cec087b628eef7e3d1 Mon Sep 17 00:00:00 2001 From: herpov <54803557+herpov@users.noreply.github.com> Date: Thu, 3 Oct 2024 21:13:54 +0200 Subject: [PATCH 14/36] Update bam2fastq10x to handle multiplexed samples (#6702) * update output dir for bamtofastq10x * update path for output fastq * update snapshot * update stub * update output definition in meta.yml --------- Co-authored-by: Helle Rus Povlsen --- modules/nf-core/bamtofastq10x/main.nf | 9 ++++---- modules/nf-core/bamtofastq10x/meta.yml | 4 ++-- .../bamtofastq10x/tests/main.nf.test.snap | 22 ++++++++----------- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/modules/nf-core/bamtofastq10x/main.nf b/modules/nf-core/bamtofastq10x/main.nf index be1b14415be..bff379c19ee 100644 --- a/modules/nf-core/bamtofastq10x/main.nf +++ b/modules/nf-core/bamtofastq10x/main.nf @@ -11,8 +11,8 @@ process BAMTOFASTQ10X { tuple val(meta), path(bam) output: - tuple val(meta), path("*.fastq.gz"), emit: fastq - path "versions.yml" , emit: versions + tuple val(meta), path("**/*.fastq.gz"), emit: fastq + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -24,7 +24,7 @@ process BAMTOFASTQ10X { bamtofastq \\ $args \\ $bam \\ - ${prefix}.fastq.gz + $prefix cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -35,7 +35,8 @@ process BAMTOFASTQ10X { stub: def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.fastq.gz + mkdir -p ${prefix}/bamtofastq10x + touch ${prefix}/bamtofastq10x/bamtofastq.fastq.gz cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/bamtofastq10x/meta.yml b/modules/nf-core/bamtofastq10x/meta.yml index ace49c25182..f3e5dfcaa24 100644 --- a/modules/nf-core/bamtofastq10x/meta.yml +++ b/modules/nf-core/bamtofastq10x/meta.yml @@ -37,10 +37,10 @@ output: description: | Groovy Map containing sample information e.g. `[ id:'sample1', single_end:false ]` - - "*.fastq.gz": + - "**/*.fastq.gz": type: file description: fastq compressed file - pattern: "*.fastq.gz" + pattern: "**/*.fastq.gz" - versions: - versions.yml: type: file diff --git a/modules/nf-core/bamtofastq10x/tests/main.nf.test.snap b/modules/nf-core/bamtofastq10x/tests/main.nf.test.snap index d534674592d..fd531091017 100644 --- a/modules/nf-core/bamtofastq10x/tests/main.nf.test.snap +++ b/modules/nf-core/bamtofastq10x/tests/main.nf.test.snap @@ -8,11 +8,9 @@ "id": "test" }, [ - [ - "bamtofastq_S1_L000_I1_001.fastq.gz:md5,a33682ac881de7a7453d79721b7621a0", - "bamtofastq_S1_L000_R1_001.fastq.gz:md5,5ccebf77d8636d7a7cdfc59737aea79f", - "bamtofastq_S1_L000_R2_001.fastq.gz:md5,2ee7c90e4307deba74065cfd00a65002" - ] + "bamtofastq_S1_L000_I1_001.fastq.gz:md5,a33682ac881de7a7453d79721b7621a0", + "bamtofastq_S1_L000_R1_001.fastq.gz:md5,5ccebf77d8636d7a7cdfc59737aea79f", + "bamtofastq_S1_L000_R2_001.fastq.gz:md5,2ee7c90e4307deba74065cfd00a65002" ] ] ], @@ -25,11 +23,9 @@ "id": "test" }, [ - [ - "bamtofastq_S1_L000_I1_001.fastq.gz:md5,a33682ac881de7a7453d79721b7621a0", - "bamtofastq_S1_L000_R1_001.fastq.gz:md5,5ccebf77d8636d7a7cdfc59737aea79f", - "bamtofastq_S1_L000_R2_001.fastq.gz:md5,2ee7c90e4307deba74065cfd00a65002" - ] + "bamtofastq_S1_L000_I1_001.fastq.gz:md5,a33682ac881de7a7453d79721b7621a0", + "bamtofastq_S1_L000_R1_001.fastq.gz:md5,5ccebf77d8636d7a7cdfc59737aea79f", + "bamtofastq_S1_L000_R2_001.fastq.gz:md5,2ee7c90e4307deba74065cfd00a65002" ] ] ], @@ -39,9 +35,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.0" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-22T16:43:24.999397" + "timestamp": "2024-10-02T12:56:21.808042" } } \ No newline at end of file From 22fc6d90be8eca2cf6afe5d10b3c5cffcdbcb19c Mon Sep 17 00:00:00 2001 From: Felix Lenner <52530259+fellen31@users.noreply.github.com> Date: Fri, 4 Oct 2024 14:05:26 +0200 Subject: [PATCH 15/36] Remove `params` from longphase (#6732) * Remove params * tests --- modules/nf-core/longphase/haplotag/main.nf | 4 ++-- .../haplotag/tests/main.nf.test.snap | 8 ++++---- modules/nf-core/longphase/phase/main.nf | 4 ++-- .../longphase/phase/tests/main.nf.test.snap | 20 +++++++++---------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/nf-core/longphase/haplotag/main.nf b/modules/nf-core/longphase/haplotag/main.nf index 701af31fe54..86ba0592556 100644 --- a/modules/nf-core/longphase/haplotag/main.nf +++ b/modules/nf-core/longphase/haplotag/main.nf @@ -24,8 +24,8 @@ process LONGPHASE_HAPLOTAG { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sv_file = params.svs ? "--sv-file ${svs}" : "" - def mod_file = params.mods ? "--mod-file ${mods}" : "" + def sv_file = svs ? "--sv-file ${svs}" : "" + def mod_file = mods ? "--mod-file ${mods}" : "" """ longphase \\ diff --git a/modules/nf-core/longphase/haplotag/tests/main.nf.test.snap b/modules/nf-core/longphase/haplotag/tests/main.nf.test.snap index 225a4f7ed85..3cf35dc32ff 100644 --- a/modules/nf-core/longphase/haplotag/tests/main.nf.test.snap +++ b/modules/nf-core/longphase/haplotag/tests/main.nf.test.snap @@ -119,15 +119,15 @@ "@RG\tID:test\tSM:test", "@PG\tID:minimap2\tPN:minimap2\tVN:2.28-r1209\tCL:minimap2 -y -x map-ont --secondary=no -R @RG\\tID:test\\tSM:test -t 30 -a genome.mmi test.bam_other.fastq.gz", "@PG\tID:samtools\tPN:samtools\tPP:minimap2\tVN:1.19.2\tCL:samtools sort -@ 29 -o test.bam_other.fastq.gz.bam --write-index", - "@PG\tID:longphase\tPN:longphase\tPP:samtools\tVN:1.7.3\tCL:longphase haplotag --threads 2 -o test --reference genome.fasta --snp-file test.genome.vcf.gz --bam test.sorted.bam " + "@PG\tID:longphase\tPN:longphase\tPP:samtools\tVN:1.7.3\tCL:longphase haplotag --threads 2 -o test --reference genome.fasta --snp-file test.genome.vcf.gz --bam test.sorted.bam --sv-file NA24385_sv.vcf.gz " ], "721264eb2824a3146b331f2532d10180" ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-25T09:13:39.901419316" + "timestamp": "2024-10-04T13:39:33.50395694" }, "[ bam, bai, snps, [], [] ], fasta, fai - log & cram": { "content": [ diff --git a/modules/nf-core/longphase/phase/main.nf b/modules/nf-core/longphase/phase/main.nf index ad29d997288..f121f4b6dd6 100644 --- a/modules/nf-core/longphase/phase/main.nf +++ b/modules/nf-core/longphase/phase/main.nf @@ -24,8 +24,8 @@ process LONGPHASE_PHASE { def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sv_file = params.svs ? "--sv-file ${svs}" : "" - def mod_file = params.mods ? "--mod-file ${mods}" : "" + def sv_file = svs ? "--sv-file ${svs}" : "" + def mod_file = mods ? "--mod-file ${mods}" : "" def bamList = [] for (file in bam) { diff --git a/modules/nf-core/longphase/phase/tests/main.nf.test.snap b/modules/nf-core/longphase/phase/tests/main.nf.test.snap index 02e2bb1731f..8a38c1caa5c 100644 --- a/modules/nf-core/longphase/phase/tests/main.nf.test.snap +++ b/modules/nf-core/longphase/phase/tests/main.nf.test.snap @@ -40,7 +40,7 @@ { "id": "test" }, - "test.vcf.gz:md5,fd2d21056b2de4722f12d5e883d9cb0a" + "test.vcf.gz:md5,b0a3effd6e076edbe7e2f1f7cfff547c" ] ], "1": [ @@ -51,7 +51,7 @@ { "id": "test" }, - "test.vcf.gz:md5,fd2d21056b2de4722f12d5e883d9cb0a" + "test.vcf.gz:md5,b0a3effd6e076edbe7e2f1f7cfff547c" ] ], "versions": [ @@ -60,10 +60,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T12:14:39.961315592" + "timestamp": "2024-10-04T13:37:16.921910004" }, "[ bam x2, bai x2, snps, svs, [] ], fasta, fai": { "content": [ @@ -73,7 +73,7 @@ { "id": "test" }, - "test.vcf.gz:md5,3ced25dc8c1ec0a7c64481c8a163d687" + "test.vcf.gz:md5,04905b6042998e592c9f3b887ae9e09c" ] ], "1": [ @@ -84,7 +84,7 @@ { "id": "test" }, - "test.vcf.gz:md5,3ced25dc8c1ec0a7c64481c8a163d687" + "test.vcf.gz:md5,04905b6042998e592c9f3b887ae9e09c" ] ], "versions": [ @@ -93,10 +93,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T12:15:07.970597495" + "timestamp": "2024-10-04T13:37:23.41768963" }, "[ bam, bai, snps, [], [] ], fasta, fai - stub": { "content": [ From 8a36181859504560ef333c299f6773c7b99a801f Mon Sep 17 00:00:00 2001 From: Felix Lenner <52530259+fellen31@users.noreply.github.com> Date: Fri, 4 Oct 2024 14:37:42 +0200 Subject: [PATCH 16/36] Fix copy paste tag mistake (#6734) Fix copy paste mistake --- modules/nf-core/severus/tests/main.nf.test | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/nf-core/severus/tests/main.nf.test b/modules/nf-core/severus/tests/main.nf.test index 1b85a109f04..ab700a4c12c 100644 --- a/modules/nf-core/severus/tests/main.nf.test +++ b/modules/nf-core/severus/tests/main.nf.test @@ -7,7 +7,6 @@ nextflow_process { tag "modules" tag "modules_nfcore" tag "severus" - tag "deepvariant" test("homo_sapiens - [ bam, bai, [], [], [] ], [[],[]]") { @@ -206,4 +205,4 @@ nextflow_process { } -} \ No newline at end of file +} From 1f19c093c86ae49d1899e234d4aa4d56c57be780 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 4 Oct 2024 14:40:05 +0200 Subject: [PATCH 17/36] fails nf-validation with lenient strategy (#6733) fails with lenient strategy --- .../nf-core/utils_nfvalidation_plugin/tests/main.nf.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test index 5784a33f2f5..07ff7afdd9e 100644 --- a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -169,7 +169,7 @@ nextflow_workflow { params { monochrome_logs = true test_data = '' - outdir = 1 + outdir = true } workflow { """ From 11680c37e2a185d006e9ba289d2254ccac9f4bb4 Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:23:53 +0200 Subject: [PATCH 18/36] Add motus prep_long (#6590) * Add motus prep_long * Prettier * Update meta * Update modules/nf-core/motus/preplong/main.nf Co-authored-by: Felix Lenner <52530259+fellen31@users.noreply.github.com> * Update modules/nf-core/motus/preplong/main.nf Co-authored-by: Felix Lenner <52530259+fellen31@users.noreply.github.com> * Update modules/nf-core/motus/preplong/tests/main.nf.test Co-authored-by: Felix Lenner <52530259+fellen31@users.noreply.github.com> * Update modules/nf-core/motus/preplong/tests/main.nf.test Co-authored-by: Felix Lenner <52530259+fellen31@users.noreply.github.com> * Update modules/nf-core/motus/preplong/meta.yml Co-authored-by: Felix Lenner <52530259+fellen31@users.noreply.github.com> * Update modules/nf-core/motus/preplong/tests/main.nf.test Co-authored-by: Felix Lenner <52530259+fellen31@users.noreply.github.com> * Update snap file * Fix linting * Update meta.yml * Update modules/nf-core/motus/preplong/main.nf Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> * Fix formatting * Update meta.yaml * Update meta.yml * Update meta.yaml * Fix formatting for meta.yaml * Try to fix linting * Remove unnecessary output * Fix linting * Update meta.yml with version.yml --------- Co-authored-by: Felix Lenner <52530259+fellen31@users.noreply.github.com> Co-authored-by: James A. Fellows Yates Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> --- .../nf-core/motus/preplong/environment.yml | 5 ++ modules/nf-core/motus/preplong/main.nf | 53 +++++++++++++ modules/nf-core/motus/preplong/meta.yml | 52 +++++++++++++ .../nf-core/motus/preplong/tests/main.nf.test | 75 +++++++++++++++++++ .../motus/preplong/tests/main.nf.test.snap | 72 ++++++++++++++++++ modules/nf-core/motus/preplong/tests/tags.yml | 2 + 6 files changed, 259 insertions(+) create mode 100644 modules/nf-core/motus/preplong/environment.yml create mode 100644 modules/nf-core/motus/preplong/main.nf create mode 100644 modules/nf-core/motus/preplong/meta.yml create mode 100644 modules/nf-core/motus/preplong/tests/main.nf.test create mode 100644 modules/nf-core/motus/preplong/tests/main.nf.test.snap create mode 100644 modules/nf-core/motus/preplong/tests/tags.yml diff --git a/modules/nf-core/motus/preplong/environment.yml b/modules/nf-core/motus/preplong/environment.yml new file mode 100644 index 00000000000..b8ef520eaa2 --- /dev/null +++ b/modules/nf-core/motus/preplong/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::motus=3.1.0 diff --git a/modules/nf-core/motus/preplong/main.nf b/modules/nf-core/motus/preplong/main.nf new file mode 100644 index 00000000000..3fffc149648 --- /dev/null +++ b/modules/nf-core/motus/preplong/main.nf @@ -0,0 +1,53 @@ +process MOTUS_PREPLONG { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/motus:3.1.0--pyhdfd78af_0': + 'biocontainers/motus:3.1.0--pyhdfd78af_0' }" + + input: + tuple val(meta), path(reads) + path db + + output: + tuple val(meta), path("*.gz"), emit: out + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def refdb = db ? "-db ${db}" : "" + + """ + motus \\ + prep_long \\ + $args \\ + -i $reads \\ + $refdb \\ + -t $task.cpus \\ + -o ${prefix}.gz \\ + 2> >(tee ${prefix}.log >&2) + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + motus: \$(motus --version 2>&1 | sed 's/.* \\([0-9]*\\.[0-9]*\\.[0-9]*\\) .*/\\1/') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + echo '' | gzip > ${prefix}.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + motus: \$(motus --version 2>&1 | sed 's/.* \\([0-9]*\\.[0-9]*\\.[0-9]*\\) .*/\\1/') + END_VERSIONS + """ +} diff --git a/modules/nf-core/motus/preplong/meta.yml b/modules/nf-core/motus/preplong/meta.yml new file mode 100644 index 00000000000..6ef63949a04 --- /dev/null +++ b/modules/nf-core/motus/preplong/meta.yml @@ -0,0 +1,52 @@ +name: "motus_preplong" +description: Taxonomic meta-omics profiling using universal marker genes +keywords: + - classify + - metagenomics + - fastq + - taxonomic profiling +tools: + - "motus": + description: "Marker gene-based operational taxonomic unit (mOTU) profiling" + homepage: "https://motu-tool.org/" + documentation: "https://github.com/motu-tool/mOTUs/wiki" + tool_dev_url: "https://github.com/motu-tool/mOTUs" + doi: "10.1186/s40168-022-01410-z" + licence: ["GPL v3"] + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - reads: + type: file + description: Long read file to convert, can be fasta(.gz) or fastq(.gz) + pattern: "*.{gz}" + - - db: + type: directory + description: | + mOTUs database downloaded by `motus downloadDB` + pattern: "db_mOTU/" +output: + - out: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.gz": + type: file + description: converted file (gzipped), ready to be used by motus profile + pattern: "*.gz" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@sofstam" +maintainers: + - "@sofstam" diff --git a/modules/nf-core/motus/preplong/tests/main.nf.test b/modules/nf-core/motus/preplong/tests/main.nf.test new file mode 100644 index 00000000000..5ad8e7487f1 --- /dev/null +++ b/modules/nf-core/motus/preplong/tests/main.nf.test @@ -0,0 +1,75 @@ +nextflow_process { + + name "Test Process MOTUS_PREPLONG" + script "../main.nf" + process "MOTUS_PREPLONG" + + tag "modules" + tag "modules_nfcore" + tag "motus" + tag "motus/downloaddb" + tag "motus/preplong" + + setup { + run("MOTUS_DOWNLOADDB") { + script "modules/nf-core/motus/downloaddb/main.nf" + process { + """ + input[0] = Channel.of([ + file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py') + ]) + """ + } + } + } + + test("sarscov2 - fasta") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/nanopore/fastq/test_2.fastq.gz', checkIfExists: true) + ] + input[1] = MOTUS_DOWNLOADDB.out.db + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fasta - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/nanopore/fastq/test_2.fastq.gz', checkIfExists: true) + ] + input[1] = MOTUS_DOWNLOADDB.out.db + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + + } + +} diff --git a/modules/nf-core/motus/preplong/tests/main.nf.test.snap b/modules/nf-core/motus/preplong/tests/main.nf.test.snap new file mode 100644 index 00000000000..5ed72ec8a9a --- /dev/null +++ b/modules/nf-core/motus/preplong/tests/main.nf.test.snap @@ -0,0 +1,72 @@ +{ + "sarscov2 - fasta - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,8fc614f9fe354b0811def13c772bc6fb" + ], + "out": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,8fc614f9fe354b0811def13c772bc6fb" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.04.1" + }, + "timestamp": "2024-09-06T16:29:18.602046" + }, + "sarscov2 - fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gz:md5,37be4a7321bcb2fdae60affb21a1737c" + ] + ], + "1": [ + "versions.yml:md5,8fc614f9fe354b0811def13c772bc6fb" + ], + "out": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gz:md5,37be4a7321bcb2fdae60affb21a1737c" + ] + ], + "versions": [ + "versions.yml:md5,8fc614f9fe354b0811def13c772bc6fb" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.04.1" + }, + "timestamp": "2024-09-06T15:55:48.439664" + } +} \ No newline at end of file diff --git a/modules/nf-core/motus/preplong/tests/tags.yml b/modules/nf-core/motus/preplong/tests/tags.yml new file mode 100644 index 00000000000..bdaae3b2032 --- /dev/null +++ b/modules/nf-core/motus/preplong/tests/tags.yml @@ -0,0 +1,2 @@ +motus/preplong: + - "modules/nf-core/motus/preplong/**" From e6c055a7bb7551ef18436a8ef410dd0e27393c61 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 4 Oct 2024 15:25:25 +0200 Subject: [PATCH 19/36] Really fails nf-validation with lenient strategy (#6735) Update main.nf.test I'm sure I tested true and it failed as expected, but I cannot reproduce, so I'm resorting to false as I know it'll fail for good --- .../nf-core/utils_nfvalidation_plugin/tests/main.nf.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test index 07ff7afdd9e..c50b1fb5323 100644 --- a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -169,7 +169,7 @@ nextflow_workflow { params { monochrome_logs = true test_data = '' - outdir = true + outdir = false } workflow { """ From 55692e15e2ef8be6b37ad1475944a338770b4b3e Mon Sep 17 00:00:00 2001 From: Daniel Schmitz Date: Fri, 4 Oct 2024 16:25:08 +0200 Subject: [PATCH 20/36] Update Genmod to 3.8.3 (#6736) * Updated genmod to 3.8.3 * Fixed typos in version --- modules/nf-core/genmod/annotate/environment.yml | 2 +- modules/nf-core/genmod/annotate/main.nf | 4 ++-- modules/nf-core/genmod/compound/environment.yml | 2 +- modules/nf-core/genmod/compound/main.nf | 4 ++-- modules/nf-core/genmod/models/environment.yml | 2 +- modules/nf-core/genmod/models/main.nf | 4 ++-- modules/nf-core/genmod/score/environment.yml | 2 +- modules/nf-core/genmod/score/main.nf | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/nf-core/genmod/annotate/environment.yml b/modules/nf-core/genmod/annotate/environment.yml index 1eca76fad2c..bbc3fd973a9 100644 --- a/modules/nf-core/genmod/annotate/environment.yml +++ b/modules/nf-core/genmod/annotate/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.2 + - bioconda::genmod=3.8.3 diff --git a/modules/nf-core/genmod/annotate/main.nf b/modules/nf-core/genmod/annotate/main.nf index eb161187687..033caa9ae93 100644 --- a/modules/nf-core/genmod/annotate/main.nf +++ b/modules/nf-core/genmod/annotate/main.nf @@ -4,8 +4,8 @@ process GENMOD_ANNOTATE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.2--pyhdfd78af_0': - 'biocontainers/genmod:3.8.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': + 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) diff --git a/modules/nf-core/genmod/compound/environment.yml b/modules/nf-core/genmod/compound/environment.yml index 1eca76fad2c..bbc3fd973a9 100644 --- a/modules/nf-core/genmod/compound/environment.yml +++ b/modules/nf-core/genmod/compound/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.2 + - bioconda::genmod=3.8.3 diff --git a/modules/nf-core/genmod/compound/main.nf b/modules/nf-core/genmod/compound/main.nf index 1731b722224..4831da855fa 100644 --- a/modules/nf-core/genmod/compound/main.nf +++ b/modules/nf-core/genmod/compound/main.nf @@ -4,8 +4,8 @@ process GENMOD_COMPOUND { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.2--pyhdfd78af_0': - 'biocontainers/genmod:3.8.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': + 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) diff --git a/modules/nf-core/genmod/models/environment.yml b/modules/nf-core/genmod/models/environment.yml index 1eca76fad2c..bbc3fd973a9 100644 --- a/modules/nf-core/genmod/models/environment.yml +++ b/modules/nf-core/genmod/models/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.2 + - bioconda::genmod=3.8.3 diff --git a/modules/nf-core/genmod/models/main.nf b/modules/nf-core/genmod/models/main.nf index 0504574a194..90c1fd48233 100644 --- a/modules/nf-core/genmod/models/main.nf +++ b/modules/nf-core/genmod/models/main.nf @@ -4,8 +4,8 @@ process GENMOD_MODELS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.2--pyhdfd78af_0': - 'biocontainers/genmod:3.8.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': + 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) diff --git a/modules/nf-core/genmod/score/environment.yml b/modules/nf-core/genmod/score/environment.yml index 1eca76fad2c..bbc3fd973a9 100644 --- a/modules/nf-core/genmod/score/environment.yml +++ b/modules/nf-core/genmod/score/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.2 + - bioconda::genmod=3.8.3 diff --git a/modules/nf-core/genmod/score/main.nf b/modules/nf-core/genmod/score/main.nf index 15be5f744b3..522e05b6581 100644 --- a/modules/nf-core/genmod/score/main.nf +++ b/modules/nf-core/genmod/score/main.nf @@ -4,8 +4,8 @@ process GENMOD_SCORE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.2--pyhdfd78af_0': - 'biocontainers/genmod:3.8.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': + 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) From f8ee14db9bef612a48cf8d4d89359111ea943a9d Mon Sep 17 00:00:00 2001 From: Edmund Miller <20095261+edmundmiller@users.noreply.github.com> Date: Mon, 7 Oct 2024 02:39:25 -0500 Subject: [PATCH 21/36] Remove CODEOWNERS (#6738) * chore: Remove all autogenerated module references * chore: Opt-in @edmundmiller to CODEOWNERS * Update .github/CODEOWNERS --------- Co-authored-by: Maxime U Garcia --- .github/CODEOWNERS | 1116 +------------------------------------------- 1 file changed, 13 insertions(+), 1103 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d2286a7018c..3893bf75737 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,1104 +1,14 @@ -*.nf.test* @nf-core/nf-test -.github/workflows/test.yml @nf-core/nf-test -tags.yml @nf-core/nf-test -tests/config @nf-core/nf-test -modules/nf-core/abacas/** @joseespinosa @drpatelh -modules/nf-core/abricate/run/** @rpetit3 -modules/nf-core/abricate/summary/** @rpetit3 -modules/nf-core/abritamr/run/** @rpetit3 -modules/nf-core/adapterremovalfixprefix/** @jfy133 -modules/nf-core/adapterremoval/** @maxibor @jfy133 -modules/nf-core/admixture/** @atrigila -modules/nf-core/affy/justrma/** @pinin4fjords -modules/nf-core/agat/convertspgff2gtf/** @toniher -modules/nf-core/agat/convertspgxf2gxf/** @toniher -modules/nf-core/agat/spstatistics/** @toniher -modules/nf-core/agat/sqstatbasic/** @toniher -modules/nf-core/agrvate/** @abhi18av -modules/nf-core/allelecounter/** @fullama @fbdtemme -modules/nf-core/ampcombi/** @darcy220606 @louperelo -modules/nf-core/ampir/** @jasmezz -modules/nf-core/amplify/predict/** @louperelo -modules/nf-core/amps/** @jfy133 -modules/nf-core/amrfinderplus/run/** @rpetit3 @louperelo @jfy133 -modules/nf-core/amrfinderplus/update/** @rpetit3 -modules/nf-core/angsd/contamination/** @jbv2 -modules/nf-core/angsd/docounts/** @jfy133 -modules/nf-core/annotsv/annotsv/** @nvnieuwk -modules/nf-core/annotsv/installannotations/** @nvnieuwk -modules/nf-core/antismash/antismashlitedownloaddatabases/** @jasmezz -modules/nf-core/antismash/antismashlite/** @jasmezz -modules/nf-core/arcashla/extract/** @christopher-mohr -modules/nf-core/aria2/** @JoseEspinosa -modules/nf-core/ariba/getref/** @rpetit3 -modules/nf-core/ariba/run/** @rpetit3 -modules/nf-core/arriba/arriba/** @praveenraj2018,@rannick -modules/nf-core/artic/guppyplex/** @joseespinosa @drpatelh -modules/nf-core/artic/minion/** @joseespinosa @drpatelh -modules/nf-core/art/illumina/** @MarieLataretu -modules/nf-core/ascat/** @aasNGC @lassefolkersen @FriederikeHanssen @maxulysse @SusiJo -modules/nf-core/ashlar/** @RobJY @jmuhlich -modules/nf-core/assemblyscan/** @sateeshperi @mjcipriano -modules/nf-core/ataqv/ataqv/** @i-pletenev -modules/nf-core/ataqv/mkarv/** @bjlang -modules/nf-core/atlas/call/** @jfy133 -modules/nf-core/atlasgeneannotationmanipulation/gtf2featureannotation/** @pinin4fjords -modules/nf-core/atlas/pmd/** @maxibor @merszym -modules/nf-core/atlas/recal/** @ltcrod -modules/nf-core/atlas/splitmerge/** @merszym -modules/nf-core/authentict/deam2cont/** @scarlhoff @StephanePeyregne -modules/nf-core/backsub/** @kbestak -modules/nf-core/bacphlip/** @CarsonJM -modules/nf-core/bakta/baktadbdownload/** @jfy133 @jasmezz -modules/nf-core/bakta/bakta/** @rpetit3 @oschwengers @jfy133 -modules/nf-core/bamaligncleaner/** @jfy133 -modules/nf-core/bamcmp/** @kmurat1 @sppearce -modules/nf-core/bamtools/convert/** @sguizard -modules/nf-core/bamtools/split/** @sguizard @matthdsm -modules/nf-core/bamtools/stats/** @lescai -modules/nf-core/bamutil/trimbam/** @jfy133 -modules/nf-core/bandage/image/** @heuermh -modules/nf-core/barrnap/** @danilodileo -modules/nf-core/bases2fastq/** @edmundmiller -modules/nf-core/basicpy/** @FloWuenne -modules/nf-core/bbmap/align/** @erikrikarddaniel -modules/nf-core/bbmap/bbduk/** @MGordon09 -modules/nf-core/bbmap/bbnorm/** @danilodileo -modules/nf-core/bbmap/bbsplit/** @joseespinosa @drpatelh -modules/nf-core/bbmap/clumpify/** @tamuanand -modules/nf-core/bbmap/index/** @daniellundin -modules/nf-core/bbmap/pileup/** @edmundmiller -modules/nf-core/bbmap/sendsketch/** @phanhung2 -modules/nf-core/bcftools/annotate/** @projectoriented @ramprasadn -modules/nf-core/bcftools/call/** @abhi18av @LouisLeNezet -modules/nf-core/bcftools/concat/** @abhi18av @nvnieuwk -modules/nf-core/bcftools/consensus/** @joseespinosa @drpatelh -modules/nf-core/bcftools/convert/** @nvnieuwk @ramprasadn @atrigila -modules/nf-core/bcftools/filter/** @joseespinosa @drpatelh -modules/nf-core/bcftools/index/** @jfy133 -modules/nf-core/bcftools/isec/** @joseespinosa @drpatelh -modules/nf-core/bcftools/merge/** @joseespinosa @drpatelh @nvnieuwk @ramprasadn -modules/nf-core/bcftools/mpileup/** @joseespinosa @drpatelh -modules/nf-core/bcftools/norm/** @abhi18av @ramprasadn -modules/nf-core/bcftools/pluginscatter/** @nvnieuwk -modules/nf-core/bcftools/pluginsplit/** @nvnieuwk -modules/nf-core/bcftools/query/** @abhi18av @drpatelh -modules/nf-core/bcftools/reheader/** @bjohnnyd @jemten @ramprasadn -modules/nf-core/bcftools/roh/** @ramprasadn -modules/nf-core/bcftools/sort/** @Gwennid -modules/nf-core/bcftools/split/** @matthdsm @atrigila -modules/nf-core/bcftools/stats/** @joseespinosa @drpatelh @SusiJo @TCLamnidis -modules/nf-core/bcftools/view/** @abhi18av -modules/nf-core/bcl2fastq/** @matthdsm -modules/nf-core/bclconvert/** @matthdsm -modules/nf-core/beagle5/beagle/** @ashotmarg -modules/nf-core/bedtools/bamtobed/** @yuukiiwa @drpatelh -modules/nf-core/bedtools/closest/** @nvnieuwk -modules/nf-core/bedtools/complement/** @edmundmiller @sruthipsuresh @drpatelh -modules/nf-core/bedtools/coverage/** @priyanka-surana -modules/nf-core/bedtools/genomecov/** @edmundmiller @sruthipsuresh @drpatelh @sidorov-si @chris-cheshire -modules/nf-core/bedtools/getfasta/** @joseespinosa @drpatelh -modules/nf-core/bedtools/groupby/** @mashehu -modules/nf-core/bedtools/intersect/** @edmundmiller @sruthipsuresh @drpatelh @sidorov-si -modules/nf-core/bedtools/jaccard/** @nvnieuwk -modules/nf-core/bedtools/makewindows/** @kevbrick @nvnieuwk -modules/nf-core/bedtools/map/** @ekushele -modules/nf-core/bedtools/maskfasta/** @joseespinosa @drpatelh -modules/nf-core/bedtools/merge/** @edmundmiller @sruthipsuresh @drpatelh -modules/nf-core/bedtools/multiinter/** @matthdsm -modules/nf-core/bedtools/shift/** @ekushele -modules/nf-core/bedtools/slop/** @edmundmiller @sruthipsuresh @drpatelh -modules/nf-core/bedtools/sort/** @edmundmiller @sruthipsuresh @drpatelh @chris-cheshire @adamrtalbot -modules/nf-core/bedtools/split/** @nvnieuwk -modules/nf-core/bedtools/subtract/** @sidorov-si -modules/nf-core/bedtools/unionbedg/** @ekushele -modules/nf-core/bioawk/** @jfy133 -modules/nf-core/biobambam/bammarkduplicates2/** @muffato -modules/nf-core/biobambam/bammerge/** @matthdsm -modules/nf-core/biobambam/bamsormadup/** @matthdsm -modules/nf-core/biohansel/** @rpetit3 -modules/nf-core/biscuit/align/** @njspix -modules/nf-core/biscuit/biscuitblaster/** @njspix -modules/nf-core/biscuit/bsconv/** @njspix -modules/nf-core/biscuit/epiread/** @njspix -modules/nf-core/biscuit/index/** @njspix -modules/nf-core/biscuit/mergecg/** @njspix -modules/nf-core/biscuit/pileup/** @njspix -modules/nf-core/biscuit/qc/** @njspix -modules/nf-core/biscuit/vcf2bed/** @njspix -modules/nf-core/bismark/align/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/coverage2cytosine/** @FelixKrueger @ewels -modules/nf-core/bismark/deduplicate/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/genomepreparation/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/methylationextractor/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/report/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/summary/** @phue @FelixKrueger @ewels -modules/nf-core/blast/blastn/** @joseespinosa @drpatelh @vagkaratzas -modules/nf-core/blast/blastp/** @vagkaratzas -modules/nf-core/blast/makeblastdb/** @joseespinosa @drpatelh @vagkaratzas -modules/nf-core/blast/tblastn/** @yumisims @gq2 @vagkaratzas -modules/nf-core/blat/** @d-jch -modules/nf-core/bowtie2/align/** @joseespinosa @drpatelh -modules/nf-core/bowtie2/build/** @joseespinosa @drpatelh -modules/nf-core/bowtie/align/** @kevinmenden -modules/nf-core/bowtie/build/** @kevinmenden @drpatelh -modules/nf-core/bracken/bracken/** @Midnighter -modules/nf-core/bracken/combinebrackenoutputs/** @jfy133 -modules/nf-core/busco/** @priyanka-surana @charles-plessy @mahesh-panchal @muffato @jvhagey -modules/nf-core/bwa/aln/** @jfy133 -modules/nf-core/bwa/index/** @drpatelh @maxulysse -modules/nf-core/bwamem2/index/** @maxulysse -modules/nf-core/bwamem2/mem/** @maxulysse -modules/nf-core/bwa/mem/** @drpatelh @jeremy1805 -modules/nf-core/bwameth/align/** @phue -modules/nf-core/bwameth/index/** @phue -modules/nf-core/bwa/sampe/** @jfy133 -modules/nf-core/bwa/samse/** @jfy133 -modules/nf-core/cadd/** @ramprasadn -modules/nf-core/calder2/** @lucananni93 -modules/nf-core/canu/** @scorreard -modules/nf-core/cat/cat/** @erikrikarddaniel @FriederikeHanssen -modules/nf-core/cat/fastq/** @joseespinosa @drpatelh -modules/nf-core/cdhit/cdhitest/** @Joon-Klaps -modules/nf-core/cdhit/cdhit/** @timslittle -modules/nf-core/cellpose/** @josenimo -modules/nf-core/cellrangeratac/count/** @ggabernet @edmundmiller @heylf -modules/nf-core/cellrangeratac/mkfastq/** @ggabernet @edmundmiller @RHReynolds @heylf -modules/nf-core/cellrangeratac/mkref/** @ggabernet @heylf -modules/nf-core/cellranger/count/** @ggabernet @edmundmiller -modules/nf-core/cellranger/mkfastq/** @ggabernet @edmundmiller @RHReynolds -modules/nf-core/cellranger/mkgtf/** @ggabernet @edmundmiller -modules/nf-core/cellranger/mkref/** @ggabernet -modules/nf-core/cellranger/mkvdjref/** @ggabernet @klkeys -modules/nf-core/cellranger/multi/** @klkeys -modules/nf-core/cellranger/vdj/** @ggabernet @edmundmiller @klkeys -modules/nf-core/centrifuge/centrifuge/** @sofstam @jfy133 @sateeshperi -modules/nf-core/centrifuge/kreport/** @sofstam @jfy133 -modules/nf-core/checkm/lineagewf/** @jfy133 -modules/nf-core/checkm/qa/** @jfy133 -modules/nf-core/checkv/downloaddatabase/** @Joon-Klaps -modules/nf-core/checkv/endtoend/** @Joon-Klaps -modules/nf-core/checkv/updatedatabase/** @Joon-Klaps -modules/nf-core/chopper/** @FynnFreyer -modules/nf-core/chromap/chromap/** @mahesh-panchal @joseespinosa -modules/nf-core/chromap/index/** @mahesh-panchal @joseespinosa -modules/nf-core/chromograph/** @ramprasadn -modules/nf-core/circexplorer2/annotate/** @BarryDigby -modules/nf-core/circexplorer2/parse/** @BarryDigby -modules/nf-core/clippy/** @marc-jones @CharlotteAnne -modules/nf-core/clonalframeml/** @rpetit3 -modules/nf-core/clustalo/align/** @luisas -modules/nf-core/clustalo/guidetree/** @luisas -modules/nf-core/cmseq/polymut/** @maxibor -modules/nf-core/cnvkit/access/** @adamrtalbot @priesgo -modules/nf-core/cnvkit/antitarget/** @adamrtalbot @priesgo @SusiJo -modules/nf-core/cnvkit/batch/** @adamrtalbot @drpatelh @fbdtemme @kaurravneet4123 @KevinMenden @lassefolkersen @MaxUlysse @priesgo @SusiJo -modules/nf-core/cnvkit/call/** @adamrtalbot @priesgo -modules/nf-core/cnvkit/export/** @adamrtalbot @priesgo -modules/nf-core/cnvkit/genemetrics/** @adamrtalbot @marrip @priesgo -modules/nf-core/cnvkit/reference/** @adamrtalbot @priesgo @SusiJo -modules/nf-core/cnvkit/target/** @adamrtalbot @priesgo -modules/nf-core/cnvnator/cnvnator/** @ramprasadn -modules/nf-core/cnvnator/convert2vcf/** @ramprasadn -modules/nf-core/cnvpytor/callcnvs/** @sima-r -modules/nf-core/cnvpytor/histogram/** @sima-r @ramprasadn -modules/nf-core/cnvpytor/importreaddepth/** @sima-r @ramprasadn -modules/nf-core/cnvpytor/partition/** @sima-r @ramprasadn -modules/nf-core/cnvpytor/view/** @sima-r @ramprasadn -modules/nf-core/concoct/concoctcoveragetable/** @jfy133 -modules/nf-core/concoct/concoct/** @jfy133 -modules/nf-core/concoct/cutupfasta/** @jfy133 -modules/nf-core/concoct/extractfastabins/** @jfy133 -modules/nf-core/concoct/mergecutupclustering/** @jfy133 -modules/nf-core/conifer/** @icaromsc @rpetit3 -modules/nf-core/controlfreec/assesssignificance/** @FriederikeHanssen -modules/nf-core/controlfreec/freec2bed/** @FriederikeHanssen -modules/nf-core/controlfreec/freec2circos/** @FriederikeHanssen -modules/nf-core/controlfreec/freec/** @FriederikeHanssen -modules/nf-core/controlfreec/makegraph/** @FriederikeHanssen -modules/nf-core/cooler/balance/** @nservant @muffato -modules/nf-core/cooler/cload/** @jianhong @muffato -modules/nf-core/cooler/digest/** @jianhong -modules/nf-core/cooler/dump/** @jianhong @muffato -modules/nf-core/cooler/makebins/** @nservant @muffato -modules/nf-core/cooler/merge/** @jianhong -modules/nf-core/cooler/zoomify/** @jianhong -modules/nf-core/coreograph/** @arozhada @MargotCh -modules/nf-core/crisprcleanr/normalize/** @LaurenceKuhl -modules/nf-core/crumble/** @priyanka-surana -modules/nf-core/csvtk/concat/** @rpetit3 -modules/nf-core/csvtk/join/** @anoronh4 -modules/nf-core/csvtk/split/** @SusiJo -modules/nf-core/custom/dumpsoftwareversions/** @drpatelh @grst -modules/nf-core/custom/getchromsizes/** @tamara-hodgetts @chris-cheshire @muffato -modules/nf-core/custom/matrixfilter/** @pinin4fjords -modules/nf-core/custom/sratoolsncbisettings/** @Midnighter -modules/nf-core/custom/tabulartogseacls/** @pinin4fjords -modules/nf-core/custom/tabulartogseagct/** @pinin4fjords -modules/nf-core/cutadapt/** @drpatelh @kevinmenden -modules/nf-core/cutesv/** @christopher-hakkaart @yuukiiwa -modules/nf-core/damageprofiler/** @jfy133 -modules/nf-core/dastool/dastool/** @maxibor @jfy133 -modules/nf-core/dastool/fastatocontig2bin/** @maxibor @jfy133 -modules/nf-core/dastool/scaffolds2bin/** @maxibor -modules/nf-core/dedup/** @jfy133 -modules/nf-core/deeparg/downloaddata/** @jfy133 -modules/nf-core/deeparg/predict/** @jfy133 -modules/nf-core/deepbgc/download/** @louperelo -modules/nf-core/deepbgc/pipeline/** @louperelo @jfy133 -modules/nf-core/deepcell/mesmer/** @migueLib @chiarasch -modules/nf-core/deeptmhmm/** @vagkaratzas -modules/nf-core/deeptools/bamcoverage/** @FriederikeHanssen @SusiJo -modules/nf-core/deeptools/computematrix/** @jeremy1805 @edmundmiller @drpatelh @joseespinosa -modules/nf-core/deeptools/multibamsummary/** @tamara-hodgetts @chris-cheshire -modules/nf-core/deeptools/plotcorrelation/** @tamara-hodgetts @chris-cheshire -modules/nf-core/deeptools/plotfingerprint/** @edmundmiller @drpatelh @joseespinosa -modules/nf-core/deeptools/plotheatmap/** @edmundmiller @drpatelh @joseespinosa -modules/nf-core/deeptools/plotpca/** @tamara-hodgetts @chris-cheshire -modules/nf-core/deeptools/plotprofile/** @edmundmiller @drpatelh @joseespinosa -modules/nf-core/deepvariant/** @abhi18av @ramprasadn -modules/nf-core/delly/call/** @projectoriented @nvnieuwk -modules/nf-core/deseq2/differential/** @pinin4fjords -modules/nf-core/diamond/blastp/** @spficklin @jfy133 -modules/nf-core/diamond/blastx/** @spficklin @jfy133 @mjamy -modules/nf-core/diamond/makedb/** @spficklin -modules/nf-core/dragmap/align/** @edmundmiller -modules/nf-core/dragmap/hashtable/** @edmundmiller -modules/nf-core/dragonflye/** @rpetit3 -modules/nf-core/dshbio/exportsegments/** @heuermh -modules/nf-core/dshbio/filterbed/** @heuermh -modules/nf-core/dshbio/filtergff3/** @heuermh -modules/nf-core/dshbio/splitbed/** @heuermh -modules/nf-core/dshbio/splitgff3/** @heuermh -modules/nf-core/duphold/** @nvnieuwk -modules/nf-core/ectyper/** @rpetit3 -modules/nf-core/eido/convert/** @rafalstepien -modules/nf-core/eido/validate/** @rafalstepien -modules/nf-core/eigenstratdatabasetools/eigenstratsnpcoverage/** @TCLamnidis -modules/nf-core/eklipse/** @Lucpen -modules/nf-core/elprep/filter/** @matthdsm -modules/nf-core/elprep/merge/** @matthdsm -modules/nf-core/elprep/split/** @matthdsm -modules/nf-core/emboss/cons/** @Joon-Klaps -modules/nf-core/emboss/revseq/** @erikrikarddaniel -modules/nf-core/emboss/seqret/** @MillironX -modules/nf-core/emmtyper/** @rpetit3 -modules/nf-core/endorspy/** @aidaanva -modules/nf-core/ensemblvep/download/** @maxulysse -modules/nf-core/ensemblvep/filtervep/** @ramprasadn -modules/nf-core/ensemblvep/vep/** @maxulysse @matthdsm @nvnieuwk -modules/nf-core/entrezdirect/esearch/** @alxndrdiaz -modules/nf-core/entrezdirect/esummary/** @alxndrdiaz -modules/nf-core/entrezdirect/xtract/** @alxndrdiaz -modules/nf-core/epang/place/** @erikrikarddaniel -modules/nf-core/epang/split/** @erikrikarddaniel -modules/nf-core/expansionhunterdenovo/merge/** @nvnieuwk -modules/nf-core/expansionhunterdenovo/profile/** @nvnieuwk -modules/nf-core/expansionhunter/** @jemten -modules/nf-core/falco/** @lucacozzuto -modules/nf-core/famsa/align/** @luisas -modules/nf-core/famsa/guidetree/** @luisas -modules/nf-core/faqcs/** @mjcipriano @sateeshperi @hseabolt -modules/nf-core/fargene/** @louperelo -modules/nf-core/fastani/** @abhi18av -modules/nf-core/fastawindows/** @muffato -modules/nf-core/fastk/fastk/** @mahesh-panchal -modules/nf-core/fastk/histex/** @mahesh-panchal -modules/nf-core/fastk/merge/** @mahesh-panchal -modules/nf-core/fastp/** @drpatelh @kevinmenden -modules/nf-core/fastqc/** @drpatelh @grst @FelixKrueger -modules/nf-core/fastqscan/** @rpetit3 -modules/nf-core/fasttree/** @aunderwo -modules/nf-core/fcs/fcsadaptor/** @d4straub -modules/nf-core/fcs/fcsgx/** @tillenglert -modules/nf-core/ffq/** @drpatelh -modules/nf-core/fgbio/callduplexconsensusreads/** @lescai -modules/nf-core/fgbio/callmolecularconsensusreads/** @sruthipsuresh -modules/nf-core/fgbio/fastqtobam/** @lescai @matthdsm -modules/nf-core/fgbio/filterconsensusreads/** @lescai -modules/nf-core/fgbio/groupreadsbyumi/** @lescai -modules/nf-core/fgbio/sortbam/** @sruthipsuresh -modules/nf-core/fgbio/zipperbams/** @lescai -modules/nf-core/filtlong/** @d4straub @sofstam -modules/nf-core/flash/** @Erkison -modules/nf-core/flye/** @mirpedrol -modules/nf-core/fq/generate/** @adamrtalbot -modules/nf-core/fq/lint/** @adamrtalbot -modules/nf-core/fq/subsample/** @adamrtalbot -modules/nf-core/fqtk/** @nh13 @sam-white04 -modules/nf-core/freebayes/** @maxibor @FriederikeHanssen @maxulysse -modules/nf-core/freyja/boot/** @Joon-Klaps -modules/nf-core/freyja/demix/** @Joon-Klaps -modules/nf-core/freyja/update/** @Joon-Klaps -modules/nf-core/freyja/variants/** @Joon-Klaps -modules/nf-core/galah/** @prototaxites -modules/nf-core/gamma/gamma/** @sateeshperi @rastanton @jvhagey -modules/nf-core/gangstr/** @nvnieuwk -modules/nf-core/ganon/buildcustom/** @jfy133 -modules/nf-core/ganon/classify/** @jfy133 -modules/nf-core/ganon/report/** @jfy133 -modules/nf-core/ganon/table/** @jfy133 -modules/nf-core/gappa/examineassign/** @erikrikarddaniel -modules/nf-core/gappa/examinegraft/** @erikrikarddaniel -modules/nf-core/gappa/examineheattree/** @erikrikarddaniel -modules/nf-core/gatk4/annotateintervals/** @nvnieuwk -modules/nf-core/gatk4/applybqsrspark/** @yocra3 @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/applybqsr/** @yocra3 @FriederikeHanssen -modules/nf-core/gatk4/applyvqsr/** @GCJMackenzie -modules/nf-core/gatk4/asereadcounter/** @Lucpen -modules/nf-core/gatk4/baserecalibratorspark/** @yocra3 @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/baserecalibrator/** @yocra3 @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/bedtointervallist/** @kevinmenden @ramprasadn -modules/nf-core/gatk4/calculatecontamination/** @GCJMackenzie @maxulysse -modules/nf-core/gatk4/calibratedragstrmodel/** @nvnieuwk -modules/nf-core/gatk4/cnnscorevariants/** @FriederikeHanssen -modules/nf-core/gatk4/collectreadcounts/** @nvnieuwk -modules/nf-core/gatk4/collectsvevidence/** @nvnieuwk -modules/nf-core/gatk4/combinegvcfs/** @sateeshperi @mjcipriano @hseabolt @maxulysse -modules/nf-core/gatk4/composestrtablefile/** @nvnieuwk -modules/nf-core/gatk4/condensedepthevidence/** @nvnieuwk -modules/nf-core/gatk4/createreadcountpanelofnormals/** @ramprasadn -modules/nf-core/gatk4/createsequencedictionary/** @maxulysse @ramprasadn -modules/nf-core/gatk4/createsomaticpanelofnormals/** @GCJMackenzie -modules/nf-core/gatk4/denoisereadcounts/** @ramprasadn -modules/nf-core/gatk4/determinegermlinecontigploidy/** @nvnieuwk -modules/nf-core/gatk4/estimatelibrarycomplexity/** @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/fastqtosam/** @ntoda03 -modules/nf-core/gatk4/filterintervals/** @ryanjameskennedy @ViktorHy -modules/nf-core/gatk4/filtermutectcalls/** @GCJMackenzie @maxulysse @ramprasadn -modules/nf-core/gatk4/filtervarianttranches/** @FriederikeHanssen -modules/nf-core/gatk4/gatherbqsrreports/** @FriederikeHanssen -modules/nf-core/gatk4/gatherpileupsummaries/** @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/genomicsdbimport/** @GCJMackenzie -modules/nf-core/gatk4/genotypegvcfs/** @santiagorevale @maxulysse -modules/nf-core/gatk4/germlinecnvcaller/** @ryanjameskennedy @ViktorHy -modules/nf-core/gatk4/getpileupsummaries/** @GCJMackenzie -modules/nf-core/gatk4/haplotypecaller/** @suzannejin @FriederikeHanssen -modules/nf-core/gatk4/indexfeaturefile/** @santiagorevale -modules/nf-core/gatk4/intervallisttobed/** @FriederikeHanssen -modules/nf-core/gatk4/intervallisttools/** @praveenraj2018 -modules/nf-core/gatk4/learnreadorientationmodel/** @GCJMackenzie -modules/nf-core/gatk4/leftalignandtrimvariants/** @adamrtalbot -modules/nf-core/gatk4/markduplicates/** @ajodeh-juma @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/markduplicatesspark/** @ajodeh-juma @FriederikeHanssen @maxulysse @SusiJo -modules/nf-core/gatk4/mergebamalignment/** @kevinmenden @ramprasadn -modules/nf-core/gatk4/mergemutectstats/** @FriederikeHanssen -modules/nf-core/gatk4/mergevcfs/** @kevinmenden -modules/nf-core/gatk4/mutect2/** @GCJMackenzie @ramprasadn -modules/nf-core/gatk4/postprocessgermlinecnvcalls/** @ryanjameskennedy -modules/nf-core/gatk4/preprocessintervals/** @ryanjameskennedy @ViktorHy @ramprasadn -modules/nf-core/gatk4/printreads/** @ramprasadn -modules/nf-core/gatk4/printsvevidence/** @nvnieuwk -modules/nf-core/gatk4/reblockgvcf/** @nvnieuwk -modules/nf-core/gatk4/revertsam/** @kevinmenden -modules/nf-core/gatk4/samtofastq/** @kevinmenden -modules/nf-core/gatk4/selectvariants/** @mjcipriano @ramprasadn -modules/nf-core/gatk4/shiftfasta/** @ramprasadn -modules/nf-core/gatk4/sitedepthtobaf/** @nvnieuwk -modules/nf-core/gatk4/splitcram/** @nvnieuwk -modules/nf-core/gatk4/splitintervals/** @nvnieuwk @ramprasadn -modules/nf-core/gatk4/splitncigarreads/** @kevinmenden -modules/nf-core/gatk4/svannotate/** @nvnieuwk -modules/nf-core/gatk4/svcluster/** @nvnieuwk -modules/nf-core/gatk4/variantfiltration/** @kevinmenden @ramprasadn -modules/nf-core/gatk4/variantrecalibrator/** @GCJMackenzie @nickhsmith -modules/nf-core/gatk/indelrealigner/** @jfy133 -modules/nf-core/gatk/realignertargetcreator/** @jfy133 -modules/nf-core/gatk/unifiedgenotyper/** @ilight1542 @jfy133 -modules/nf-core/gawk/** @nvnieuwk -modules/nf-core/gecco/run/** @jfy133 -modules/nf-core/gem2/gem2bedmappability/** @nvnieuwk -modules/nf-core/gem2/gemindexer/** @nvnieuwk -modules/nf-core/gem2/gemmappability/** @nvnieuwk -modules/nf-core/gem3/gem3indexer/** @miqalvarez -modules/nf-core/genescopefk/** @mahesh-panchal -modules/nf-core/genmap/index/** @jianhong @nvnieuwk -modules/nf-core/genmap/map/** @jianhong @nvnieuwk -modules/nf-core/genmod/annotate/** @ramprasadn -modules/nf-core/genmod/compound/** @ramprasadn -modules/nf-core/genmod/models/** @ramprasadn -modules/nf-core/genmod/score/** @ramprasadn -modules/nf-core/genomad/download/** @CarsonJM -modules/nf-core/genomad/endtoend/** @CarsonJM -modules/nf-core/genomescope2/** @mahesh-panchal -modules/nf-core/genotyphi/parse/** @rpetit3 -modules/nf-core/genrich/** @JoseEspinosa @samuelruizperez -modules/nf-core/geoquery/getgeo/** @azedinez @pinin4fjords -modules/nf-core/gfaffix/** @heuermh -modules/nf-core/gfastats/** @mahesh-panchal -modules/nf-core/gfatools/gfa2fa/** @mahesh-panchal -modules/nf-core/gfatools/stat/** @mahesh-panchal -modules/nf-core/gffcompare/** @jemten -modules/nf-core/gffread/** @edmundmiller -modules/nf-core/gget/gget/** @adamrtalbot -modules/nf-core/glimpse2/chunk/** @louislenezet -modules/nf-core/glimpse2/concordance/** @louislenezet -modules/nf-core/glimpse2/ligate/** @louislenezet -modules/nf-core/glimpse2/phase/** @LouisLeNezet -modules/nf-core/glimpse2/splitreference/** @LouisLeNezet -modules/nf-core/glimpse/chunk/** @louislenezet -modules/nf-core/glimpse/concordance/** @louislenezet -modules/nf-core/glimpse/ligate/** @louislenezet -modules/nf-core/glimpse/phase/** @louislenezet -modules/nf-core/glimpse/sample/** @louislenezet -modules/nf-core/glnexus/** @ramprasadn -modules/nf-core/gnu/sort/** @DLBPointon -modules/nf-core/goat/taxonsearch/** @alxndrdiaz @muffato -modules/nf-core/goleft/indexcov/** @lindenb -modules/nf-core/goleft/indexsplit/** @matthdsm -modules/nf-core/graphmap2/align/** @yuukiiwa @drpatelh -modules/nf-core/graphmap2/index/** @yuukiiwa @drpatelh -modules/nf-core/graphtyper/genotype/** @zachary-foster -modules/nf-core/graphtyper/vcfconcatenate/** @zachary-foster -modules/nf-core/gridss/gridss/** @nvnieuwk -modules/nf-core/gsea/gsea/** @pinin4fjords -modules/nf-core/gstama/collapse/** @sguizard -modules/nf-core/gstama/merge/** @sguizard -modules/nf-core/gstama/polyacleanup/** @sguizard -modules/nf-core/gtdbtk/classifywf/** @skrakau @abhi18av -modules/nf-core/gubbins/** @avantonder -modules/nf-core/gunc/downloaddb/** @jfy133 -modules/nf-core/gunc/mergecheckm/** @jfy133 -modules/nf-core/gunc/run/** @jfy133 -modules/nf-core/gunzip/** @joseespinosa @drpatelh @jfy133 -modules/nf-core/gvcftools/extractvariants/** @nvnieuwk -modules/nf-core/hamronization/abricate/** @jasmezz -modules/nf-core/hamronization/amrfinderplus/** @louperelo -modules/nf-core/hamronization/deeparg/** @jfy133 -modules/nf-core/hamronization/fargene/** @jfy133 -modules/nf-core/hamronization/rgi/** @louperelo -modules/nf-core/hamronization/summarize/** @jfy133 -modules/nf-core/hapibd/** @ashotmarg -modules/nf-core/haplocheck/** @lmtani -modules/nf-core/haplogrep2/classify/** @lucpen -modules/nf-core/happy/happy/** @nvnieuwk -modules/nf-core/happy/prepy/** @nvnieuwk -modules/nf-core/hicap/** @rpetit3 -modules/nf-core/hicexplorer/hicpca/** @jianhong -modules/nf-core/hifiasm/** @sidorov-si @scorreard -modules/nf-core/hisat2/align/** @ntoda03 @ramprasadn -modules/nf-core/hisat2/build/** @ntoda03 -modules/nf-core/hisat2/extractsplicesites/** @ntoda03 @ramprasadn -modules/nf-core/hlala/preparegraph/** @mapo9 -modules/nf-core/hlala/typing/** @mapo9 -modules/nf-core/hmmcopy/gccounter/** @sppearce @adamrtalbot -modules/nf-core/hmmcopy/generatemap/** @sppearce @adamrtalbot -modules/nf-core/hmmcopy/mapcounter/** @sppearce -modules/nf-core/hmmcopy/readcounter/** @sppearce -modules/nf-core/hmmer/eslalimask/** @erikrikarddaniel -modules/nf-core/hmmer/eslreformat/** @erikrikarddaniel -modules/nf-core/hmmer/hmmalign/** @erikrikarddaniel @jfy133 -modules/nf-core/hmmer/hmmbuild/** @erikrikarddaniel -modules/nf-core/hmmer/hmmfetch/** @erikrikarddaniel -modules/nf-core/hmmer/hmmsearch/** @Midnighter -modules/nf-core/hmtnote/annotate/** @sysbiocoder -modules/nf-core/homer/annotatepeaks/** @drpatelh @kevinmenden -modules/nf-core/homer/findpeaks/** @edmundmiller -modules/nf-core/homer/maketagdirectory/** @edmundmiller -modules/nf-core/homer/makeucscfile/** @edmundmiller -modules/nf-core/homer/pos2bed/** @edmundmiller -modules/nf-core/hpsuissero/** @rpetit3 -modules/nf-core/htseq/count/** @zehrahazalsezer -modules/nf-core/hypo/** @remiolsen -modules/nf-core/ichorcna/createpon/** @sppearce -modules/nf-core/ichorcna/run/** @sppearce -modules/nf-core/icountmini/metagene/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/icountmini/peaks/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/icountmini/segment/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/icountmini/sigxls/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/icountmini/summary/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/idr/** @drpatelh @joseespinosa -modules/nf-core/igv/js/** @mirpedrol -modules/nf-core/ilastik/multicut/** @FloWuenne -modules/nf-core/ilastik/pixelclassification/** @FloWuenne -modules/nf-core/instrain/compare/** @margotl9 @CarsonJM -modules/nf-core/instrain/profile/** @mrolm -modules/nf-core/interproscan/** @toniher -modules/nf-core/iphop/download/** @CarsonJM -modules/nf-core/iphop/predict/** @CarsonJM -modules/nf-core/iqtree/** @avantonder @aunderwo -modules/nf-core/islandpath/** @jvfe -modules/nf-core/ismapper/** @rpetit3 -modules/nf-core/isoseq3/cluster/** @sguizard -modules/nf-core/isoseq3/refine/** @sguizard -modules/nf-core/ivar/consensus/** @andersgs @drpatelh -modules/nf-core/ivar/trim/** @andersgs @drpatelh -modules/nf-core/ivar/variants/** @andersgs @drpatelh -modules/nf-core/jasminesv/** @nvnieuwk -modules/nf-core/jupyternotebook/** @grst -modules/nf-core/kaiju/kaiju2krona/** @MillironX -modules/nf-core/kaiju/kaiju2table/** @sofstam @talnor @jfy133 -modules/nf-core/kaiju/kaiju/** @talnor @sofstam @jfy133 -modules/nf-core/kalign/align/** @luisas -modules/nf-core/kallistobustools/count/** @flowuenne -modules/nf-core/kallistobustools/ref/** @flowuenne -modules/nf-core/kallisto/index/** @ggabernet -modules/nf-core/kallisto/quant/** @anoronh4 -modules/nf-core/kat/hist/** @mahesh-panchal -modules/nf-core/khmer/normalizebymedian/** @erikrikarddaniel -modules/nf-core/khmer/uniquekmers/** @JoseEspinosa -modules/nf-core/kleborate/** @abhi18av @rpetit3 -modules/nf-core/kmcp/compute/** @sofstam -modules/nf-core/kmcp/index/** @sofstam -modules/nf-core/kmcp/merge/** @sofstam -modules/nf-core/kmcp/profile/** @sofstam -modules/nf-core/kmcp/search/** @sofstam -modules/nf-core/kofamscan/** @toniher -modules/nf-core/kraken2/kraken2/** @joseespinosa @drpatelh -modules/nf-core/krakentools/combinekreports/** @jfy133 -modules/nf-core/krakentools/kreport2krona/** @MillironX -modules/nf-core/krakenuniq/build/** @jfy133 -modules/nf-core/krakenuniq/download/** @jfy133 -modules/nf-core/krakenuniq/preloadedkrakenuniq/** @mjamy @Midnighter -modules/nf-core/krona/kronadb/** @mjakobs -modules/nf-core/krona/ktimporttaxonomy/** @mjakobs -modules/nf-core/krona/ktimporttext/** @jianhong -modules/nf-core/krona/ktupdatetaxonomy/** @mjakobs -modules/nf-core/last/dotplot/** @charles-plessy -modules/nf-core/last/lastal/** @charles-plessy -modules/nf-core/last/lastdb/** @charles-plessy -modules/nf-core/last/mafconvert/** @aleksandrabliznina -modules/nf-core/last/mafswap/** @charles-plessy -modules/nf-core/last/postmask/** @charles-plessy -modules/nf-core/last/split/** @aleksandrabliznina -modules/nf-core/last/train/** @aleksandrabliznina -modules/nf-core/learnmsa/align/** @luisas -modules/nf-core/leehom/** @jfy133 -modules/nf-core/legsta/** @rpetit3 -modules/nf-core/lima/** @sguizard -modules/nf-core/limma/differential/** @pinin4fjords -modules/nf-core/lissero/** @rpetit3 -modules/nf-core/lofreq/call/** @bjohnnyd -modules/nf-core/lofreq/callparallel/** @kaurravneet4123 @bjohnnyd -modules/nf-core/lofreq/filter/** @bjohnnyd -modules/nf-core/lofreq/indelqual/** @kaurravneet4123 -modules/nf-core/lofreq/somatic/** @nevinwu -modules/nf-core/macrel/contigs/** @darcy220606 -modules/nf-core/macs2/callpeak/** @ntoda03 @JoseEspinosa @jianhong -modules/nf-core/mafft/** @MillironX -modules/nf-core/mageck/count/** @LaurenceKuhl -modules/nf-core/mageck/mle/** @LaurenceKuhl -modules/nf-core/mageck/test/** @LaurenceKuhl -modules/nf-core/malt/build/** @jfy133 -modules/nf-core/maltextract/** @jfy133 -modules/nf-core/malt/run/** @jfy133 -modules/nf-core/manta/convertinversion/** @FriederikeHanssen -modules/nf-core/manta/germline/** @maxulysse @ramprasadn @nvnieuwk -modules/nf-core/manta/somatic/** @FriederikeHanssen @nvnieuwk -modules/nf-core/manta/tumoronly/** @maxulysse @nvnieuwk -modules/nf-core/mapad/index/** @jch-13 -modules/nf-core/mapad/map/** @jch-13 -modules/nf-core/mapdamage2/** @darcy220606 -modules/nf-core/mash/dist/** @rpetit3 -modules/nf-core/mash/screen/** @mahesh-panchal -modules/nf-core/mash/sketch/** @thanhleviet -modules/nf-core/mashtree/** @rpetit3 -modules/nf-core/maxbin2/** @jfy133 -modules/nf-core/maxquant/lfq/** @veitveit -modules/nf-core/mcquant/** @FloWuenne -modules/nf-core/mcroni/** @rpetit3 -modules/nf-core/md5sum/** @matthdsm -modules/nf-core/medaka/** @avantonder -modules/nf-core/megahit/** @jfy133 -modules/nf-core/megan/daa2info/** @jfy133 -modules/nf-core/megan/rma2info/** @jfy133 -modules/nf-core/meningotype/** @rpetit3 -modules/nf-core/merquryfk/katcomp/** @mahesh-panchal -modules/nf-core/merquryfk/katgc/** @mahesh-panchal -modules/nf-core/merquryfk/merquryfk/** @mahesh-panchal -modules/nf-core/merquryfk/ploidyplot/** @mahesh-panchal -modules/nf-core/merqury/** @mahesh-panchal -modules/nf-core/meryl/count/** @mahesh-panchal -modules/nf-core/meryl/histogram/** @mahesh-panchal -modules/nf-core/meryl/unionsum/** @mahesh-panchal -modules/nf-core/metabat2/jgisummarizebamcontigdepths/** @maxibor -modules/nf-core/metabat2/metabat2/** @maxibor @jfy133 -modules/nf-core/metaeuk/easypredict/** @prototaxites -modules/nf-core/metaphlan3/mergemetaphlantables/** @jfy133 -modules/nf-core/metaphlan3/metaphlan3/** @MGordon09 -modules/nf-core/metaphlan/makedb/** @LilyAnderssonLee -modules/nf-core/metaphlan/mergemetaphlantables/** @jfy133 @LilyAnderssonLee -modules/nf-core/metaphlan/metaphlan/** @MGordon09 @LilyAnderssonLee -modules/nf-core/methyldackel/extract/** @phue -modules/nf-core/methyldackel/mbias/** @phue -modules/nf-core/midas/run/** @rpetit3 -modules/nf-core/mindagap/mindagap/** @ViriatoII @flowuenne -modules/nf-core/minia/** @drpatelh @kevinmenden -modules/nf-core/miniasm/** @avantonder -modules/nf-core/minimap2/align/** @heuermh @sofstam @sateeshperi @jfy133 -modules/nf-core/minimap2/index/** @yuukiiwa @drpatelh -modules/nf-core/miniprot/align/** @yumisims @muffato -modules/nf-core/miniprot/index/** @yumisims @muffato -modules/nf-core/miranda/** @BarryDigby -modules/nf-core/mitohifi/findmitoreference/** @verku -modules/nf-core/mitohifi/mitohifi/** @ksenia-krasheninnikova -modules/nf-core/mlst/** @lskatz @tseemann -modules/nf-core/mmseqs/cluster/** @Joon-Klaps -modules/nf-core/mmseqs/createdb/** @Joon-Klaps -modules/nf-core/mmseqs/createindex/** @JoseEspinosa -modules/nf-core/mmseqs/createtsv/** @Joon-Klaps -modules/nf-core/mmseqs/databases/** @prototaxites -modules/nf-core/mmseqs/easysearch/** @luisas -modules/nf-core/mmseqs/linclust/** @vagkaratzas -modules/nf-core/mmseqs/search/** @Joon-Klaps -modules/nf-core/mmseqs/tsv2exprofiledb/** @JoseEspinosa -modules/nf-core/mobsuite/recon/** @rpetit3 -modules/nf-core/mosdepth/** @joseespinosa @drpatelh @ramprasadn @matthdsm -modules/nf-core/motus/downloaddb/** @jianhong -modules/nf-core/motus/merge/** @jfy133 -modules/nf-core/motus/profile/** @jianhong -modules/nf-core/msisensor2/msi/** @adamrtalbot -modules/nf-core/msisensor2/scan/** @adamrtalbot -modules/nf-core/msisensor/msi/** @kevbrick -modules/nf-core/msisensorpro/msisomatic/** @FriederikeHanssen -modules/nf-core/msisensorpro/scan/** @FriederikeHanssen -modules/nf-core/msisensor/scan/** @kevbrick -modules/nf-core/mtnucratio/** @louperelo -modules/nf-core/multiqc/** @abhi18av @bunop @drpatelh @jfy133 @ewels -modules/nf-core/multivcfanalyzer/** @jfy133 -modules/nf-core/mummer/** @mjcipriano @sateeshperi -modules/nf-core/muscle5/super5/** @alessiovignoli -modules/nf-core/muscle/** @MGordon -modules/nf-core/mykrobe/predict/** @rpetit3 -modules/nf-core/nanocomp/** @paulwolk -modules/nf-core/nanolyse/** @yuukiiwa -modules/nf-core/nanomonsv/parse/** @awgymer -modules/nf-core/nanoplot/** @drpatelh @yuukiiwa -modules/nf-core/ncbigenomedownload/** @rpetit3 -modules/nf-core/nextclade/datasetget/** @antunderwood @drpatelh -modules/nf-core/nextclade/run/** @antunderwood @drpatelh -modules/nf-core/nextgenmap/** @cmatkhan -modules/nf-core/ngmaster/** @rpetit3 -modules/nf-core/ngmerge/** @charlotteanne @jsh58 -modules/nf-core/ngsbits/samplegender/** @nvnieuwk -modules/nf-core/ngscheckmate/fastq/** @sppearce -modules/nf-core/ngscheckmate/ncm/** @sppearce -modules/nf-core/ngscheckmate/patterngenerator/** @sppearce -modules/nf-core/ngscheckmate/vafncm/** @sppearce -modules/nf-core/nonpareil/nonpareil/** @jfy133 -modules/nf-core/nonpareil/curve/** @jfy133 -modules/nf-core/nucmer/** @sateeshperi @mjcipriano -modules/nf-core/odgi/build/** @subwaystation -modules/nf-core/odgi/draw/** @subwaystation -modules/nf-core/odgi/layout/** @subwaystation -modules/nf-core/odgi/sort/** @subwaystation -modules/nf-core/odgi/squeeze/** @subwaystation -modules/nf-core/odgi/stats/** @subwaystation -modules/nf-core/odgi/unchop/** @subwaystation -modules/nf-core/odgi/view/** @subwaystation -modules/nf-core/odgi/viz/** @subwaystation -modules/nf-core/oncocnv/** @marrip -modules/nf-core/openms/decoydatabase/** @jonasscheid -modules/nf-core/optitype/** @apeltzer -modules/nf-core/paftools/sam2paf/** @DLBPointon -modules/nf-core/pairix/** @jianhong -modules/nf-core/pairtools/dedup/** @jianhong -modules/nf-core/pairtools/flip/** @jianhong -modules/nf-core/pairtools/merge/** @nservant -modules/nf-core/pairtools/parse/** @jianhong -modules/nf-core/pairtools/restrict/** @jianhong -modules/nf-core/pairtools/select/** @jianhong -modules/nf-core/pairtools/sort/** @jianhong @nservant -modules/nf-core/pairtools/stats/** @nservant -modules/nf-core/panaroo/run/** @rpetit3 -modules/nf-core/pangolin/** @kevinmenden @drpatelh -modules/nf-core/parabricks/applybqsr/** @bsiranosian -modules/nf-core/parabricks/fq2bam/** @bsiranosian @adamrtalbot -modules/nf-core/paraclu/** @mashehu -modules/nf-core/paragraph/idxdepth/** @nvnieuwk -modules/nf-core/paragraph/multigrmpy/** @nvnieuwk -modules/nf-core/paragraph/vcf2paragraph/** @nvnieuwk -modules/nf-core/pasty/** @rpetit3 -modules/nf-core/pbbam/pbmerge/** @sguizard -modules/nf-core/pbccs/** @sguizard -modules/nf-core/pbptyper/** @rpetit3 -modules/nf-core/pear/** @mirpedrol -modules/nf-core/peddy/** @rannick -modules/nf-core/peka/** @kkuret @codeprimate123 @chris-cheshire @charlotteanne -modules/nf-core/phantompeakqualtools/** @drpatelh @edmundmiller @JoseEspinosa -modules/nf-core/phispy/** @jvfe -modules/nf-core/phyloflash/** @abhi18av -modules/nf-core/picard/addorreplacereadgroups/** @sateeshperi @mjcipriano @hseabolt @cmatKhan @muffato -modules/nf-core/picard/bedtointervallist/** @kevinmenden @matthdsm -modules/nf-core/picard/cleansam/** @sateeshperi @mjcipriano @hseabolt -modules/nf-core/picard/collecthsmetrics/** @projectoriented @matthdsm -modules/nf-core/picard/collectinsertsizemetrics/** @FerriolCalvet -modules/nf-core/picard/collectmultiplemetrics/** @drpatelh -modules/nf-core/picard/collectrnaseqmetrics/** @anoronh4 -modules/nf-core/picard/collectwgsmetrics/** @drpatelh @flowuenne @lassefolkersen @ramprasadn -modules/nf-core/picard/createsequencedictionary/** @sateeshperi @mjcipriano @hseabolt -modules/nf-core/picard/crosscheckfingerprints/** @matthdsm -modules/nf-core/picard/fastqtosam/** @matthdsm -modules/nf-core/picard/filtersamreads/** @jfy133 -modules/nf-core/picard/fixmateinformation/** @sateeshperi @mjcipriano @hseabolt -modules/nf-core/picard/liftovervcf/** @lucpen @ramprasadn -modules/nf-core/picard/markduplicates/** @drpatelh @projectoriented @ramprasadn -modules/nf-core/picard/mergesamfiles/** @drpatelh -modules/nf-core/picard/renamesampleinvcf/** @Lucpen -modules/nf-core/picard/scatterintervalsbyns/** @nvnieuwk -modules/nf-core/picard/sortsam/** @jfy133 -modules/nf-core/picard/sortvcf/** @ramprasadn -modules/nf-core/pilon/** @scorreard -modules/nf-core/pindel/pindel/** @marrip +.github/workflows/** @nf-core/a-team +tests/config @nf-core/a-team + +# Opt-in +modules/nf-core/bedtools/** @edmundmiller +modules/nf-core/dragmap/** @edmundmiller +modules/nf-core/ensemblvep/** @maxulysse +modules/nf-core/gatk4/** @maxulysse +modules/nf-core/homer/** @edmundmiller +modules/nf-core/snpeff/** @maxulysse modules/nf-core/pints/caller/** @edmundmiller -modules/nf-core/pirate/** @rpetit3 -modules/nf-core/plasmidfinder/** @rpetit3 -modules/nf-core/plasmidid/** @joseespinosa @drpatelh -modules/nf-core/platypus/** @kubranarci -modules/nf-core/plink2/extract/** @nebfield -modules/nf-core/plink2/score/** @nebfield -modules/nf-core/plink2/vcf/** @nebfield -modules/nf-core/plink/bcf/** @atrigila -modules/nf-core/plink/exclude/** @atrigila -modules/nf-core/plink/extract/** @nebfield -modules/nf-core/plink/indep/** @atrigila -modules/nf-core/plink/indeppairwise/** @atrigila -modules/nf-core/plink/recode/** @atrigila -modules/nf-core/plink/vcf/** @Mxrcon @abhi18av -modules/nf-core/pmdtools/filter/** @alexandregilardet -modules/nf-core/pneumocat/** @rpetit3 -modules/nf-core/porechop/abi/** @sofstam -modules/nf-core/porechop/porechop/** @ggabernet @jasmezz @d4straub @LaurenceKuhl @SusiJo @jonasscheid @jonoave @GokceOGUZ @jfy133 -modules/nf-core/preseq/ccurve/** @drpatelh @edmundmiller -modules/nf-core/preseq/lcextrap/** @drpatelh @edmundmiller -modules/nf-core/pretextmap/** @marrip @getrudeln -modules/nf-core/pretextsnapshot/** @epaule -modules/nf-core/prinseqplusplus/** @jfy133 -modules/nf-core/prodigal/** @grst -modules/nf-core/prokka/** @rpetit3 -modules/nf-core/propr/logratio/** @suzannejin @oprana22 -modules/nf-core/propr/propd/** @suzannejin -modules/nf-core/proteus/readproteingroups/** @WackerO -modules/nf-core/pureclip/** @charlotteanne @marcjones -modules/nf-core/purecn/coverage/** @aldosr @lbeltrame -modules/nf-core/purecn/intervalfile/** @aldosr @lbeltrame -modules/nf-core/purecn/normaldb/** @aldosr @lbeltrame -modules/nf-core/purecn/run/** @aldosr @lbeltrame -modules/nf-core/purgedups/calcuts/** @mahesh-panchal -modules/nf-core/purgedups/getseqs/** @mahesh-panchal -modules/nf-core/purgedups/histplot/** @mahesh-panchal -modules/nf-core/purgedups/pbcstat/** @mahesh-panchal -modules/nf-core/purgedups/purgedups/** @mahesh-panchal -modules/nf-core/purgedups/splitfa/** @mahesh-panchal -modules/nf-core/pycoqc/** @joseespinosa @drpatelh -modules/nf-core/pydamage/analyze/** @maxibor -modules/nf-core/pydamage/filter/** @maxibor -modules/nf-core/pyrodigal/** @louperelo -modules/nf-core/qcat/** @yuukiiwa @drpatelh -modules/nf-core/qualimap/bamqccram/** @FriederikeHanssen -modules/nf-core/qualimap/bamqc/** @phue -modules/nf-core/qualimap/rnaseq/** @FriederikeHanssen -modules/nf-core/quast/** @drpatelh @kevinmenden -modules/nf-core/quilt/quilt/** @atrigila -modules/nf-core/racon/** @avantonder -modules/nf-core/rapidnj/** @aunderwo @avantonder -modules/nf-core/rasusa/** @thanhleviet -modules/nf-core/raven/** @fmalmeida -modules/nf-core/raxmlng/** @avantonder @aunderwo -modules/nf-core/rgi/main/** @rpetit3 @jfy133 -modules/nf-core/rhocall/annotate/** @ramprasadn -modules/nf-core/rmarkdownnotebook/** @grst -modules/nf-core/roary/** @rpetit3 -modules/nf-core/rsem/calculateexpression/** @drpatelh @kevinmenden -modules/nf-core/rsem/preparereference/** @drpatelh @kevinmenden -modules/nf-core/rseqc/bamstat/** @drpatelh @kevinmenden -modules/nf-core/rseqc/inferexperiment/** @drpatelh @kevinmenden -modules/nf-core/rseqc/innerdistance/** @drpatelh @kevinmenden -modules/nf-core/rseqc/junctionannotation/** @drpatelh @kevinmenden -modules/nf-core/rseqc/junctionsaturation/** @drpatelh @kevinmenden -modules/nf-core/rseqc/readdistribution/** @drpatelh @kevinmenden -modules/nf-core/rseqc/readduplication/** @drpatelh @kevinmenden -modules/nf-core/rseqc/tin/** @drpatelh -modules/nf-core/rtgtools/format/** @nvnieuwk -modules/nf-core/rtgtools/pedfilter/** @nvnieuwk -modules/nf-core/rtgtools/rocplot/** @nvnieuwk -modules/nf-core/rtgtools/vcfeval/** @nvnieuwk -modules/nf-core/salmon/index/** @kevinmenden @drpatelh -modules/nf-core/salmon/quant/** @kevinmenden @drpatelh -modules/nf-core/salsa2/** @scorreard -modules/nf-core/sam2lca/analyze/** @maxibor -modules/nf-core/sambamba/flagstat/** @kubranarci -modules/nf-core/sambamba/markdup/** @BioInf2305 -modules/nf-core/samblaster/** @lescai -modules/nf-core/samtools/ampliconclip/** @bjohnnyd -modules/nf-core/samtools/bam2fq/** @lescai -modules/nf-core/samtools/calmd/** @JackCurragh -modules/nf-core/samtools/cat/** @matthdsm -modules/nf-core/samtools/collatefastq/** @lescai @maxulysse @matthdsm -modules/nf-core/samtools/collate/** @priyanka-surana -modules/nf-core/samtools/convert/** @FriederikeHanssen @maxulysse -modules/nf-core/samtools/coverage/** @LouisLeNezet -modules/nf-core/samtools/depth/** @louperelo @nevinwu -modules/nf-core/samtools/dict/** @muffato -modules/nf-core/samtools/faidx/** @drpatelh @phue -modules/nf-core/samtools/fasta/** @priyanka-surana -modules/nf-core/samtools/fastq/** @priyanka-surana @suzannejin -modules/nf-core/samtools/fixmate/** @sppearce -modules/nf-core/samtools/flagstat/** @drpatelh -modules/nf-core/samtools/getrg/** @matthdsm -modules/nf-core/samtools/idxstats/** @drpatelh -modules/nf-core/samtools/import/** @matthdsm -modules/nf-core/samtools/index/** @drpatelh @maxulysse -modules/nf-core/samtools/markdup/** @priyanka-surana -modules/nf-core/samtools/merge/** @drpatelh @yuukiiwa @maxulysse @FriederikeHanssen @ramprasadn -modules/nf-core/samtools/mpileup/** @drpatelh @joseespinosa -modules/nf-core/samtools/reheader/** @louislenezet -modules/nf-core/samtools/sort/** @drpatelh -modules/nf-core/samtools/stats/** @drpatelh @FriederikeHanssen @ramprasadn -modules/nf-core/samtools/view/** @drpatelh @joseespinosa @FriederikeHanssen @priyanka-surana -modules/nf-core/scimap/mcmicro/** @luiskuhn -modules/nf-core/scoary/** @rpetit3 -modules/nf-core/scramble/clusteranalysis/** @nvnieuwk -modules/nf-core/scramble/clusteridentifier/** @nvnieuwk -modules/nf-core/seacr/callpeak/** @chris-cheshire -modules/nf-core/segemehl/align/** @BarryDigby -modules/nf-core/segemehl/index/** @BarryDigby -modules/nf-core/semibin/singleeasybin/** @BigDataBiology -modules/nf-core/sentieon/** @DonFreed -modules/nf-core/sentieon/applyvarcal/** @assp8200 -modules/nf-core/sentieon/bwaindex/** @drpatelh @maxulysse -modules/nf-core/sentieon/bwamem/** @asp8200 -modules/nf-core/sentieon/datametrics/** @ramprasadn -modules/nf-core/sentieon/dedup/** @asp8200 -modules/nf-core/sentieon/dnamodelapply/** @ramprasadn -modules/nf-core/sentieon/dnascope/** @ramprasadn -modules/nf-core/sentieon/gvcftyper/** @asp8200 -modules/nf-core/sentieon/haplotyper/** @asp8200 -modules/nf-core/sentieon/readwriter/** @ramprasadn -modules/nf-core/sentieon/tnhaplotyper2/** @asp8200 -modules/nf-core/sentieon/tnscope/** @ramprasadn -modules/nf-core/sentieon/varcal/** @asp8200 -modules/nf-core/sentieon/wgsmetrics/** @ramprasadn -modules/nf-core/seqkit/fx2tab/** @heuermh -modules/nf-core/seqkit/grep/** @Joon-Klaps -modules/nf-core/seqkit/pair/** @sateeshperi @mjcipriano @hseabolt -modules/nf-core/seqkit/replace/** @mjcipriano -modules/nf-core/seqkit/sliding/** @DLBPointon -modules/nf-core/seqkit/split2/** @FriederikeHanssen -modules/nf-core/seqkit/stats/** @Midnighter -modules/nf-core/seqkit/tab2fx/** @heuermh -modules/nf-core/seqsero2/** @rpetit3 -modules/nf-core/seqtk/cutn/** @DLBPointon -modules/nf-core/seqtk/mergepe/** @emnilsson -modules/nf-core/seqtk/rename/** @hseabolt @mjcipriano @sateeshperi -modules/nf-core/seqtk/sample/** @kaurravneet4123 @sidorov-si @adamrtalbot -modules/nf-core/seqtk/seq/** @hseabolt @mjcipriano @sateeshperi -modules/nf-core/seqtk/subseq/** @sidorov-si -modules/nf-core/sequencetools/pileupcaller/** @TCLamnidis -modules/nf-core/sequenzautils/bam2seqz/** @kaurravneet4123 -modules/nf-core/sequenzautils/gcwiggle/** @kaurravneet4123 -modules/nf-core/seqwish/induce/** @heuermh -modules/nf-core/seroba/run/** @rpetit3 -modules/nf-core/sexdeterrmine/** @TCLamnidis -modules/nf-core/sgdemux/** @nh13 @sam-white04 -modules/nf-core/shapeit5/ligate/** @louislenezet -modules/nf-core/shapeit5/phasecommon/** @LouisLeNezet -modules/nf-core/shapeit5/phaserare/** @LouisLeNezet -modules/nf-core/shapeit5/switch/** @LouisLeNezet -modules/nf-core/shasta/** @fmalmeida -modules/nf-core/shasum/** @matthdsm -modules/nf-core/shigatyper/** @rpetit3 -modules/nf-core/shigeifinder/** @rpetit3 -modules/nf-core/shinyngs/app/** @pinin4fjords -modules/nf-core/shinyngs/staticdifferential/** @pinin4fjords -modules/nf-core/shinyngs/staticexploratory/** @pinin4fjords -modules/nf-core/shinyngs/validatefomcomponents/** @pinin4fjords -modules/nf-core/shovill/** @rpetit3 -modules/nf-core/sickle/** @BioInf2305 -modules/nf-core/simpleaf/index/** @fmalmeida @maxulysse @Khajidu @apeltzer @pinin4fjords -modules/nf-core/simpleaf/quant/** @fmalmeida @maxulysse @Khajidu @apeltzer @pinin4fjords -modules/nf-core/sistr/** @rpetit3 -modules/nf-core/slimfastq/** @Midnighter -modules/nf-core/smncopynumbercaller/** @peterpru -modules/nf-core/smoothxg/** @heuermh, @subwaystation -modules/nf-core/smoove/call/** @scorreard @nvnieuwk -modules/nf-core/snakemake/** @adamrtalbot -modules/nf-core/snapaligner/align/** @matthdsm -modules/nf-core/snapaligner/index/** @matthdsm -modules/nf-core/sniffles/** @christopher-hakkaart @yuukiiwa -modules/nf-core/snippy/core/** @rpetit3 -modules/nf-core/snippy/run/** @rpetit3 -modules/nf-core/snpdists/** @abhi18av -modules/nf-core/snpeff/download/** @maxulysse -modules/nf-core/snpeff/snpeff/** @maxulysse -modules/nf-core/snpsift/annotate/** @LlaneroHiboreo -modules/nf-core/snpsift/dbnsfp/** @LlaneroHiboreo -modules/nf-core/snpsift/split/** @SusiJo @jonasscheid -modules/nf-core/snpsites/** @avantonder -modules/nf-core/somalier/ancestry/** @atrigila -modules/nf-core/somalier/extract/** @ashotmarg @nvnieuwk -modules/nf-core/somalier/relate/** @ashotmarg @nvnieuwk -modules/nf-core/sortmerna/** @drpatelh @mashehu -modules/nf-core/sourmash/compare/** @taylorreiter -modules/nf-core/sourmash/gather/** @vmikk @taylorreiter -modules/nf-core/sourmash/index/** @emnilsson -modules/nf-core/sourmash/sketch/** @Midnighter -modules/nf-core/sourmash/taxannotate/** @vmikk @taylorreiter -modules/nf-core/spaceranger/count/** @grst -modules/nf-core/spaceranger/mkgtf/** @grst -modules/nf-core/spaceranger/mkref/** @grst -modules/nf-core/spades/** @JoseEspinosa @drpatelh @d4straub -modules/nf-core/spatyper/** @rpetit3 -modules/nf-core/spring/compress/** @xec-cm -modules/nf-core/spring/decompress/** @xec-cm -modules/nf-core/sratools/fasterqdump/** @Midnighter -modules/nf-core/sratools/prefetch/** @Midnighter -modules/nf-core/srst2/srst2/** @jvhagey -modules/nf-core/ssuissero/** @rpetit3 -modules/nf-core/stadeniolib/scramble/** @matthdsm -modules/nf-core/staphopiasccmec/** @rpetit3 -modules/nf-core/star/align/** @kevinmenden @drpatelh @praveenraj2018 -modules/nf-core/star/genomegenerate/** @kevinmenden @drpatelh -modules/nf-core/star/starsolo/** @kevinmenden @ggabernet @grst @fmalmeida @rhreynolds @apeltzer @vivian-chen16 @maxulysse @joaodemeirelles -modules/nf-core/stecfinder/** @rpetit3 -modules/nf-core/stitch/** @saulpierotti -modules/nf-core/stranger/** @ljmesi -modules/nf-core/strelka/germline/** @arontommi -modules/nf-core/strelka/somatic/** @drpatelh -modules/nf-core/stringtie/merge/** @yuukiiwa -modules/nf-core/stringtie/stringtie/** @drpatelh -modules/nf-core/subread/featurecounts/** @ntoda03 -modules/nf-core/survivor/filter/** @LlaneroHiboreo -modules/nf-core/survivor/merge/** @nvnieuwk -modules/nf-core/survivor/simsv/** @nvnieuwk -modules/nf-core/svaba/** @kubranarci -modules/nf-core/svdb/merge/** @ramprasadn -modules/nf-core/svdb/query/** @ramprasadn -modules/nf-core/svtk/baftest/** @nvnieuwk -modules/nf-core/svtk/countsvtypes/** @nvnieuwk -modules/nf-core/svtk/rdtest2vcf/** @nvnieuwk -modules/nf-core/svtk/standardize/** @nvnieuwk -modules/nf-core/svtk/vcf2bed/** @nvnieuwk -modules/nf-core/svtyper/svtyper/** @kubranarci -modules/nf-core/tabix/bgzip/** @joseespinosa @drpatelh @maxulysse @nvnieuwk -modules/nf-core/tabix/bgziptabix/** @maxulysse @DLBPointon -modules/nf-core/tabix/tabix/** @joseespinosa @drpatelh @maxulysse -modules/nf-core/tailfindr/** @lucacozzuto -modules/nf-core/taxpasta/merge/** @sofstam @jfy133 -modules/nf-core/taxpasta/standardise/** @Midnighter -modules/nf-core/tbprofiler/profile/** @rpetit3 -modules/nf-core/tcoffee/align/** @luisas -modules/nf-core/tiara/tiara/** @prototaxites -modules/nf-core/tiddit/cov/** @projectoriented @ramprasadn -modules/nf-core/tiddit/sv/** @maxulysse -modules/nf-core/topas/gencons/** @aidaanva -modules/nf-core/transdecoder/longorf/** @Danilo2771 -modules/nf-core/transdecoder/predict/** @Danilo2771 -modules/nf-core/trimgalore/** @drpatelh @FelixKrueger -modules/nf-core/trimmomatic/** @alyssa-ab -modules/nf-core/trinity/** @timslittle -modules/nf-core/truvari/bench/** @nvnieuwk -modules/nf-core/ucsc/bedclip/** @drpatelh -modules/nf-core/ucsc/bedgraphtobigwig/** @drpatelh -modules/nf-core/ucsc/bedtobigbed/** @drpatelh -modules/nf-core/ucsc/bigwigaverageoverbed/** @jianhong -modules/nf-core/ucsc/gtftogenepred/** @BarryDigby @anoronh4 -modules/nf-core/ucsc/liftover/** @nebfield -modules/nf-core/ucsc/wigtobigwig/** @jianhong @projectoriented -modules/nf-core/ultra/align/** @sguizard -modules/nf-core/ultra/index/** @sguizard -modules/nf-core/ultra/pipeline/** @sguizard @lassefolkersen @ksahlin -modules/nf-core/ultraplex/** @CharlotteAnne @oscarwilkins @chris-cheshire @marc-jones @iraiosub @samirelanduk -modules/nf-core/umicollapse/** @CharlotteAnne @chris-cheshire -modules/nf-core/umitools/dedup/** @drpatelh @grst @klkeys -modules/nf-core/umitools/extract/** @drpatelh @grst -modules/nf-core/umitools/group/** @Joon-Klaps -modules/nf-core/unicycler/** @JoseEspinosa @drpatelh @d4straub -modules/nf-core/universc/** @kbattenb @tomkellygenetics -modules/nf-core/untarfiles/** @joseespinosa @drpatelh @matthdsm @jfy133 @pinin4fjords -modules/nf-core/untar/** @joseespinosa @drpatelh @matthdsm @jfy133 -modules/nf-core/unzipfiles/** @jfy133 @pinin4fjords -modules/nf-core/unzip/** @jfy133 -modules/nf-core/upd/** @hrydbeck -modules/nf-core/vardictjava/** @nvnieuwk -modules/nf-core/variantbam/** @bjohnnyd -modules/nf-core/varlociraptor/callvariants/** @FriederikeHanssen -modules/nf-core/varlociraptor/estimatealignmentproperties/** @FriederikeHanssen -modules/nf-core/varlociraptor/preprocess/** @FriederikeHanssen -modules/nf-core/vcf2db/** @nvnieuwk -modules/nf-core/vcf2maf/** @adamrtalbot -modules/nf-core/vcfanno/** @projectoriented @matthdsm -modules/nf-core/vcflib/vcfbreakmulti/** @lucpen -modules/nf-core/vcflib/vcffilter/** @zachary-foster -modules/nf-core/vcflib/vcfuniq/** @drpatelh -modules/nf-core/vcftools/** @Mark-S-Hill -modules/nf-core/verifybamid/verifybamid2/** @manifestoso -modules/nf-core/verifybamid/verifybamid/** @manifestoso -modules/nf-core/vg/construct/** @nvnieuwk -modules/nf-core/vg/deconstruct/** @heuermh, @subwaystation -modules/nf-core/vg/index/** @nvnieuwk -modules/nf-core/vrhyme/extractunbinned/** @CarsonJM -modules/nf-core/vrhyme/linkbins/** @CarsonJM -modules/nf-core/vrhyme/vrhyme/** @CarsonJM -modules/nf-core/vsearch/cluster/** @mirpedrol -modules/nf-core/vsearch/sintax/** @jtangrot -modules/nf-core/vsearch/sort/** @mirpedrol -modules/nf-core/vsearch/usearchglobal/** @jtangrot -modules/nf-core/vt/decompose/** @nvnieuwk -modules/nf-core/vt/normalize/** @nvnieuwk -modules/nf-core/wfmash/** @subwaystation -modules/nf-core/wgsim/** @priyanka-surana -modules/nf-core/whamg/** @nvnieuwk -modules/nf-core/windowmasker/convert/** @alxndrdiaz -modules/nf-core/windowmasker/mkcounts/** @DLBPointon -modules/nf-core/windowmasker/ustat/** @DLBPointon -modules/nf-core/wisecondorx/convert/** @nvnieuwk -modules/nf-core/wisecondorx/gender/** @nvnieuwk -modules/nf-core/wisecondorx/newref/** @nvnieuwk -modules/nf-core/wisecondorx/predict/** @nvnieuwk -modules/nf-core/yahs/** @ksenia-krasheninnikova -modules/nf-core/yara/index/** @apeltzer -modules/nf-core/yara/mapper/** @apeltzer -modules/nf-core/zip/** @jfy133 @pinin4fjords -subworkflows/nf-core/bam_cnv_wisecondorx/** @nvnieuwk -subworkflows/nf-core/bam_create_som_pon_gatk/** @GCJMackenzie -subworkflows/nf-core/bam_dedup_stats_samtools_umitools/** @drpatelh @KamilMaliszArdigen -subworkflows/nf-core/bam_docounts_contamination_angsd/** @scarlhoff -subworkflows/nf-core/bam_markduplicates_picard/** @dmarron @drpatelh -subworkflows/nf-core/bam_markduplicates_samtools/** @priyanka-surana -subworkflows/nf-core/bam_ngscheckmate/** @SPPearce -subworkflows/nf-core/bam_qc_picard/** @matthdsm -subworkflows/nf-core/bam_rseqc/** @drpatelh @kevinmenden -subworkflows/nf-core/bam_sort_stats_samtools/** @drpatelh -subworkflows/nf-core/bam_split_by_region/** @TCLamnidis -subworkflows/nf-core/bam_stats_samtools/** @drpatelh -subworkflows/nf-core/bam_tumor_normal_somatic_variant_calling_gatk/** @GCJMackenzie -subworkflows/nf-core/bam_tumor_only_somatic_variant_calling_gatk/** @GCJMackenzie -subworkflows/nf-core/bam_variant_calling_sort_freebayes_bcftools/** @priyanka-surana @FriederikeHanssen @ramprasadn -subworkflows/nf-core/bam_variant_demix_boot_freyja/** @Joon-Klaps -subworkflows/nf-core/bcl_demultiplex/** @matthdsm -subworkflows/nf-core/bedgraph_bedclip_bedgraphtobigwig/** @drpatelh @KamilMaliszArdigen -subworkflows/nf-core/bed_scatter_bedtools/** @nvnieuwk -subworkflows/nf-core/fasta_binning_concoct/** @jfy133 -subworkflows/nf-core/fasta_clean_fcs/** @scorreard -subworkflows/nf-core/fasta_index_dna/** @matthdsm @ramprasadn -subworkflows/nf-core/fasta_newick_epang_gappa/** @erikrikarddaniel -subworkflows/nf-core/fastq_align_bamcmp_bwa/** @sppearce -subworkflows/nf-core/fastq_align_bowtie2/** @drpatelh -subworkflows/nf-core/fastq_align_bwaaln/** @jfy133 -subworkflows/nf-core/fastq_align_bwa/** @JoseEspinosa -subworkflows/nf-core/fastq_align_chromap/** @JoseEspinosa -subworkflows/nf-core/fastq_align_dna/** @matthdsm -subworkflows/nf-core/fastq_align_hisat2/** @priyanka-surana -subworkflows/nf-core/fastq_align_star/** @JoseEspinosa -subworkflows/nf-core/fastq_contam_seqtk_kraken/** @apeltzer -subworkflows/nf-core/fastq_create_umi_consensus_fgbio/** @lescai -subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/** @Midnighter @drpatelh -subworkflows/nf-core/fastq_fastqc_umitools_fastp/** @robsyme -subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/** @drpatelh @KamilMaliszArdigen -subworkflows/nf-core/fastq_ngscheckmate/** @SPPearce -subworkflows/nf-core/fastq_subsample_fq_salmon/** @robsyme @drpatelh -subworkflows/nf-core/fastq_trim_fastp_fastqc/** @Joon-Klaps -subworkflows/nf-core/homer/groseq/** @edmundmiller -subworkflows/nf-core/initialise/** @adamrtalbot -subworkflows/nf-core/multiple_impute_glimpse2/** @LouisLeNezet -subworkflows/nf-core/utils_nextflow_pipeline/** @adamrtalbot @drpatelh -subworkflows/nf-core/utils_nf_core_pipeline/** @adamrtalbot @drpatelh -subworkflows/nf-core/utils_nf_validataion_pipeline/** @adamrtalbot @drpatelh -subworkflows/nf-core/vcf_annotate_ensemblvep/** @maxulysse @matthdsm @nvnieuwk -subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/** @maxulysse @matthdsm @nvnieuwk -subworkflows/nf-core/vcf_annotate_snpeff/** @maxulysse -subworkflows/nf-core/vcf_extract_relate_somalier/** @nvnieuwk -subworkflows/nf-core/vcf_gather_bcftools/** @nvnieuwk -subworkflows/nf-core/vcf_impute_glimpse/** @LouisLeNezet -subworkflows/nf-core/vcf_phase_shapeit5/** @LouisLeNezet +modules/nf-core/preseq/ccurve/** @edmundmiller +modules/nf-core/preseq/lcextrap/** @edmundmiller +subworkflows/nf-core/homer/** @edmundmiller From 30a97c755895b7dfe40a730b0695c554a10f1cdd Mon Sep 17 00:00:00 2001 From: Annick Renevey <47788523+rannick@users.noreply.github.com> Date: Mon, 7 Oct 2024 13:50:52 +0200 Subject: [PATCH 22/36] =?UTF-8?q?update=20star=20module=20to=20differentia?= =?UTF-8?q?te=20.sortedByCoord.out.bam=20and=20.Align=E2=80=A6=20(#6661)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update star module to differentiate .sortedByCoord.out.bam and .Aligned.sortedByCoord.out.bam * update star version * prettier * update tests for initial software versions * update test * update meta * fix linting * update snapshots * update nextflow.config * update nextflow.config * update nextflow.config * update nextflow.config * update nextflow.config * add docker config * add docker config * remove local docker config * remove local docker config --- modules/nf-core/star/align/main.nf | 33 +- modules/nf-core/star/align/meta.yml | 26 +- .../star/align/tests/main.nf.test.snap | 324 ++++++++++-------- .../star/align/tests/nextflow.arriba.config | 3 - .../nf-core/star/align/tests/nextflow.config | 3 - .../align/tests/nextflow.starfusion.config | 3 - .../fastq_align_star/tests/main.nf.test.snap | 144 ++++---- 7 files changed, 291 insertions(+), 245 deletions(-) diff --git a/modules/nf-core/star/align/main.nf b/modules/nf-core/star/align/main.nf index ae67e00403f..b5bc9ddf8ef 100644 --- a/modules/nf-core/star/align/main.nf +++ b/modules/nf-core/star/align/main.nf @@ -21,33 +21,34 @@ process STAR_ALIGN { tuple val(meta), path('*Log.progress.out'), emit: log_progress path "versions.yml" , emit: versions - tuple val(meta), path('*d.out.bam') , optional:true, emit: bam - tuple val(meta), path('*sortedByCoord.out.bam') , optional:true, emit: bam_sorted - tuple val(meta), path('*toTranscriptome.out.bam'), optional:true, emit: bam_transcript - tuple val(meta), path('*Aligned.unsort.out.bam') , optional:true, emit: bam_unsorted - tuple val(meta), path('*fastq.gz') , optional:true, emit: fastq - tuple val(meta), path('*.tab') , optional:true, emit: tab - tuple val(meta), path('*.SJ.out.tab') , optional:true, emit: spl_junc_tab - tuple val(meta), path('*.ReadsPerGene.out.tab') , optional:true, emit: read_per_gene_tab - tuple val(meta), path('*.out.junction') , optional:true, emit: junction - tuple val(meta), path('*.out.sam') , optional:true, emit: sam - tuple val(meta), path('*.wig') , optional:true, emit: wig - tuple val(meta), path('*.bg') , optional:true, emit: bedgraph + tuple val(meta), path('*d.out.bam') , optional:true, emit: bam + tuple val(meta), path("${prefix}.sortedByCoord.out.bam") , optional:true, emit: bam_sorted + tuple val(meta), path("${prefix}.Aligned.sortedByCoord.out.bam") , optional:true, emit: bam_sorted_aligned + tuple val(meta), path('*toTranscriptome.out.bam') , optional:true, emit: bam_transcript + tuple val(meta), path('*Aligned.unsort.out.bam') , optional:true, emit: bam_unsorted + tuple val(meta), path('*fastq.gz') , optional:true, emit: fastq + tuple val(meta), path('*.tab') , optional:true, emit: tab + tuple val(meta), path('*.SJ.out.tab') , optional:true, emit: spl_junc_tab + tuple val(meta), path('*.ReadsPerGene.out.tab') , optional:true, emit: read_per_gene_tab + tuple val(meta), path('*.out.junction') , optional:true, emit: junction + tuple val(meta), path('*.out.sam') , optional:true, emit: sam + tuple val(meta), path('*.wig') , optional:true, emit: wig + tuple val(meta), path('*.bg') , optional:true, emit: bedgraph when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" def reads1 = [], reads2 = [] meta.single_end ? [reads].flatten().each{reads1 << it} : reads.eachWithIndex{ v, ix -> ( ix & 1 ? reads2 : reads1) << v } def ignore_gtf = star_ignore_sjdbgtf ? '' : "--sjdbGTFfile $gtf" def seq_platform = seq_platform ? "'PL:$seq_platform'" : "" def seq_center = seq_center ? "'CN:$seq_center'" : "" - def attrRG = args.contains("--outSAMattrRGline") ? "" : "--outSAMattrRGline 'ID:$prefix' $seq_center 'SM:$prefix' $seq_platform" + attrRG = args.contains("--outSAMattrRGline") ? "" : "--outSAMattrRGline 'ID:$prefix' $seq_center 'SM:$prefix' $seq_platform" def out_sam_type = (args.contains('--outSAMtype')) ? '' : '--outSAMtype BAM Unsorted' - def mv_unsorted_bam = (args.contains('--outSAMtype BAM Unsorted SortedByCoordinate')) ? "mv ${prefix}.Aligned.out.bam ${prefix}.Aligned.unsort.out.bam" : '' + mv_unsorted_bam = (args.contains('--outSAMtype BAM Unsorted SortedByCoordinate')) ? "mv ${prefix}.Aligned.out.bam ${prefix}.Aligned.unsort.out.bam" : '' """ STAR \\ --genomeDir $index \\ @@ -79,7 +80,7 @@ process STAR_ALIGN { """ stub: - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" """ echo "" | gzip > ${prefix}.unmapped_1.fastq.gz echo "" | gzip > ${prefix}.unmapped_2.fastq.gz diff --git a/modules/nf-core/star/align/meta.yml b/modules/nf-core/star/align/meta.yml index d30556b515a..d9cba2aa704 100644 --- a/modules/nf-core/star/align/meta.yml +++ b/modules/nf-core/star/align/meta.yml @@ -100,10 +100,13 @@ output: type: file description: Sorted BAM file of read alignments (optional) pattern: "*sortedByCoord.out.bam" - - "*sortedByCoord.out.bam": + - ${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: file @@ -146,9 +149,12 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + pattern: "*.SJ.out.tab" - "*.SJ.out.tab": - type: file - description: STAR output splice junction tab file + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*.SJ.out.tab" - read_per_gene_tab: - meta: @@ -156,9 +162,12 @@ 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 + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*.ReadsPerGene.out.tab" - junction: - meta: @@ -175,9 +184,12 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + pattern: "*.out.sam" - "*.out.sam": - type: file - description: STAR output SAM file + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*.out.sam" - wig: - meta: diff --git a/modules/nf-core/star/align/tests/main.nf.test.snap b/modules/nf-core/star/align/tests/main.nf.test.snap index c814eb56cbf..0da28d37c6f 100644 --- a/modules/nf-core/star/align/tests/main.nf.test.snap +++ b/modules/nf-core/star/align/tests/main.nf.test.snap @@ -26,7 +26,11 @@ "id": "test", "single_end": true }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -35,7 +39,7 @@ "id": "test", "single_end": true }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -44,7 +48,7 @@ "id": "test", "single_end": true }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -53,7 +57,7 @@ "id": "test", "single_end": true }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -62,10 +66,19 @@ "id": "test", "single_end": true }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -105,10 +118,7 @@ "id": "test", "single_end": true }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -117,7 +127,7 @@ "id": "test", "single_end": true }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -126,7 +136,7 @@ "id": "test", "single_end": true }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -135,10 +145,7 @@ "id": "test", "single_end": true }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -148,9 +155,8 @@ "single_end": true }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -173,10 +179,16 @@ "id": "test", "single_end": true }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -312,7 +324,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:04.712114" + "timestamp": "2024-10-01T11:39:15.440397" }, "homo_sapiens - paired_end - arriba - stub": { "content": [ @@ -341,7 +353,11 @@ "id": "test", "single_end": false }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -350,7 +366,7 @@ "id": "test", "single_end": false }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -359,7 +375,7 @@ "id": "test", "single_end": false }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -368,7 +384,7 @@ "id": "test", "single_end": false }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -377,10 +393,19 @@ "id": "test", "single_end": false }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -420,10 +445,7 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -432,7 +454,7 @@ "id": "test", "single_end": false }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -441,7 +463,7 @@ "id": "test", "single_end": false }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -450,10 +472,7 @@ "id": "test", "single_end": false }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -463,9 +482,8 @@ "single_end": false }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -488,10 +506,16 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -627,7 +651,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:28.874293" + "timestamp": "2024-10-01T11:40:15.472109" }, "homo_sapiens - single_end": { "content": [ @@ -644,13 +668,7 @@ ] ], [ - [ - { - "id": "test", - "single_end": true - }, - "test.Aligned.sortedByCoord.out.bam:md5,c6cfaccaf91bc7fdabed3cfe236d4535" - ] + ], [ @@ -711,7 +729,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T18:02:34.35338" + "timestamp": "2024-10-01T11:23:08.001162" }, "homo_sapiens - paired_end": { "content": [ @@ -728,13 +746,7 @@ ] ], [ - [ - { - "id": "test", - "single_end": false - }, - "test.Aligned.sortedByCoord.out.bam:md5,b9ee1c607e07323bc1652ef3babb543f" - ] + ], [ @@ -795,7 +807,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T18:03:16.701923" + "timestamp": "2024-10-01T11:24:46.295219" }, "homo_sapiens - paired_end - multiple - stub": { "content": [ @@ -824,7 +836,11 @@ "id": "test", "single_end": false }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -833,7 +849,7 @@ "id": "test", "single_end": false }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -842,7 +858,7 @@ "id": "test", "single_end": false }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -851,7 +867,7 @@ "id": "test", "single_end": false }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -860,10 +876,19 @@ "id": "test", "single_end": false }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -903,10 +928,7 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -915,7 +937,7 @@ "id": "test", "single_end": false }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -924,7 +946,7 @@ "id": "test", "single_end": false }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -933,10 +955,7 @@ "id": "test", "single_end": false }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -946,9 +965,8 @@ "single_end": false }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -971,10 +989,16 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -1110,7 +1134,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:51.360287" + "timestamp": "2024-10-01T11:41:07.310866" }, "homo_sapiens - paired_end - multiple": { "content": [ @@ -1127,13 +1151,7 @@ ] ], [ - [ - { - "id": "test", - "single_end": false - }, - "test.Aligned.sortedByCoord.out.bam:md5,ab07c21d63ab0a6c07d171d213c81d5a" - ] + ], [ @@ -1194,7 +1212,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T13:13:28.987438" + "timestamp": "2024-10-01T11:38:46.605044" }, "homo_sapiens - paired_end - stub": { "content": [ @@ -1223,7 +1241,11 @@ "id": "test", "single_end": false }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -1232,7 +1254,7 @@ "id": "test", "single_end": false }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -1241,7 +1263,7 @@ "id": "test", "single_end": false }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -1250,7 +1272,7 @@ "id": "test", "single_end": false }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -1259,10 +1281,19 @@ "id": "test", "single_end": false }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -1302,10 +1333,7 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -1314,7 +1342,7 @@ "id": "test", "single_end": false }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -1323,7 +1351,7 @@ "id": "test", "single_end": false }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -1332,10 +1360,7 @@ "id": "test", "single_end": false }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -1345,9 +1370,8 @@ "single_end": false }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -1370,10 +1394,16 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -1509,7 +1539,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:16.798018" + "timestamp": "2024-10-01T11:39:51.595873" }, "homo_sapiens - paired_end - starfusion": { "content": [ @@ -1584,7 +1614,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T13:10:55.371956" + "timestamp": "2024-10-01T11:35:43.874508" }, "homo_sapiens - paired_end - arriba": { "content": [ @@ -1653,7 +1683,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T13:05:10.7534" + "timestamp": "2024-10-01T11:28:32.599223" }, "homo_sapiens - paired_end - starfusion - stub": { "content": [ @@ -1682,7 +1712,11 @@ "id": "test", "single_end": false }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -1691,7 +1725,7 @@ "id": "test", "single_end": false }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -1700,7 +1734,7 @@ "id": "test", "single_end": false }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -1709,7 +1743,7 @@ "id": "test", "single_end": false }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -1718,10 +1752,19 @@ "id": "test", "single_end": false }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -1761,10 +1804,7 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -1773,7 +1813,7 @@ "id": "test", "single_end": false }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -1782,7 +1822,7 @@ "id": "test", "single_end": false }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -1791,10 +1831,7 @@ "id": "test", "single_end": false }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -1804,9 +1841,8 @@ "single_end": false }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -1829,10 +1865,16 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -1968,6 +2010,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:40.64399" + "timestamp": "2024-10-01T11:40:42.29249" } } \ No newline at end of file diff --git a/modules/nf-core/star/align/tests/nextflow.arriba.config b/modules/nf-core/star/align/tests/nextflow.arriba.config index 2324b9e58fe..cf09323fc20 100644 --- a/modules/nf-core/star/align/tests/nextflow.arriba.config +++ b/modules/nf-core/star/align/tests/nextflow.arriba.config @@ -9,6 +9,3 @@ process { } } - -// Fix chown issue for the output star folder -docker.runOptions = '--platform=linux/amd64 -u $(id -u):$(id -g)' diff --git a/modules/nf-core/star/align/tests/nextflow.config b/modules/nf-core/star/align/tests/nextflow.config index c4ac58088bb..18bc2ee8a44 100644 --- a/modules/nf-core/star/align/tests/nextflow.config +++ b/modules/nf-core/star/align/tests/nextflow.config @@ -9,6 +9,3 @@ process { } } - -// Fix chown issue for the output star folder -docker.runOptions = '--platform=linux/amd64 -u $(id -u):$(id -g)' diff --git a/modules/nf-core/star/align/tests/nextflow.starfusion.config b/modules/nf-core/star/align/tests/nextflow.starfusion.config index 467b64977c7..7880bfcf507 100644 --- a/modules/nf-core/star/align/tests/nextflow.starfusion.config +++ b/modules/nf-core/star/align/tests/nextflow.starfusion.config @@ -9,6 +9,3 @@ process { } } - -// Fix chown issue for the output star folder -docker.runOptions = '--platform=linux/amd64 -u $(id -u):$(id -g)' diff --git a/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap index 93a4329a202..66f709b2060 100644 --- a/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap @@ -61,15 +61,15 @@ "id": "test", "single_end": true }, - "test.sorted.bam.stats:md5,8e74b58e799fbf5082c39f98f14c3f46" + "test.sorted.bam.stats:md5,30abf517cda76c6a7468541781c4dd7a" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:58:48.537976" + "timestamp": "2024-10-02T12:47:34.744504" }, "bam_sorted_single_end": { "content": [ @@ -229,15 +229,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,ad0665b0f48b4374f21ca3dd6d3c0d88" + "test.sorted.bam.bai:md5,976fd845b520008692ad34ffad8ee285" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:59:42.224779" + "timestamp": "2024-10-02T12:48:46.014079" }, "stats_paired_end_with_transcriptome": { "content": [ @@ -247,15 +247,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,ba343720cd202366636bdb606c1361b9" + "test.sorted.bam.stats:md5,d7509941ffbfb221115faa2481115f23" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.630724" + "timestamp": "2024-10-02T12:49:58.005177" }, "tab_single_end": { "content": [ @@ -331,15 +331,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,40de55db306ef865530f939bbf9299d5" + "test.sorted.bam:md5,13558b77ef97e9ffb694c89eb3e6c147" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.533399" + "timestamp": "2024-10-02T12:51:14.677514" }, "bai_transcript_paired_end_with_transcriptome": { "content": [ @@ -349,15 +349,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,1dd687a38a2d7fb959272c659678a484" + "test.sorted.bam.bai:md5,db96436abfc1ab7d723717beb0f3df7e" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.813279" + "timestamp": "2024-10-02T12:49:58.119857" }, "bai_paired_end_with_transcriptome": { "content": [ @@ -367,15 +367,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,f4104865dd069f7b0922f94bd7b05b9f" + "test.sorted.bam.bai:md5,19b220e6a7d620f5f38418f82bd037e5" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.552294" + "timestamp": "2024-10-02T12:49:57.943382" }, "idxstats_transcript_paired_end": { "content": [ @@ -415,15 +415,15 @@ "id": "test", "single_end": true }, - "test.sorted.bam:md5,6c4beda83d0372cc3f16864e2f5990de" + "test.sorted.bam:md5,6d4390cf855abab0a98f959b31b78d79" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:58:48.479685" + "timestamp": "2024-10-02T12:47:34.424462" }, "idxstats_single_end": { "content": [ @@ -463,15 +463,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,ba860fb9ece9a136b262d4b7779c6a52" + "test.sorted.bam.stats:md5,10ca84181b17dafd7248296114f05333" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.911706" + "timestamp": "2024-10-02T12:49:58.210566" }, "orig_bam_transcript_paired_end_transcripts_no_transcriptome": { "content": [ @@ -535,15 +535,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,7dccfc9a0e8d530aa222dd8fde13c03e" + "test.sorted.bam:md5,b1a25c0b25f792c2c483c322f85b545d" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.714095" + "timestamp": "2024-10-02T12:49:58.059043" }, "fastq_single_end": { "content": [ @@ -565,15 +565,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,ba343720cd202366636bdb606c1361b9" + "test.sorted.bam.stats:md5,d7509941ffbfb221115faa2481115f23" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:59:42.341245" + "timestamp": "2024-10-02T12:48:46.139348" }, "flagstat_paired_end_with_transcriptome": { "content": [ @@ -619,15 +619,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,318219d2960e6ae1fdde8d3da0d4bb64" + "test.sorted.bam:md5,2b175d7c087679d22be5e4d6722acebd" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.477259" + "timestamp": "2024-10-02T12:49:57.88028" }, "flagstat_transcript_paired_end_transcripts_no_transcriptome": { "content": [ @@ -709,15 +709,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,ba343720cd202366636bdb606c1361b9" + "test.sorted.bam.stats:md5,d7509941ffbfb221115faa2481115f23" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.477062" + "timestamp": "2024-10-02T12:51:14.61369" }, "bai_transcript_paired_end_transcripts_no_transcriptome": { "content": [ @@ -727,15 +727,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,e6382105b52943a408505f25f27872b0" + "test.sorted.bam.bai:md5,06f3624daa0de1ec71cd3b45ef9e628f" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.58742" + "timestamp": "2024-10-02T12:51:14.73189" }, "orig_bam_single_end": { "content": [ @@ -781,15 +781,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,3758b81996c73509c052aac035530aaf" + "test.sorted.bam:md5,50f3b756671f700c51b584c4565b28e0" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:59:42.104272" + "timestamp": "2024-10-02T12:48:45.895658" }, "bam_paired_end_transcripts_no_transcriptome": { "content": [ @@ -799,15 +799,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,318219d2960e6ae1fdde8d3da0d4bb64" + "test.sorted.bam:md5,2b175d7c087679d22be5e4d6722acebd" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.363913" + "timestamp": "2024-10-02T12:51:14.499013" }, "stats_transcript_paired_end": { "content": [ @@ -841,15 +841,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,f4104865dd069f7b0922f94bd7b05b9f" + "test.sorted.bam.bai:md5,19b220e6a7d620f5f38418f82bd037e5" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.422582" + "timestamp": "2024-10-02T12:51:14.553177" }, "idxstats_paired_end_with_transcriptome": { "content": [ @@ -931,15 +931,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,625f0d8e29429337c7383d4d25814c6c" + "test.sorted.bam.stats:md5,10c63f09ff2b849443bafad71a824b0e" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.644021" + "timestamp": "2024-10-02T12:51:14.805201" }, "bam_sorted_paired_end_with_transcriptome": { "content": [ @@ -961,15 +961,15 @@ "id": "test", "single_end": true }, - "test.sorted.bam.bai:md5,73c7f3fe35663c287cb421f1c8b761ae" + "test.sorted.bam.bai:md5,b8c0e9281fa362e0dad93e2cd03445eb" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-03-01T14:09:07.343206" + "timestamp": "2024-10-02T12:47:34.635359" }, "fastq_paired_end": { "content": [ From b56ac062cb5fa01ef3d76a05f44cc9d6f0234140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20H=C3=B6rtenhuber?= Date: Mon, 7 Oct 2024 15:41:08 +0200 Subject: [PATCH 23/36] fix indentation in motus_preplong meta.yml (#6746) --- modules/nf-core/motus/preplong/meta.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/motus/preplong/meta.yml b/modules/nf-core/motus/preplong/meta.yml index 6ef63949a04..4db88011ea2 100644 --- a/modules/nf-core/motus/preplong/meta.yml +++ b/modules/nf-core/motus/preplong/meta.yml @@ -42,9 +42,9 @@ output: pattern: "*.gz" - versions: - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@sofstam" From b924e697b272ae1b2deff9226dbd05039cad54f1 Mon Sep 17 00:00:00 2001 From: lmfaber <43934950+lmfaber@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:30:35 +0200 Subject: [PATCH 24/36] Add jvarkit/sam2tsv (#6731) * Add jvarkit sam2tsv module * add keyword for searchability * Fix PR suggestions * Validate yaml files, run prettier, make regions file sample-based. * Apply suggestions from code review Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> * Update test snapshot to reflect the whole module output. * Lint meta.yml with nf-core module lint jvarkit/sam2tsv --fix --------- Co-authored-by: Joris van Steenbrugge Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> --- .../nf-core/jvarkit/sam2tsv/environment.yml | 5 ++ modules/nf-core/jvarkit/sam2tsv/main.nf | 53 +++++++++++++ modules/nf-core/jvarkit/sam2tsv/meta.yml | 69 +++++++++++++++++ .../jvarkit/sam2tsv/tests/main.nf.test | 74 +++++++++++++++++++ .../jvarkit/sam2tsv/tests/main.nf.test.snap | 68 +++++++++++++++++ .../nf-core/jvarkit/sam2tsv/tests/tags.yml | 2 + 6 files changed, 271 insertions(+) create mode 100644 modules/nf-core/jvarkit/sam2tsv/environment.yml create mode 100644 modules/nf-core/jvarkit/sam2tsv/main.nf create mode 100644 modules/nf-core/jvarkit/sam2tsv/meta.yml create mode 100644 modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test create mode 100644 modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test.snap create mode 100644 modules/nf-core/jvarkit/sam2tsv/tests/tags.yml diff --git a/modules/nf-core/jvarkit/sam2tsv/environment.yml b/modules/nf-core/jvarkit/sam2tsv/environment.yml new file mode 100644 index 00000000000..013223af092 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/environment.yml @@ -0,0 +1,5 @@ +channels: + - bioconda + - conda-forge +dependencies: + - "bioconda::jvarkit=2024.08.25" diff --git a/modules/nf-core/jvarkit/sam2tsv/main.nf b/modules/nf-core/jvarkit/sam2tsv/main.nf new file mode 100644 index 00000000000..fdc49cbd8ba --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/main.nf @@ -0,0 +1,53 @@ +process JVARKIT_SAM2TSV { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/jvarkit:2024.08.25--hdfd78af_1': + 'biocontainers/jvarkit:2024.08.25--hdfd78af_1' }" + + input: + tuple val(meta), path(bam), path(bai), path(regions_file) + tuple val(meta2), path(fasta), path(fasta_index), path(fasta_dict) + + 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}" + def regions_file = regions_file ? " --regions" + " '${regions_file}' " : "" + + """ + mkdir -p TMP + + jvarkit -Xmx1g -XX:-UsePerfData -Djava.io.tmpdir=TMP sam2tsv \\ + --reference "${fasta}" \\ + --output "${prefix}.tsv" \\ + ${args} \\ + ${regions_file} \\ + "${bam}" + rm -rf TMP + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + jvarkit: \$(jvarkit -v) + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch "${prefix}.tsv" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + jvarkit: \$(jvarkit -v) + END_VERSIONS + """ +} diff --git a/modules/nf-core/jvarkit/sam2tsv/meta.yml b/modules/nf-core/jvarkit/sam2tsv/meta.yml new file mode 100644 index 00000000000..fe9a2b1cfc8 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/meta.yml @@ -0,0 +1,69 @@ +name: "jvarkit_sam2tsv" +description: Convert sam files to tsv files +keywords: + - sam + - tsv + - jvarkit +tools: + - "jvarkit": + description: "Java utilities for Bioinformatics." + homepage: "https://github.com/lindenb/jvarkit" + documentation: "https://jvarkit.readthedocs.io/" + tool_dev_url: "https://github.com/lindenb/jvarkit" + doi: "10.6084/m9.figshare.1425030" + licence: ["MIT License"] + identifier: "" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - bam: + type: file + description: BAM/CRAM file from alignment + pattern: "*.{bam,cram}" + - bai: + type: file + description: BAI/CRAI file from alignment + pattern: "*.{bai,crai}" + - regions_file: + type: file + description: Optional. Restrict to regions listed in a file + pattern: "*.{vcf,bed,gtf,gff,vcf.gz,bed.gz,gtf.gz,gff.gz}" + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [id: 'reference'] + - fasta: + type: file + description: Reference genome + pattern: "*.{fasta,fa}" + - fasta_index: + type: file + description: Reference genome information for fasta index + pattern: "*.{fasta.fai,fa.fai}" + - fasta_dict: + type: file + description: Reference genome information for fasta dict + pattern: "*.{.dict}" + +output: + - tsv: + - meta: + type: map + description: Groovy Map containing TSV information e.g. [ id:'test' ] + - "*.tsv": + type: file + description: Output file + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@lmfaber" +maintainers: + - "@lmfaber" diff --git a/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test b/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test new file mode 100644 index 00000000000..cf1d05549f7 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test @@ -0,0 +1,74 @@ +nextflow_process { + + name "Test Process JVARKIT_SAM2TSV" + script "../main.nf" + process "JVARKIT_SAM2TSV" + + tag "modules" + tag "modules_nfcore" + tag "jvarkit" + tag "jvarkit/sam2tsv" + + test("sarscov2 - tsv") { + + when { + process { + """ + input[0] =[ + [id:"tsv_test"], + 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:"tsv_test"], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.dict', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path(process.out.tsv[0][1]).text.startsWith("#Read-Name Flag")}, + { assert snapshot(process.out).match() + } + ) + } + } + + test("sarscov2 - tsv - stub") { + + options "-stub" + + when { + process { + """ + input[0] =[ + [id:"tsv_test"], + 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:"tsv_test"], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.dict', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() + } + ) + } + } +} diff --git a/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test.snap b/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test.snap new file mode 100644 index 00000000000..6a13240a570 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test.snap @@ -0,0 +1,68 @@ +{ + "sarscov2 - tsv": { + "content": [ + { + "0": [ + [ + { + "id": "tsv_test" + }, + "tsv_test.tsv:md5,6218e8d498160c442d2bde239878a4d1" + ] + ], + "1": [ + "versions.yml:md5,c628a51b7377878922ebd473c89ada95" + ], + "tsv": [ + [ + { + "id": "tsv_test" + }, + "tsv_test.tsv:md5,6218e8d498160c442d2bde239878a4d1" + ] + ], + "versions": [ + "versions.yml:md5,c628a51b7377878922ebd473c89ada95" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T13:09:35.31109992" + }, + "sarscov2 - tsv - stub": { + "content": [ + { + "0": [ + [ + { + "id": "tsv_test" + }, + "tsv_test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,c628a51b7377878922ebd473c89ada95" + ], + "tsv": [ + [ + { + "id": "tsv_test" + }, + "tsv_test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,c628a51b7377878922ebd473c89ada95" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T13:09:45.395583956" + } +} \ No newline at end of file diff --git a/modules/nf-core/jvarkit/sam2tsv/tests/tags.yml b/modules/nf-core/jvarkit/sam2tsv/tests/tags.yml new file mode 100644 index 00000000000..c44a7dd33a7 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/tests/tags.yml @@ -0,0 +1,2 @@ +jvarkit/sam2tsv: + - "modules/nf-core/jvarkit/sam2tsv/**" From f85452fcbebab5dfd77c0752236f6f86e9a03b32 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:57:29 +0200 Subject: [PATCH 25/36] Don't use test scripts when the `-fisher` option has been given in vardictjava (#6747) * add option to run --fisher for vardict * use a check for the `-fisher` arg instead --- modules/nf-core/vardictjava/main.nf | 12 +-- .../nf-core/vardictjava/tests/main.nf.test | 77 ++++++++++++++++-- .../vardictjava/tests/main.nf.test.snap | 78 +++++++++++++++++-- .../nf-core/vardictjava/tests/nextflow.config | 3 + 4 files changed, 152 insertions(+), 18 deletions(-) create mode 100644 modules/nf-core/vardictjava/tests/nextflow.config diff --git a/modules/nf-core/vardictjava/main.nf b/modules/nf-core/vardictjava/main.nf index 6329391c837..a2c7666b520 100644 --- a/modules/nf-core/vardictjava/main.nf +++ b/modules/nf-core/vardictjava/main.nf @@ -14,7 +14,7 @@ process VARDICTJAVA { output: tuple val(meta), path("*.vcf.gz"), emit: vcf - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -25,9 +25,12 @@ process VARDICTJAVA { def args3 = task.ext.args3 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + // Don't run test scripts when -fisher has been used by vardictjava + def run_test = !args.contains("-fisher") + def somatic = bams instanceof List && bams.size() == 2 ? true : false def input = somatic ? "-b \"${bams[0]}|${bams[1]}\"" : "-b ${bams}" - def filter = somatic ? "testsomatic.R" : "teststrandbias.R" + def test = run_test ? somatic ? "| testsomatic.R" : "| teststrandbias.R" : "" def convert_to_vcf = somatic ? "var2vcf_paired.pl" : "var2vcf_valid.pl" """ export JAVA_OPTS='"-Xms${task.memory.toMega()/4}m" "-Xmx${task.memory.toGiga()}g" "-Dsamjdk.reference_fasta=${fasta}"' @@ -37,7 +40,7 @@ process VARDICTJAVA { -th ${task.cpus} \\ -G ${fasta} \\ ${bed} \\ - | ${filter} \\ + ${test} \\ | ${convert_to_vcf} \\ ${args2} \\ | bgzip ${args3} --threads ${task.cpus} > ${prefix}.vcf.gz @@ -50,9 +53,6 @@ process VARDICTJAVA { """ stub: - def args = task.ext.args ?: '-c 1 -S 2 -E 3' - def args2 = task.ext.args2 ?: '' - def args3 = task.ext.args3 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ diff --git a/modules/nf-core/vardictjava/tests/main.nf.test b/modules/nf-core/vardictjava/tests/main.nf.test index 8e5fec10266..31e1058cad8 100644 --- a/modules/nf-core/vardictjava/tests/main.nf.test +++ b/modules/nf-core/vardictjava/tests/main.nf.test @@ -10,9 +10,6 @@ nextflow_process { test("homo_sapiens - [bam, bai, bed] - fasta - fai") { when { - params { - outdir = $outputDir - } process { """ input[0] = Channel.value([ @@ -47,9 +44,6 @@ nextflow_process { test("homo_sapiens - [[bam, bam], [bai, bai], bed] - fasta - fai") { when { - params { - outdir = $outputDir - } process { """ input[0] = Channel.value([ @@ -87,4 +81,75 @@ nextflow_process { } + test("homo_sapiens - [bam, bai, bed] - fasta - fai - fisher") { + + config "./nextflow.config" + when { + process { + """ + input[0] = Channel.value([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) + ]) + input[1] = [ + [id:"ref"], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ] + input[2] = [ + [id:"ref"], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + + + } + + } + + test("homo_sapiens - [bam, bai, bed] - fasta - fai - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.value([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) + ]) + input[1] = [ + [id:"ref"], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ] + input[2] = [ + [id:"ref"], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + + + } + + } + } diff --git a/modules/nf-core/vardictjava/tests/main.nf.test.snap b/modules/nf-core/vardictjava/tests/main.nf.test.snap index c32a68b7424..35674ed1782 100644 --- a/modules/nf-core/vardictjava/tests/main.nf.test.snap +++ b/modules/nf-core/vardictjava/tests/main.nf.test.snap @@ -27,10 +27,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-04T19:08:38.328190023" + "timestamp": "2024-10-07T16:05:15.117453312" }, "homo_sapiens - [[bam, bam], [bai, bai], bed] - fasta - fai": { "content": [ @@ -60,9 +60,75 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-04T19:08:54.416661915" + "timestamp": "2024-10-07T16:05:26.932438089" + }, + "homo_sapiens - [bam, bai, bed] - fasta - fai - fisher": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,e8411ecae49b4f6afa6ea0b681ea506e" + ] + ], + "1": [ + "versions.yml:md5,6bf7aa0cbaac4a6e2acab2c475ec2389" + ], + "vcf": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,e8411ecae49b4f6afa6ea0b681ea506e" + ] + ], + "versions": [ + "versions.yml:md5,6bf7aa0cbaac4a6e2acab2c475ec2389" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T16:05:38.456816851" + }, + "homo_sapiens - [bam, bai, bed] - fasta - fai - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,6bf7aa0cbaac4a6e2acab2c475ec2389" + ], + "vcf": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,6bf7aa0cbaac4a6e2acab2c475ec2389" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T16:05:48.440804849" } } \ No newline at end of file diff --git a/modules/nf-core/vardictjava/tests/nextflow.config b/modules/nf-core/vardictjava/tests/nextflow.config new file mode 100644 index 00000000000..c6e8571bd41 --- /dev/null +++ b/modules/nf-core/vardictjava/tests/nextflow.config @@ -0,0 +1,3 @@ +process { + ext.args = "-c 1 -S 2 -E 3 -fisher" +} \ No newline at end of file From e069b3a0bd4cd3917ef86053a0f95c76d8962e50 Mon Sep 17 00:00:00 2001 From: Delfina Terradas <155591053+delfiterradas@users.noreply.github.com> Date: Mon, 7 Oct 2024 12:57:35 -0300 Subject: [PATCH 26/36] Add seqkit translate (#6706) * TSeqkit tanslate module addedd * Started test * Add seqkit translate * Added seqkit/translate * Seqkit/translate meta.yml fix * Update modules/nf-core/seqkit/translate/environment.yml Co-authored-by: Sateesh_Peri <33637490+sateeshperi@users.noreply.github.com> --------- Co-authored-by: dawn cj Co-authored-by: Sateesh_Peri <33637490+sateeshperi@users.noreply.github.com> --- .../nf-core/seqkit/translate/environment.yml | 5 + modules/nf-core/seqkit/translate/main.nf | 62 ++++++ modules/nf-core/seqkit/translate/meta.yml | 47 ++++ .../seqkit/translate/tests/main.nf.test | 193 +++++++++++++++++ .../seqkit/translate/tests/main.nf.test.snap | 202 ++++++++++++++++++ 5 files changed, 509 insertions(+) create mode 100644 modules/nf-core/seqkit/translate/environment.yml create mode 100644 modules/nf-core/seqkit/translate/main.nf create mode 100644 modules/nf-core/seqkit/translate/meta.yml create mode 100644 modules/nf-core/seqkit/translate/tests/main.nf.test create mode 100644 modules/nf-core/seqkit/translate/tests/main.nf.test.snap diff --git a/modules/nf-core/seqkit/translate/environment.yml b/modules/nf-core/seqkit/translate/environment.yml new file mode 100644 index 00000000000..95584e3c48b --- /dev/null +++ b/modules/nf-core/seqkit/translate/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::seqkit=2.8.2" diff --git a/modules/nf-core/seqkit/translate/main.nf b/modules/nf-core/seqkit/translate/main.nf new file mode 100644 index 00000000000..2b6a60634f2 --- /dev/null +++ b/modules/nf-core/seqkit/translate/main.nf @@ -0,0 +1,62 @@ +process SEQKIT_TRANSLATE { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/seqkit:2.8.2--h9ee0642_1': + 'biocontainers/seqkit:2.8.2--h9ee0642_1' }" + + input: + tuple val(meta), path(fastx) + + output: + tuple val(meta), path("${prefix}.*"), emit: fastx + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def extension = "fastq" + if ("$fastx" ==~ /.+\.fasta|.+\.fasta.gz|.+\.fa|.+\.fa.gz|.+\.fas|.+\.fas.gz|.+\.fna|.+\.fna.gz|.+\.fsa|.+\.fsa.gz/ ) { + extension = "fasta" + } + extension = fastx.toString().endsWith('.gz') ? "${extension}.gz" : extension + def call_gzip = extension.endsWith('.gz') ? "| gzip -c $args2" : '' + if("${prefix}.${extension}" == "$fastx") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + """ + seqkit \\ + translate \\ + --threads ${task.cpus} \\ + ${args} \\ + ${fastx} \\ + ${call_gzip} \\ + > ${prefix}.${extension} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$(seqkit version | cut -d' ' -f2) + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + def extension = "fastq" + if ("$fastx" ==~ /.+\.fasta|.+\.fasta.gz|.+\.fa|.+\.fa.gz|.+\.fas|.+\.fas.gz|.+\.fna|.+\.fna.gz|.+\.fsa|.+\.fsa.gz/ ) { + extension = "fasta" + } + extension = fastx.toString().endsWith('.gz') ? "${extension}.gz" : extension + if("${prefix}.${extension}" == "$fastx") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + """ + touch ${prefix}.${extension} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$(seqkit version | cut -d' ' -f2) + END_VERSIONS + """ +} diff --git a/modules/nf-core/seqkit/translate/meta.yml b/modules/nf-core/seqkit/translate/meta.yml new file mode 100644 index 00000000000..19e711bfbaa --- /dev/null +++ b/modules/nf-core/seqkit/translate/meta.yml @@ -0,0 +1,47 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "seqkit_translate" +description: Translate DNA/RNA to protein sequence +keywords: + - seqkit + - translate + - protein +tools: + - "seqkit": + description: "A cross-platform and ultrafast toolkit for FASTA/Q file manipulation" + homepage: "https://bioinf.shenwei.me/seqkit/" + documentation: "https://bioinf.shenwei.me/seqkit/usage/" + tool_dev_url: "https://github.com/shenwei356/seqkit" + doi: "10.1371/journal.pone.0163962" + licence: ["MIT"] + identifier: biotools:seqkit + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - fastx: + type: file + description: Input fasta/fastq file + pattern: "*.{fna,fsa,fas,fa,fasta,fastq,fq}[.gz]" +output: + - fastx: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - ${prefix}.*: + type: file + description: Translated fasta/fastq file + pattern: "*.{fna,fsa,fas,fa,fasta,fastq,fq}[.gz]" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@delfiterradas" +maintainers: + - "@delfiterradas" diff --git a/modules/nf-core/seqkit/translate/tests/main.nf.test b/modules/nf-core/seqkit/translate/tests/main.nf.test new file mode 100644 index 00000000000..de1547fbddf --- /dev/null +++ b/modules/nf-core/seqkit/translate/tests/main.nf.test @@ -0,0 +1,193 @@ +nextflow_process { + + name "Test Process SEQKIT_TRANSLATE" + script "../main.nf" + process "SEQKIT_TRANSLATE" + + tag "modules" + tag "modules_nfcore" + tag "seqkit" + tag "seqkit/translate" + + test("sarscov2 - genome_fasta") { + + when { + process { + """ + input[0] = [ + [ 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() } + ) + } + + } + + test("sarscov2 - genome_fasta_gz") { + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.gz', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - test_1_fastq_gz") { + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - transcriptome_fasta") { + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/transcriptome.fasta', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - bam - stub") { + + options "-stub" + + 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), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("file_name_conflict-fail_with_error") { + when { + process { + """ + input[0] = [ + [ id:'test_1' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert !process.success }, + { assert process.stdout.toString().contains("Input and output names are the same") } + ) + } + + } + + test("sarscov2-genome_fasta-stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ 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() }, + ) + } + + } + + test("file_name_conflict-fail_with_error-stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'genome' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert !process.success }, + { assert process.stdout.toString().contains("Input and output names are the same") } + ) + } + + } + +} diff --git a/modules/nf-core/seqkit/translate/tests/main.nf.test.snap b/modules/nf-core/seqkit/translate/tests/main.nf.test.snap new file mode 100644 index 00000000000..68a27185c5f --- /dev/null +++ b/modules/nf-core/seqkit/translate/tests/main.nf.test.snap @@ -0,0 +1,202 @@ +{ + "sarscov2 - genome_fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fasta:md5,bbd96f0e48a0ef530d8535dd2e9dda2d" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fasta:md5,bbd96f0e48a0ef530d8535dd2e9dda2d" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T14:11:33.440888698" + }, + "sarscov2 - bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-20T15:24:19.344543763" + }, + "sarscov2-genome_fasta-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T13:58:35.061712261" + }, + "sarscov2 - transcriptome_fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fasta:md5,8ace22c911902152e71043cf62661f1f" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fasta:md5,8ace22c911902152e71043cf62661f1f" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T14:12:02.993246822" + }, + "sarscov2 - genome_fasta_gz": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fasta.gz:md5,bbd96f0e48a0ef530d8535dd2e9dda2d" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fasta.gz:md5,bbd96f0e48a0ef530d8535dd2e9dda2d" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T14:11:43.884810694" + }, + "sarscov2 - test_1_fastq_gz": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fastq.gz:md5,c80e171f26a8c1f81c3b3f004d861b7a" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fastq.gz:md5,c80e171f26a8c1f81c3b3f004d861b7a" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T14:11:53.792592007" + } +} \ No newline at end of file From 58b4d685b1c93429917fec530f5d656aca3f2ef6 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Tue, 8 Oct 2024 06:15:32 +0200 Subject: [PATCH 27/36] Bump all GANON modules to 2.1.0 and fix build module (#6748) * Bump ganon to 2.1.0 and fix build module * Fix missing versions.yml in sanpshot * Fix classify tests --- .../nf-core/ganon/buildcustom/environment.yml | 2 +- modules/nf-core/ganon/buildcustom/main.nf | 33 ++++++++++--------- modules/nf-core/ganon/buildcustom/meta.yml | 7 ++++ .../ganon/buildcustom/tests/main.nf.test | 10 ++++-- .../ganon/buildcustom/tests/main.nf.test.snap | 19 ++++++++--- .../ganon/buildcustom/tests/nextflow.config | 5 +++ .../nf-core/ganon/classify/environment.yml | 2 +- modules/nf-core/ganon/classify/main.nf | 31 +++++++++-------- .../nf-core/ganon/classify/tests/main.nf.test | 18 +++++++--- .../ganon/classify/tests/main.nf.test.snap | 28 +++++++++++++--- .../ganon/classify/tests/nextflow.config | 5 +-- modules/nf-core/ganon/report/environment.yml | 2 +- modules/nf-core/ganon/report/main.nf | 13 ++++---- .../nf-core/ganon/report/tests/main.nf.test | 3 +- .../ganon/report/tests/main.nf.test.snap | 20 +++++++---- .../ganon/report/tests/nextflow.config | 3 ++ modules/nf-core/ganon/table/environment.yml | 2 +- modules/nf-core/ganon/table/main.nf | 13 ++++---- .../nf-core/ganon/table/tests/main.nf.test | 3 +- .../ganon/table/tests/main.nf.test.snap | 20 +++++++---- .../nf-core/ganon/table/tests/nextflow.config | 4 ++- 21 files changed, 159 insertions(+), 84 deletions(-) create mode 100644 modules/nf-core/ganon/buildcustom/tests/nextflow.config diff --git a/modules/nf-core/ganon/buildcustom/environment.yml b/modules/nf-core/ganon/buildcustom/environment.yml index 98f34de89e1..0e073d5ba75 100644 --- a/modules/nf-core/ganon/buildcustom/environment.yml +++ b/modules/nf-core/ganon/buildcustom/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::ganon=2.0.0 + - bioconda::ganon=2.1.0 diff --git a/modules/nf-core/ganon/buildcustom/main.nf b/modules/nf-core/ganon/buildcustom/main.nf index ac1c0eca114..212e49f7f97 100644 --- a/modules/nf-core/ganon/buildcustom/main.nf +++ b/modules/nf-core/ganon/buildcustom/main.nf @@ -1,21 +1,21 @@ process GANON_BUILDCUSTOM { - tag "$meta.id" + tag "${meta.id}" label 'process_high' - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ganon:2.0.0--py39ha35b9be_0': - 'biocontainers/ganon:2.0.0--py39ha35b9be_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/ganon:2.1.0--py310hab1bfa5_1' + : 'biocontainers/ganon:2.1.0--py310hab1bfa5_1'}" input: tuple val(meta), path(input) + val input_type path taxonomy_files path genome_size_files output: - tuple val(meta), path("*.{hibf,ibf,tax}") , emit: db - tuple val(meta), path("*.info.tsv") , emit: info , optional: true - path "versions.yml" , emit: versions + tuple val(meta), path("*.{hibf,ibf,tax}"), emit: db + tuple val(meta), path("*.info.tsv"), emit: info, optional: true + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -23,17 +23,18 @@ process GANON_BUILDCUSTOM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def taxonomy_args = taxonomy_files ? "--taxonomy-files ${taxonomy_files}" : "" - def genome_size_args = genome_size_files ? "--genome-size-files ${genome_size_files}" : "" + def input_cmd = input_type == 'fasta' ? "--input ${input}" : input_type == 'tsv' ? "--input-file ${input}" : error("Invalid input type: ${input_type}. Options: fasta, tsv") + def taxonomy_args = taxonomy_files ? "--taxonomy-files ${taxonomy_files}" : "" + def genome_size_args = genome_size_files ? "--genome-size-files ${genome_size_files}" : "" """ ganon \\ build-custom \\ --threads ${task.cpus} \\ - --input $input \\ + --input ${input} \\ --db-prefix ${prefix} \\ - $taxonomy_args \\ - $genome_size_args \\ - $args + ${taxonomy_args} \\ + ${genome_size_args} \\ + ${args} cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -44,8 +45,8 @@ process GANON_BUILDCUSTOM { stub: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def taxonomy_args = taxonomy_files ? "--taxonomy-files ${taxonomy_files}" : "" - def genome_size_args = genome_size_files ? "--genome-size-files ${genome_size_files}" : "" + def taxonomy_args = taxonomy_files ? "--taxonomy-files ${taxonomy_files}" : "" + def genome_size_args = genome_size_files ? "--genome-size-files ${genome_size_files}" : "" """ touch ${prefix}.hibf touch ${prefix}.tax diff --git a/modules/nf-core/ganon/buildcustom/meta.yml b/modules/nf-core/ganon/buildcustom/meta.yml index 538fd21306d..39bc07349ad 100644 --- a/modules/nf-core/ganon/buildcustom/meta.yml +++ b/modules/nf-core/ganon/buildcustom/meta.yml @@ -29,6 +29,13 @@ input: List of input FASTA files, or a directory containing input FASTA files. Note you must supply --input-extension via ext.args if FASTA extensions do not end in the default `fna.gz`. pattern: "*" + - - input_type: + type: string + description: | + Specify whether the file(s) given to the input channel are in FASTA format (and will be supplied as --input) + or in TSV format (and will be supplied as --input-file). For TSV format, the 'file' column should be just the + file name so that it's local to the working directory of this process. + pattern: "fasta|tsv" - - taxonomy_files: type: file description: Pre-downloaded taxonomy files of input sequences. See ganon docs diff --git a/modules/nf-core/ganon/buildcustom/tests/main.nf.test b/modules/nf-core/ganon/buildcustom/tests/main.nf.test index 3d97408bbdb..8fa42278035 100644 --- a/modules/nf-core/ganon/buildcustom/tests/main.nf.test +++ b/modules/nf-core/ganon/buildcustom/tests/main.nf.test @@ -3,6 +3,7 @@ nextflow_process { name "Test Process GANON_BUILDCUSTOM" script "../main.nf" process "GANON_BUILDCUSTOM" + config "./nextflow.config" tag "modules" tag "modules_nfcore" @@ -18,8 +19,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } @@ -28,7 +30,8 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - process.out.db.get(0).get(1).findAll { file(it).name != "test.tax" } + process.out.db.get(0).get(1).findAll { file(it).name != "test.tax" }, + process.out.versions ).match() }, { assert file(process.out.db.get(0).get(1).find { file(it).name == "test.tax" }).text.contains("MT192765.1") }, @@ -47,8 +50,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } diff --git a/modules/nf-core/ganon/buildcustom/tests/main.nf.test.snap b/modules/nf-core/ganon/buildcustom/tests/main.nf.test.snap index d1d2b18ee6b..2c3243ffbdc 100644 --- a/modules/nf-core/ganon/buildcustom/tests/main.nf.test.snap +++ b/modules/nf-core/ganon/buildcustom/tests/main.nf.test.snap @@ -22,7 +22,7 @@ ] ], "2": [ - "versions.yml:md5,644b8508be28bf66eb6e66ef12be858c" + "versions.yml:md5,9c73293ae36914c6ce3718ad6728ad9e" ], "db": [ [ @@ -44,18 +44,29 @@ ] ], "versions": [ - "versions.yml:md5,644b8508be28bf66eb6e66ef12be858c" + "versions.yml:md5,9c73293ae36914c6ce3718ad6728ad9e" ] } ], - "timestamp": "2024-01-10T15:15:49.270265503" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T17:00:22.98042261" }, "sarscov2 - genome fasta": { "content": [ [ "test.hibf:md5,d10fe6fc6d198696bc15ca85a1459614" + ], + [ + "versions.yml:md5,9c73293ae36914c6ce3718ad6728ad9e" ] ], - "timestamp": "2024-01-10T15:15:44.000168145" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T19:03:25.060306554" } } \ No newline at end of file diff --git a/modules/nf-core/ganon/buildcustom/tests/nextflow.config b/modules/nf-core/ganon/buildcustom/tests/nextflow.config new file mode 100644 index 00000000000..a12988eee89 --- /dev/null +++ b/modules/nf-core/ganon/buildcustom/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: GANON_BUILDCUSTOM { + ext.args = "--input-target sequence" + } +} diff --git a/modules/nf-core/ganon/classify/environment.yml b/modules/nf-core/ganon/classify/environment.yml index 98f34de89e1..0e073d5ba75 100644 --- a/modules/nf-core/ganon/classify/environment.yml +++ b/modules/nf-core/ganon/classify/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::ganon=2.0.0 + - bioconda::ganon=2.1.0 diff --git a/modules/nf-core/ganon/classify/main.nf b/modules/nf-core/ganon/classify/main.nf index d6db825e9bb..65ee6765244 100644 --- a/modules/nf-core/ganon/classify/main.nf +++ b/modules/nf-core/ganon/classify/main.nf @@ -1,24 +1,23 @@ process GANON_CLASSIFY { - tag "$meta.id" + tag "${meta.id}" label 'process_high' - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ganon:2.0.0--py39ha35b9be_0': - 'biocontainers/ganon:2.0.0--py39ha35b9be_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/ganon:2.1.0--py310hab1bfa5_1' + : 'biocontainers/ganon:2.1.0--py310hab1bfa5_1'}" input: - tuple val(meta) , path(fastqs) - path(db) + tuple val(meta), path(fastqs) + path db output: tuple val(meta), path("*.tre"), emit: tre tuple val(meta), path("*.rep"), emit: report - tuple val(meta), path("*.one"), emit: one , optional: true - tuple val(meta), path("*.all"), emit: all , optional: true - tuple val(meta), path("*.unc"), emit: unc , optional: true + tuple val(meta), path("*.one"), emit: one, optional: true + tuple val(meta), path("*.all"), emit: all, optional: true + tuple val(meta), path("*.unc"), emit: unc, optional: true tuple val(meta), path("*.log"), emit: log - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -26,17 +25,17 @@ process GANON_CLASSIFY { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = meta.single_end ? "--single-reads ${fastqs}" : "--paired-reads ${fastqs}" + def input = meta.single_end ? "--single-reads ${fastqs}" : "--paired-reads ${fastqs}" """ dbprefix=\$(find -L . -name '*.*ibf' | sed 's/\\.h\\?ibf\$//') ganon \\ classify \\ --db-prefix \${dbprefix%%.*ibf} \\ - $args \\ - --threads $task.cpus \\ + ${args} \\ + --threads ${task.cpus} \\ --output-prefix ${prefix} \\ - $input \ + ${input} \ 2>&1 | tee ${prefix}.log cat <<-END_VERSIONS > versions.yml @@ -48,7 +47,7 @@ process GANON_CLASSIFY { stub: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = meta.single_end ? "--single-reads ${fastqs}" : "--paired-reads ${fastqs}" + def input = meta.single_end ? "--single-reads ${fastqs}" : "--paired-reads ${fastqs}" """ touch ${prefix}.tre touch ${prefix}.rep diff --git a/modules/nf-core/ganon/classify/tests/main.nf.test b/modules/nf-core/ganon/classify/tests/main.nf.test index e581ca065eb..40ea069e782 100644 --- a/modules/nf-core/ganon/classify/tests/main.nf.test +++ b/modules/nf-core/ganon/classify/tests/main.nf.test @@ -20,8 +20,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } @@ -46,8 +47,11 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.tre, - process.out.report).match()}, + { assert snapshot( + process.out.tre, + process.out.report, + process.out.versions + ).match()}, { assert file(process.out.log[0][1]).text.contains("Total elapsed time:") } ) } @@ -74,8 +78,12 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.tre, - process.out.report).match()}, + { assert snapshot( + process.out.tre, + process.out.report, + process.out.versions + ).match() + }, { assert file(process.out.log[0][1]).text.contains("Total elapsed time:") } ) } diff --git a/modules/nf-core/ganon/classify/tests/main.nf.test.snap b/modules/nf-core/ganon/classify/tests/main.nf.test.snap index 40b36b14fcc..1006fc57e5b 100644 --- a/modules/nf-core/ganon/classify/tests/main.nf.test.snap +++ b/modules/nf-core/ganon/classify/tests/main.nf.test.snap @@ -57,7 +57,7 @@ ] ], "6": [ - "versions.yml:md5,e13af9e126ff4a9ea7ee4b706fbbc0bb" + "versions.yml:md5,7c113ab3c2c1ea32c9f27ceef48db17a" ], "all": [ [ @@ -114,11 +114,15 @@ ] ], "versions": [ - "versions.yml:md5,e13af9e126ff4a9ea7ee4b706fbbc0bb" + "versions.yml:md5,7c113ab3c2c1ea32c9f27ceef48db17a" ] } ], - "timestamp": "2024-01-06T15:08:06.626813557" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T17:06:22.835846753" }, "sarscov2 paired-end [fastq]": { "content": [ @@ -139,9 +143,16 @@ }, "test.rep:md5,757e5cbf7a978913277401285d743336" ] + ], + [ + "versions.yml:md5,7c113ab3c2c1ea32c9f27ceef48db17a" ] ], - "timestamp": "2024-01-06T15:07:49.528458193" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T19:26:16.339673954" }, "sarscov2 single-end [fastq]": { "content": [ @@ -162,8 +173,15 @@ }, "test.rep:md5,9b5f8051aa459a80a678e36259a15746" ] + ], + [ + "versions.yml:md5,7c113ab3c2c1ea32c9f27ceef48db17a" ] ], - "timestamp": "2024-01-06T15:07:12.092925016" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T19:25:41.074523387" } } \ No newline at end of file diff --git a/modules/nf-core/ganon/classify/tests/nextflow.config b/modules/nf-core/ganon/classify/tests/nextflow.config index 18712875d15..56bec927bd3 100644 --- a/modules/nf-core/ganon/classify/tests/nextflow.config +++ b/modules/nf-core/ganon/classify/tests/nextflow.config @@ -1,7 +1,8 @@ process { - + withName: GANON_BUILDCUSTOM { + ext.args = "--input-target sequence" + } withName: GANON_CLASSIFY { ext.args = "--output-one --output-all --output-unclassified" } - } diff --git a/modules/nf-core/ganon/report/environment.yml b/modules/nf-core/ganon/report/environment.yml index 98f34de89e1..0e073d5ba75 100644 --- a/modules/nf-core/ganon/report/environment.yml +++ b/modules/nf-core/ganon/report/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::ganon=2.0.0 + - bioconda::ganon=2.1.0 diff --git a/modules/nf-core/ganon/report/main.nf b/modules/nf-core/ganon/report/main.nf index 2b1998f154a..3f520de0e7b 100644 --- a/modules/nf-core/ganon/report/main.nf +++ b/modules/nf-core/ganon/report/main.nf @@ -1,11 +1,10 @@ process GANON_REPORT { - tag "$meta.id" + tag "${meta.id}" label 'process_single' - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ganon:2.0.0--py39ha35b9be_0': - 'biocontainers/ganon:2.0.0--py39ha35b9be_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/ganon:2.1.0--py310hab1bfa5_1' + : 'biocontainers/ganon:2.1.0--py310hab1bfa5_1'}" input: tuple val(meta), path(rep) @@ -13,7 +12,7 @@ process GANON_REPORT { output: tuple val(meta), path("*.tre"), emit: tre - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -30,7 +29,7 @@ process GANON_REPORT { --input ${rep} \\ --output-prefix ${prefix} \\ --db-prefix \${dbprefix%%.*ibf} \\ - $args + ${args} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/ganon/report/tests/main.nf.test b/modules/nf-core/ganon/report/tests/main.nf.test index d350eed066b..e6437b498bc 100644 --- a/modules/nf-core/ganon/report/tests/main.nf.test +++ b/modules/nf-core/ganon/report/tests/main.nf.test @@ -21,8 +21,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } diff --git a/modules/nf-core/ganon/report/tests/main.nf.test.snap b/modules/nf-core/ganon/report/tests/main.nf.test.snap index abad8035e3f..ee248e7d173 100644 --- a/modules/nf-core/ganon/report/tests/main.nf.test.snap +++ b/modules/nf-core/ganon/report/tests/main.nf.test.snap @@ -12,7 +12,7 @@ ] ], "1": [ - "versions.yml:md5,7219068902254fbc97f84e8e163213d0" + "versions.yml:md5,e405868d6136de433a8ddbd8e6e3333d" ], "tre": [ [ @@ -24,11 +24,15 @@ ] ], "versions": [ - "versions.yml:md5,7219068902254fbc97f84e8e163213d0" + "versions.yml:md5,e405868d6136de433a8ddbd8e6e3333d" ] } ], - "timestamp": "2024-01-06T18:50:07.439069779" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T17:09:42.438141974" }, "sarscov2 single-end [fastq]": { "content": [ @@ -43,7 +47,7 @@ ] ], "1": [ - "versions.yml:md5,7219068902254fbc97f84e8e163213d0" + "versions.yml:md5,e405868d6136de433a8ddbd8e6e3333d" ], "tre": [ [ @@ -55,10 +59,14 @@ ] ], "versions": [ - "versions.yml:md5,7219068902254fbc97f84e8e163213d0" + "versions.yml:md5,e405868d6136de433a8ddbd8e6e3333d" ] } ], - "timestamp": "2024-01-06T18:49:52.505817066" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T18:32:50.997968794" } } \ No newline at end of file diff --git a/modules/nf-core/ganon/report/tests/nextflow.config b/modules/nf-core/ganon/report/tests/nextflow.config index e6dd3131e9f..96982fa8331 100644 --- a/modules/nf-core/ganon/report/tests/nextflow.config +++ b/modules/nf-core/ganon/report/tests/nextflow.config @@ -1,4 +1,7 @@ process { + withName: GANON_BUILDCUSTOM { + ext.args = "--input-target sequence" + } withName: GANON_CLASSIFY { ext.args = "--output-one --output-all --output-unclassified" } diff --git a/modules/nf-core/ganon/table/environment.yml b/modules/nf-core/ganon/table/environment.yml index 98f34de89e1..0e073d5ba75 100644 --- a/modules/nf-core/ganon/table/environment.yml +++ b/modules/nf-core/ganon/table/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::ganon=2.0.0 + - bioconda::ganon=2.1.0 diff --git a/modules/nf-core/ganon/table/main.nf b/modules/nf-core/ganon/table/main.nf index d8f247c151d..1e3fca6b453 100644 --- a/modules/nf-core/ganon/table/main.nf +++ b/modules/nf-core/ganon/table/main.nf @@ -1,18 +1,17 @@ process GANON_TABLE { - tag "$meta.id" + tag "${meta.id}" label 'process_single' - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ganon:2.0.0--py39ha35b9be_0': - 'biocontainers/ganon:2.0.0--py39ha35b9be_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/ganon:2.1.0--py310hab1bfa5_1' + : 'biocontainers/ganon:2.1.0--py310hab1bfa5_1'}" input: tuple val(meta), path(tre) output: tuple val(meta), path("*.txt"), emit: txt - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -25,7 +24,7 @@ process GANON_TABLE { table \\ --input ${tre} \\ --output-file ${prefix}.txt \\ - $args + ${args} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/ganon/table/tests/main.nf.test b/modules/nf-core/ganon/table/tests/main.nf.test index 43b6cf0a1d1..9aae4ead0c5 100644 --- a/modules/nf-core/ganon/table/tests/main.nf.test +++ b/modules/nf-core/ganon/table/tests/main.nf.test @@ -22,8 +22,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } diff --git a/modules/nf-core/ganon/table/tests/main.nf.test.snap b/modules/nf-core/ganon/table/tests/main.nf.test.snap index 2c5c312d0c7..2346f7a713c 100644 --- a/modules/nf-core/ganon/table/tests/main.nf.test.snap +++ b/modules/nf-core/ganon/table/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,1cec68ee4a3dcc057d475497732b72c1" + "versions.yml:md5,6a8b6c7a69b2bdd5490414f3352b5a7d" ], "txt": [ [ @@ -22,11 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,1cec68ee4a3dcc057d475497732b72c1" + "versions.yml:md5,6a8b6c7a69b2bdd5490414f3352b5a7d" ] } ], - "timestamp": "2024-01-07T14:27:58.631022945" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T17:13:04.938896022" }, "sarscov2 single-end [fastq]": { "content": [ @@ -40,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,1cec68ee4a3dcc057d475497732b72c1" + "versions.yml:md5,6a8b6c7a69b2bdd5490414f3352b5a7d" ], "txt": [ [ @@ -51,10 +55,14 @@ ] ], "versions": [ - "versions.yml:md5,1cec68ee4a3dcc057d475497732b72c1" + "versions.yml:md5,6a8b6c7a69b2bdd5490414f3352b5a7d" ] } ], - "timestamp": "2024-01-07T14:27:37.318272937" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T18:33:41.271256635" } } \ No newline at end of file diff --git a/modules/nf-core/ganon/table/tests/nextflow.config b/modules/nf-core/ganon/table/tests/nextflow.config index 26114b4cf7b..e6d79357789 100644 --- a/modules/nf-core/ganon/table/tests/nextflow.config +++ b/modules/nf-core/ganon/table/tests/nextflow.config @@ -1,11 +1,13 @@ process { + withName: GANON_BUILDCUSTOM { + ext.args = "--input-target sequence" + } withName: GANON_CLASSIFY { ext.args = "--output-one --output-all --output-unclassified" } withName: GANON_REPORT { ext.args = "--report-type reads --output-format tsv" } - withName: GANON_TABLE { ext.args = "--output-format tsv --output-value percentages" } From fcbacea597a35899fada99e82170b9a5f8d16faf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 08:12:40 +0200 Subject: [PATCH 28/36] Update GitHub Actions (#6750) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/fix-linting.yml | 2 +- .github/workflows/test.yml | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index c0c0e4bd36e..30bfcffb8ec 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8be6d86d95d..a50fd46f895 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,7 +29,7 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 - uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 # FIXME Flip this off once we get to less than a couple hundred. Adding @@ -42,7 +42,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Install NodeJS uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4 @@ -58,7 +58,7 @@ jobs: editorconfig: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4 with: @@ -78,7 +78,7 @@ jobs: modules: ${{ steps.tags.outputs.modules }} subworkflows: ${{ steps.tags.outputs.subworkflows }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: fetch-depth: 2 # To retrieve the preceding commit. @@ -111,7 +111,7 @@ jobs: # Prod for version bumping steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: fetch-depth: 0 @@ -148,14 +148,14 @@ jobs: "${{ fromJson(needs.nf-test-changes.outputs.modules) }}", ] steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.11" - - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + - uses: actions/cache@2cdf405574d6ef1f33a1d12acccd3ae82f47b3f2 # v4 id: cache-pip with: path: ~/.cache/pip @@ -194,7 +194,7 @@ jobs: "${{ fromJson(needs.nf-test-changes.outputs.subworkflows) }}", ] steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 @@ -398,14 +398,14 @@ jobs: NXF_ANSI_LOG: false steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.11" - - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + - uses: actions/cache@2cdf405574d6ef1f33a1d12acccd3ae82f47b3f2 # v4 id: cache-pip-pytest with: path: ~/.cache/pip @@ -472,7 +472,7 @@ jobs: - name: Upload logs on failure if: failure() - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4 + uses: actions/upload-artifact@604373da6381bf24206979c74d06a550515601b9 # v4 with: name: logs-${{ matrix.profile }}-${{ steps.parsed.outputs.result }} path: | @@ -653,7 +653,7 @@ jobs: SENTIEON_ENCRYPTION_KEY: ${{ secrets.SENTIEON_ENCRYPTION_KEY }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - uses: actions/setup-java@b36c23c0d998641eff861008f374ee103c25ac73 # v4 with: @@ -682,7 +682,7 @@ jobs: with: python-version: "3.11" - - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + - uses: actions/cache@2cdf405574d6ef1f33a1d12acccd3ae82f47b3f2 # v4 id: cache-pip-pdiff with: path: ~/.cache/pip From f85dbddd7a335fc0f5ac331e8d22ca94123b654b Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:03:50 +0200 Subject: [PATCH 29/36] add index to bcftools filter input to enable region filtering (#6751) add index to bcftools filter input --- modules/nf-core/bcftools/filter/main.nf | 2 +- modules/nf-core/bcftools/filter/meta.yml | 4 ++ .../bcftools/filter/tests/main.nf.test | 52 +++++++++++++++---- .../bcftools/filter/tests/main.nf.test.snap | 45 ++++++++++++++++ .../filter/tests/region_filter.config | 4 ++ 5 files changed, 97 insertions(+), 10 deletions(-) create mode 100644 modules/nf-core/bcftools/filter/tests/region_filter.config diff --git a/modules/nf-core/bcftools/filter/main.nf b/modules/nf-core/bcftools/filter/main.nf index 8f92c51a2e2..36cbf8c2be2 100644 --- a/modules/nf-core/bcftools/filter/main.nf +++ b/modules/nf-core/bcftools/filter/main.nf @@ -8,7 +8,7 @@ process BCFTOOLS_FILTER { 'biocontainers/bcftools:1.20--h8b25389_0' }" input: - tuple val(meta), path(vcf) + tuple val(meta), path(vcf), path(tbi) output: tuple val(meta), path("*.${extension}"), emit: vcf diff --git a/modules/nf-core/bcftools/filter/meta.yml b/modules/nf-core/bcftools/filter/meta.yml index 8ac594fc222..d72f27554e9 100644 --- a/modules/nf-core/bcftools/filter/meta.yml +++ b/modules/nf-core/bcftools/filter/meta.yml @@ -23,6 +23,10 @@ input: type: file description: VCF input file pattern: "*.{vcf,bcf,vcf.gz,bcf.gz}" + - tbi: + type: file + description: VCF index file + pattern: "*.tbi" output: - vcf: - meta: diff --git a/modules/nf-core/bcftools/filter/tests/main.nf.test b/modules/nf-core/bcftools/filter/tests/main.nf.test index 646f37adaec..fadff0e30e2 100644 --- a/modules/nf-core/bcftools/filter/tests/main.nf.test +++ b/modules/nf-core/bcftools/filter/tests/main.nf.test @@ -18,7 +18,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -42,7 +43,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -72,7 +74,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -102,7 +105,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -132,7 +136,8 @@ nextflow_process { """ input[0] = [ [id:"bcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -147,6 +152,31 @@ nextflow_process { } + test("sarscov2 - vcf.gz, tbi - region filter") { + + config "./region_filter.config" + + when { + process { + """ + input[0] = [ + [id:"bcf_test"], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match("region filter") } + ) + } + + } + test("sarscov2 - vcf - stub") { config "./nextflow.config" @@ -157,7 +187,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -182,7 +213,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -208,7 +240,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -234,7 +267,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } diff --git a/modules/nf-core/bcftools/filter/tests/main.nf.test.snap b/modules/nf-core/bcftools/filter/tests/main.nf.test.snap index 3d7605f2665..640907e4209 100644 --- a/modules/nf-core/bcftools/filter/tests/main.nf.test.snap +++ b/modules/nf-core/bcftools/filter/tests/main.nf.test.snap @@ -1,4 +1,49 @@ { + "region filter": { + "content": [ + { + "0": [ + [ + { + "id": "bcf_test" + }, + "bcf_test_vcf.vcf.gz:md5,8e722884ffb75155212a3fc053918766" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,9a336d1ee26b527d7a2bdbeead155f64" + ], + "csi": [ + + ], + "tbi": [ + + ], + "vcf": [ + [ + { + "id": "bcf_test" + }, + "bcf_test_vcf.vcf.gz:md5,8e722884ffb75155212a3fc053918766" + ] + ], + "versions": [ + "versions.yml:md5,9a336d1ee26b527d7a2bdbeead155f64" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T09:14:47.394005264" + }, "sarscov2 - vcf_gz_index_tbi - stub": { "content": [ { diff --git a/modules/nf-core/bcftools/filter/tests/region_filter.config b/modules/nf-core/bcftools/filter/tests/region_filter.config new file mode 100644 index 00000000000..b18fb4bf0da --- /dev/null +++ b/modules/nf-core/bcftools/filter/tests/region_filter.config @@ -0,0 +1,4 @@ +process { + ext.prefix = { "${meta.id}_vcf" } + ext.args = "--output-type z -r MT192765.1 --no-version" +} From b7800db9b069ed505db3f9d91b8c72faea9be17b Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Tue, 8 Oct 2024 13:22:31 +0200 Subject: [PATCH 30/36] add tests for multiple input files (#6752) * add tests for multiple input files * align * capture header and readsMD5 * no need to capture header/readsMD5 --- modules/nf-core/samtools/sort/main.nf | 10 +- .../nf-core/samtools/sort/tests/main.nf.test | 64 ++++++++++++ .../samtools/sort/tests/main.nf.test.snap | 99 ++++++++++++++++++- 3 files changed, 166 insertions(+), 7 deletions(-) diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index acfd9252ce4..caf3c61a87d 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -12,11 +12,11 @@ process SAMTOOLS_SORT { tuple val(meta2), path(fasta) output: - tuple val(meta), path("*.bam"), emit: bam, optional: true - tuple val(meta), path("*.cram"), emit: cram, optional: true - tuple val(meta), path("*.crai"), emit: crai, optional: true - tuple val(meta), path("*.csi"), emit: csi, optional: true - path "versions.yml" , emit: versions + tuple val(meta), path("*.bam"), emit: bam, optional: true + tuple val(meta), path("*.cram"), emit: cram, optional: true + tuple val(meta), path("*.crai"), emit: crai, optional: true + tuple val(meta), path("*.csi"), emit: csi, optional: true + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test b/modules/nf-core/samtools/sort/tests/main.nf.test index c2ea9c72ac1..b05e6691bea 100644 --- a/modules/nf-core/samtools/sort/tests/main.nf.test +++ b/modules/nf-core/samtools/sort/tests/main.nf.test @@ -39,6 +39,40 @@ nextflow_process { } } + test("multiple bam") { + + config "./nextflow.config" + + 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.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam', checkIfExists: true) + ] + ]) + input[1] = Channel.of([ + [ id:'fasta' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + process.out.bam, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.versions + ).match()} + ) + } + } + test("cram") { config "./nextflow_cram.config" @@ -98,6 +132,36 @@ nextflow_process { } } + test("multiple bam - stub") { + + config "./nextflow.config" + + 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.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam', checkIfExists: true) + ] + ]) + input[1] = Channel.of([ + [ id:'fasta' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + test("cram - stub") { options "-stub" diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test.snap b/modules/nf-core/samtools/sort/tests/main.nf.test.snap index 2d6b2900432..469891fe3ea 100644 --- a/modules/nf-core/samtools/sort/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/sort/tests/main.nf.test.snap @@ -159,6 +159,101 @@ }, "timestamp": "2024-09-16T08:50:19.061912443" }, + "multiple bam": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,8a16ba90c7d294cbb4c33ac0f7127a12" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi" + ] + ], + [ + "versions.yml:md5,2659b187d681241451539d4c53500b9f" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.09.0" + }, + "timestamp": "2024-10-08T11:59:55.479443" + }, + "multiple bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,8a16ba90c7d294cbb4c33ac0f7127a12" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi:md5,d185916eaff9afeb4d0aeab3310371f9" + ] + ], + "4": [ + "versions.yml:md5,2659b187d681241451539d4c53500b9f" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,8a16ba90c7d294cbb4c33ac0f7127a12" + ] + ], + "crai": [ + + ], + "cram": [ + + ], + "csi": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi:md5,d185916eaff9afeb4d0aeab3310371f9" + ] + ], + "versions": [ + "versions.yml:md5,2659b187d681241451539d4c53500b9f" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.09.0" + }, + "timestamp": "2024-10-08T11:36:13.781404" + }, "bam": { "content": [ [ @@ -185,8 +280,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.09.0" }, - "timestamp": "2024-09-16T08:49:43.971158333" + "timestamp": "2024-10-08T11:59:46.372244" } } \ No newline at end of file From c57727832a7c4627bcc1d16cb93fd100ec3dc870 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 09:24:31 +0200 Subject: [PATCH 31/36] Update actions/cache digest to 3624ceb (#6757) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a50fd46f895..e689240e9b7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -155,7 +155,7 @@ jobs: with: python-version: "3.11" - - uses: actions/cache@2cdf405574d6ef1f33a1d12acccd3ae82f47b3f2 # v4 + - uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4 id: cache-pip with: path: ~/.cache/pip @@ -405,7 +405,7 @@ jobs: with: python-version: "3.11" - - uses: actions/cache@2cdf405574d6ef1f33a1d12acccd3ae82f47b3f2 # v4 + - uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4 id: cache-pip-pytest with: path: ~/.cache/pip @@ -682,7 +682,7 @@ jobs: with: python-version: "3.11" - - uses: actions/cache@2cdf405574d6ef1f33a1d12acccd3ae82f47b3f2 # v4 + - uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4 id: cache-pip-pdiff with: path: ~/.cache/pip From 9d05360da397692321d377b6102d2fb22507c6ef Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 9 Oct 2024 10:25:25 +0200 Subject: [PATCH 32/36] =?UTF-8?q?Fix=20large=20comment=20block=20headers?= =?UTF-8?q?=20so=20they=20don't=20cause=20phantom=20merge=20con=E2=80=A6?= =?UTF-8?q?=20(#6755)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix large comment block headers so they don't cause phantom merge conflicts * Apply suggestions from code review * fix color code --------- Co-authored-by: JĂșlia Mir Pedrol --- .../filtervep/tests/nextflow.config | 10 +- .../ensemblvep/filtervep/tests/tab.gz.config | 8 +- .../ensemblvep/filtervep/tests/vcf.config | 6 +- .../nf-core/utils_nextflow_pipeline/main.nf | 46 ++- .../nf-core/utils_nfcore_pipeline/main.nf | 279 ++++++++++-------- .../nf-core/utils_nfvalidation_plugin/main.nf | 17 +- 6 files changed, 190 insertions(+), 176 deletions(-) diff --git a/modules/nf-core/ensemblvep/filtervep/tests/nextflow.config b/modules/nf-core/ensemblvep/filtervep/tests/nextflow.config index aee2e62b02f..16cfe993999 100644 --- a/modules/nf-core/ensemblvep/filtervep/tests/nextflow.config +++ b/modules/nf-core/ensemblvep/filtervep/tests/nextflow.config @@ -1,10 +1,10 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ params { - vep_cache_version = "112" - vep_genome = "WBcel235" - vep_species = "caenorhabditis_elegans" + vep_cache_version = "112" + vep_genome = "WBcel235" + vep_species = "caenorhabditis_elegans" } diff --git a/modules/nf-core/ensemblvep/filtervep/tests/tab.gz.config b/modules/nf-core/ensemblvep/filtervep/tests/tab.gz.config index 0aa5ea75228..cdad2d94d35 100644 --- a/modules/nf-core/ensemblvep/filtervep/tests/tab.gz.config +++ b/modules/nf-core/ensemblvep/filtervep/tests/tab.gz.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ process { @@ -13,12 +13,12 @@ process { } withName: ENSEMBLVEP_VEP { - ext.args = '--tab' + ext.args = '--tab' ext.prefix = { "${meta.id}_vep" } } withName: ENSEMBLVEP_FILTERVEP { - ext.args = '--filter "Feature_type is Transcript"' + ext.args = '--filter "Feature_type is Transcript"' ext.suffix = "tab" } } diff --git a/modules/nf-core/ensemblvep/filtervep/tests/vcf.config b/modules/nf-core/ensemblvep/filtervep/tests/vcf.config index 0b65fe5c4f1..ee2aef5745b 100644 --- a/modules/nf-core/ensemblvep/filtervep/tests/vcf.config +++ b/modules/nf-core/ensemblvep/filtervep/tests/vcf.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ process { @@ -13,7 +13,7 @@ process { } withName: ENSEMBLVEP_VEP { - ext.args = '--vcf' + ext.args = '--vcf' ext.prefix = { "${meta.id}_vep" } } diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf index 28e32b200e4..2b0dc67a6a0 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -3,13 +3,12 @@ // /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBWORKFLOW DEFINITION -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow UTILS_NEXTFLOW_PIPELINE { - take: print_version // boolean: print version dump_parameters // boolean: dump parameters @@ -22,7 +21,7 @@ workflow UTILS_NEXTFLOW_PIPELINE { // Print workflow version and exit on --version // if (print_version) { - log.info "${workflow.manifest.name} ${getWorkflowVersion()}" + log.info("${workflow.manifest.name} ${getWorkflowVersion()}") System.exit(0) } @@ -45,9 +44,9 @@ workflow UTILS_NEXTFLOW_PIPELINE { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FUNCTIONS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // @@ -72,11 +71,11 @@ def getWorkflowVersion() { // Dump pipeline parameters to a JSON file // def dumpParametersToJSON(outdir) { - def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') - def filename = "params_${timestamp}.json" - def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") - def jsonStr = groovy.json.JsonOutput.toJson(params) - temp_pf.text = groovy.json.JsonOutput.prettyPrint(jsonStr) + def timestamp = new java.util.Date().format('yyyy-MM-dd_HH-mm-ss') + def filename = "params_${timestamp}.json" + def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") + def jsonStr = groovy.json.JsonOutput.toJson(params) + temp_pf.text = groovy.json.JsonOutput.prettyPrint(jsonStr) nextflow.extension.FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") temp_pf.delete() @@ -91,9 +90,14 @@ def checkCondaChannels() { try { def config = parser.load("conda config --show channels".execute().text) channels = config.channels - } catch(NullPointerException | IOException e) { - log.warn "Could not verify conda channel configuration." - return + } + catch (NullPointerException e) { + log.warn("Could not verify conda channel configuration.") + return null + } + catch (IOException e) { + log.warn("Could not verify conda channel configuration.") + return null } // Check that all channels are present @@ -106,19 +110,13 @@ def checkCondaChannels() { required_channels_in_order.eachWithIndex { channel, index -> if (index < required_channels_in_order.size() - 1) { - channel_priority_violation |= !(channels.indexOf(channel) < channels.indexOf(required_channels_in_order[index+1])) + channel_priority_violation |= !(channels.indexOf(channel) < channels.indexOf(required_channels_in_order[index + 1])) } } 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( + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\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" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + ) } } diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index cbd8495bb60..8cda47bcff3 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -3,13 +3,12 @@ // /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBWORKFLOW DEFINITION -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow UTILS_NFCORE_PIPELINE { - take: nextflow_cli_args @@ -22,9 +21,9 @@ workflow UTILS_NFCORE_PIPELINE { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FUNCTIONS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // @@ -33,12 +32,9 @@ workflow UTILS_NFCORE_PIPELINE { def checkConfigProvided() { def valid_config = true as Boolean if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { - log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + - "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + - " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + - " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + - " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + - "Please refer to the quick start section and usage docs for the pipeline.\n " + log.warn( + "[${workflow.manifest.name}] You are attempting to run the pipeline without any custom configuration!\n\n" + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + "Please refer to the quick start section and usage docs for the pipeline.\n " + ) valid_config = false } return valid_config @@ -49,12 +45,14 @@ def checkConfigProvided() { // def checkProfileProvided(nextflow_cli_args) { if (workflow.profile.endsWith(',')) { - error "The `-profile` option cannot end with a trailing comma, please remove it and re-run the pipeline!\n" + - "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + error( + "The `-profile` option cannot end with a trailing comma, please remove it and re-run the pipeline!\n" + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + ) } if (nextflow_cli_args[0]) { - log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${nextflow_cli_args[0]}` has been detected.\n" + - "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + log.warn( + "nf-core pipelines do not accept positional arguments. The positional argument `${nextflow_cli_args[0]}` has been detected.\n" + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + ) } } @@ -70,13 +68,7 @@ def workflowCitation() { manifest_doi.each { doi_ref -> temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" } - return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + - "* The pipeline\n" + - temp_doi_ref + "\n" + - "* The nf-core framework\n" + - " https://doi.org/10.1038/s41587-020-0439-x\n\n" + - "* Software dependencies\n" + - " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" + return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + "* The pipeline\n" + temp_doi_ref + "\n" + "* The nf-core framework\n" + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + "* Software dependencies\n" + " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" } // @@ -102,7 +94,7 @@ def getWorkflowVersion() { // def processVersionsFromYAML(yaml_file) { def yaml = new org.yaml.snakeyaml.Yaml() - def versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } + def versions = yaml.load(yaml_file).collectEntries { k, v -> [k.tokenize(':')[-1], v] } return yaml.dumpAsMap(versions).trim() } @@ -112,8 +104,8 @@ def processVersionsFromYAML(yaml_file) { def workflowVersionToYAML() { return """ Workflow: - $workflow.manifest.name: ${getWorkflowVersion()} - Nextflow: $workflow.nextflow.version + ${workflow.manifest.name}: ${getWorkflowVersion()} + Nextflow: ${workflow.nextflow.version} """.stripIndent().trim() } @@ -121,11 +113,7 @@ def workflowVersionToYAML() { // Get channel of software versions used in pipeline in YAML format // def softwareVersionsToYAML(ch_versions) { - return ch_versions - .unique() - .map { version -> processVersionsFromYAML(version) } - .unique() - .mix(Channel.of(workflowVersionToYAML())) + return ch_versions.unique().map { version -> processVersionsFromYAML(version) }.unique().mix(Channel.of(workflowVersionToYAML())) } // @@ -133,25 +121,31 @@ def softwareVersionsToYAML(ch_versions) { // def paramsSummaryMultiqc(summary_params) { def summary_section = '' - summary_params.keySet().each { group -> - def group_params = summary_params.get(group) // This gets the parameters of that particular group - if (group_params) { - summary_section += "

$group

\n" - summary_section += "
\n" - group_params.keySet().sort().each { param -> - summary_section += "
$param
${group_params.get(param) ?: 'N/A'}
\n" + summary_params + .keySet() + .each { group -> + def group_params = summary_params.get(group) + // This gets the parameters of that particular group + if (group_params) { + summary_section += "

${group}

\n" + summary_section += "
\n" + group_params + .keySet() + .sort() + .each { param -> + summary_section += "
${param}
${group_params.get(param) ?: 'N/A'}
\n" + } + summary_section += "
\n" } - summary_section += "
\n" } - } - def yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" as String - yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" - yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" - yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" - yaml_file_text += "plot_type: 'html'\n" - yaml_file_text += "data: |\n" - yaml_file_text += "${summary_section}" + def yaml_file_text = "id: '${workflow.manifest.name.replace('/', '-')}-summary'\n" as String + yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" + yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" + yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" + yaml_file_text += "plot_type: 'html'\n" + yaml_file_text += "data: |\n" + yaml_file_text += "${summary_section}" return yaml_file_text } @@ -199,54 +193,54 @@ def logColours(monochrome_logs=true) { colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" // Regular Colors - colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" - colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" - colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" - colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" - colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" - colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" - colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" - colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" + colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" + colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" + colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" + colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" + colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" + colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" + colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" + colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" // Bold - colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" - colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" - colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" - colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" - colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" - colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" - colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" - colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" + colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" + colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" + colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" + colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" + colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" + colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" + colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" + colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" // Underline - colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" - colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" - colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" - colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" - colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" - colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" - colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" - colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" + colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" + colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" + colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" + colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" + colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" + colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" + colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" + colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" // High Intensity - colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" - colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" - colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" - colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" - colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" - colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" - colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" - colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" + colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" + colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" + colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" + colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" + colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" + colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" + colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" + colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" // Bold High Intensity - colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" - colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" - colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" - colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" - colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" - colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" - colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" - colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" + colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" + colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" + colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" + colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" + colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" + colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" + colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" + colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" return colorcodes } @@ -261,14 +255,15 @@ def attachMultiqcReport(multiqc_report) { mqc_report = multiqc_report.getVal() if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { if (mqc_report.size() > 1) { - log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" + log.warn("[${workflow.manifest.name}] Found multiple reports from process 'MULTIQC', will use only one") } mqc_report = mqc_report[0] } } - } catch (all) { + } + catch (Exception all) { if (multiqc_report) { - log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" + log.warn("[${workflow.manifest.name}] Could not attach MultiQC report to summary email") } } return mqc_report @@ -280,26 +275,35 @@ def attachMultiqcReport(multiqc_report) { def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs=true, multiqc_report=null) { // Set up the e-mail variables - def subject = "[$workflow.manifest.name] Successful: $workflow.runName" + def subject = "[${workflow.manifest.name}] Successful: ${workflow.runName}" if (!workflow.success) { - subject = "[$workflow.manifest.name] FAILED: $workflow.runName" + subject = "[${workflow.manifest.name}] FAILED: ${workflow.runName}" } def summary = [:] - summary_params.keySet().sort().each { group -> - summary << summary_params[group] - } + summary_params + .keySet() + .sort() + .each { group -> + summary << summary_params[group] + } def misc_fields = [:] misc_fields['Date Started'] = workflow.start misc_fields['Date Completed'] = workflow.complete misc_fields['Pipeline script file path'] = workflow.scriptFile misc_fields['Pipeline script hash ID'] = workflow.scriptId - if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository - if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId - if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision - misc_fields['Nextflow Version'] = workflow.nextflow.version - misc_fields['Nextflow Build'] = workflow.nextflow.build + if (workflow.repository) { + misc_fields['Pipeline repository Git URL'] = workflow.repository + } + if (workflow.commitId) { + misc_fields['Pipeline repository Git Commit'] = workflow.commitId + } + if (workflow.revision) { + misc_fields['Pipeline Git branch/tag'] = workflow.revision + } + misc_fields['Nextflow Version'] = workflow.nextflow.version + misc_fields['Nextflow Build'] = workflow.nextflow.build misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp def email_fields = [:] @@ -337,7 +341,7 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi // Render the sendmail template def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit - def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "${workflow.projectDir}", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] + def smail_fields = [email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "${workflow.projectDir}", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes()] def sf = new File("${workflow.projectDir}/assets/sendmail_template.txt") def sendmail_template = engine.createTemplate(sf).make(smail_fields) def sendmail_html = sendmail_template.toString() @@ -346,30 +350,32 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi def colors = logColours(monochrome_logs) as Map if (email_address) { try { - if (plaintext_email) { throw new org.codehaus.groovy.GroovyException('Send plaintext e-mail, not HTML') } + if (plaintext_email) { +new org.codehaus.groovy.GroovyException('Send plaintext e-mail, not HTML') } // Try to send HTML e-mail using sendmail def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") sendmail_tf.withWriter { w -> w << sendmail_html } - [ 'sendmail', '-t' ].execute() << sendmail_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" - } catch (all) { + ['sendmail', '-t'].execute() << sendmail_html + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.green} Sent summary e-mail to ${email_address} (sendmail)-") + } + catch (Exception all) { // Catch failures and try with plaintext - def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] + def mail_cmd = ['mail', '-s', subject, '--content-type=text/html', email_address] mail_cmd.execute() << email_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.green} Sent summary e-mail to ${email_address} (mail)-") } } // Write summary e-mail HTML to a file def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") output_hf.withWriter { w -> w << email_html } - nextflow.extension.FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); + nextflow.extension.FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html") output_hf.delete() // Write summary e-mail TXT to a file def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") output_tf.withWriter { w -> w << email_txt } - nextflow.extension.FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); + nextflow.extension.FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt") output_tf.delete() } @@ -380,12 +386,14 @@ def completionSummary(monochrome_logs=true) { def colors = logColours(monochrome_logs) as Map if (workflow.success) { if (workflow.stats.ignoredCount == 0) { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.green} Pipeline completed successfully${colors.reset}-") + } + else { + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-") } - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" + } + else { + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.red} Pipeline completed with errors${colors.reset}-") } } @@ -394,21 +402,30 @@ def completionSummary(monochrome_logs=true) { // def imNotification(summary_params, hook_url) { def summary = [:] - summary_params.keySet().sort().each { group -> - summary << summary_params[group] - } + summary_params + .keySet() + .sort() + .each { group -> + summary << summary_params[group] + } def misc_fields = [:] - misc_fields['start'] = workflow.start - misc_fields['complete'] = workflow.complete - misc_fields['scriptfile'] = workflow.scriptFile - misc_fields['scriptid'] = workflow.scriptId - if (workflow.repository) misc_fields['repository'] = workflow.repository - if (workflow.commitId) misc_fields['commitid'] = workflow.commitId - if (workflow.revision) misc_fields['revision'] = workflow.revision - misc_fields['nxf_version'] = workflow.nextflow.version - misc_fields['nxf_build'] = workflow.nextflow.build - misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp + misc_fields['start'] = workflow.start + misc_fields['complete'] = workflow.complete + misc_fields['scriptfile'] = workflow.scriptFile + misc_fields['scriptid'] = workflow.scriptId + if (workflow.repository) { + misc_fields['repository'] = workflow.repository + } + if (workflow.commitId) { + misc_fields['commitid'] = workflow.commitId + } + if (workflow.revision) { + misc_fields['revision'] = workflow.revision + } + misc_fields['nxf_version'] = workflow.nextflow.version + misc_fields['nxf_build'] = workflow.nextflow.build + misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp def msg_fields = [:] msg_fields['version'] = getWorkflowVersion() @@ -433,13 +450,13 @@ def imNotification(summary_params, hook_url) { def json_message = json_template.toString() // POST - def post = new URL(hook_url).openConnection(); + def post = new URL(hook_url).openConnection() post.setRequestMethod("POST") post.setDoOutput(true) post.setRequestProperty("Content-Type", "application/json") - post.getOutputStream().write(json_message.getBytes("UTF-8")); - def postRC = post.getResponseCode(); - if (! postRC.equals(200)) { - log.warn(post.getErrorStream().getText()); + post.getOutputStream().write(json_message.getBytes("UTF-8")) + def postRC = post.getResponseCode() + if (!postRC.equals(200)) { + log.warn(post.getErrorStream().getText()) } } diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf index 2585b65d1b0..e50a5e35ab5 100644 --- a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf @@ -3,9 +3,9 @@ // /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IMPORT NF-VALIDATION PLUGIN -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ include { paramsHelp } from 'plugin/nf-validation' @@ -13,13 +13,12 @@ include { paramsSummaryLog } from 'plugin/nf-validation' include { validateParameters } from 'plugin/nf-validation' /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBWORKFLOW DEFINITION -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow UTILS_NFVALIDATION_PLUGIN { - take: print_help // boolean: print help workflow_command // string: default commmand used to run pipeline @@ -30,7 +29,7 @@ workflow UTILS_NFVALIDATION_PLUGIN { main: - log.debug "Using schema file: ${schema_filename}" + log.debug("Using schema file: ${schema_filename}") // Default values for strings pre_help_text = pre_help_text ?: '' @@ -41,19 +40,19 @@ workflow UTILS_NFVALIDATION_PLUGIN { // Print help message if needed // if (print_help) { - log.info pre_help_text + paramsHelp(workflow_command, parameters_schema: schema_filename) + post_help_text + log.info(pre_help_text + paramsHelp(workflow_command, parameters_schema: schema_filename) + post_help_text) System.exit(0) } // // Print parameter summary to stdout // - log.info pre_help_text + paramsSummaryLog(workflow, parameters_schema: schema_filename) + post_help_text + log.info(pre_help_text + paramsSummaryLog(workflow, parameters_schema: schema_filename) + post_help_text) // // Validate parameters relative to the parameter JSON schema // - if (validate_params){ + if (validate_params) { validateParameters(parameters_schema: schema_filename) } From 772684d9d66f37b650c8ba5146ac1ee3ecba2acb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BAlia=20Mir=20Pedrol?= Date: Wed, 9 Oct 2024 11:52:23 +0200 Subject: [PATCH 33/36] skip nested double quotes (#6758) --- subworkflows/nf-core/utils_nfcore_pipeline/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index 8cda47bcff3..b78273ca4c1 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -128,12 +128,12 @@ def paramsSummaryMultiqc(summary_params) { // This gets the parameters of that particular group if (group_params) { summary_section += "

${group}

\n" - summary_section += "
\n" + summary_section += "
\n" group_params .keySet() .sort() .each { param -> - summary_section += "
${param}
${group_params.get(param) ?: 'N/A'}
\n" + summary_section += "
${param}
${group_params.get(param) ?: 'N/A'}
\n" } summary_section += "
\n" } From f533459a222ac53eb4c6bb7a5f574e4069197cdb Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Wed, 9 Oct 2024 14:43:39 +0200 Subject: [PATCH 34/36] remove extra ~~~~~~ (#6760) --- subworkflows/nf-core/utils_nextflow_pipeline/main.nf | 8 ++++---- subworkflows/nf-core/utils_nfcore_pipeline/main.nf | 8 ++++---- subworkflows/nf-core/utils_nfvalidation_plugin/main.nf | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf index 2b0dc67a6a0..4d7f09c04dd 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -3,9 +3,9 @@ // /* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBWORKFLOW DEFINITION -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow UTILS_NEXTFLOW_PIPELINE { @@ -44,9 +44,9 @@ workflow UTILS_NEXTFLOW_PIPELINE { } /* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FUNCTIONS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index b78273ca4c1..805dcc424cf 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -3,9 +3,9 @@ // /* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBWORKFLOW DEFINITION -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow UTILS_NFCORE_PIPELINE { @@ -21,9 +21,9 @@ workflow UTILS_NFCORE_PIPELINE { } /* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FUNCTIONS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf index e50a5e35ab5..2398c620c5f 100644 --- a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf @@ -3,9 +3,9 @@ // /* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IMPORT NF-VALIDATION PLUGIN -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ include { paramsHelp } from 'plugin/nf-validation' @@ -13,9 +13,9 @@ include { paramsSummaryLog } from 'plugin/nf-validation' include { validateParameters } from 'plugin/nf-validation' /* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBWORKFLOW DEFINITION -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow UTILS_NFVALIDATION_PLUGIN { From 53fcc37e256ea30818fb793bbe98b63e4a40deb8 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Wed, 9 Oct 2024 19:57:02 +0200 Subject: [PATCH 35/36] FIX: fastq_fastqc_umitools_trimgalore - update snapshot (#6761) fix snapshot --- .../tests/main.nf.test.snap | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 b37a75c9bbc..264ffb2225e 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,14 +377,14 @@ ], [ - + null ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.09.0" }, - "timestamp": "2024-07-22T17:05:49.455992" + "timestamp": "2024-10-09T19:19:22.192915" }, "test single end read with UMI - stub": { "content": [ From d7462e71f9129083ce10c3fe953ed401781e0ebd Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Wed, 9 Oct 2024 22:26:31 +0200 Subject: [PATCH 36/36] Add stubs to spring module (#6756) * update module * remove pytest --------- Co-authored-by: Carson J Miller <68351153+CarsonJM@users.noreply.github.com> --- modules/nf-core/spring/compress/main.nf | 13 ++ .../spring/compress/tests/main.nf.test | 58 +++++++ .../spring/compress/tests/main.nf.test.snap | 26 ++++ modules/nf-core/spring/decompress/main.nf | 13 ++ .../spring/decompress/test/main.nf.test | 77 ++++++++++ .../spring/decompress/test/main.nf.test.snap | 144 ++++++++++++++++++ tests/config/pytest_modules.yml | 3 - 7 files changed, 331 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/spring/compress/main.nf b/modules/nf-core/spring/compress/main.nf index 2b096216e2c..5f8ceb374ef 100644 --- a/modules/nf-core/spring/compress/main.nf +++ b/modules/nf-core/spring/compress/main.nf @@ -37,4 +37,17 @@ process SPRING_COMPRESS { spring: ${VERSION} END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.1.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + touch ${prefix}.spring + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + spring: ${VERSION} + END_VERSIONS + """ + } diff --git a/modules/nf-core/spring/compress/tests/main.nf.test b/modules/nf-core/spring/compress/tests/main.nf.test index 45690c34fd6..ead6e028335 100644 --- a/modules/nf-core/spring/compress/tests/main.nf.test +++ b/modules/nf-core/spring/compress/tests/main.nf.test @@ -64,4 +64,62 @@ nextflow_process { } } + test("test-spring-compress-single-end-stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + [] + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.spring[0][1]).name, + process.out.versions + ).match() + } + ) + } + } + + test("test-spring-compress-paired-end-stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.spring[0][1]).name, + process.out.versions + ).match() + } + ) + } + } + } diff --git a/modules/nf-core/spring/compress/tests/main.nf.test.snap b/modules/nf-core/spring/compress/tests/main.nf.test.snap index c3a8912b2ee..957e1ed4200 100644 --- a/modules/nf-core/spring/compress/tests/main.nf.test.snap +++ b/modules/nf-core/spring/compress/tests/main.nf.test.snap @@ -1,4 +1,30 @@ { + "test-spring-compress-single-end-stub": { + "content": [ + "test.spring", + [ + "versions.yml:md5,2882bc3a3593cb048417c38e7452a788" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T09:56:05.145653656" + }, + "test-spring-compress-paired-end-stub": { + "content": [ + "test.spring", + [ + "versions.yml:md5,2882bc3a3593cb048417c38e7452a788" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T09:56:11.592113469" + }, "test-spring-compress-single-end": { "content": [ "test.spring", diff --git a/modules/nf-core/spring/decompress/main.nf b/modules/nf-core/spring/decompress/main.nf index 4cf78299178..86ced26906f 100644 --- a/modules/nf-core/spring/decompress/main.nf +++ b/modules/nf-core/spring/decompress/main.nf @@ -38,4 +38,17 @@ process SPRING_DECOMPRESS { spring: ${VERSION} END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.1.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def output = write_one_fastq_gz ? "echo '' | gzip > ${prefix}.fastq.gz" : "echo '' | gzip > ${prefix}_R1.fastq.gz; echo '' | gzip > ${prefix}_R2.fastq.gz" + """ + ${output} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + spring: ${VERSION} + END_VERSIONS + """ } diff --git a/modules/nf-core/spring/decompress/test/main.nf.test b/modules/nf-core/spring/decompress/test/main.nf.test index 550c6746b82..9428a86bcff 100644 --- a/modules/nf-core/spring/decompress/test/main.nf.test +++ b/modules/nf-core/spring/decompress/test/main.nf.test @@ -8,6 +8,8 @@ nextflow_process { script "../main.nf" process "SPRING_DECOMPRESS" + + test("Write-One-File") { setup { @@ -75,4 +77,79 @@ nextflow_process { ) } } + + test("Write-One-File-stub") { + + options "-stub" + + setup { + run("SPRING_COMPRESS") { + options "-stub" + script "../../compress/main.nf" + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + [] + ] + """ + } + } + } + + when { + process { + """ + input[0] = SPRING_COMPRESS.out.spring + input[1] = true // write_one_fastq_gz + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("Write-Two-Files-stub") { + + options "-stub" + + setup { + run("SPRING_COMPRESS") { + options "-stub" + script "../../compress/main.nf" + process { + """ + input[0] = [ + [ id:'test2' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true), + ] + """ + } + } + } + + when { + process { + """ + input[0] = SPRING_COMPRESS.out.spring + input[1] = false // write_one_fastq_gz + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + } \ No newline at end of file diff --git a/modules/nf-core/spring/decompress/test/main.nf.test.snap b/modules/nf-core/spring/decompress/test/main.nf.test.snap index 14a11d2c41d..7dcadbab61d 100644 --- a/modules/nf-core/spring/decompress/test/main.nf.test.snap +++ b/modules/nf-core/spring/decompress/test/main.nf.test.snap @@ -1,4 +1,76 @@ { + "Write-One-File stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/2a6cfab794852e23e6324eb4955668b2/work/42/aee6c82c1ca502c3b02339f597188b/test.fastq.gz" + ] + ], + "1": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ], + "fastq": [ + [ + { + "id": "test" + }, + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/2a6cfab794852e23e6324eb4955668b2/work/42/aee6c82c1ca502c3b02339f597188b/test.fastq.gz" + ] + ], + "versions": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T10:03:50.626223289" + }, + "Write-Two-Files stub": { + "content": [ + { + "0": [ + [ + { + "id": "test2" + }, + [ + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/528557b5a81e4bffb57c38b19c7aa351/work/74/fc5d116d011bcd47d6f7de8d42ac34/test2_R1.fastq.gz", + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/528557b5a81e4bffb57c38b19c7aa351/work/74/fc5d116d011bcd47d6f7de8d42ac34/test2_R2.fastq.gz" + ] + ] + ], + "1": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ], + "fastq": [ + [ + { + "id": "test2" + }, + [ + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/528557b5a81e4bffb57c38b19c7aa351/work/74/fc5d116d011bcd47d6f7de8d42ac34/test2_R1.fastq.gz", + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/528557b5a81e4bffb57c38b19c7aa351/work/74/fc5d116d011bcd47d6f7de8d42ac34/test2_R2.fastq.gz" + ] + ] + ], + "versions": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T10:03:57.417015606" + }, "Write-Two-Files": { "content": [ { @@ -70,5 +142,77 @@ "nextflow": "24.04.2" }, "timestamp": "2024-06-21T13:02:07.466039653" + }, + "Write-One-File-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ], + "fastq": [ + [ + { + "id": "test" + }, + "test.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T13:55:53.594615215" + }, + "Write-Two-Files-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test2" + }, + [ + "test2_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test2_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ], + "fastq": [ + [ + { + "id": "test2" + }, + [ + "test2_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test2_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "versions": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T13:56:01.212228909" } } \ No newline at end of file diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 2d544dfd48c..5d8a9be3c4f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -636,9 +636,6 @@ sourmash/taxannotate: spatyper: - modules/nf-core/spatyper/** - tests/modules/nf-core/spatyper/** -spring/decompress: - - modules/nf-core/spring/decompress/** - - tests/modules/nf-core/spring/decompress/** srst2/srst2: - modules/nf-core/srst2/srst2/** - tests/modules/nf-core/srst2/srst2/**