diff --git a/modules.json b/modules.json index fc72254..143d68a 100644 --- a/modules.json +++ b/modules.json @@ -7,62 +7,62 @@ "nf-core": { "cnvkit/batch": { "branch": "master", - "git_sha": "f53b071421340e6fac0806c86ba030e578e94826", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "gatk4/annotateintervals": { "branch": "master", - "git_sha": "d742e3143f2ccb8853c29b35cfcf50b5e5026980", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "gatk4/bedtointervallist": { "branch": "master", - "git_sha": "d3f215802f696f7993f25c759781d2db91232015", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "gatk4/collectreadcounts": { "branch": "master", - "git_sha": "d742e3143f2ccb8853c29b35cfcf50b5e5026980", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "gatk4/createreadcountpanelofnormals": { "branch": "master", - "git_sha": "d742e3143f2ccb8853c29b35cfcf50b5e5026980", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "gatk4/createsomaticpanelofnormals": { "branch": "master", - "git_sha": "d742e3143f2ccb8853c29b35cfcf50b5e5026980", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["bam_create_som_pon_gatk"] }, "gatk4/determinegermlinecontigploidy": { "branch": "master", - "git_sha": "60a7dbae179bcfa24c10294cc9a07423a239c19a", + "git_sha": "d6dd4ddea1663edbf15f40e089cc16db96e75f1d", "installed_by": ["modules"] }, "gatk4/filterintervals": { "branch": "master", - "git_sha": "d742e3143f2ccb8853c29b35cfcf50b5e5026980", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "gatk4/genomicsdbimport": { "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["bam_create_som_pon_gatk"] }, "gatk4/germlinecnvcaller": { "branch": "master", - "git_sha": "cf607b7749da0a8f5ca2a1e31233e13e3159e2fe", + "git_sha": "d6dd4ddea1663edbf15f40e089cc16db96e75f1d", "installed_by": ["modules"] }, "gatk4/indexfeaturefile": { "branch": "master", - "git_sha": "108e1f5bafc045ac19890852a41e8d95ae12aa67", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "gatk4/intervallisttools": { "branch": "master", - "git_sha": "afb604624abcc2fc67a43d70a2de369a50d16105", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "gatk4/mutect2": { @@ -72,7 +72,7 @@ }, "gatk4/preprocessintervals": { "branch": "master", - "git_sha": "d742e3143f2ccb8853c29b35cfcf50b5e5026980", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "multiqc": { @@ -82,17 +82,17 @@ }, "picard/createsequencedictionary": { "branch": "master", - "git_sha": "20b0918591d4ba20047d7e13e5094bcceba81447", + "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["modules"] }, "samtools/faidx": { "branch": "master", - "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", + "git_sha": "b13f07be4c508d6ff6312d354d09f2493243e208", "installed_by": ["modules"] }, "samtools/index": { "branch": "master", - "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", + "git_sha": "b13f07be4c508d6ff6312d354d09f2493243e208", "installed_by": ["modules"] } } diff --git a/modules/nf-core/cnvkit/batch/environment.yml b/modules/nf-core/cnvkit/batch/environment.yml index 10c5d6b..5d79360 100644 --- a/modules/nf-core/cnvkit/batch/environment.yml +++ b/modules/nf-core/cnvkit/batch/environment.yml @@ -1,11 +1,8 @@ -name: cnvkit_batch - channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::cnvkit=0.9.10 - - bioconda::htslib=1.19.1 - - bioconda::samtools=1.19.2 + - bioconda::htslib=1.17 # Matched with the container + - bioconda::samtools=1.17 # Matched with the container diff --git a/modules/nf-core/cnvkit/batch/meta.yml b/modules/nf-core/cnvkit/batch/meta.yml index f14efe5..30f7a1a 100644 --- a/modules/nf-core/cnvkit/batch/meta.yml +++ b/modules/nf-core/cnvkit/batch/meta.yml @@ -12,94 +12,127 @@ tools: homepage: https://cnvkit.readthedocs.io/en/stable/index.html documentation: https://cnvkit.readthedocs.io/en/stable/index.html licence: ["Apache-2.0"] + identifier: biotools:cnvkit input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - tumor: - type: file - description: | - Input tumour sample bam file (or cram) - - normal: - type: file - description: | - Input normal sample bam file (or cram) - - meta2: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - fasta: - type: file - description: | - Input reference genome fasta file (only needed for cram_input and/or when normal_samples are provided) - - meta3: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - fasta_fai: - type: file - description: | - Input reference genome fasta index (optional, but recommended for cram_input) - - meta4: - type: map - description: | - Groovy Map containing information about target file - e.g. [ id:'test' ] - - targets: - type: file - description: | - Input target bed file - - meta5: - type: map - description: | - Groovy Map containing information about reference file - e.g. [ id:'test' ] - - reference: - type: file - description: | - Input reference cnn-file (only for germline and tumor-only running) - - panel_of_normals: - type: file - description: | - Input panel of normals file + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - tumor: + type: file + description: | + Input tumour sample bam file (or cram) + - normal: + type: file + description: | + Input normal sample bam file (or cram) + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fasta: + type: file + description: | + Input reference genome fasta file (only needed for cram_input and/or when normal_samples are provided) + - - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fasta_fai: + type: file + description: | + Input reference genome fasta index (optional, but recommended for cram_input) + - - meta4: + type: map + description: | + Groovy Map containing information about target file + e.g. [ id:'test' ] + - targets: + type: file + description: | + Input target bed file + - - meta5: + type: map + description: | + Groovy Map containing information about reference file + e.g. [ id:'test' ] + - reference: + type: file + description: | + Input reference cnn-file (only for germline and tumor-only running) + - - panel_of_normals: + type: file + description: | + Input panel of normals file output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - bed: - type: file - description: File containing genomic regions - pattern: "*.{bed}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.bed": + type: file + description: File containing genomic regions + pattern: "*.{bed}" - cnn: - type: file - description: File containing coverage information - pattern: "*.{cnn}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.cnn": + type: file + description: File containing coverage information + pattern: "*.{cnn}" - cnr: - type: file - description: File containing copy number ratio information - pattern: "*.{cnr}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.cnr": + type: file + description: File containing copy number ratio information + pattern: "*.{cnr}" - cns: - type: file - description: File containing copy number segment information - pattern: "*.{cns}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.cns": + type: file + description: File containing copy number segment information + pattern: "*.{cns}" - pdf: - type: file - description: File with plot of copy numbers or segments on chromosomes - pattern: "*.{pdf}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.pdf": + type: file + description: File with plot of copy numbers or segments on chromosomes + pattern: "*.{pdf}" - png: - type: file - description: File with plot of bin-level log2 coverages and segmentation calls - pattern: "*.{png}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.png": + type: file + description: File with plot of bin-level log2 coverages and segmentation calls + pattern: "*.{png}" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@adamrtalbot" - "@drpatelh" diff --git a/modules/nf-core/cnvkit/batch/tests/main.nf.test b/modules/nf-core/cnvkit/batch/tests/main.nf.test index b2c0a9b..f191a4b 100644 --- a/modules/nf-core/cnvkit/batch/tests/main.nf.test +++ b/modules/nf-core/cnvkit/batch/tests/main.nf.test @@ -18,12 +18,12 @@ nextflow_process { """ input[0] = [ [ id:'test' ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true) - ] - input[1] = [[:],file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)] + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam', checkIfExists: true) + ] + input[1] = [[:],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] input[2] = [[:],[]] - input[3] = [[:],file(params.test_data['sarscov2']['genome']['baits_bed'], checkIfExists: true)] + input[3] = [[:],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/bed/baits.bed', checkIfExists: true)] input[4] = [[:],[]] input[5] = false """ @@ -34,7 +34,7 @@ nextflow_process { println process.out.bed[0][1] assertAll( { assert process.success }, - { assert snapshot(process.out.version).match() } + { assert snapshot(process.out.versions).match() } ) } @@ -49,10 +49,10 @@ nextflow_process { """ input[0] = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) - ] - input[1] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) + ] + input[1] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] input[2] = [[:],[]] input[3] = [[:],[]] input[4] = [[:],[]] @@ -64,7 +64,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.version).match() } + { assert snapshot(process.out.versions).match() } ) } @@ -79,11 +79,11 @@ nextflow_process { """ input[0] = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true) - ] - input[1] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] - input[2] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)] + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true) + ] + input[1] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] + input[2] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)] input[3] = [[:],[]] input[4] = [[:],[]] input[5] = false @@ -94,7 +94,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.version).match() } + { assert snapshot(process.out.versions).match() } ) } @@ -109,13 +109,13 @@ nextflow_process { """ input[0] = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam', checkIfExists: true), [] - ] + ] input[1] = [[:],[]] input[2] = [[:],[]] input[3] = [[:],[]] - input[4] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_21_reference_cnn'], checkIfExists: true)] + input[4] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/reference_chr21.cnn', checkIfExists: true)] input[5] = false """ } @@ -124,7 +124,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.version).match() } + { assert snapshot(process.out.versions).match() } ) } @@ -139,13 +139,13 @@ nextflow_process { """ input[0] = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram', checkIfExists: true), [] - ] - input[1] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] + ] + input[1] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] input[2] = [[:],[]] input[3] = [[:],[]] - input[4] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_21_reference_cnn'], checkIfExists: true)] + input[4] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/reference_chr21.cnn', checkIfExists: true)] input[5] = false """ } @@ -154,7 +154,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.version).match() } + { assert snapshot(process.out.versions).match() } ) } @@ -168,11 +168,11 @@ nextflow_process { input[0] = [ [ id:'test'], // meta map [], - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true) - ] - input[1] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true)] - input[2] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true)] - input[3] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true)] + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram', checkIfExists: true) + ] + input[1] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true)] + input[2] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai', checkIfExists: true)] + input[3] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed', checkIfExists: true)] input[4] = [[:],[]] input[5] = false """ @@ -182,7 +182,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.version).match() } + { assert snapshot(process.out.versions).match() } ) } @@ -195,13 +195,13 @@ nextflow_process { process { """ input[0] = [ - [ id:'test' ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true) - ] - input[1] = [[:],file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)] + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam', checkIfExists: true) + ] + input[1] = [[:],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] input[2] = [[:],[]] - input[3] = [[:],file(params.test_data['sarscov2']['genome']['baits_bed'], checkIfExists: true)] + input[3] = [[:],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/bed/baits.bed', checkIfExists: true)] input[4] = [[:],[]] input[5] = false """ @@ -211,7 +211,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.version).match() } + { assert snapshot(process.out.versions).match() } ) } @@ -228,11 +228,12 @@ nextflow_process { input[0] = [ [ id:'test'], // meta map [], - [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true) + [ + 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] = [[:],file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] + ] + input[1] = [[:],file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] input[2] = [[:],[]] input[3] = [[:],[]] input[4] = [[:],[]] @@ -244,7 +245,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.version).match() } + { assert snapshot(process.out.versions).match() } ) } @@ -260,12 +261,12 @@ nextflow_process { """ input[0] = [ [ id:'test' ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true) - ] - input[1] = [[:],file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)] + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam', checkIfExists: true) + ] + input[1] = [[:],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] input[2] = [[:],[]] - input[3] = [[:],file(params.test_data['sarscov2']['genome']['baits_bed'], checkIfExists: true)] + input[3] = [[:],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/bed/baits.bed', checkIfExists: true)] input[4] = [[:],[]] input[5] = false """ @@ -275,7 +276,11 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.bed).match() } + { assert snapshot( + process.out.bed, + process.out.versions + ).match() + } ) } diff --git a/modules/nf-core/cnvkit/batch/tests/main.nf.test.snap b/modules/nf-core/cnvkit/batch/tests/main.nf.test.snap index 5d7cb14..205d43f 100644 --- a/modules/nf-core/cnvkit/batch/tests/main.nf.test.snap +++ b/modules/nf-core/cnvkit/batch/tests/main.nf.test.snap @@ -1,19 +1,27 @@ { "cnvkit batch tumouronly mode - bam": { - "content": null, + "content": [ + [ + "versions.yml:md5,5737e02065ca6359586a4078708c73e6" + ] + ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.3" }, - "timestamp": "2024-03-20T14:30:55.150317561" + "timestamp": "2024-08-07T10:07:07.53837" }, "cnvkit batch tumouronly mode - cram": { - "content": null, + "content": [ + [ + "versions.yml:md5,0310a792526148b05f434944a1167835" + ] + ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.3" }, - "timestamp": "2024-03-20T14:31:31.039652656" + "timestamp": "2024-08-07T10:07:48.900117" }, "cnvkit batch - bam - stub": { "content": [ @@ -27,60 +35,87 @@ "baits.target.bed:md5,26d25ff2d6c45b6d92169b3559c6acdb" ] ] + ], + [ + "versions.yml:md5,5737e02065ca6359586a4078708c73e6" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.3" }, - "timestamp": "2024-03-20T14:33:25.790391941" + "timestamp": "2024-08-07T10:09:40.098703" }, "cnvkit batch wgs - bam": { - "content": null, + "content": [ + [ + "versions.yml:md5,5737e02065ca6359586a4078708c73e6" + ] + ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.3" }, - "timestamp": "2024-03-20T14:30:10.677690173" + "timestamp": "2024-08-07T10:06:25.023798" }, "cnvkit batch germline hybrid mode - bam": { - "content": null, + "content": [ + [ + "versions.yml:md5,5737e02065ca6359586a4078708c73e6" + ] + ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.3" }, - "timestamp": "2024-03-20T14:32:50.217076532" + "timestamp": "2024-08-07T10:09:19.191221" }, "cnvkit batch hybrid mode - bam": { - "content": null, + "content": [ + [ + "versions.yml:md5,5737e02065ca6359586a4078708c73e6" + ] + ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.3" }, - "timestamp": "2024-03-20T13:54:41.69602289" + "timestamp": "2024-08-07T10:06:10.438545" }, "cnvkit batch wgs - cram": { - "content": null, + "content": [ + [ + "versions.yml:md5,0310a792526148b05f434944a1167835" + ] + ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.3" }, - "timestamp": "2024-03-20T14:30:27.271060826" + "timestamp": "2024-08-07T10:06:39.492881" }, "cnvkit batch pon mode - bam": { - "content": null, + "content": [ + [ + "versions.yml:md5,5737e02065ca6359586a4078708c73e6" + ] + ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.3" }, - "timestamp": "2024-03-20T14:33:06.391306794" + "timestamp": "2024-08-07T10:09:29.636924" }, "cnvkit batch germline mode - cram": { - "content": null, + "content": [ + [ + "versions.yml:md5,0310a792526148b05f434944a1167835" + ] + ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.3" }, - "timestamp": "2024-03-20T14:32:23.38326412" + "timestamp": "2024-08-07T10:09:07.307311" } } \ No newline at end of file diff --git a/modules/nf-core/gatk4/annotateintervals/environment.yml b/modules/nf-core/gatk4/annotateintervals/environment.yml index 523753c..55993f4 100644 --- a/modules/nf-core/gatk4/annotateintervals/environment.yml +++ b/modules/nf-core/gatk4/annotateintervals/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_annotateintervals channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/annotateintervals/meta.yml b/modules/nf-core/gatk4/annotateintervals/meta.yml index 1c8e77f..ee644c9 100644 --- a/modules/nf-core/gatk4/annotateintervals/meta.yml +++ b/modules/nf-core/gatk4/annotateintervals/meta.yml @@ -1,5 +1,6 @@ name: "gatk4_annotateintervals" -description: Annotates intervals with GC content, mappability, and segmental-duplication content +description: Annotates intervals with GC content, mappability, and segmental-duplication + content keywords: - annotateintervals - annotation @@ -16,95 +17,105 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - intervals: - type: file - description: One or more interval files to annotate - pattern: "*.{interval_list,list,bed}" - - meta2: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - fasta: - type: file - description: The reference FASTA file - pattern: "*.{fasta,fa}" - - meta3: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - fasta_fai: - type: file - description: The index of the reference FASTA file - pattern: "*.fai" - - meta4: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - dict: - type: file - description: The sequence dictionary reference FASTA file - pattern: "*.dict" - - meta5: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - mappable_regions: - type: file - description: | - Optional - Umap single-read mappability track - The track should correspond to the appropriate read length and overlapping intervals must be merged - pattern: "*.bed(.gz)?" - - meta6: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - mappable_regions_tbi: - type: file - description: Optional - The index of the gzipped umap single-read mappability track - pattern: "*.bed.gz.tbi" - - meta7: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - segmental_duplication_regions: - type: file - description: Optional - Segmental-duplication track - pattern: "*.bed(.gz)?" - - meta8: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - segmental_duplication_regions_tbi: - type: file - description: Optional - The index of the gzipped segmental-duplication track - pattern: "*.bed.gz.tbi" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - intervals: + type: file + description: One or more interval files to annotate + pattern: "*.{interval_list,list,bed}" + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fasta: + type: file + description: The reference FASTA file + pattern: "*.{fasta,fa}" + - - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fasta_fai: + type: file + description: The index of the reference FASTA file + pattern: "*.fai" + - - meta4: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - dict: + type: file + description: The sequence dictionary reference FASTA file + pattern: "*.dict" + - - meta5: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - mappable_regions: + type: file + description: | + Optional - Umap single-read mappability track + The track should correspond to the appropriate read length and overlapping intervals must be merged + pattern: "*.bed(.gz)?" + - - meta6: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - mappable_regions_tbi: + type: file + description: Optional - The index of the gzipped umap single-read mappability + track + pattern: "*.bed.gz.tbi" + - - meta7: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - segmental_duplication_regions: + type: file + description: Optional - Segmental-duplication track + pattern: "*.bed(.gz)?" + - - meta8: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - segmental_duplication_regions_tbi: + type: file + description: Optional - The index of the gzipped segmental-duplication track + pattern: "*.bed.gz.tbi" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - annotated_intervals: - type: file - description: The output TSV file with a SAM-style header containing the annotated intervals - pattern: "*.tsv" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.tsv": + type: file + description: The output TSV file with a SAM-style header containing the annotated + intervals + pattern: "*.tsv" + - s: + type: file + description: The output TSV file with a SAM-style header containing the annotated + intervals + pattern: "*.tsv" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@nvnieuwk" maintainers: diff --git a/modules/nf-core/gatk4/annotateintervals/tests/main.nf.test b/modules/nf-core/gatk4/annotateintervals/tests/main.nf.test index 8d411c6..0f81e1e 100644 --- a/modules/nf-core/gatk4/annotateintervals/tests/main.nf.test +++ b/modules/nf-core/gatk4/annotateintervals/tests/main.nf.test @@ -17,11 +17,11 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) ] - input[1] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] // fasta - input[2] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)] // fasta_fai - input[3] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true)] // dict + input[1] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] // fasta + input[2] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)] // fasta_fai + input[3] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.dict', checkIfExists: true)] // dict input[4] = [[:],[]] input[5] = [[:],[]] input[6] = [[:],[]] @@ -46,13 +46,13 @@ nextflow_process { input[0] = [ [ id:'test', single_end:false ], // meta map [ - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_multi_interval_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.multi_intervals.bed', checkIfExists: true) ] ] - input[1] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] // fasta - input[2] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)] // fasta_fai - input[3] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true)] // dict + input[1] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] // fasta + input[2] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)] // fasta_fai + input[3] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.dict', checkIfExists: true)] // dict input[4] = [[:],[]] input[5] = [[:],[]] input[6] = [[:],[]] @@ -76,11 +76,11 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_interval_list'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.interval_list', checkIfExists: true) ] - input[1] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] // fasta - input[2] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)] // fasta_fai - input[3] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true)] // dict + input[1] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] // fasta + input[2] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)] // fasta_fai + input[3] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.dict', checkIfExists: true)] // dict input[4] = [[:],[]] input[5] = [[:],[]] input[6] = [[:],[]] @@ -104,13 +104,13 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_interval_list'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.interval_list', checkIfExists: true) ] - input[1] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] // fasta - input[2] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)] // fasta_fai - input[3] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true)] // dict - input[4] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true)] // mappable_regions - input[5] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true)] // mappable_regions_tbi + input[1] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] // fasta + input[2] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)] // fasta_fai + input[3] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.dict', checkIfExists: true)] // dict + input[4] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed.gz', checkIfExists: true)] // mappable_regions + input[5] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed.gz.tbi', checkIfExists: true)] // mappable_regions_tbi input[6] = [[:],[]] input[7] = [[:],[]] """ @@ -132,15 +132,15 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_interval_list'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.interval_list', checkIfExists: true) ] - input[1] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] // fasta - input[2] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)] // fasta_fai - input[3] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true)] // dict + input[1] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] // fasta + input[2] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)] // fasta_fai + input[3] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.dict', checkIfExists: true)] // dict input[4] = [[:],[]] input[5] = [[:],[]] - input[6] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true)] // segmental_duplication_regions - input[7] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true)] // segmental_duplication_regions_tbi + input[6] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed.gz', checkIfExists: true)] // segmental_duplication_regions + input[7] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed.gz.tbi', checkIfExists: true)] // segmental_duplication_regions_tbi """ } } @@ -162,11 +162,11 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) ] - input[1] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)] // fasta - input[2] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)] // fasta_fai - input[3] = [[:], file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true)] // dict + input[1] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] // fasta + input[2] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)] // fasta_fai + input[3] = [[:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.dict', checkIfExists: true)] // dict input[4] = [[:],[]] input[5] = [[:],[]] input[6] = [[:],[]] diff --git a/modules/nf-core/gatk4/bedtointervallist/environment.yml b/modules/nf-core/gatk4/bedtointervallist/environment.yml index d6fbe2e..55993f4 100644 --- a/modules/nf-core/gatk4/bedtointervallist/environment.yml +++ b/modules/nf-core/gatk4/bedtointervallist/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_bedtointervallist channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/bedtointervallist/meta.yml b/modules/nf-core/gatk4/bedtointervallist/meta.yml index 187da88..25348e1 100644 --- a/modules/nf-core/gatk4/bedtointervallist/meta.yml +++ b/modules/nf-core/gatk4/bedtointervallist/meta.yml @@ -15,34 +15,45 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test'] - - bed: - type: file - description: Input bed file - pattern: "*.bed" - - meta2: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'genome' ] - - dict: - type: file - description: Sequence dictionary - pattern: "*.dict" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - bed: + type: file + description: Input bed file + pattern: "*.bed" + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome' ] + - dict: + type: file + description: Sequence dictionary + pattern: "*.dict" output: - interval_list: - type: file - description: gatk interval list file - pattern: "*.interval_list" + - meta: + type: file + description: gatk interval list file + pattern: "*.interval_list" + - "*.interval_list": + type: file + description: gatk interval list file + pattern: "*.interval_list" + - _list: + type: file + description: gatk interval list file + pattern: "*.interval_list" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@kevinmenden" - "@ramprasadn" diff --git a/modules/nf-core/gatk4/collectreadcounts/environment.yml b/modules/nf-core/gatk4/collectreadcounts/environment.yml index d09cd89..55993f4 100644 --- a/modules/nf-core/gatk4/collectreadcounts/environment.yml +++ b/modules/nf-core/gatk4/collectreadcounts/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_collectreadcounts channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/collectreadcounts/meta.yml b/modules/nf-core/gatk4/collectreadcounts/meta.yml index 25fb8b8..cf8c773 100644 --- a/modules/nf-core/gatk4/collectreadcounts/meta.yml +++ b/modules/nf-core/gatk4/collectreadcounts/meta.yml @@ -1,5 +1,6 @@ name: "gatk4_collectreadcounts" -description: Collects read counts at specified intervals. The count for each interval is calculated by counting the number of read starts that lie in the interval. +description: Collects read counts at specified intervals. The count for each interval + is calculated by counting the number of read starts that lie in the interval. keywords: - collectreadcounts - bam @@ -7,75 +8,88 @@ keywords: - gatk4 tools: - gatk4: - description: Genome Analysis Toolkit (GATK4). Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. + description: Genome Analysis Toolkit (GATK4). Developed in the Data Sciences Platform + at the Broad Institute, the toolkit offers a wide variety of tools with a primary + focus on variant discovery and genotyping. Its powerful processing engine and + high-performance computing features make it capable of taking on projects of + any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360037593911-CombineGVCFs tool_dev_url: https://github.com/broadinstitute/gatk doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - meta2: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - meta3: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - meta4: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - input: - type: file - description: BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" - - input_index: - type: file - description: BAM/CRAM/SAM index file - pattern: "*.{bai,crai,sai}" - - intervals: - type: file - description: A file containing the specified intervals - pattern: "*.{bed,intervals}" - - fasta: - type: file - description: Optional - Reference FASTA - pattern: "*.{fasta,fa}" - - fai: - type: file - description: Optional - Index of the reference FASTA file - pattern: "*.fai" - - dict: - type: file - description: Optional - Sequence dictionary of the reference FASTA file - pattern: "*.dict" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - input_index: + type: file + description: BAM/CRAM/SAM index file + pattern: "*.{bai,crai,sai}" + - intervals: + type: file + description: A file containing the specified intervals + pattern: "*.{bed,intervals}" + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fasta: + type: file + description: Optional - Reference FASTA + pattern: "*.{fasta,fa}" + - - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fai: + type: file + description: Optional - Index of the reference FASTA file + pattern: "*.fai" + - - meta4: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - dict: + type: file + description: Optional - Sequence dictionary of the reference FASTA file + pattern: "*.dict" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - hdf5: - type: file - description: The read counts in hdf5 format - pattern: "*.hdf5" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.hdf5": + type: file + description: The read counts in hdf5 format + pattern: "*.hdf5" - tsv: - type: file - description: The read counts in TSV format - pattern: "*.tsv" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.tsv": + type: file + description: The read counts in TSV format + pattern: "*.tsv" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@nvnieuwk" maintainers: diff --git a/modules/nf-core/gatk4/collectreadcounts/tests/main.nf.test b/modules/nf-core/gatk4/collectreadcounts/tests/main.nf.test new file mode 100644 index 0000000..0832cf8 --- /dev/null +++ b/modules/nf-core/gatk4/collectreadcounts/tests/main.nf.test @@ -0,0 +1,104 @@ + +nextflow_process { + + name "Test Process GATK4_COLLECTREADCOUNTS" + script "../main.nf" + process "GATK4_COLLECTREADCOUNTS" + + tag "modules" + tag "modules_nfcore" + tag "gatk4" + tag "gatk4/collectreadcounts" + + test("test-gatk4-collectreadcounts-hdf5") { + + config "./nextflow.hdf5.config" + + when { + process { + """ + input[0] = [ + [ 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/test.paired_end.sorted.bam.bai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true), + ] + input[1] = [[],[]] + input[2] = [[],[]] + input[3] = [[],[]] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.hdf5[0][1]).name, + process.out.tsv, + ).match() + } + ) + } + } + + test("test-gatk4-collectreadcounts-tsv") { + + config "./nextflow.tsv.config" + + when { + process { + """ + input[0] = [ + [ 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/test.paired_end.sorted.bam.bai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true), + ] + input[1] = [[],[]] + input[2] = [[],[]] + input[3] = [[],[]] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("test-gatk4-collectreadcounts-cram") { + + config "./nextflow.cram.config" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true), + ] + input[1] = [[id:'test'], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)] + input[2] = [[id:'test'], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)] + input[3] = [[id:'test'], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.dict', checkIfExists: true)] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + +} diff --git a/modules/nf-core/gatk4/collectreadcounts/tests/main.nf.test.snap b/modules/nf-core/gatk4/collectreadcounts/tests/main.nf.test.snap new file mode 100644 index 0000000..28a3a6e --- /dev/null +++ b/modules/nf-core/gatk4/collectreadcounts/tests/main.nf.test.snap @@ -0,0 +1,97 @@ +{ + "test-gatk4-collectreadcounts-cram": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d9a32039b7a84f5bb74e8382e5427670" + ] + ], + "2": [ + "versions.yml:md5,ebf23f4ab63948ba97df07035f8d2659" + ], + "hdf5": [ + + ], + "tsv": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d9a32039b7a84f5bb74e8382e5427670" + ] + ], + "versions": [ + "versions.yml:md5,ebf23f4ab63948ba97df07035f8d2659" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.4" + }, + "timestamp": "2024-08-26T12:58:19.610687" + }, + "test-gatk4-collectreadcounts-hdf5": { + "content": [ + "test.hdf5", + [ + + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.4" + }, + "timestamp": "2024-08-26T13:02:48.607644" + }, + "test-gatk4-collectreadcounts-tsv": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,8e45a6164916c303387f39f02ce45841" + ] + ], + "2": [ + "versions.yml:md5,ebf23f4ab63948ba97df07035f8d2659" + ], + "hdf5": [ + + ], + "tsv": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,8e45a6164916c303387f39f02ce45841" + ] + ], + "versions": [ + "versions.yml:md5,ebf23f4ab63948ba97df07035f8d2659" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.4" + }, + "timestamp": "2024-08-26T12:58:07.500024" + } +} \ No newline at end of file diff --git a/modules/nf-core/gatk4/collectreadcounts/tests/nextflow.cram.config b/modules/nf-core/gatk4/collectreadcounts/tests/nextflow.cram.config new file mode 100644 index 0000000..682bdca --- /dev/null +++ b/modules/nf-core/gatk4/collectreadcounts/tests/nextflow.cram.config @@ -0,0 +1,5 @@ +process { + withName: 'GATK4_COLLECTREADCOUNTS' { + ext.args = "--format TSV --interval-merging-rule OVERLAPPING_ONLY" + } +} diff --git a/modules/nf-core/gatk4/collectreadcounts/tests/nextflow.hdf5.config b/modules/nf-core/gatk4/collectreadcounts/tests/nextflow.hdf5.config new file mode 100644 index 0000000..d6ca881 --- /dev/null +++ b/modules/nf-core/gatk4/collectreadcounts/tests/nextflow.hdf5.config @@ -0,0 +1,5 @@ +process { + withName: 'GATK4_COLLECTREADCOUNTS'{ + ext.args = "--interval-merging-rule OVERLAPPING_ONLY" + } +} diff --git a/modules/nf-core/gatk4/collectreadcounts/tests/nextflow.tsv.config b/modules/nf-core/gatk4/collectreadcounts/tests/nextflow.tsv.config new file mode 100644 index 0000000..682bdca --- /dev/null +++ b/modules/nf-core/gatk4/collectreadcounts/tests/nextflow.tsv.config @@ -0,0 +1,5 @@ +process { + withName: 'GATK4_COLLECTREADCOUNTS' { + ext.args = "--format TSV --interval-merging-rule OVERLAPPING_ONLY" + } +} diff --git a/modules/nf-core/gatk4/createreadcountpanelofnormals/environment.yml b/modules/nf-core/gatk4/createreadcountpanelofnormals/environment.yml index b4f4e77..55993f4 100644 --- a/modules/nf-core/gatk4/createreadcountpanelofnormals/environment.yml +++ b/modules/nf-core/gatk4/createreadcountpanelofnormals/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_createreadcountpanelofnormals channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/createreadcountpanelofnormals/meta.yml b/modules/nf-core/gatk4/createreadcountpanelofnormals/meta.yml index ba01f63..cbbed8c 100644 --- a/modules/nf-core/gatk4/createreadcountpanelofnormals/meta.yml +++ b/modules/nf-core/gatk4/createreadcountpanelofnormals/meta.yml @@ -1,5 +1,6 @@ name: "gatk4_createreadcountpanelofnormals" -description: Creates a panel of normals (PoN) for read-count denoising given the read counts for samples in the panel. +description: Creates a panel of normals (PoN) for read-count denoising given the read + counts for samples in the panel. keywords: - createreadcountpanelofnormals - gatk4 @@ -15,30 +16,33 @@ tools: doi: 10.1158/1538-7445.AM2017-3590 tool_dev_url: "https://github.com/broadinstitute/gatk" licence: ["Apache-2.0"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'test', single_end:false ]` - - counts: - type: file - description: Read counts in hdf5 or tsv format. - pattern: "*.{hdf5,tsv}" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - counts: + type: file + description: Read counts in hdf5 or tsv format. + pattern: "*.{hdf5,tsv}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'test', single_end:false ]` - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - pon: - type: file - description: Panel-of-normals file. - pattern: "*.{hdf5}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - "*.hdf5": + type: file + description: Panel-of-normals file. + pattern: "*.{hdf5}" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@ramprasadn" maintainers: diff --git a/modules/nf-core/gatk4/createsomaticpanelofnormals/environment.yml b/modules/nf-core/gatk4/createsomaticpanelofnormals/environment.yml index ae543c6..55993f4 100644 --- a/modules/nf-core/gatk4/createsomaticpanelofnormals/environment.yml +++ b/modules/nf-core/gatk4/createsomaticpanelofnormals/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_createsomaticpanelofnormals channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/createsomaticpanelofnormals/meta.yml b/modules/nf-core/gatk4/createsomaticpanelofnormals/meta.yml index 9c3ee19..45d88c1 100644 --- a/modules/nf-core/gatk4/createsomaticpanelofnormals/meta.yml +++ b/modules/nf-core/gatk4/createsomaticpanelofnormals/meta.yml @@ -1,5 +1,6 @@ name: gatk4_createsomaticpanelofnormals -description: Create a panel of normals contraining germline and artifactual sites for use with mutect2. +description: Create a panel of normals contraining germline and artifactual sites + for use with mutect2. keywords: - createsomaticpanelofnormals - gatk4 @@ -13,56 +14,67 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test'] - - genoomicsdb: - type: directory - description: genomicsDB workspace that contains the samples to create the somatic panel of normals with. - pattern: "*_genomicsDBworkspace" - - meta2: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test'] - - fasta: - type: file - description: The reference fasta file - pattern: "*.fasta" - - meta3: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test'] - - fai: - type: file - description: Index of reference fasta file - pattern: "*.fasta.fai" - - meta4: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test'] - - dict: - type: file - description: GATK sequence dictionary - pattern: "*.dict" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - genomicsdb: + type: file + description: GenomicsDB database + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test'] + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" + - - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test'] + - fai: + type: file + description: Index of reference fasta file + pattern: "*.fasta.fai" + - - meta4: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test'] + - dict: + type: file + description: GATK sequence dictionary + pattern: "*.dict" output: - vcf: - type: file - description: panel of normal as compressed vcf file - pattern: "*.vcf.gz" + - meta: + type: file + description: panel of normal as compressed vcf file + pattern: "*.vcf.gz" + - "*.vcf.gz": + type: file + description: panel of normal as compressed vcf file + pattern: "*.vcf.gz" - tbi: - type: file - description: Tabix index of vcf file - pattern: "*vcf.gz.tbi" + - meta: + type: file + description: Tabix index of vcf file + pattern: "*vcf.gz.tbi" + - "*.tbi": + type: file + description: Tabix index of vcf file + pattern: "*vcf.gz.tbi" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@GCJMackenzie" maintainers: diff --git a/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf b/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf index 71a67f7..fc98e80 100644 --- a/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf +++ b/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf @@ -40,6 +40,8 @@ process GATK4_DETERMINEGERMLINECONTIGPLOIDY { } """ export THEANO_FLAGS="base_compiledir=\$PWD" + export OMP_NUM_THREADS=${task.cpus} + export MKL_NUM_THREADS=${task.cpus} gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ DetermineGermlineContigPloidy \\ diff --git a/modules/nf-core/gatk4/determinegermlinecontigploidy/meta.yml b/modules/nf-core/gatk4/determinegermlinecontigploidy/meta.yml index 56eb408..828628b 100644 --- a/modules/nf-core/gatk4/determinegermlinecontigploidy/meta.yml +++ b/modules/nf-core/gatk4/determinegermlinecontigploidy/meta.yml @@ -1,5 +1,6 @@ name: "gatk4_determinegermlinecontigploidy" -description: Determines the baseline contig ploidy for germline samples given counts data +description: Determines the baseline contig ploidy for germline samples given counts + data keywords: - copy number - counts @@ -15,59 +16,70 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - meta2: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test' ] - - counts: - type: file - description: One or more count TSV files created with gatk/collectreadcounts - pattern: "*.tsv" - - bed: - type: file - description: Optional - A bed file containing the intervals to include in the process - pattern: "*.bed" - - exclude_beds: - type: file - description: Optional - One or more bed files containing intervals to exclude from the process - pattern: "*.bed" - - contig_ploidy_table: - type: file - description: The contig ploidy priors table - pattern: "*.tsv" - - ploidy_model: - type: directory - description: | - Optional - A folder containing the ploidy model. - When a model is supplied to tool will run in CASE mode. - pattern: '*-model/' + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - counts: + type: file + description: One or more count TSV files created with gatk/collectreadcounts + pattern: "*.tsv" + - bed: + type: file + description: Optional - A bed file containing the intervals to include in the + process + pattern: "*.bed" + - exclude_beds: + type: file + description: Optional - One or more bed files containing intervals to exclude + from the process + pattern: "*.bed" + - - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - ploidy_model: + type: directory + description: | + Optional - A folder containing the ploidy model. + When a model is supplied to tool will run in CASE mode. + pattern: '*-model/' + - - contig_ploidy_table: + type: file + description: The contig ploidy priors table + pattern: "*.tsv" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - calls: - type: directory - description: A folder containing the calls from the input files - pattern: "*-calls/" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ${prefix}-calls: + type: directory + description: A folder containing the calls from the input files + pattern: "*-calls/" - model: - type: directory - description: | - A folder containing the model from the input files. - This will only be created in COHORT mode (when no model is supplied to the process). - pattern: "*-model/" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ${prefix}-model: + type: directory + description: | + A folder containing the model from the input files. + This will only be created in COHORT mode (when no model is supplied to the process). + pattern: "*-model/" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@nvnieuwk" maintainers: diff --git a/modules/nf-core/gatk4/filterintervals/environment.yml b/modules/nf-core/gatk4/filterintervals/environment.yml index 853995e..55993f4 100644 --- a/modules/nf-core/gatk4/filterintervals/environment.yml +++ b/modules/nf-core/gatk4/filterintervals/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_filterintervals channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/filterintervals/meta.yml b/modules/nf-core/gatk4/filterintervals/meta.yml index 425c001..87376ed 100644 --- a/modules/nf-core/gatk4/filterintervals/meta.yml +++ b/modules/nf-core/gatk4/filterintervals/meta.yml @@ -6,53 +6,63 @@ keywords: - interval_list tools: - "gatk4": - description: Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. + description: Developed in the Data Sciences Platform at the Broad Institute, the + toolkit offers a wide variety of tools with a primary focus on variant discovery + and genotyping. Its powerful processing engine and high-performance computing + features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: "10.1158/1538-7445.AM2017-3590" licence: ["Apache-2.0"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - intervals: - type: file - description: Processed interval list file (processed_intervals.interval_list) - pattern: "*.interval_list" - - meta2: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - read_counts: - type: file - description: Read counts input file - pattern: "*.{tsv, hdf5}" - - meta3: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - annotated_intervals: - type: file - description: Annotated intervals TSV file (annotated_intervals.tsv). - pattern: "*.tsv" + - - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - intervals: + type: file + description: Processed interval list file (processed_intervals.interval_list) + pattern: "*.interval_list" + - - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - read_counts: + type: file + description: Read counts input file + pattern: "*.{tsv, hdf5}" + - - meta3: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - annotated_intervals: + type: file + description: Annotated intervals TSV file (annotated_intervals.tsv). + pattern: "*.tsv" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - interval_list: - type: file - description: Filtered interval list file - pattern: "*.interval_list" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.interval_list": + type: file + description: Filtered interval list file + pattern: "*.interval_list" + - _list: + type: file + description: Filtered interval list file + pattern: "*.interval_list" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@ryanjameskennedy" - "@ViktorHy" diff --git a/modules/nf-core/gatk4/filterintervals/tests/main.nf.test b/modules/nf-core/gatk4/filterintervals/tests/main.nf.test new file mode 100644 index 0000000..a84f562 --- /dev/null +++ b/modules/nf-core/gatk4/filterintervals/tests/main.nf.test @@ -0,0 +1,38 @@ + +nextflow_process { + + name "Test Process GATK4_FILTERINTERVALS" + script "../main.nf" + process "GATK4_FILTERINTERVALS" + config "./nextflow.config" + + tag "modules" + tag "modules_nfcore" + tag "gatk4" + tag "gatk4/filterintervals" + + test("test-gatk4-filterintervals") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.preprocessed_intervals.interval_list', checkIfExists: true) + ] + input[1] = [ [:], [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.preprocessed_intervals.counts.tsv', checkIfExists: true) ] ] + input[2] = [ [:], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.annotated_intervals.tsv', checkIfExists: true) ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + +} diff --git a/modules/nf-core/gatk4/filterintervals/tests/main.nf.test.snap b/modules/nf-core/gatk4/filterintervals/tests/main.nf.test.snap new file mode 100644 index 0000000..c962666 --- /dev/null +++ b/modules/nf-core/gatk4/filterintervals/tests/main.nf.test.snap @@ -0,0 +1,35 @@ +{ + "test-gatk4-filterintervals": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.interval_list:md5,67b15dff732693db3542e6b1dc30a5da" + ] + ], + "1": [ + "versions.yml:md5,9a445090a815c06982d5deb5ed7d5e30" + ], + "interval_list": [ + [ + { + "id": "test" + }, + "test.interval_list:md5,67b15dff732693db3542e6b1dc30a5da" + ] + ], + "versions": [ + "versions.yml:md5,9a445090a815c06982d5deb5ed7d5e30" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.4" + }, + "timestamp": "2024-08-26T12:25:35.933532" + } +} \ No newline at end of file diff --git a/modules/nf-core/gatk4/filterintervals/tests/nextflow.config b/modules/nf-core/gatk4/filterintervals/tests/nextflow.config new file mode 100644 index 0000000..93ea379 --- /dev/null +++ b/modules/nf-core/gatk4/filterintervals/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: GATK4_FILTERINTERVALS { + ext.args = "--interval-merging-rule OVERLAPPING_ONLY" + } +} \ No newline at end of file diff --git a/modules/nf-core/gatk4/genomicsdbimport/environment.yml b/modules/nf-core/gatk4/genomicsdbimport/environment.yml index a3a1363..55993f4 100644 --- a/modules/nf-core/gatk4/genomicsdbimport/environment.yml +++ b/modules/nf-core/gatk4/genomicsdbimport/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_genomicsdbimport channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/genomicsdbimport/meta.yml b/modules/nf-core/gatk4/genomicsdbimport/meta.yml index 11e565b..174ae2e 100644 --- a/modules/nf-core/gatk4/genomicsdbimport/meta.yml +++ b/modules/nf-core/gatk4/genomicsdbimport/meta.yml @@ -1,5 +1,6 @@ name: gatk4_genomicsdbimport -description: merge GVCFs from multiple samples. For use in joint genotyping or somatic panel of normal creation. +description: merge GVCFs from multiple samples. For use in joint genotyping or somatic + panel of normal creation. keywords: - gatk4 - genomicsdb @@ -15,61 +16,99 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test'] - - vcf: - type: list - description: either a list of vcf files to be used to create or update a genomicsdb, or a file that contains a map to vcf files to be used. - pattern: "*.vcf.gz" - - tbi: - type: list - description: list of tbi files that match with the input vcf files - pattern: "*.vcf.gz_tbi" - - wspace: - type: file - description: path to an existing genomicsdb to be used in update db mode or get intervals mode. This WILL NOT specify name of a new genomicsdb in create db mode. - pattern: "/path/to/existing/gendb" - - interval_file: - type: file - description: file containing the intervals to be used when creating the genomicsdb - pattern: "*.interval_list" - - interval_value: - type: string - description: if an intervals file has not been spcified, the value enetered here will be used as an interval via the "-L" argument - pattern: "example: chr1:1000-10000" - - run_intlist: - type: boolean - description: Specify whether to run get interval list mode, this option cannot be specified at the same time as run_updatewspace. - pattern: "true/false" - - run_updatewspace: - type: boolean - description: Specify whether to run update genomicsdb mode, this option takes priority over run_intlist. - pattern: "true/false" - - input_map: - type: boolean - description: Specify whether the vcf input is providing a list of vcf file(s) or a single file containing a map of paths to vcf files to be used to create or update a genomicsdb. - pattern: "*.sample_map" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - vcf: + type: list + description: either a list of vcf files to be used to create or update a genomicsdb, + or a file that contains a map to vcf files to be used. + pattern: "*.vcf.gz" + - tbi: + type: list + description: list of tbi files that match with the input vcf files + pattern: "*.vcf.gz_tbi" + - interval_file: + type: file + description: file containing the intervals to be used when creating the genomicsdb + pattern: "*.interval_list" + - interval_value: + type: string + description: if an intervals file has not been spcified, the value enetered + here will be used as an interval via the "-L" argument + pattern: "example: chr1:1000-10000" + - wspace: + type: file + description: path to an existing genomicsdb to be used in update db mode or + get intervals mode. This WILL NOT specify name of a new genomicsdb in create + db mode. + pattern: "/path/to/existing/gendb" + - - run_intlist: + type: boolean + description: Specify whether to run get interval list mode, this option cannot + be specified at the same time as run_updatewspace. + pattern: "true/false" + - - run_updatewspace: + type: boolean + description: Specify whether to run update genomicsdb mode, this option takes + priority over run_intlist. + pattern: "true/false" + - - input_map: + type: boolean + description: Specify whether the vcf input is providing a list of vcf file(s) + or a single file containing a map of paths to vcf files to be used to create + or update a genomicsdb. + pattern: "*.sample_map" output: - genomicsdb: - type: directory - description: Directory containing the files that compose the genomicsdb workspace, this is only output for create mode, as update changes an existing db - pattern: "*/$prefix" + - meta: + type: directory + description: Directory containing the files that compose the genomicsdb workspace, + this is only output for create mode, as update changes an existing db + pattern: "*/$prefix" + - $prefix: + type: directory + description: Directory containing the files that compose the genomicsdb workspace, + this is only output for create mode, as update changes an existing db + pattern: "*/$prefix" - updatedb: - type: directory - description: Directory containing the files that compose the updated genomicsdb workspace, this is only output for update mode, and should be the same path as the input wspace. - pattern: "same/path/as/wspace" + - meta: + type: directory + description: Directory containing the files that compose the updated genomicsdb + workspace, this is only output for update mode, and should be the same path + as the input wspace. + pattern: "same/path/as/wspace" + - $updated_db: + type: directory + description: Directory containing the files that compose the updated genomicsdb + workspace, this is only output for update mode, and should be the same path + as the input wspace. + pattern: "same/path/as/wspace" - intervallist: - type: file - description: File containing the intervals used to generate the genomicsdb, only created by get intervals mode. - pattern: "*.interval_list" + - meta: + type: file + description: File containing the intervals used to generate the genomicsdb, + only created by get intervals mode. + pattern: "*.interval_list" + - "*.interval_list": + type: file + description: File containing the intervals used to generate the genomicsdb, + only created by get intervals mode. + pattern: "*.interval_list" + - list: + type: file + description: File containing the intervals used to generate the genomicsdb, + only created by get intervals mode. + pattern: "*.interval_list" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@GCJMackenzie" maintainers: diff --git a/modules/nf-core/gatk4/genomicsdbimport/tests/main.nf.test b/modules/nf-core/gatk4/genomicsdbimport/tests/main.nf.test index 9c207b3..5fef5dd 100644 --- a/modules/nf-core/gatk4/genomicsdbimport/tests/main.nf.test +++ b/modules/nf-core/gatk4/genomicsdbimport/tests/main.nf.test @@ -17,11 +17,11 @@ nextflow_process { """ // [meta, vcf, tbi, interval, interval_value, workspace ] input[0] = [ [ id:'test'], - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz', checkIfExists: true) , - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz.tbi', checkIfExists: true) , - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.interval_list', checkIfExists: true) , - [] , - [] ] + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz', checkIfExists: true) , + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz.tbi', checkIfExists: true) , + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.interval_list', checkIfExists: true) , + [] , + [] ] // run_intlist input[1] = false // run_updatewspace @@ -36,12 +36,14 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(file(process.out.genomicsdb.get(0).get(1)).list().sort()).match() } //{ assert snapshot(file(process.out.updatedb.get(0).get(1)).list().sort()).match() } //{ assert snapshot(process.out.intervallist.get(0).get(1)).match() } + { assert snapshot( + file(process.out.genomicsdb.get(0).get(1)).list().sort(), + process.out.versions + ).match() } ) } - } test("test_gatk4_genomicsdbimport_get_intervalslist") { @@ -76,10 +78,12 @@ nextflow_process { { assert process.success }, //{ assert snapshot(file(process.out.genomicsdb.get(0).get(1)).list().sort()).match() } //{ assert snapshot(file(process.out.updatedb.get(0).get(1)).list().sort()).match() } - { assert snapshot(process.out.intervallist.get(0).get(1)).match() } + { assert snapshot( + process.out.intervallist.get(0).get(1), + process.out.versions + ).match() } ) } - } test("test_gatk4_genomicsdbimport_update_genomicsdb") { @@ -113,11 +117,13 @@ nextflow_process { assertAll( { assert process.success }, //{ assert snapshot(file(process.out.genomicsdb.get(0).get(1)).list().sort()).match() } - { assert snapshot(file(process.out.updatedb.get(0).get(1)).list().sort()).match() } //{ assert snapshot(process.out.intervallist.get(0).get(1)).match() } + { assert snapshot( + file(process.out.updatedb.get(0).get(1)).list().sort(), + process.out.versions + ).match() } ) } - } test("test_gatk4_genomicsdbimport_stub") { @@ -129,11 +135,11 @@ nextflow_process { """ // [meta, vcf, tbi, interval, interval_value, workspace ] input[0] = [ [ id:'test'], - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz', checkIfExists: true) , - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz.tbi', checkIfExists: true) , - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.interval_list', checkIfExists: true) , - [] , - [] ] + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz', checkIfExists: true) , + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz.tbi', checkIfExists: true) , + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.interval_list', checkIfExists: true) , + [] , + [] ] // run_intlist input[1] = false // run_updatewspace @@ -147,9 +153,8 @@ nextflow_process { then { assertAll( { assert process.success }, + { assert snapshot(process.out).match()} ) } - } - } diff --git a/modules/nf-core/gatk4/genomicsdbimport/tests/main.nf.test.snap b/modules/nf-core/gatk4/genomicsdbimport/tests/main.nf.test.snap index a633bbd..55ced0d 100644 --- a/modules/nf-core/gatk4/genomicsdbimport/tests/main.nf.test.snap +++ b/modules/nf-core/gatk4/genomicsdbimport/tests/main.nf.test.snap @@ -1,40 +1,98 @@ { "test_gatk4_genomicsdbimport_get_intervalslist": { "content": [ - "test.interval_list:md5,4c85812ac15fc1cd29711a851d23c0bf" + "test.interval_list:md5,4c85812ac15fc1cd29711a851d23c0bf", + [ + "versions.yml:md5,c1233a04213021aa66599a36e0fb28cc" + ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-28T17:55:03.846241" + "timestamp": "2024-07-09T10:42:51.836379" }, "test_gatk4_genomicsdbimport_create_genomicsdb": { "content": [ - "__tiledb_workspace.tdb", - "callset.json", - "chr22$1$40001", - "vcfheader.vcf", - "vidmap.json" + [ + "__tiledb_workspace.tdb", + "callset.json", + "chr22$1$40001", + "vcfheader.vcf", + "vidmap.json" + ], + [ + "versions.yml:md5,c1233a04213021aa66599a36e0fb28cc" + ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-14T11:22:10.11423157" + "timestamp": "2024-07-09T10:42:36.846239" }, "test_gatk4_genomicsdbimport_update_genomicsdb": { "content": [ - "__tiledb_workspace.tdb", - "callset.json", - "chr22$1$40001", - "vcfheader.vcf", - "vidmap.json" + [ + "__tiledb_workspace.tdb", + "callset.json", + "chr22$1$40001", + "vcfheader.vcf", + "vidmap.json" + ], + [ + "versions.yml:md5,c1233a04213021aa66599a36e0fb28cc" + ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-14T12:46:42.403794676" + "timestamp": "2024-07-09T10:43:09.00769" + }, + "test_gatk4_genomicsdbimport_stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,c1233a04213021aa66599a36e0fb28cc" + ], + "genomicsdb": [ + [ + { + "id": "test" + }, + "test:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "intervallist": [ + + ], + "updatedb": [ + + ], + "versions": [ + "versions.yml:md5,c1233a04213021aa66599a36e0fb28cc" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-09T10:43:20.921712" } } \ No newline at end of file diff --git a/modules/nf-core/gatk4/germlinecnvcaller/main.nf b/modules/nf-core/gatk4/germlinecnvcaller/main.nf index cd1916e..90aa7e4 100644 --- a/modules/nf-core/gatk4/germlinecnvcaller/main.nf +++ b/modules/nf-core/gatk4/germlinecnvcaller/main.nf @@ -38,6 +38,8 @@ process GATK4_GERMLINECNVCALLER { } """ export THEANO_FLAGS="base_compiledir=\$PWD" + export OMP_NUM_THREADS=${task.cpus} + export MKL_NUM_THREADS=${task.cpus} gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ GermlineCNVCaller \\ diff --git a/modules/nf-core/gatk4/germlinecnvcaller/meta.yml b/modules/nf-core/gatk4/germlinecnvcaller/meta.yml index d4715ff..a185d9d 100644 --- a/modules/nf-core/gatk4/germlinecnvcaller/meta.yml +++ b/modules/nf-core/gatk4/germlinecnvcaller/meta.yml @@ -1,60 +1,85 @@ name: "gatk4_germlinecnvcaller" -description: Calls copy-number variants in germline samples given their counts and the output of DetermineGermlineContigPloidy. +description: Calls copy-number variants in germline samples given their counts and + the output of DetermineGermlineContigPloidy. keywords: - gatk - germline contig ploidy - germlinecnvcaller tools: - "gatk4": - description: Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. + description: Developed in the Data Sciences Platform at the Broad Institute, the + toolkit offers a wide variety of tools with a primary focus on variant discovery + and genotyping. Its powerful processing engine and high-performance computing + features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: "10.1158/1538-7445.AM2017-3590" licence: ["Apache-2.0"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - tsv: - type: file - description: One or more count TSV files created with gatk/collectreadcounts - pattern: "*.tsv" - - intervals: - type: file - description: Optional - A bed file containing the intervals to include in the process - pattern: "*.bed" - - model: - type: directory - description: Optional - directory containing the model produced by germlinecnvcaller cohort mode - pattern: "*-cnv-model/*-model" - - ploidy: - type: directory - description: Directory containing ploidy calls produced by determinegermlinecontigploidy case or cohort mode - pattern: "*-calls" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - tsv: + type: file + description: One or more count TSV files created with gatk/collectreadcounts + pattern: "*.tsv" + - intervals: + type: file + description: Optional - A bed file containing the intervals to include in the + process + pattern: "*.bed" + - ploidy: + type: directory + description: Directory containing ploidy calls produced by determinegermlinecontigploidy + case or cohort mode + pattern: "*-calls" + - model: + type: directory + description: Optional - directory containing the model produced by germlinecnvcaller + cohort mode + pattern: "*-cnv-model/*-model" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - cohortcalls: - type: directory - description: Tar gzipped directory containing calls produced by germlinecnvcaller case mode - pattern: "*-cnv-model/*-calls" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*-cnv-model/*-calls": + type: directory + description: Tar gzipped directory containing calls produced by germlinecnvcaller + case mode + pattern: "*-cnv-model/*-calls" - cohortmodel: - type: directory - description: Optional - Tar gzipped directory containing the model produced by germlinecnvcaller cohort mode - pattern: "*-cnv-model/*-model" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*-cnv-model/*-model": + type: directory + description: Optional - Tar gzipped directory containing the model produced + by germlinecnvcaller cohort mode + pattern: "*-cnv-model/*-model" - casecalls: - type: directory - description: Tar gzipped directory containing calls produced by germlinecnvcaller case mode - pattern: "*-cnv-calls/*-calls" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*-cnv-calls/*-calls": + type: directory + description: Tar gzipped directory containing calls produced by germlinecnvcaller + case mode + pattern: "*-cnv-calls/*-calls" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@ryanjameskennedy" - "@ViktorHy" diff --git a/modules/nf-core/gatk4/indexfeaturefile/environment.yml b/modules/nf-core/gatk4/indexfeaturefile/environment.yml index dccdb15..55993f4 100644 --- a/modules/nf-core/gatk4/indexfeaturefile/environment.yml +++ b/modules/nf-core/gatk4/indexfeaturefile/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_indexfeaturefile channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/indexfeaturefile/meta.yml b/modules/nf-core/gatk4/indexfeaturefile/meta.yml index 575c603..cfc717d 100644 --- a/modules/nf-core/gatk4/indexfeaturefile/meta.yml +++ b/modules/nf-core/gatk4/indexfeaturefile/meta.yml @@ -13,30 +13,33 @@ tools: tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" licence: ["BSD-3-clause"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - feature_file: - type: file - description: VCF/BED file - pattern: "*.{vcf,vcf.gz,bed,bed.gz}" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - feature_file: + type: file + description: VCF/BED file + pattern: "*.{vcf,vcf.gz,bed,bed.gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - index: - type: file - description: Index for VCF/BED file - pattern: "*.{tbi,idx}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.{tbi,idx}": + type: file + description: Index for VCF/BED file + pattern: "*.{tbi,idx}" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@santiagorevale" maintainers: diff --git a/modules/nf-core/gatk4/indexfeaturefile/tests/main.nf.test b/modules/nf-core/gatk4/indexfeaturefile/tests/main.nf.test index ee99a54..994606f 100644 --- a/modules/nf-core/gatk4/indexfeaturefile/tests/main.nf.test +++ b/modules/nf-core/gatk4/indexfeaturefile/tests/main.nf.test @@ -17,7 +17,7 @@ nextflow_process { """ input[0] = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) ] """ } @@ -40,7 +40,7 @@ nextflow_process { """ input[0] = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed.gz', checkIfExists: true) ] """ } @@ -63,7 +63,7 @@ nextflow_process { """ input[0] = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf', checkIfExists: true) ] """ } @@ -86,7 +86,7 @@ nextflow_process { """ input[0] = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz', checkIfExists: true) ] """ } diff --git a/modules/nf-core/gatk4/intervallisttools/environment.yml b/modules/nf-core/gatk4/intervallisttools/environment.yml index a4026f9..55993f4 100644 --- a/modules/nf-core/gatk4/intervallisttools/environment.yml +++ b/modules/nf-core/gatk4/intervallisttools/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_intervallisttools channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/intervallisttools/meta.yml b/modules/nf-core/gatk4/intervallisttools/meta.yml index 748dccf..8ee15a2 100644 --- a/modules/nf-core/gatk4/intervallisttools/meta.yml +++ b/modules/nf-core/gatk4/intervallisttools/meta.yml @@ -1,5 +1,6 @@ name: gatk4_intervallisttools -description: Splits the interval list file into unique, equally-sized interval files and place it under a directory +description: Splits the interval list file into unique, equally-sized interval files + and place it under a directory keywords: - bed - gatk4 @@ -15,30 +16,36 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - interval_list: - type: file - description: Interval list file - pattern: "*.interval_list" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - intervals: + type: file + description: Interval file output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - interval_list: - type: file - description: Interval list files - pattern: "*.interval_list" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*_split/*/*.interval_list": + type: file + description: Interval list files + pattern: "*.interval_list" + - _list: + type: file + description: Interval list files + pattern: "*.interval_list" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@praveenraj2018" maintainers: diff --git a/modules/nf-core/gatk4/preprocessintervals/environment.yml b/modules/nf-core/gatk4/preprocessintervals/environment.yml index ec0b09e..55993f4 100644 --- a/modules/nf-core/gatk4/preprocessintervals/environment.yml +++ b/modules/nf-core/gatk4/preprocessintervals/environment.yml @@ -1,7 +1,5 @@ -name: gatk4_preprocessintervals channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::gatk4=4.5.0.0 diff --git a/modules/nf-core/gatk4/preprocessintervals/meta.yml b/modules/nf-core/gatk4/preprocessintervals/meta.yml index cf3f6ac..0e13674 100644 --- a/modules/nf-core/gatk4/preprocessintervals/meta.yml +++ b/modules/nf-core/gatk4/preprocessintervals/meta.yml @@ -7,71 +7,83 @@ keywords: - preprocessintervals tools: - "gatk4": - description: Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. + description: Developed in the Data Sciences Platform at the Broad Institute, the + toolkit offers a wide variety of tools with a primary focus on variant discovery + and genotyping. Its powerful processing engine and high-performance computing + features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: "10.1158/1538-7445.AM2017-3590" licence: ["Apache-2.0"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - fasta: - type: file - description: The reference fasta file - pattern: "*.fasta" - - meta2: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - fai: - type: file - description: Index of reference fasta file - pattern: "*.fasta.fai" - - meta3: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - dict: - type: file - description: GATK sequence dictionary - pattern: "*.dict" - - meta4: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - intervals: - type: file - description: Interval file (bed or interval_list) with the genomic regions to be included from the analysis (optional) - pattern: "*.{bed,interval_list}" - - meta5: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - exclude_intervals: - type: file - description: Interval file (bed or interval_list) with the genomic regions to be excluded from the analysis (optional) - pattern: "*.{bed,interval_list}" + - - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fai: + type: file + description: Index of reference fasta file + pattern: "*.fasta.fai" + - - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - dict: + type: file + description: GATK sequence dictionary + pattern: "*.dict" + - - meta4: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - intervals: + type: file + description: Interval file (bed or interval_list) with the genomic regions to + be included from the analysis (optional) + pattern: "*.{bed,interval_list}" + - - meta5: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - exclude_intervals: + type: file + description: Interval file (bed or interval_list) with the genomic regions to + be excluded from the analysis (optional) + pattern: "*.{bed,interval_list}" output: - - meta: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - interval_list: - type: file - description: Processed interval list file - pattern: "*.{bed,interval_list}" + - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - "*.interval_list": + type: file + description: Processed interval list file + pattern: "*.{bed,interval_list}" + - _list: + type: file + description: Processed interval list file + pattern: "*.{bed,interval_list}" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@ryanjameskennedy" - "@ViktorHy" diff --git a/modules/nf-core/gatk4/preprocessintervals/tests/main.nf.test b/modules/nf-core/gatk4/preprocessintervals/tests/main.nf.test new file mode 100644 index 0000000..a546fac --- /dev/null +++ b/modules/nf-core/gatk4/preprocessintervals/tests/main.nf.test @@ -0,0 +1,49 @@ + +nextflow_process { + + name "Test Process GATK4_PREPROCESSINTERVALS" + script "../main.nf" + process "GATK4_PREPROCESSINTERVALS" + config "./nextflow.config" + + tag "modules" + tag "modules_nfcore" + tag "gatk4" + tag "gatk4/preprocessintervals" + + test("test-gatk4-preprocessintervals") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ] + input[1] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) + ] + input[2] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.dict', checkIfExists: true) + ] + input[3] = [[],[]] + input[4] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.blacklist_intervals.bed', checkIfExists: true) + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + +} diff --git a/modules/nf-core/gatk4/preprocessintervals/tests/main.nf.test.snap b/modules/nf-core/gatk4/preprocessintervals/tests/main.nf.test.snap new file mode 100644 index 0000000..5365291 --- /dev/null +++ b/modules/nf-core/gatk4/preprocessintervals/tests/main.nf.test.snap @@ -0,0 +1,35 @@ +{ + "test-gatk4-preprocessintervals": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.interval_list:md5,ce14b8fb47a60483fe44473ba40e1583" + ] + ], + "1": [ + "versions.yml:md5,fc3037804d90d3d3424047cfac85d5e4" + ], + "interval_list": [ + [ + { + "id": "test" + }, + "test.interval_list:md5,ce14b8fb47a60483fe44473ba40e1583" + ] + ], + "versions": [ + "versions.yml:md5,fc3037804d90d3d3424047cfac85d5e4" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.4" + }, + "timestamp": "2024-08-26T11:58:51.314382" + } +} \ No newline at end of file diff --git a/modules/nf-core/gatk4/preprocessintervals/tests/nextflow.config b/modules/nf-core/gatk4/preprocessintervals/tests/nextflow.config new file mode 100644 index 0000000..a53707f --- /dev/null +++ b/modules/nf-core/gatk4/preprocessintervals/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: GATK4_PREPROCESSINTERVALS { + ext.args = "--padding 0 --interval-merging-rule OVERLAPPING_ONLY" + } +} \ No newline at end of file diff --git a/modules/nf-core/picard/createsequencedictionary/environment.yml b/modules/nf-core/picard/createsequencedictionary/environment.yml index f355462..1d715d5 100644 --- a/modules/nf-core/picard/createsequencedictionary/environment.yml +++ b/modules/nf-core/picard/createsequencedictionary/environment.yml @@ -1,7 +1,5 @@ -name: picard_createsequencedictionary channels: - conda-forge - bioconda - - defaults dependencies: - - bioconda::picard=3.1.1 + - bioconda::picard=3.3.0 diff --git a/modules/nf-core/picard/createsequencedictionary/main.nf b/modules/nf-core/picard/createsequencedictionary/main.nf index a1eb8be..49637d1 100644 --- a/modules/nf-core/picard/createsequencedictionary/main.nf +++ b/modules/nf-core/picard/createsequencedictionary/main.nf @@ -4,8 +4,8 @@ process PICARD_CREATESEQUENCEDICTIONARY { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.1.1--hdfd78af_0' : - 'biocontainers/picard:3.1.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:3.3.0--hdfd78af_0' : + 'biocontainers/picard:3.3.0--hdfd78af_0' }" input: tuple val(meta), path(fasta) @@ -39,4 +39,16 @@ process PICARD_CREATESEQUENCEDICTIONARY { picard: \$(picard CreateSequenceDictionary --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d:) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.dict + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(echo \$(picard CreateSequenceDictionary --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ + } diff --git a/modules/nf-core/picard/createsequencedictionary/meta.yml b/modules/nf-core/picard/createsequencedictionary/meta.yml index 0cb79cf..6761670 100644 --- a/modules/nf-core/picard/createsequencedictionary/meta.yml +++ b/modules/nf-core/picard/createsequencedictionary/meta.yml @@ -12,30 +12,33 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360036712531-CreateSequenceDictionary-Picard- tool_dev_url: https://github.com/broadinstitute/picard licence: ["MIT"] + identifier: biotools:picard_tools input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: The reference fasta file - pattern: "*.fasta" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - reference_dict: - type: file - description: picard dictionary file - pattern: "*.{dict}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.dict": + type: file + description: picard dictionary file + pattern: "*.{dict}" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@sateeshperi" - "@mjcipriano" diff --git a/modules/nf-core/picard/createsequencedictionary/tests/main.nf.test b/modules/nf-core/picard/createsequencedictionary/tests/main.nf.test new file mode 100644 index 0000000..8152be9 --- /dev/null +++ b/modules/nf-core/picard/createsequencedictionary/tests/main.nf.test @@ -0,0 +1,61 @@ +nextflow_process { + + name "Test Process PICARD_CREATESEQUENCEDICTIONARY" + script "../main.nf" + process "PICARD_CREATESEQUENCEDICTIONARY" + + tag "modules" + tag "modules_nfcore" + tag "picard" + tag "picard/createsequencedictionary" + + test("sarscov2 - 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( + file(process.out.reference_dict[0][1]).name, + process.out.versions + ).match() + } + + ) + } + + } + + test("sarscov2 - 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() } + ) + } + + } + +} diff --git a/modules/nf-core/picard/createsequencedictionary/tests/main.nf.test.snap b/modules/nf-core/picard/createsequencedictionary/tests/main.nf.test.snap new file mode 100644 index 0000000..8142f2a --- /dev/null +++ b/modules/nf-core/picard/createsequencedictionary/tests/main.nf.test.snap @@ -0,0 +1,48 @@ +{ + "sarscov2 - fasta - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.dict:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,3ed186b70c3df55fd4965f48485a01cb" + ], + "reference_dict": [ + [ + { + "id": "test" + }, + "test.dict:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,3ed186b70c3df55fd4965f48485a01cb" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-18T10:49:55.602683425" + }, + "sarscov2 - fasta": { + "content": [ + "test.dict", + [ + "versions.yml:md5,3ed186b70c3df55fd4965f48485a01cb" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-18T10:49:40.396060224" + } +} \ No newline at end of file diff --git a/modules/nf-core/samtools/faidx/environment.yml b/modules/nf-core/samtools/faidx/environment.yml index f8450fa..62054fc 100644 --- a/modules/nf-core/samtools/faidx/environment.yml +++ b/modules/nf-core/samtools/faidx/environment.yml @@ -1,10 +1,8 @@ -name: samtools_faidx - +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda - - defaults - dependencies: - - bioconda::htslib=1.20 - - bioconda::samtools=1.20 + - bioconda::htslib=1.21 + - bioconda::samtools=1.21 diff --git a/modules/nf-core/samtools/faidx/main.nf b/modules/nf-core/samtools/faidx/main.nf index bdcdbc9..28c0a81 100644 --- a/modules/nf-core/samtools/faidx/main.nf +++ b/modules/nf-core/samtools/faidx/main.nf @@ -4,8 +4,8 @@ process SAMTOOLS_FAIDX { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.20--h50ea8bc_0' : - 'biocontainers/samtools:1.20--h50ea8bc_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.21--h50ea8bc_0' : + 'biocontainers/samtools:1.21--h50ea8bc_0' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/samtools/faidx/meta.yml b/modules/nf-core/samtools/faidx/meta.yml index f3c25de..6721b2c 100644 --- a/modules/nf-core/samtools/faidx/meta.yml +++ b/modules/nf-core/samtools/faidx/meta.yml @@ -14,47 +14,62 @@ tools: documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 licence: ["MIT"] + identifier: biotools:samtools input: - - meta: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - fasta: - type: file - description: FASTA file - pattern: "*.{fa,fasta}" - - meta2: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - - fai: - type: file - description: FASTA index file - pattern: "*.{fai}" + - - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fasta: + type: file + description: FASTA file + pattern: "*.{fa,fasta}" + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fai: + type: file + description: FASTA index file + pattern: "*.{fai}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - fa: - type: file - description: FASTA file - pattern: "*.{fa}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.{fa,fasta}": + type: file + description: FASTA file + pattern: "*.{fa}" - fai: - type: file - description: FASTA index file - pattern: "*.{fai}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.fai": + type: file + description: FASTA index file + pattern: "*.{fai}" - gzi: - type: file - description: Optional gzip index file for compressed inputs - pattern: "*.gzi" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.gzi": + type: file + description: Optional gzip index file for compressed inputs + pattern: "*.gzi" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" - "@ewels" diff --git a/modules/nf-core/samtools/faidx/tests/main.nf.test.snap b/modules/nf-core/samtools/faidx/tests/main.nf.test.snap index 3223b72..1bbb3ec 100644 --- a/modules/nf-core/samtools/faidx/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/faidx/tests/main.nf.test.snap @@ -18,7 +18,7 @@ ], "3": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ], "fa": [ @@ -36,15 +36,15 @@ ], "versions": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-28T15:42:14.779784761" + "timestamp": "2024-09-16T07:57:47.450887871" }, "test_samtools_faidx_bgzip": { "content": [ @@ -71,7 +71,7 @@ ] ], "3": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ], "fa": [ @@ -95,15 +95,15 @@ ] ], "versions": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-28T15:42:20.256633877" + "timestamp": "2024-09-16T07:58:04.804905659" }, "test_samtools_faidx_fasta": { "content": [ @@ -124,7 +124,7 @@ ], "3": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ], "fa": [ [ @@ -142,15 +142,15 @@ ], "versions": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-28T15:42:25.632577273" + "timestamp": "2024-09-16T07:58:23.831268154" }, "test_samtools_faidx_stub_fasta": { "content": [ @@ -171,7 +171,7 @@ ], "3": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ], "fa": [ [ @@ -189,15 +189,15 @@ ], "versions": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-28T15:42:31.058424849" + "timestamp": "2024-09-16T07:58:35.600243706" }, "test_samtools_faidx_stub_fai": { "content": [ @@ -218,7 +218,7 @@ ], "3": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ], "fa": [ @@ -236,14 +236,14 @@ ], "versions": [ - "versions.yml:md5,2db78952923a61e05d50b95518b21856" + "versions.yml:md5,6bbe80a2e14bd61202ca63e12d66027f" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-28T15:42:36.479929617" + "timestamp": "2024-09-16T07:58:54.705460167" } } \ No newline at end of file diff --git a/modules/nf-core/samtools/index/environment.yml b/modules/nf-core/samtools/index/environment.yml index 260d516..62054fc 100644 --- a/modules/nf-core/samtools/index/environment.yml +++ b/modules/nf-core/samtools/index/environment.yml @@ -1,8 +1,8 @@ -name: samtools_index +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda - - defaults dependencies: - - bioconda::samtools=1.20 - - bioconda::htslib=1.20 + - bioconda::htslib=1.21 + - bioconda::samtools=1.21 diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf index b523c21..3117561 100644 --- a/modules/nf-core/samtools/index/main.nf +++ b/modules/nf-core/samtools/index/main.nf @@ -4,8 +4,8 @@ process SAMTOOLS_INDEX { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.20--h50ea8bc_0' : - 'biocontainers/samtools:1.20--h50ea8bc_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.21--h50ea8bc_0' : + 'biocontainers/samtools:1.21--h50ea8bc_0' }" input: tuple val(meta), path(input) @@ -35,10 +35,11 @@ process SAMTOOLS_INDEX { """ stub: + def args = task.ext.args ?: '' + def extension = file(input).getExtension() == 'cram' ? + "crai" : args.contains("-c") ? "csi" : "bai" """ - touch ${input}.bai - touch ${input}.crai - touch ${input}.csi + touch ${input}.${extension} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/samtools/index/meta.yml b/modules/nf-core/samtools/index/meta.yml index 01a4ee0..db8df0d 100644 --- a/modules/nf-core/samtools/index/meta.yml +++ b/modules/nf-core/samtools/index/meta.yml @@ -15,38 +15,52 @@ tools: documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 licence: ["MIT"] + identifier: biotools:samtools input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: input file output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - bai: - type: file - description: BAM/CRAM/SAM index file - pattern: "*.{bai,crai,sai}" - - crai: - type: file - description: BAM/CRAM/SAM index file - pattern: "*.{bai,crai,sai}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.bai": + type: file + description: BAM/CRAM/SAM index file + pattern: "*.{bai,crai,sai}" - csi: - type: file - description: CSI index file - pattern: "*.{csi}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.csi": + type: file + description: CSI index file + pattern: "*.{csi}" + - crai: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.crai": + type: file + description: BAM/CRAM/SAM index file + pattern: "*.{bai,crai,sai}" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" - "@ewels" diff --git a/modules/nf-core/samtools/index/tests/main.nf.test b/modules/nf-core/samtools/index/tests/main.nf.test index bb7756d..ca34fb5 100644 --- a/modules/nf-core/samtools/index/tests/main.nf.test +++ b/modules/nf-core/samtools/index/tests/main.nf.test @@ -9,11 +9,7 @@ nextflow_process { tag "samtools/index" test("bai") { - when { - params { - outdir = "$outputDir" - } process { """ input[0] = Channel.of([ @@ -27,18 +23,13 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert snapshot(process.out.bai).match("bai") }, - { assert snapshot(process.out.versions).match("bai_versions") } + { assert snapshot(process.out).match() } ) } } test("crai") { - when { - params { - outdir = "$outputDir" - } process { """ input[0] = Channel.of([ @@ -52,20 +43,83 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert snapshot(process.out.crai).match("crai") }, - { assert snapshot(process.out.versions).match("crai_versions") } + { assert snapshot(process.out).match() } ) } } test("csi") { - config "./csi.nextflow.config" when { - params { - outdir = "$outputDir" + process { + """ + input[0] = Channel.of([ + [ 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( + file(process.out.csi[0][1]).name, + process.out.versions + ).match() } + ) + } + } + + test("bai - stub") { + options "-stub" + when { + process { + """ + input[0] = Channel.of([ + [ 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("crai - stub") { + options "-stub" + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.recalibrated.sorted.cram', checkIfExists: true) + ]) + """ } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("csi - stub") { + options "-stub" + config "./csi.nextflow.config" + + when { process { """ input[0] = Channel.of([ @@ -79,8 +133,7 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert path(process.out.csi.get(0).get(1)).exists() }, - { assert snapshot(process.out.versions).match("csi_versions") } + { assert snapshot(process.out).match() } ) } } diff --git a/modules/nf-core/samtools/index/tests/main.nf.test.snap b/modules/nf-core/samtools/index/tests/main.nf.test.snap index 52756e8..72d65e8 100644 --- a/modules/nf-core/samtools/index/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/index/tests/main.nf.test.snap @@ -1,74 +1,250 @@ { - "crai_versions": { + "csi - stub": { "content": [ - [ - "versions.yml:md5,802c9776d9c5e95314e888cf18e96d77" - ] + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.sorted.bam.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" + ], + "bai": [ + + ], + "crai": [ + + ], + "csi": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.sorted.bam.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" + ] + } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-28T15:42:04.203740976" + "timestamp": "2024-09-16T08:21:25.261127166" }, - "csi_versions": { + "crai - stub": { "content": [ - [ - "versions.yml:md5,802c9776d9c5e95314e888cf18e96d77" - ] + { + "0": [ + + ], + "1": [ + + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.recalibrated.sorted.cram.crai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" + ], + "bai": [ + + ], + "crai": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.recalibrated.sorted.cram.crai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "csi": [ + + ], + "versions": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" + ] + } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-28T15:42:09.57475878" + "timestamp": "2024-09-16T08:21:12.653194876" }, - "crai": { + "bai - stub": { "content": [ - [ - [ - { - "id": "test", - "single_end": false - }, - "test.paired_end.recalibrated.sorted.cram.crai:md5,14bc3bd5c89cacc8f4541f9062429029" + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.sorted.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" + ], + "bai": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.sorted.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "crai": [ + + ], + "csi": [ + + ], + "versions": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" ] - ] + } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.04.3" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-02-12T18:41:38.446424" + "timestamp": "2024-09-16T08:21:01.854932651" }, - "bai": { + "csi": { "content": [ + "test.paired_end.sorted.bam.csi", [ - [ - { - "id": "test", - "single_end": false - }, - "test.paired_end.sorted.bam.bai:md5,704c10dd1326482448ca3073fdebc2f4" - ] + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.04.3" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-02-12T18:40:46.579747" + "timestamp": "2024-09-16T08:20:51.485364222" }, - "bai_versions": { + "crai": { "content": [ - [ - "versions.yml:md5,802c9776d9c5e95314e888cf18e96d77" - ] + { + "0": [ + + ], + "1": [ + + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.recalibrated.sorted.cram.crai:md5,14bc3bd5c89cacc8f4541f9062429029" + ] + ], + "3": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" + ], + "bai": [ + + ], + "crai": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.recalibrated.sorted.cram.crai:md5,14bc3bd5c89cacc8f4541f9062429029" + ] + ], + "csi": [ + + ], + "versions": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-16T08:20:40.518873972" + }, + "bai": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.sorted.bam.bai:md5,704c10dd1326482448ca3073fdebc2f4" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" + ], + "bai": [ + [ + { + "id": "test", + "single_end": false + }, + "test.paired_end.sorted.bam.bai:md5,704c10dd1326482448ca3073fdebc2f4" + ] + ], + "crai": [ + + ], + "csi": [ + + ], + "versions": [ + "versions.yml:md5,5e09a6fdf76de396728f877193d72315" + ] + } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-28T15:41:57.929287369" + "timestamp": "2024-09-16T08:20:21.184050361" } } \ No newline at end of file diff --git a/tests/gens_pon.nf.test.snap b/tests/gens_pon.nf.test.snap index f1364d8..1ecaec1 100644 --- a/tests/gens_pon.nf.test.snap +++ b/tests/gens_pon.nf.test.snap @@ -13,10 +13,10 @@ "gatk4": "4.5.0.0" }, "PICARD_CREATESEQUENCEDICTIONARY": { - "picard": "3.1.1" + "picard": "3.3.0" }, "SAMTOOLS_FAIDX": { - "samtools": 1.2 + "samtools": 1.21 }, "Workflow": { "nf-core/createpanelrefs": "v1.0dev" @@ -53,9 +53,9 @@ ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.09.0" + "nf-test": "0.9.1", + "nextflow": "24.10.0" }, - "timestamp": "2024-10-11T14:12:35.334538" + "timestamp": "2024-11-04T19:29:15.733933882" } -} +} \ No newline at end of file diff --git a/tests/germlinecnvcaller_cohort.nf.test.snap b/tests/germlinecnvcaller_cohort.nf.test.snap index bb0d87e..01e3582 100644 --- a/tests/germlinecnvcaller_cohort.nf.test.snap +++ b/tests/germlinecnvcaller_cohort.nf.test.snap @@ -25,10 +25,10 @@ "gatk4": "4.5.0.0" }, "PICARD_CREATESEQUENCEDICTIONARY": { - "picard": "3.1.1" + "picard": "3.3.0" }, "SAMTOOLS_FAIDX": { - "samtools": 1.2 + "samtools": 1.21 }, "Workflow": { "nf-core/createpanelrefs": "v1.0dev" @@ -184,9 +184,9 @@ ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.09.0" + "nf-test": "0.9.1", + "nextflow": "24.10.0" }, - "timestamp": "2024-10-11T16:00:18.603619" + "timestamp": "2024-11-04T19:45:08.802551855" } -} +} \ No newline at end of file