diff --git a/modules/nf-core/glimpse/chunk/main.nf b/modules/nf-core/glimpse/chunk/main.nf index 9ea9ef043c47..c8d92f472997 100644 --- a/modules/nf-core/glimpse/chunk/main.nf +++ b/modules/nf-core/glimpse/chunk/main.nf @@ -37,6 +37,7 @@ process GLIMPSE_CHUNK { stub: def prefix = task.ext.prefix ?: "${meta.id}" + """ touch ${prefix}.txt diff --git a/modules/nf-core/glimpse/chunk/tests/main.nf.test b/modules/nf-core/glimpse/chunk/tests/main.nf.test index 4c278af1e60b..746feae002da 100644 --- a/modules/nf-core/glimpse/chunk/tests/main.nf.test +++ b/modules/nf-core/glimpse/chunk/tests/main.nf.test @@ -3,22 +3,25 @@ nextflow_process { name "Test Process GLIMPSE_CHUNK" script "../main.nf" process "GLIMPSE_CHUNK" + config "./nextflow.config" + tag "glimpse" tag "glimpse/chunk" tag "modules_nfcore" tag "modules" - test("Should run without failures") { - config "modules/nf-core/glimpse/chunk/tests/nextflow.config" - + test("homo_sapiens - vcf chr 22") { when { + params{ + glimpse_args = "--window-size 2000000 --buffer-size 200000" + } process { """ input[0] = [ [ id:'input' ], // meta map - file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true), - "chr21" + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz.csi", checkIfExists:true), + "chr22" ] """ } diff --git a/modules/nf-core/glimpse/chunk/tests/main.nf.test.snap b/modules/nf-core/glimpse/chunk/tests/main.nf.test.snap index 0490a8e4de7f..bd580988fbec 100644 --- a/modules/nf-core/glimpse/chunk/tests/main.nf.test.snap +++ b/modules/nf-core/glimpse/chunk/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "Should run without failures": { + "homo_sapiens - vcf chr 22": { "content": [ { "0": [ @@ -7,7 +7,7 @@ { "id": "input" }, - "input.txt:md5,9e5562b3f94857b8189b59849ce65cfb" + "input.txt:md5,38bc015bc7bb9f4fc0fdb08a698cfc78" ] ], "1": [ @@ -18,7 +18,7 @@ { "id": "input" }, - "input.txt:md5,9e5562b3f94857b8189b59849ce65cfb" + "input.txt:md5,38bc015bc7bb9f4fc0fdb08a698cfc78" ] ], "versions": [ @@ -26,6 +26,10 @@ ] } ], - "timestamp": "2023-10-16T15:55:52.457257547" + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-26T19:06:32.115560314" } } \ No newline at end of file diff --git a/modules/nf-core/glimpse/chunk/tests/nextflow.config b/modules/nf-core/glimpse/chunk/tests/nextflow.config index 8302ea19436e..8f4c838e95c4 100644 --- a/modules/nf-core/glimpse/chunk/tests/nextflow.config +++ b/modules/nf-core/glimpse/chunk/tests/nextflow.config @@ -1,9 +1,6 @@ process { withName: GLIMPSE_CHUNK { - ext.args = [ - "--window-size 2000000", - "--buffer-size 200000" - ].join(' ') + ext.args = { "${params.glimpse_args}" } ext.prefix = { "${meta.id}" } } } diff --git a/modules/nf-core/glimpse/concordance/main.nf b/modules/nf-core/glimpse/concordance/main.nf index 82e784745235..4a70a6afffed 100644 --- a/modules/nf-core/glimpse/concordance/main.nf +++ b/modules/nf-core/glimpse/concordance/main.nf @@ -20,7 +20,6 @@ process GLIMPSE_CONCORDANCE { tuple val(meta), path("*.rsquare.grp.txt.gz"), emit: rsquare_grp tuple val(meta), path("*.rsquare.spl.txt.gz"), emit: rsquare_spl path "versions.yml" , emit: versions - when: task.ext.when == null || task.ext.when @@ -42,13 +41,14 @@ process GLIMPSE_CONCORDANCE { $bins_cmd cat <<-END_VERSIONS > versions.yml - "${task.process}": - glimpse: "\$(GLIMPSE_concordance --help | sed -nr '/Version/p' | grep -o -E '([0-9]+.){1,2}[0-9]')" + "${task.process}": + glimpse: "\$(GLIMPSE_concordance --help | sed -nr '/Version/p' | grep -o -E '([0-9]+.){1,2}[0-9]')" END_VERSIONS """ stub: def prefix = task.ext.prefix ?: "${meta.id}" + """ echo "" | gzip > ${prefix}.error.cal.txt.gz echo "" | gzip > ${prefix}.error.grp.txt.gz diff --git a/modules/nf-core/glimpse/concordance/tests/main.nf.test b/modules/nf-core/glimpse/concordance/tests/main.nf.test index ef6d36b8aff8..1a3bb2f80118 100644 --- a/modules/nf-core/glimpse/concordance/tests/main.nf.test +++ b/modules/nf-core/glimpse/concordance/tests/main.nf.test @@ -4,6 +4,8 @@ nextflow_process { script "../main.nf" process "GLIMPSE_CONCORDANCE" + config "./nextflow.config" + tag "modules" tag "modules_nfcore" tag "glimpse" @@ -12,64 +14,21 @@ nextflow_process { tag "bcftools/index" test("test_glimpse_concordance") { - setup { - run("GLIMPSE_PHASE") { - script "../../phase/main.nf" - process { - """ - ch_sample = Channel.of('NA12878 2').collectFile(name: 'sampleinfos.txt') - region = Channel.fromList([ - ["chr21:16600000-16750000","chr21:16650000-16700000"] - ]) - input_vcf = Channel.of([ - [ id:'input'], // meta map - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.1x.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.1x.vcf.gz.csi", checkIfExists: true) - ]) - ref_panel = Channel.of([ - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.bcf", checkIfExists: true), - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.bcf.csi", checkIfExists: true) - ]) - ch_map = Channel.of([ - file(params.modules_testdata_base_path + "delete_me/glimpse/chr21.b38.gmap.gz", checkIfExists: true), - ]) - - input[0] = input_vcf - | combine(ch_sample) - | combine(region) - | combine(ref_panel) - | combine(ch_map) - """ - } - } - run("BCFTOOLS_INDEX") { - script "../../../bcftools/index/main.nf" - process { - """ - input[0] = GLIMPSE_PHASE.out.phased_variants - """ - } - } - } when { process { """ - allele_freq = Channel.fromList([ - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.sites.vcf.gz",checkIfExists:true), - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.sites.vcf.gz.csi",checkIfExists:true) - ]).collect() - truth = Channel.fromList([ - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.bcf",checkIfExists:true), - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.bcf.csi",checkIfExists:true) - ]).collect() - estimate = GLIMPSE_PHASE.out.phased_variants - | join (BCFTOOLS_INDEX.out.csi) - input[0] = estimate - | combine (allele_freq) - | combine (truth) - | combine (["chr21"]) - input[1] = [] - input[2] = [] + input[0] = channel.of([ + [ id: "NA12878" ], + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz",checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi",checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.sites.vcf.gz",checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.sites.vcf.gz.csi",checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr21_22.vcf.gz",checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr21_22.vcf.gz.csi",checkIfExists:true), + "chr21" + ]) + input[1] = 0.7 + input[2] = 3 input[3] = [] """ } @@ -78,12 +37,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out.errors_cal, - process.out.errors_spl, - process.out.rsquare_spl, - process.out.versions - ).match() } + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/glimpse/concordance/tests/main.nf.test.snap b/modules/nf-core/glimpse/concordance/tests/main.nf.test.snap index 1fb0ee9c51de..81d2744ff198 100644 --- a/modules/nf-core/glimpse/concordance/tests/main.nf.test.snap +++ b/modules/nf-core/glimpse/concordance/tests/main.nf.test.snap @@ -1,38 +1,99 @@ { "test_glimpse_concordance": { "content": [ - [ - [ - { - "id": "input" - }, - "input.error.cal.txt.gz:md5,15c6a120d9fd3ac8c0ff6a6aedc76571" + { + "0": [ + [ + { + "id": "NA12878" + }, + "NA12878.error.cal.txt.gz:md5,b4af39e7acfebd69f2fe5fa496551a32" + ] + ], + "1": [ + [ + { + "id": "NA12878" + }, + "NA12878.error.grp.txt.gz:md5,069e311f252ff6b6e748a68ce0bcb499" + ] + ], + "2": [ + [ + { + "id": "NA12878" + }, + "NA12878.error.spl.txt.gz:md5,284843acf1662f2aeafc6fe5c47e629f" + ] + ], + "3": [ + [ + { + "id": "NA12878" + }, + "NA12878.rsquare.grp.txt.gz:md5,06c70a1e2047710d6752b9d98e45cea0" + ] + ], + "4": [ + [ + { + "id": "NA12878" + }, + "NA12878.rsquare.spl.txt.gz:md5,30a00f0b1de47fd63414d819b4304ded" + ] + ], + "5": [ + "versions.yml:md5,b6c06f9736c60f9f548c3c082b522025" + ], + "errors_cal": [ + [ + { + "id": "NA12878" + }, + "NA12878.error.cal.txt.gz:md5,b4af39e7acfebd69f2fe5fa496551a32" + ] + ], + "errors_grp": [ + [ + { + "id": "NA12878" + }, + "NA12878.error.grp.txt.gz:md5,069e311f252ff6b6e748a68ce0bcb499" + ] + ], + "errors_spl": [ + [ + { + "id": "NA12878" + }, + "NA12878.error.spl.txt.gz:md5,284843acf1662f2aeafc6fe5c47e629f" + ] + ], + "rsquare_grp": [ + [ + { + "id": "NA12878" + }, + "NA12878.rsquare.grp.txt.gz:md5,06c70a1e2047710d6752b9d98e45cea0" + ] + ], + "rsquare_spl": [ + [ + { + "id": "NA12878" + }, + "NA12878.rsquare.spl.txt.gz:md5,30a00f0b1de47fd63414d819b4304ded" + ] + ], + "versions": [ + "versions.yml:md5,b6c06f9736c60f9f548c3c082b522025" ] - ], - [ - [ - { - "id": "input" - }, - "input.error.spl.txt.gz:md5,35cb463e8db41e2180f21941ab0324e0" - ] - ], - [ - [ - { - "id": "input" - }, - "input.rsquare.spl.txt.gz:md5,55659f466775d828ee1ba723464bb460" - ] - ], - [ - "versions.yml:md5,f79c864118d03a4afa93082c46c0d608" - ] + } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-09-15T12:50:35.203335" + "timestamp": "2025-11-27T11:08:34.841155791" } } \ No newline at end of file diff --git a/modules/nf-core/glimpse/concordance/tests/nextflow.config b/modules/nf-core/glimpse/concordance/tests/nextflow.config new file mode 100644 index 000000000000..4ab697f9d031 --- /dev/null +++ b/modules/nf-core/glimpse/concordance/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: GLIMPSE_CONCORDANCE { + ext.args = "--gt-validation --gt-target" + } +} diff --git a/modules/nf-core/glimpse/ligate/main.nf b/modules/nf-core/glimpse/ligate/main.nf index fbef5738e8f3..a62b24d62c85 100644 --- a/modules/nf-core/glimpse/ligate/main.nf +++ b/modules/nf-core/glimpse/ligate/main.nf @@ -22,7 +22,7 @@ process GLIMPSE_LIGATE { def prefix = task.ext.prefix ?: "${meta.id}" def suffix = task.ext.suffix ?: "vcf.gz" """ - printf "%s\\n" $input_list | tr -d '[],' > all_files.txt + printf "%s\\n" $input_list | tr -d '[],' | sort -V > all_files.txt GLIMPSE_ligate \\ $args \\ @@ -31,8 +31,8 @@ process GLIMPSE_LIGATE { --output ${prefix}.${suffix} cat <<-END_VERSIONS > versions.yml - "${task.process}": - glimpse: "\$(GLIMPSE_ligate --help | sed -nr '/Version/p' | grep -o -E '([0-9]+.){1,2}[0-9]')" + "${task.process}": + glimpse: "\$(GLIMPSE_ligate --help | sed -nr '/Version/p' | grep -o -E '([0-9]+.){1,2}[0-9]')" END_VERSIONS """ diff --git a/modules/nf-core/glimpse/ligate/tests/main.nf.test b/modules/nf-core/glimpse/ligate/tests/main.nf.test index 7289fc91acce..685deb3466eb 100644 --- a/modules/nf-core/glimpse/ligate/tests/main.nf.test +++ b/modules/nf-core/glimpse/ligate/tests/main.nf.test @@ -17,27 +17,30 @@ nextflow_process { script "../../phase/main.nf" process { """ - ch_sample = Channel.of('NA12878 2').collectFile(name: 'sampleinfos.txt') - region = Channel.fromList([ - ["chr21:16600000-16750000","chr21:16650000-16700000"], - ["chr21:16650000-16800000","chr21:16700000-16750000"] - ]) - input_vcf = Channel.of([ + ch_sample = channel.of('NA12878 2').collectFile(name: 'sampleinfos.txt') + region = channel.of( + ["chr21:16570065-16597215","chr21:16570065-16592216"], + ["chr21:16587172-16609999","chr21:16592229-16609999"] + ) + input_vcf = channel.of([ [ id:'input'], // meta map - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.1x.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.1x.vcf.gz.csi", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true) ]) - ref_panel = Channel.of([ - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.bcf", checkIfExists: true), - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.bcf.csi", checkIfExists: true) + ref_panel = channel.of([ + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.vcf.gz.csi", checkIfExists: true) ]) - ch_map = Channel.of([ - file(params.modules_testdata_base_path + "delete_me/glimpse/chr21.b38.gmap.gz", checkIfExists: true), + ch_map = channel.of([ + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genetic_map/genome.GRCh38.chr21.glimpse.map", checkIfExists: true) ]) input[0] = input_vcf | combine(ch_sample) | combine(region) + | map { meta, vcf, index, sample, regionI, regionO -> + [[id: meta.id, region : regionI], vcf, index, sample, regionI, regionO] + } | combine(ref_panel) | combine(ch_map) """ @@ -57,20 +60,28 @@ nextflow_process { process { """ input[0] = GLIMPSE_PHASE.out.phased_variants - | groupTuple() - | join (BCFTOOLS_INDEX.out.csi.groupTuple()) + .join(BCFTOOLS_INDEX.out.csi) + .map{ meta, vcf, index -> [meta.subMap("id"), vcf, index]} + .groupTuple() """ } } then { - def lines = path(process.out.merged_variants.get(0).get(1)).linesGzip.last() assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match("versions") }, - { assert snapshot(lines).match("ligate") } + { assert snapshot( + process.out.merged_variants.collect { + meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ] + }, + ["versions": process.out.versions] + ).match() } ) } - } } diff --git a/modules/nf-core/glimpse/ligate/tests/main.nf.test.snap b/modules/nf-core/glimpse/ligate/tests/main.nf.test.snap index 8eec13282905..7a1be2fc484d 100644 --- a/modules/nf-core/glimpse/ligate/tests/main.nf.test.snap +++ b/modules/nf-core/glimpse/ligate/tests/main.nf.test.snap @@ -1,16 +1,26 @@ { - "versions": { + "test_glimpse_ligate": { "content": [ [ - "versions.yml:md5,0cc9dfe9c9c1087666c418aa3379cf85" - ] + [ + { + "id": "input" + }, + "input.vcf.gz", + "VcfFile [chromosomes=[chr21], sampleCount=1, variantCount=836, phased=false, phasedAutodetect=false]", + "bcb1deefc22f80c32d5ca5cedb56cd75" + ] + ], + { + "versions": [ + "versions.yml:md5,bd8cbcd55d6d05c480747657852fad35" + ] + } ], - "timestamp": "2023-10-17T11:56:25.087453677" - }, - "ligate": { - "content": [ - "chr21\t16799989\t21:16799989:T:C\tT\tC\t.\t.\tRAF=0.000468897;AF=0;INFO=1\tGT:DS:GP:HS\t0/0:0:1,0,0:0" - ], - "timestamp": "2023-10-17T11:56:25.116120487" + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-26T20:11:05.020643957" } } \ No newline at end of file diff --git a/modules/nf-core/glimpse/phase/main.nf b/modules/nf-core/glimpse/phase/main.nf index 53487557ada8..e5ba79718880 100644 --- a/modules/nf-core/glimpse/phase/main.nf +++ b/modules/nf-core/glimpse/phase/main.nf @@ -46,6 +46,7 @@ process GLIMPSE_PHASE { stub: def prefix = task.ext.prefix ?: "${meta.id}_${input_region.replace(":","_")}" def suffix = task.ext.suffix ?: "vcf.gz" + """ touch ${prefix}.${suffix} diff --git a/modules/nf-core/glimpse/phase/tests/main.nf.test b/modules/nf-core/glimpse/phase/tests/main.nf.test index 5c92cb1fc64f..583005c9184b 100644 --- a/modules/nf-core/glimpse/phase/tests/main.nf.test +++ b/modules/nf-core/glimpse/phase/tests/main.nf.test @@ -13,31 +13,29 @@ nextflow_process { when { process { """ - ch_sample = Channel.of([sample:'present']) - | combine(Channel.of('NA12878 2').collectFile(name: 'sampleinfos.txt')) - | concat(Channel.of([[sample: 'absent'], []])) - region = Channel.fromList([ - ["chr21:16600000-16750000","chr21:16650000-16700000"], - ["chr21:16650000-16800000","chr21:16700000-16750000"] + ch_sample = Channel.of('NA12878 2').collectFile(name: 'sampleinfos.txt') + region = channel.fromList([ + ["chr21:16570065-16597215","chr21:16570065-16592216"], + ["chr21:16587172-16609999","chr21:16592229-16609999"] ]) - input_vcf = Channel.of([ + input_vcf = channel.of([ [ id:'input'], // meta map - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.1x.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.1x.vcf.gz.csi", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true) ]) - ref_panel = Channel.of([ - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.bcf", checkIfExists: true), - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.bcf.csi", checkIfExists: true) + ref_panel = channel.of([ + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.vcf.gz.csi", checkIfExists: true) ]) - ch_map = Channel.of([ - file(params.modules_testdata_base_path + "delete_me/glimpse/chr21.b38.gmap.gz", checkIfExists: true), + ch_map = channel.of([ + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genetic_map/genome.GRCh38.chr21.glimpse.map", checkIfExists: true) ]) input[0] = input_vcf | combine(ch_sample) | combine(region) - | map { meta, vcf, index, metaS, sample, regionI, regionO -> - [[id: meta.id + "_" + metaS.sample, region : regionI], vcf, index, sample, regionI, regionO] + | map { meta, vcf, index, sample, regionI, regionO -> + [[id: meta.id, region : regionI], vcf, index, sample, regionI, regionO] } | combine(ref_panel) | combine(ch_map) @@ -46,20 +44,17 @@ nextflow_process { } then { - String targetFileName = "input_present_chr21_16650000-16800000.vcf.gz" - File selectedFile = process.out.phased_variants.stream() - .filter(vector -> vector.size() > 1) - .map(vector -> new File(vector.get(1).toString())) - .filter(file -> file.getName().equals(targetFileName)) - .findFirst() - .orElse(null) - String selectedFilename = selectedFile != null ? selectedFile.getPath() : null - def lines = path(selectedFilename).linesGzip.last() assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match("versions") }, - { assert process.out.phased_variants.size() == 4}, - { assert snapshot(lines).match("imputed") } + { assert snapshot( + process.out.phased_variants.collect{ meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ] }, + process.out.versions + ).match() } ) } diff --git a/modules/nf-core/glimpse/phase/tests/main.nf.test.snap b/modules/nf-core/glimpse/phase/tests/main.nf.test.snap index d61cf86ece4d..1ba021845c94 100644 --- a/modules/nf-core/glimpse/phase/tests/main.nf.test.snap +++ b/modules/nf-core/glimpse/phase/tests/main.nf.test.snap @@ -1,19 +1,35 @@ { - "versions": { + "test_glimpse_phase": { "content": [ [ - "versions.yml:md5,b24f49b2f5989a1f7da32c195334e96b", - "versions.yml:md5,b24f49b2f5989a1f7da32c195334e96b", + [ + { + "id": "input", + "region": "chr21:16570065-16597215" + }, + "input_chr21_16570065-16597215.vcf.gz", + "VcfFile [chromosomes=[chr21], sampleCount=1, variantCount=563, phased=false, phasedAutodetect=false]", + "307c42e67924110b165f1fff0e5c14a" + ], + [ + { + "id": "input", + "region": "chr21:16587172-16609999" + }, + "input_chr21_16587172-16609999.vcf.gz", + "VcfFile [chromosomes=[chr21], sampleCount=1, variantCount=459, phased=false, phasedAutodetect=false]", + "b138aad7ca677f696b7635802d3be82e" + ] + ], + [ "versions.yml:md5,b24f49b2f5989a1f7da32c195334e96b", "versions.yml:md5,b24f49b2f5989a1f7da32c195334e96b" ] ], - "timestamp": "2023-10-17T15:27:55.512415434" - }, - "imputed": { - "content": [ - "chr21\t16799989\t21:16799989:T:C\tT\tC\t.\t.\tRAF=0.000468897;AF=0;INFO=1;BUF=1\tGT:DS:GP:HS\t0/0:0:1,0,0:0" - ], - "timestamp": "2023-10-17T15:27:55.99820664" + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-26T20:07:25.309393538" } } \ No newline at end of file diff --git a/modules/nf-core/glimpse/sample/main.nf b/modules/nf-core/glimpse/sample/main.nf index c05296812abc..0fcfb6b4f2f9 100644 --- a/modules/nf-core/glimpse/sample/main.nf +++ b/modules/nf-core/glimpse/sample/main.nf @@ -8,7 +8,7 @@ process GLIMPSE_SAMPLE { 'biocontainers/glimpse-bio:1.1.1--hce55b13_1' }" input: - tuple val(meta), path(input) + tuple val(meta), path(input), path(index) output: tuple val(meta), path("*.{vcf,bcf,vcf.gz,bcf.gz}"), emit: haplo_sampled @@ -38,6 +38,7 @@ process GLIMPSE_SAMPLE { stub: def prefix = task.ext.prefix ?: "${meta.id}" def suffix = task.ext.suffix ?: "vcf.gz" + """ touch ${prefix}.${suffix} diff --git a/modules/nf-core/glimpse/sample/meta.yml b/modules/nf-core/glimpse/sample/meta.yml index ebb1b71cd559..2dd508a56348 100644 --- a/modules/nf-core/glimpse/sample/meta.yml +++ b/modules/nf-core/glimpse/sample/meta.yml @@ -22,9 +22,14 @@ input: e.g. [ id:'test', single_end:false ] - input: type: file - description: VCF/BCF file generated using GLIMPSE ligate + description: Imputed VCF/BCF file pattern: "*.{vcf,bcf,vcf.gz,bcf.gz}" ontologies: [] + - index: + type: file + description: Index file of the input VCF/BCF file. + pattern: "*.{vcf.gz.csi,bcf.gz.csi}" + ontologies: [] output: haplo_sampled: - - meta: diff --git a/modules/nf-core/glimpse/sample/tests/main.nf.test b/modules/nf-core/glimpse/sample/tests/main.nf.test index 494c35296fea..cac8ac5159ce 100644 --- a/modules/nf-core/glimpse/sample/tests/main.nf.test +++ b/modules/nf-core/glimpse/sample/tests/main.nf.test @@ -4,59 +4,78 @@ nextflow_process { script "../main.nf" process "GLIMPSE_SAMPLE" + config "./nextflow.config" + tag "modules" tag "modules_nfcore" tag "glimpse" tag "glimpse/sample" tag "glimpse/phase" + tag "bcftools" + tag "bcftools/index" test("test_glimpse_sample") { - config "./nextflow.config" setup { run("GLIMPSE_PHASE") { script "../../phase/main.nf" process { """ - ch_sample = Channel.of('NA12878 2').collectFile(name: 'sampleinfos.txt') - region = Channel.fromList([ - ["chr21:16600000-16750000","chr21:16650000-16700000"] - ]) - input_vcf = Channel.of([ + ch_sample = Channel.of('NA12878 2').collectFile(name: 'sampleinfos.txt') + region = channel.of(["chr21:16570000-16610000","chr21:16570000-16610000"]) + input_vcf = channel.of([ [ id:'input'], // meta map - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.1x.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "delete_me/glimpse/NA12878.chr21.s.1x.vcf.gz.csi", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true) ]) - ref_panel = Channel.of([ - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.bcf", checkIfExists: true), - file(params.modules_testdata_base_path + "delete_me/glimpse/1000GP.chr21.noNA12878.s.bcf.csi", checkIfExists: true) + ref_panel = channel.of([ + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.vcf.gz.csi", checkIfExists: true) ]) - ch_map = Channel.of([ - file(params.modules_testdata_base_path + "delete_me/glimpse/chr21.b38.gmap.gz", checkIfExists: true), + ch_map = channel.of([ + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genetic_map/genome.GRCh38.chr21.glimpse.map", checkIfExists: true) ]) input[0] = input_vcf | combine(ch_sample) | combine(region) + | map { meta, vcf, index, sample, regionI, regionO -> + [[id: meta.id, region : regionI], vcf, index, sample, regionI, regionO] + } | combine(ref_panel) | combine(ch_map) """ } } + run("BCFTOOLS_INDEX") { + script "../../../bcftools/index/main.nf" + process { + """ + input[0] = GLIMPSE_PHASE.out.phased_variants + """ + } + } } when { process { """ input[0] = GLIMPSE_PHASE.out.phased_variants + .join(BCFTOOLS_INDEX.out.csi) """ } } then { - def lines = path(process.out.haplo_sampled.get(0).get(1)).linesGzip.last() assertAll( { assert process.success }, - { assert snapshot(process.out.versions).match("versions") }, - { assert snapshot(lines).match("sampled") } + { assert snapshot( + process.out.haplo_sampled.collect{ meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ] }, + process.out.versions + ).match() } ) } diff --git a/modules/nf-core/glimpse/sample/tests/main.nf.test.snap b/modules/nf-core/glimpse/sample/tests/main.nf.test.snap index 5892f99be2c7..b36088af4fcc 100644 --- a/modules/nf-core/glimpse/sample/tests/main.nf.test.snap +++ b/modules/nf-core/glimpse/sample/tests/main.nf.test.snap @@ -1,16 +1,25 @@ { - "versions": { + "test_glimpse_sample": { "content": [ + [ + [ + { + "id": "input", + "region": "chr21:16570000-16610000" + }, + "input.vcf.gz", + "VcfFile [chromosomes=[chr21], sampleCount=1, variantCount=836, phased=true, phasedAutodetect=true]", + "98729a14199e84f9da0a80591d76b280" + ] + ], [ "versions.yml:md5,6ae83ef08ccde17c6dc248b9133c0fb8" ] ], - "timestamp": "2023-10-17T16:00:45.692964159" - }, - "sampled": { - "content": [ - "chr21\t16749965\t21:16749965:T:A\tT\tA\t.\t.\tRAF=0.000312598;AF=0.001;INFO=0.001;BUF=1\tGT\t0|0" - ], - "timestamp": "2023-10-17T16:00:45.81432328" + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-26T20:15:47.765405625" } } \ No newline at end of file diff --git a/modules/nf-core/glimpse2/chunk/tests/main.nf.test b/modules/nf-core/glimpse2/chunk/tests/main.nf.test index 0b6545e1fb5c..14ca3190222f 100644 --- a/modules/nf-core/glimpse2/chunk/tests/main.nf.test +++ b/modules/nf-core/glimpse2/chunk/tests/main.nf.test @@ -43,7 +43,7 @@ nextflow_process { file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz", checkIfExists:true), file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz.csi", checkIfExists:true), "chr22:16570000-16610000", - file("https://raw.githubusercontent.com/nf-core/test-datasets/refs/heads/phaseimpute/hum_data/reference_genome/GRCh38_chr22.glimpse.map", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genetic_map/genome.GRCh38.chr22.glimpse.map", checkIfExists: true) ] input[1]= "recursive" """ diff --git a/modules/nf-core/glimpse2/chunk/tests/main.nf.test.snap b/modules/nf-core/glimpse2/chunk/tests/main.nf.test.snap index 2a380092cb8a..d36e35b73040 100644 --- a/modules/nf-core/glimpse2/chunk/tests/main.nf.test.snap +++ b/modules/nf-core/glimpse2/chunk/tests/main.nf.test.snap @@ -77,7 +77,7 @@ { "id": "test" }, - "test.txt:md5,bf269cf00892ea2a9650817703805608" + "test.txt:md5,3bfef0fe24564dd3f759ee390345970a" ] ], [ @@ -85,9 +85,9 @@ ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-20T10:09:14.973419042" + "timestamp": "2025-11-26T20:44:36.241361838" } } \ No newline at end of file diff --git a/modules/nf-core/glimpse2/concordance/main.nf b/modules/nf-core/glimpse2/concordance/main.nf index a542993d69c1..945c3dd6a0e4 100644 --- a/modules/nf-core/glimpse2/concordance/main.nf +++ b/modules/nf-core/glimpse2/concordance/main.nf @@ -77,7 +77,7 @@ process GLIMPSE2_CONCORDANCE { cat <<-END_VERSIONS > versions.yml "${task.process}": - glimpse: "\$(GLIMPSE_concordance --help | sed -nr '/Version/p' | grep -o -E '([0-9]+.){1,2}[0-9]')" + glimpse2: "\$(GLIMPSE2_concordance --help | sed -nr '/Version/p' | grep -o -E '([0-9]+.){1,2}[0-9]' | head -1)" END_VERSIONS """ } diff --git a/modules/nf-core/glimpse2/concordance/tests/main.nf.test b/modules/nf-core/glimpse2/concordance/tests/main.nf.test index d1c68bc208d0..f37c3da863f7 100644 --- a/modules/nf-core/glimpse2/concordance/tests/main.nf.test +++ b/modules/nf-core/glimpse2/concordance/tests/main.nf.test @@ -3,6 +3,9 @@ nextflow_process { name "Test Process GLIMPSE2_CONCORDANCE" script "../main.nf" process "GLIMPSE2_CONCORDANCE" + + config "./nextflow.config" + tag "glimpse2" tag "glimpse2/concordance" tag "glimpse2/phase" @@ -11,22 +14,21 @@ nextflow_process { tag "modules" test("test glimpse2 concordance") { - config "./nextflow.config" when { params { - glimpse2_concordance_args = "--gt-val --af-tag AF" + glimpse2_concordance_args = "--gt-val --af-tag AF --seed 1" } process { """ target = Channel.of([ [id: "input"], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz",checkIfExists:true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi",checkIfExists:true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz",checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi",checkIfExists:true) ]) truth = Channel.of([ - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr22.vcf.gz",checkIfExists:true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr22.vcf.gz.csi",checkIfExists:true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr21_22.vcf.gz",checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr21_22.vcf.gz.csi",checkIfExists:true) ]) allele_freq = Channel.of([ file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.sites.vcf.gz",checkIfExists:true), @@ -47,22 +49,13 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out.errors_cal.collect{ file(it[1]).name }, - process.out.errors_grp.collect{ file(it[1]).name }, - process.out.errors_spl.collect{ file(it[1]).name }, - process.out.rsquare_grp.collect{ file(it[1]).name }, - process.out.rsquare_spl.collect{ file(it[1]).name }, - process.out.versions - ).match() } + { assert snapshot(process.out).match() } ) } } test("test list of region and rsquare per site") { - config "./nextflow.config" - when { params { glimpse2_concordance_args = "--gt-val --af-tag AF --out-r2-per-site" @@ -71,12 +64,12 @@ nextflow_process { """ target = Channel.of([ [id: "input"], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz",checkIfExists:true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi",checkIfExists:true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz",checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi",checkIfExists:true) ]) truth = Channel.of([ - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr22.vcf.gz",checkIfExists:true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr22.vcf.gz.csi",checkIfExists:true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr21_22.vcf.gz",checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878_GIAB.chr21_22.vcf.gz.csi",checkIfExists:true) ]) allele_freq = Channel.of([ file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.sites.vcf.gz",checkIfExists:true), @@ -98,15 +91,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out.errors_cal.collect{ file(it[1]).name }, - process.out.errors_grp.collect{ file(it[1]).name }, - process.out.errors_spl.collect{ file(it[1]).name }, - process.out.rsquare_grp.collect{ file(it[1]).name }, - process.out.rsquare_spl.collect{ file(it[1]).name }, - process.out.rsquare_per_site.collect{ file(it[1]).name }, - process.out.versions - ).match() } + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/glimpse2/concordance/tests/main.nf.test.snap b/modules/nf-core/glimpse2/concordance/tests/main.nf.test.snap index 5e81d44e2f04..b40e39bc825d 100644 --- a/modules/nf-core/glimpse2/concordance/tests/main.nf.test.snap +++ b/modules/nf-core/glimpse2/concordance/tests/main.nf.test.snap @@ -1,59 +1,218 @@ { "test glimpse2 concordance": { "content": [ - [ - "input.error.cal.txt.gz" - ], - [ - "input.error.grp.txt.gz" - ], - [ - "input.error.spl.txt.gz" - ], - [ - "input.rsquare.grp.txt.gz" - ], - [ - "input.rsquare.spl.txt.gz" - ], - [ - "versions.yml:md5,ba729289bab6b9fbb8c36a620c86bb82" - ] + { + "0": [ + [ + { + "id": "input" + }, + "input.error.cal.txt.gz:md5,605cf14649d768c07a6c5cff15aea26a" + ] + ], + "1": [ + [ + { + "id": "input" + }, + "input.error.grp.txt.gz:md5,bdbe0131aa4d239de367bbb18e3c3327" + ] + ], + "2": [ + [ + { + "id": "input" + }, + "input.error.spl.txt.gz:md5,034c0ecc19243d70e9cfda9083472763" + ] + ], + "3": [ + [ + { + "id": "input" + }, + "input.rsquare.grp.txt.gz:md5,d70d53a5012b161ba4de65cd48dcac67" + ] + ], + "4": [ + [ + { + "id": "input" + }, + "input.rsquare.spl.txt.gz:md5,9f0f2f13b8ea8597a83c35d578476989" + ] + ], + "5": [ + + ], + "6": [ + "versions.yml:md5,ba729289bab6b9fbb8c36a620c86bb82" + ], + "errors_cal": [ + [ + { + "id": "input" + }, + "input.error.cal.txt.gz:md5,605cf14649d768c07a6c5cff15aea26a" + ] + ], + "errors_grp": [ + [ + { + "id": "input" + }, + "input.error.grp.txt.gz:md5,bdbe0131aa4d239de367bbb18e3c3327" + ] + ], + "errors_spl": [ + [ + { + "id": "input" + }, + "input.error.spl.txt.gz:md5,034c0ecc19243d70e9cfda9083472763" + ] + ], + "rsquare_grp": [ + [ + { + "id": "input" + }, + "input.rsquare.grp.txt.gz:md5,d70d53a5012b161ba4de65cd48dcac67" + ] + ], + "rsquare_per_site": [ + + ], + "rsquare_spl": [ + [ + { + "id": "input" + }, + "input.rsquare.spl.txt.gz:md5,9f0f2f13b8ea8597a83c35d578476989" + ] + ], + "versions": [ + "versions.yml:md5,ba729289bab6b9fbb8c36a620c86bb82" + ] + } ], "meta": { - "nf-test": "0.9.1", - "nextflow": "24.10.1" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2024-12-03T16:22:35.440086384" + "timestamp": "2025-11-27T11:09:00.725735403" }, "test list of region and rsquare per site": { "content": [ - [ - "input.error.cal.txt.gz" - ], - [ - "input.error.grp.txt.gz" - ], - [ - "input.error.spl.txt.gz" - ], - [ - "input.rsquare.grp.txt.gz" - ], - [ - "input.rsquare.spl.txt.gz" - ], - [ - "input_r2_sites.txt.gz" - ], - [ - "versions.yml:md5,ba729289bab6b9fbb8c36a620c86bb82" - ] + { + "0": [ + [ + { + "id": "input" + }, + "input.error.cal.txt.gz:md5,3a4753237fd8174ff46fb91bba712d5c" + ] + ], + "1": [ + [ + { + "id": "input" + }, + "input.error.grp.txt.gz:md5,382dd127002f43716563a71a2b693de4" + ] + ], + "2": [ + [ + { + "id": "input" + }, + "input.error.spl.txt.gz:md5,61a1133643ae5b0dc44ba76976b0bcce" + ] + ], + "3": [ + [ + { + "id": "input" + }, + "input.rsquare.grp.txt.gz:md5,974a8c3188112716482103b8508ed109" + ] + ], + "4": [ + [ + { + "id": "input" + }, + "input.rsquare.spl.txt.gz:md5,9f0f2f13b8ea8597a83c35d578476989" + ] + ], + "5": [ + [ + { + "id": "input" + }, + "input_r2_sites.txt.gz:md5,f65d7df3b887a4aade33a0b7b60bcca4" + ] + ], + "6": [ + "versions.yml:md5,ba729289bab6b9fbb8c36a620c86bb82" + ], + "errors_cal": [ + [ + { + "id": "input" + }, + "input.error.cal.txt.gz:md5,3a4753237fd8174ff46fb91bba712d5c" + ] + ], + "errors_grp": [ + [ + { + "id": "input" + }, + "input.error.grp.txt.gz:md5,382dd127002f43716563a71a2b693de4" + ] + ], + "errors_spl": [ + [ + { + "id": "input" + }, + "input.error.spl.txt.gz:md5,61a1133643ae5b0dc44ba76976b0bcce" + ] + ], + "rsquare_grp": [ + [ + { + "id": "input" + }, + "input.rsquare.grp.txt.gz:md5,974a8c3188112716482103b8508ed109" + ] + ], + "rsquare_per_site": [ + [ + { + "id": "input" + }, + "input_r2_sites.txt.gz:md5,f65d7df3b887a4aade33a0b7b60bcca4" + ] + ], + "rsquare_spl": [ + [ + { + "id": "input" + }, + "input.rsquare.spl.txt.gz:md5,9f0f2f13b8ea8597a83c35d578476989" + ] + ], + "versions": [ + "versions.yml:md5,ba729289bab6b9fbb8c36a620c86bb82" + ] + } ], "meta": { - "nf-test": "0.9.1", - "nextflow": "24.10.1" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2024-12-03T16:26:35.009071185" + "timestamp": "2025-11-27T11:21:10.279509256" } } \ No newline at end of file diff --git a/modules/nf-core/glimpse2/ligate/tests/main.nf.test b/modules/nf-core/glimpse2/ligate/tests/main.nf.test index 1298e7b91c97..1ca94473aaa9 100644 --- a/modules/nf-core/glimpse2/ligate/tests/main.nf.test +++ b/modules/nf-core/glimpse2/ligate/tests/main.nf.test @@ -18,14 +18,15 @@ nextflow_process { script "../../phase/main.nf" process { """ - input_vcf = Channel.of([ + input_vcf = channel.of([ [ id:'input' ], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi", checkIfExists: true), - [], [], - "chr22:16600000-16800000", - "chr22:16650000-16750000" - ]) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), + [], [] + ]).combine(channel.of( + ["chr22:16570065-16597215", "chr22:16570065-16592216"], + ["chr22:16587172-16609999", "chr22:16592229-16609999"] + )) ref_panel = Channel.of([ file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz", checkIfExists:true), @@ -36,9 +37,12 @@ nextflow_process { // [meta, vcf, index, sample_infos, regionin, regionout,ref, index, map] [meta, fasta, fai] input[0] = input_vcf + .map { meta, vcf, index, list, sample, regionI, regionO -> + [[id: meta.id, region : regionI], vcf, index, list, sample, regionI, regionO] + } .combine(ref_panel) .combine(map_file) - input[1] = Channel.of([[],[],[]]) + input[1] = Channel.of([[],[],[]]).collect() """ } } @@ -56,8 +60,9 @@ nextflow_process { process { """ input[0] = GLIMPSE2_PHASE.out.phased_variants - | groupTuple() - | join (BCFTOOLS_INDEX.out.csi.groupTuple()) + .join(BCFTOOLS_INDEX.out.csi) + .map{ meta, vcf, index -> [meta.subMap("id"), vcf, index]} + .groupTuple() """ } } @@ -67,7 +72,12 @@ nextflow_process { { assert process.success }, { assert snapshot( process.out.versions, - process.out.merged_variants.collect{ path(it[1]).vcf.variantsMD5} + process.out.merged_variants.collect{ meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ] } ).match() }, ) } @@ -80,8 +90,8 @@ nextflow_process { """ input[0] = Channel.of([ [ id:'input' ], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), ]) """ } @@ -90,10 +100,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml, - ).match() }, + { assert snapshot(process.out).match() }, ) } } diff --git a/modules/nf-core/glimpse2/ligate/tests/main.nf.test.snap b/modules/nf-core/glimpse2/ligate/tests/main.nf.test.snap index 995bcfb0eb5b..4422e31d2a5a 100644 --- a/modules/nf-core/glimpse2/ligate/tests/main.nf.test.snap +++ b/modules/nf-core/glimpse2/ligate/tests/main.nf.test.snap @@ -5,14 +5,21 @@ "versions.yml:md5,44addcaef4965ff6409a8293c5bcad84" ], [ - "8730c5450f0c32d72c6d5cb4eb02b38b" + [ + { + "id": "input" + }, + "input.vcf.gz", + "VcfFile [chromosomes=[chr22], sampleCount=1, variantCount=903, phased=true, phasedAutodetect=true]", + "bfeec64e4bbd1211d3dd284aff482995" + ] ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-19T23:17:50.793909707" + "timestamp": "2025-11-26T20:54:57.8806397" }, "Should run glimpse ligate -- stub": { "content": [ @@ -39,17 +46,12 @@ "versions": [ "versions.yml:md5,44addcaef4965ff6409a8293c5bcad84" ] - }, - { - "GLIMPSE2_LIGATE": { - "glimpse2": "2.0.0" - } } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-19T23:19:24.515887682" + "timestamp": "2025-11-26T20:46:48.337059937" } -} +} \ No newline at end of file diff --git a/modules/nf-core/glimpse2/phase/tests/main.nf.test b/modules/nf-core/glimpse2/phase/tests/main.nf.test index c7b2d46a2d47..c7dfcd7ed827 100644 --- a/modules/nf-core/glimpse2/phase/tests/main.nf.test +++ b/modules/nf-core/glimpse2/phase/tests/main.nf.test @@ -17,27 +17,27 @@ nextflow_process { when { process { """ - input_vcf = Channel.of([ + input_vcf = channel.of([ [ id:'input' ], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), [], [], "chr22:16600000-16800000", "chr22:16650000-16750000" ]) - ref_panel = Channel.of([ + ref_panel = channel.of([ file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz", checkIfExists:true), file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz.csi", checkIfExists:true), ]) - map_file = Channel.of([[]]) + map_file = channel.of([[]]) // [meta, vcf, index, sample_infos, regionin, regionout,ref, index, map] [meta, fasta, fai] input[0] = input_vcf .combine(ref_panel) .combine(map_file) - input[1] = Channel.of([[],[],[]]) + input[1] = channel.of([[],[],[]]) """ } } @@ -46,7 +46,13 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - path(process.out.phased_variants[0][1]).vcf.variantsMD5, + process.out.phased_variants.collect{ meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ]}, + process.out.stats_coverage, process.out.versions ).match()} ) @@ -58,27 +64,27 @@ nextflow_process { when { process { """ - input_bam = Channel.of([ + input_bam = channel.of([ [id:'input'], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr22.1X.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr22.1X.bam.bai", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam.bai", checkIfExists: true), [], [], "chr22:16600000-16800000", "chr22:16650000-16750000", ]) - ref_panel = Channel.of([ + ref_panel = channel.of([ file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz", checkIfExists:true), file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz.csi", checkIfExists:true), ]) - map_file = Channel.of([[]]) + map_file = channel.of([[]]) // [meta, vcf, index, sample_infos, regionin, regionout,ref, index, map] [meta, fasta, fai] input[0] = input_bam .combine(ref_panel) .combine(map_file) - input[1] = Channel.of([[],[],[]]) + input[1] = channel.of([[],[],[]]) """ } } @@ -87,7 +93,12 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - path(process.out.phased_variants[0][1]).vcf.variantsMD5, + process.out.phased_variants.collect{ meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ]}, process.out.stats_coverage, process.out.versions ).match()} @@ -102,14 +113,14 @@ nextflow_process { script "../../../samtools/view" process { """ - input[0] = Channel.of([ + input[0] = channel.of([ [id:'input'], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr22.1X.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr22.1X.bam.bai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam.bai", checkIfExists: true) ]) - input[1] = Channel.of([ + input[1] = channel.of([ [id: 'Hg38'], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/GRCh37_chr22.fasta.gz", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genomeGRCh38_chr21_22.fa.gz", checkIfExists: true) ]) input[2] = [] input[3] = "crai" @@ -123,22 +134,22 @@ nextflow_process { """ input_cram = SAMTOOLS_VIEW.out.cram .join(SAMTOOLS_VIEW.out.crai) - .combine(Channel.of([ + .combine(channel.of([ [], [], "chr22:16600000-16800000", "chr22:16650000-16750000", ])) - ref_panel = Channel.of([ + ref_panel = channel.of([ file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz", checkIfExists:true), file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz.csi", checkIfExists:true) ]) - map_file = Channel.of([[]]) + map_file = channel.of([[]]) - reference_genome = Channel.of([ + reference_genome = channel.of([ [id: 'Hg38'], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/GRCh37_chr22.fasta.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.fasta.fai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genomeGRCh38_chr21_22.fa.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genomeGRCh38_chr21_22.fa.gz.fai", checkIfExists: true) ]) // [meta, vcf, index, sample_infos, regionin, regionout,ref, index, map] [meta, fasta, fai] @@ -154,7 +165,12 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - path(process.out.phased_variants[0][1]).vcf.variantsMD5, + process.out.phased_variants.collect{ meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ]}, process.out.stats_coverage, process.out.versions ).match()} @@ -163,35 +179,36 @@ nextflow_process { } test("homo_sapiens - [bam, bam] region - panel") { + tag "test" when { process { """ - input_bam = Channel.of([ + input_bam = channel.of([ [id:'input'], [ - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA12878/NA12878.s.bam", checkIfExists: true), - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA19401/NA19401.s.bam", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA19401.chr21_22.1X.bam", checkIfExists: true) ], [ - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA12878/NA12878.s.bam.bai", checkIfExists: true), - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA19401/NA19401.s.bam.bai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam.bai", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA19401.chr21_22.1X.bam.bai", checkIfExists: true) ], [], [], "chr22:16600000-16800000", "chr22:16650000-16750000", ]) - ref_panel = Channel.of([ + ref_panel = channel.of([ file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz", checkIfExists:true), file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz.csi", checkIfExists:true) ]) - map_file = Channel.of([[]]) + map_file = channel.of([[]]) // [meta, vcf, index, sample_infos, regionin, regionout,ref, index, map] [meta, fasta, fai] input[0] = input_bam .combine(ref_panel) .combine(map_file) - input[1] = Channel.of([[],[],[]]) + input[1] = channel.of([[],[],[]]) """ } } @@ -200,8 +217,12 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - // path(process.out.phased_variants[0][1]).vcf.variantsMD5, // MD5 sum not stable for the AF infos of 1 variant at the 5th decimals - process.out.phased_variants.collect{ path(it[1]).vcf.summary.replaceAll(", phasedAutodetect=(false|true)", "") }, + process.out.phased_variants.collect{ meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ]}, process.out.stats_coverage, process.out.versions ).match()} @@ -213,15 +234,15 @@ nextflow_process { when { process { """ - input_bam = Channel.of([ + input_bam = channel.of([ [id:'input'], [ - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA12878/NA12878.s.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true) ], [ - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA12878/NA12878.s.bam.bai", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam.bai", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true) ], [], [], "chr22:16600000-16800000", @@ -231,7 +252,7 @@ nextflow_process { // [meta, vcf, index, sample_infos, regionin, regionout,ref, index, map] [meta, fasta, fai] input[0] = input_bam - input[1] = Channel.of([[],[],[]]) + input[1] = channel.of([[],[],[]]) """ } } @@ -248,15 +269,15 @@ nextflow_process { when { process { """ - input_bam = Channel.of([ + input_bam = channel.of([ [id:'input'], [ - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA12878/NA12878.s.1x.bcf", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA19401.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), ], [ - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA12878/NA12878.s.1x.bcf.csi", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA19401.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), ], [], [], "chr21:16600000-16800000", @@ -266,7 +287,7 @@ nextflow_process { // [meta, vcf, index, sample_infos, regionin, regionout,ref, index, map] [meta, fasta, fai] input[0] = input_bam - input[1] = Channel.of([[],[],[]]) + input[1] = channel.of([[],[],[]]) """ } } @@ -280,23 +301,24 @@ nextflow_process { } test("homo_sapiens - [bam, bam] region sample rename - panel") { + tag "test" when { process { """ - bamlist = Channel.of( - "NA12878.s.bam\tNA12878", - "NA19401.s.bam\tNA19401" + bamlist = channel.of( + "NA12878.chr21_22.1X.bam\tSample1", + "NA19401.chr21_22.1X.bam\tSample2" ).collectFile(name: 'bamlist.txt', newLine: true) - input_bam = Channel.of([ + input_bam = channel.of([ [id:'input'], [ - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA12878/NA12878.s.bam", checkIfExists: true), - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA19401/NA19401.s.bam", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA19401.chr21_22.1X.bam", checkIfExists: true) ], [ - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA12878/NA12878.s.bam.bai", checkIfExists: true), - file("https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/individuals/NA19401/NA19401.s.bam.bai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam.bai", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA19401.chr21_22.1X.bam.bai", checkIfExists: true) ], ]).combine(bamlist) .map{ map, bam, bai, bamlist -> [ @@ -305,17 +327,17 @@ nextflow_process { "chr22:16650000-16750000", ]} - ref_panel = Channel.of([ + ref_panel = channel.of([ file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz", checkIfExists:true), file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz.csi", checkIfExists:true) ]) - map_file = Channel.of([[]]) + map_file = channel.of([[]]) // [meta, vcf, index, sample_infos, regionin, regionout,ref, index, map] [meta, fasta, fai] input[0] = input_bam .combine(ref_panel) .combine(map_file) - input[1] = Channel.of([[],[],[]]) + input[1] = channel.of([[],[],[]]) """ } } @@ -324,8 +346,14 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - process.out.phased_variants.collect{ path(it[1]).vcf.header.getGenotypeSamples().sort() }, - process.out.phased_variants.collect{ path(it[1]).vcf.summary.replaceAll(", phasedAutodetect=(false|true)", "") } + process.out.phased_variants.collect{ meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ]}, + process.out.stats_coverage, + process.out.versions ).match()} ) } @@ -336,10 +364,10 @@ nextflow_process { when { process { """ - input_vcf = Channel.of([ + input_vcf = channel.of([ [ id:'input' ], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), [], [], "chr22:16600000-16800000", "chr22:16650000-16750000", @@ -348,7 +376,7 @@ nextflow_process { // [meta, vcf, index, sample_infos, regionin, regionout,ref, index, map] [meta, fasta, fai] input[0] = input_vcf - input[1] = Channel.of([[],[],[]]) + input[1] = channel.of([[],[],[]]) """ } } @@ -356,10 +384,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - process.out, - path(process.out.versions[0]).yaml - ).match()} + { assert snapshot(process.out).match()} ) } diff --git a/modules/nf-core/glimpse2/phase/tests/main.nf.test.snap b/modules/nf-core/glimpse2/phase/tests/main.nf.test.snap index 52fe9b37acca..143504524b83 100644 --- a/modules/nf-core/glimpse2/phase/tests/main.nf.test.snap +++ b/modules/nf-core/glimpse2/phase/tests/main.nf.test.snap @@ -1,13 +1,22 @@ { "homo_sapiens - bam region - panel": { "content": [ - "b84087788284d7ca02e23a0a24da2cff", [ [ { "id": "input" }, - "input_chr22_16650000-16750000_stats_coverage.txt.gz:md5,5682c97193f6cd8041f3bc4ef81e7252" + "input_chr22_16650000-16750000.vcf", + "VcfFile [chromosomes=[chr22], sampleCount=1, variantCount=266, phased=true, phasedAutodetect=false]", + "23026b2111d5b93194ebbb5de09d654d" + ] + ], + [ + [ + { + "id": "input" + }, + "input_chr22_16650000-16750000_stats_coverage.txt.gz:md5,39bf5e7c67e377207656104f64fea657" ] ], [ @@ -15,22 +24,29 @@ ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-19T22:59:18.246884827" + "timestamp": "2025-11-26T20:59:49.43898101" }, "homo_sapiens - [bam, bam] region - panel": { "content": [ [ - "VcfFile [chromosomes=[chr22], sampleCount=2, variantCount=266, phased=true]" + [ + { + "id": "input" + }, + "input_chr22_16650000-16750000.vcf", + "VcfFile [chromosomes=[chr22], sampleCount=2, variantCount=266, phased=true, phasedAutodetect=false]", + "f06d12e3c16a8edc313ad564836008" + ] ], [ [ { "id": "input" }, - "input_chr22_16650000-16750000_stats_coverage.txt.gz:md5,ce67a9fd6944b74e65ab6f401b1b9bb0" + "input_chr22_16650000-16750000_stats_coverage.txt.gz:md5,fa1b295b071c1b8670c013577a982139" ] ], [ @@ -38,27 +54,48 @@ ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-19T23:09:13.67984812" + "timestamp": "2025-11-26T21:03:14.8627618" }, "homo_sapiens - vcf region - panel": { "content": [ - "d8e9e1ec4d9d229536a23f2f69a469de", + [ + [ + { + "id": "input" + }, + "input_chr22_16650000-16750000.vcf", + "VcfFile [chromosomes=[chr22], sampleCount=1, variantCount=266, phased=true, phasedAutodetect=false]", + "d8e9e1ec4d9d229536a23f2f69a469de" + ] + ], + [ + + ], [ "versions.yml:md5,c68de03046a6503cdbcf3a1495fc512f" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-19T22:59:11.310995509" + "timestamp": "2025-11-26T20:58:13.192800596" }, "homo_sapiens - cram region - panel - fasta": { "content": [ - "d8e9e1ec4d9d229536a23f2f69a469de", + [ + [ + { + "id": "input" + }, + "input_chr22_16650000-16750000.vcf", + "VcfFile [chromosomes=[chr22], sampleCount=1, variantCount=266, phased=true, phasedAutodetect=false]", + "d8e9e1ec4d9d229536a23f2f69a469de" + ] + ], [ [ { @@ -72,28 +109,40 @@ ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-19T22:59:28.11190592" + "timestamp": "2025-11-26T21:00:40.288219943" }, "homo_sapiens - [bam, bam] region sample rename - panel": { "content": [ [ [ - "NA12878", - "NA19401" + { + "id": "input" + }, + "input_chr22_16650000-16750000.vcf", + "VcfFile [chromosomes=[chr22], sampleCount=2, variantCount=266, phased=true, phasedAutodetect=false]", + "f2aff70c52df2f69d9bc1f4bf63fcb5c" + ] + ], + [ + [ + { + "id": "input" + }, + "input_chr22_16650000-16750000_stats_coverage.txt.gz:md5,b21fbf77322b281c5cf4822edadd844c" ] ], [ - "VcfFile [chromosomes=[chr22], sampleCount=2, variantCount=266, phased=true]" + "versions.yml:md5,c68de03046a6503cdbcf3a1495fc512f" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-19T22:59:55.383590515" + "timestamp": "2025-11-26T21:05:13.564441099" }, "homo_sapiens - vcf region - panel -- stub": { "content": [ @@ -126,17 +175,12 @@ "versions": [ "versions.yml:md5,c68de03046a6503cdbcf3a1495fc512f" ] - }, - { - "GLIMPSE2_PHASE": { - "glimpse2": "2.0.0" - } } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-19T23:19:50.900935094" + "timestamp": "2025-11-26T21:01:07.257765596" } } \ No newline at end of file diff --git a/modules/nf-core/glimpse2/phase/tests/nextflow.config b/modules/nf-core/glimpse2/phase/tests/nextflow.config index 820e20151921..310c7f220dd7 100644 --- a/modules/nf-core/glimpse2/phase/tests/nextflow.config +++ b/modules/nf-core/glimpse2/phase/tests/nextflow.config @@ -1,5 +1,6 @@ process { withName: GLIMPSE2_PHASE { + cpus = 1 ext.args = "--seed 1" ext.suffix = "vcf" } diff --git a/modules/nf-core/glimpse2/splitreference/tests/main.nf.test b/modules/nf-core/glimpse2/splitreference/tests/main.nf.test index d10648c40e1e..e95febde9a3c 100644 --- a/modules/nf-core/glimpse2/splitreference/tests/main.nf.test +++ b/modules/nf-core/glimpse2/splitreference/tests/main.nf.test @@ -52,7 +52,7 @@ nextflow_process { ] input[1]= [ [ id:'map'], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.GRCh38.glimpse.chr22.map.gz", checkIfExists:true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genetic_map/genome.GRCh38.chr22.glimpse.map", checkIfExists:true) ] """ } diff --git a/subworkflows/nf-core/multiple_impute_glimpse2/main.nf b/subworkflows/nf-core/multiple_impute_glimpse2/main.nf index 47fb600f3c23..c9c0022beacc 100644 --- a/subworkflows/nf-core/multiple_impute_glimpse2/main.nf +++ b/subworkflows/nf-core/multiple_impute_glimpse2/main.nf @@ -10,13 +10,13 @@ workflow MULTIPLE_IMPUTE_GLIMPSE2 { take: ch_input // channel (mandatory): [ meta, vcf, csi, infos ] ch_ref // channel (mandatory): [ meta, vcf, csi, region ] - ch_map // channel (optional): [ meta, map ] - ch_fasta // channel (optional): [ meta, fasta, index ] + ch_map // channel (optional) : [ meta, map ] + ch_fasta // channel (optional) : [ meta, fasta, index ] chunk_model // string: model used to chunk the reference panel main: - ch_versions = Channel.empty() + ch_versions = channel.empty() // Chunk reference panel ch_ref_map = ch_ref.combine(ch_map, by: 0) @@ -48,10 +48,10 @@ workflow MULTIPLE_IMPUTE_GLIMPSE2 { // Phase input files for each reference bin files + indexing GLIMPSE2_PHASE ( phase_input, ch_fasta ) // [meta, vcf, index, sample_infos, regionin, regionout, regionindex, ref, ref_index, map], [ meta, fasta, index ] - ch_versions = ch_versions.mix( GLIMPSE2_PHASE.out.versions) + ch_versions = ch_versions.mix( GLIMPSE2_PHASE.out.versions.first() ) INDEX_PHASE ( GLIMPSE2_PHASE.out.phased_variants ) - ch_versions = ch_versions.mix( INDEX_PHASE.out.versions ) + ch_versions = ch_versions.mix( INDEX_PHASE.out.versions.first() ) // Ligate all phased files in one and index it ligate_input = GLIMPSE2_PHASE.out.phased_variants @@ -61,10 +61,10 @@ workflow MULTIPLE_IMPUTE_GLIMPSE2 { .collect(), by: 0 ) GLIMPSE2_LIGATE ( ligate_input ) - ch_versions = ch_versions.mix( GLIMPSE2_LIGATE.out.versions ) + ch_versions = ch_versions.mix( GLIMPSE2_LIGATE.out.versions.first() ) INDEX_LIGATE ( GLIMPSE2_LIGATE.out.merged_variants ) - ch_versions = ch_versions.mix( INDEX_LIGATE.out.versions ) + ch_versions = ch_versions.mix( INDEX_LIGATE.out.versions.first() ) emit: chunk_chr = GLIMPSE2_CHUNK.out.chunk_chr // channel: [ val(meta), txt ] diff --git a/subworkflows/nf-core/multiple_impute_glimpse2/tests/main.nf.test b/subworkflows/nf-core/multiple_impute_glimpse2/tests/main.nf.test index 43f17ec771d7..989bdb8a1ca7 100644 --- a/subworkflows/nf-core/multiple_impute_glimpse2/tests/main.nf.test +++ b/subworkflows/nf-core/multiple_impute_glimpse2/tests/main.nf.test @@ -24,8 +24,8 @@ nextflow_workflow { """ input[0] = Channel.of([ [id:'input_vcf'], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), [] ]) input[1] = Channel.of([ @@ -63,8 +63,8 @@ nextflow_workflow { .collectFile(name: 'sampleinfos.txt') input[0] = Channel.of([ [id:'input_vcf'], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr22.1X.vcf.gz.csi", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), ]).combine(sample) input[1] = Channel.of([ [id:'ref_panel', chr: "22"], @@ -103,8 +103,8 @@ nextflow_workflow { """ input[0] = Channel.of([ [id:'input_bam'], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr22.1X.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr22.1X.bam.bai", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam.bai", checkIfExists: true), [] ]) input[1] = Channel.of([ @@ -142,8 +142,8 @@ nextflow_workflow { """ input[0] = input[0] = Channel.of([ [id:'input_bam'], - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr22.1X.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr22.1X.bam.bai", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/NA12878.chr21_22.1X.bam.bai", checkIfExists: true), [] ]) input[1] = Channel.of([ diff --git a/subworkflows/nf-core/multiple_impute_glimpse2/tests/main.nf.test.snap b/subworkflows/nf-core/multiple_impute_glimpse2/tests/main.nf.test.snap index c75e08a02aee..232c67643f96 100644 --- a/subworkflows/nf-core/multiple_impute_glimpse2/tests/main.nf.test.snap +++ b/subworkflows/nf-core/multiple_impute_glimpse2/tests/main.nf.test.snap @@ -17,19 +17,17 @@ [ "versions.yml:md5,048d5415737cdc568fcc4fbdc5df11e2", "versions.yml:md5,1301ab7e8d92b232e306aef24d94e252", - "versions.yml:md5,1301ab7e8d92b232e306aef24d94e252", "versions.yml:md5,1362d3f6834c21239d705f550b11c2af", "versions.yml:md5,2373902d5432eba6898c90d4c4685f90", "versions.yml:md5,642ed64b13825472557113ba2e4b1566", - "versions.yml:md5,e81cfbe9cf12832b8312f966b6c9beb1", "versions.yml:md5,e81cfbe9cf12832b8312f966b6c9beb1" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-09-15T07:30:09.139160775" + "timestamp": "2025-11-27T11:11:34.893641629" }, "homo_sapiens - bam [] - panel vcf - [] - [] - sequential": { "content": [ @@ -43,7 +41,7 @@ ] ], [ - "11558863c409ca2d6278e699cd5fde1a" + "49df7da6c9745ba9a86112193ff172a9" ], "input_bam.vcf.gz.csi", [ @@ -56,10 +54,10 @@ ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-09-15T07:30:25.249656096" + "timestamp": "2025-11-26T21:19:09.9592341" }, "homo_sapiens - bam [] - panel vcf - [] - [] - sequential -- stub": { "content": [ diff --git a/subworkflows/nf-core/vcf_impute_glimpse/main.nf b/subworkflows/nf-core/vcf_impute_glimpse/main.nf index 94262e34ae14..9b6884df3e1c 100644 --- a/subworkflows/nf-core/vcf_impute_glimpse/main.nf +++ b/subworkflows/nf-core/vcf_impute_glimpse/main.nf @@ -11,30 +11,30 @@ workflow VCF_IMPUTE_GLIMPSE { main: - ch_versions = Channel.empty() + ch_versions = channel.empty() input_chunk = ch_input.map{ - meta, vcf, csi, sample, region, ref, ref_index, map -> + meta, vcf, csi, _sample, region, _ref, _ref_index, _map -> [ meta, vcf, csi, region] } GLIMPSE_CHUNK ( input_chunk ) - ch_versions = ch_versions.mix( GLIMPSE_CHUNK.out.versions ) + ch_versions = ch_versions.mix( GLIMPSE_CHUNK.out.versions.first() ) chunk_output = GLIMPSE_CHUNK.out.chunk_chr .splitCsv(header: ['ID', 'Chr', 'RegionIn', 'RegionOut', 'Size1', 'Size2'], sep: "\t", skip: 0) .map { meta, it -> [meta, it["RegionIn"], it["RegionOut"]]} - phase_input = ch_input.map{ meta, vcf, csi, sample, region, ref, ref_index, map -> [meta, vcf, csi, sample, ref, ref_index, map]} + phase_input = ch_input.map{ meta, vcf, csi, sample, _region, ref, ref_index, map -> [meta, vcf, csi, sample, ref, ref_index, map]} .combine(chunk_output, by: 0) .map{meta, vcf, csi, sample, ref, ref_index, map, regionin, regionout -> [meta, vcf, csi, sample, regionin, regionout, ref, ref_index, map]} GLIMPSE_PHASE ( phase_input ) // [meta, vcf, index, sample_infos, regionin, regionout, ref, ref_index, map] - ch_versions = ch_versions.mix(GLIMPSE_PHASE.out.versions ) + ch_versions = ch_versions.mix(GLIMPSE_PHASE.out.versions.first() ) INDEX_PHASE ( GLIMPSE_PHASE.out.phased_variants ) - ch_versions = ch_versions.mix( INDEX_PHASE.out.versions ) + ch_versions = ch_versions.mix( INDEX_PHASE.out.versions.first() ) // Ligate all phased files in one and index it ligate_input = GLIMPSE_PHASE.out.phased_variants @@ -45,10 +45,10 @@ workflow VCF_IMPUTE_GLIMPSE { ) GLIMPSE_LIGATE ( ligate_input ) - ch_versions = ch_versions.mix(GLIMPSE_LIGATE.out.versions ) + ch_versions = ch_versions.mix(GLIMPSE_LIGATE.out.versions.first() ) INDEX_LIGATE ( GLIMPSE_LIGATE.out.merged_variants ) - ch_versions = ch_versions.mix( INDEX_LIGATE.out.versions ) + ch_versions = ch_versions.mix( INDEX_LIGATE.out.versions.first() ) emit: chunk_chr = GLIMPSE_CHUNK.out.chunk_chr // channel: [ val(meta), txt ] diff --git a/subworkflows/nf-core/vcf_impute_glimpse/tests/main.nf.test b/subworkflows/nf-core/vcf_impute_glimpse/tests/main.nf.test index 29b71c982273..a7dfec8a7ccc 100644 --- a/subworkflows/nf-core/vcf_impute_glimpse/tests/main.nf.test +++ b/subworkflows/nf-core/vcf_impute_glimpse/tests/main.nf.test @@ -18,7 +18,6 @@ nextflow_workflow { when { params { outdir = "tests/results" - impute_dataset = "https://raw.githubusercontent.com/nf-core/test-datasets/phaseimpute/hum_data/" } workflow { """ @@ -26,11 +25,11 @@ nextflow_workflow { ch_panel = Channel.fromList([ [[ chr:"chr21"], - file(params.impute_dataset + "panel/chr21/1000GP.chr21.s.norel.vcf.gz", checkIfExists: true), - file(params.impute_dataset + "panel/chr21/1000GP.chr21.s.norel.vcf.gz.csi", checkIfExists: true)], + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.vcf.gz", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr21.vcf.gz.csi", checkIfExists:true)], [[ chr:"chr22"], - file(params.impute_dataset + "panel/chr22/1000GP.chr22.s.norel.vcf.gz", checkIfExists: true), - file(params.impute_dataset + "panel/chr22/1000GP.chr22.s.norel.vcf.gz.csi", checkIfExists: true)] + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/popgen/1000GP.chr22.vcf.gz.csi", checkIfExists:true)] ]) region = Channel.fromList([ [[chr: "chr21", region: "chr21:16600000-16800000"], "chr21:16600000-16800000"], @@ -39,12 +38,12 @@ nextflow_workflow { input_vcf = Channel.fromList([ [[ id:'NA12878'], // meta map - file(params.impute_dataset + "individuals/NA12878/NA12878.s.1x.bcf", checkIfExists: true), - file(params.impute_dataset + "individuals/NA12878/NA12878.s.1x.bcf.csi", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA12878.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), ], [[ id:'NA19401'], // meta map - file(params.impute_dataset + "individuals/NA19401/NA19401.s.1x.bcf", checkIfExists: true), - file(params.impute_dataset + "individuals/NA19401/NA19401.s.1x.bcf.csi", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA19401.chr21_22.1X.glimpse2.vcf.gz", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/NA19401.chr21_22.1X.glimpse2.vcf.gz.csi", checkIfExists: true), ] ]) input_vcf_multiple = input_vcf @@ -56,10 +55,10 @@ nextflow_workflow { ch_map = Channel.fromList([ [[ chr: "chr21"], - file(params.impute_dataset + "reference_genome/GRCh38_chr21.glimpse.map", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genetic_map/genome.GRCh38.chr21.glimpse.map", checkIfExists: true) ], [[ chr: "chr22"], - file(params.impute_dataset + "reference_genome/GRCh38_chr21.glimpse.map", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genetic_map/genome.GRCh38.chr22.glimpse.map", checkIfExists: true) ] ]) @@ -78,13 +77,18 @@ nextflow_workflow { } then { - def lines = path(workflow.out.merged_variants.get(0).get(1)).linesGzip.last() assertAll( { assert workflow.success }, - { assert snapshot(workflow.out.versions).match("versions") }, - { assert snapshot(workflow.out.chunk_chr).match("chunk_chr") }, - { assert workflow.out.merged_variants.size() == 4}, - { assert snapshot(lines).match("merged") } + { assert snapshot( + workflow.out.versions, + workflow.out.chunk_chr, + workflow.out.merged_variants.collect{ meta, vcf -> [ + meta, + file(vcf).name, + path(vcf).vcf.summary, + path(vcf).vcf.variantsMD5 + ]} + ).match() } ) } diff --git a/subworkflows/nf-core/vcf_impute_glimpse/tests/main.nf.test.snap b/subworkflows/nf-core/vcf_impute_glimpse/tests/main.nf.test.snap index e1e48f2e30f6..d0174f8cacc8 100644 --- a/subworkflows/nf-core/vcf_impute_glimpse/tests/main.nf.test.snap +++ b/subworkflows/nf-core/vcf_impute_glimpse/tests/main.nf.test.snap @@ -1,6 +1,13 @@ { - "chunk_chr": { + "Should run without failures": { "content": [ + [ + "versions.yml:md5,21a662d09502bd6516ec62b72e4fb182", + "versions.yml:md5,227d8e960e4382d8a615e040b874fc27", + "versions.yml:md5,4c01309242fd8da3ddbde9fab54aae4c", + "versions.yml:md5,7ae4d2b0252f9382dd08d783b7a234d2", + "versions.yml:md5,c7bdac5a09390d02a95e5042a2fd133e" + ], [ [ { @@ -16,7 +23,7 @@ "chr": "chr22", "region": "chr22:16600000-16800000" }, - "NA12878_chr22:16600000-16800000_chunk.txt:md5,f5270ed0faa4f9697618444b267442ce" + "NA12878_chr22:16600000-16800000_chunk.txt:md5,7ac5d116bc3357a154946576c21060cd" ], [ { @@ -32,55 +39,56 @@ "chr": "chr22", "region": "chr22:16600000-16800000" }, - "NA19401_chr22:16600000-16800000_chunk.txt:md5,f5270ed0faa4f9697618444b267442ce" + "NA19401_chr22:16600000-16800000_chunk.txt:md5,7ac5d116bc3357a154946576c21060cd" ] - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-03-01T13:00:44.904715825" - }, - "versions": { - "content": [ + ], [ - "versions.yml:md5,227d8e960e4382d8a615e040b874fc27", - "versions.yml:md5,227d8e960e4382d8a615e040b874fc27", - "versions.yml:md5,227d8e960e4382d8a615e040b874fc27", - "versions.yml:md5,227d8e960e4382d8a615e040b874fc27", - "versions.yml:md5,4c01309242fd8da3ddbde9fab54aae4c", - "versions.yml:md5,4c01309242fd8da3ddbde9fab54aae4c", - "versions.yml:md5,4c01309242fd8da3ddbde9fab54aae4c", - "versions.yml:md5,4c01309242fd8da3ddbde9fab54aae4c", - "versions.yml:md5,73621eae1bfd89c2ceb009524fe680d4", - "versions.yml:md5,73621eae1bfd89c2ceb009524fe680d4", - "versions.yml:md5,73621eae1bfd89c2ceb009524fe680d4", - "versions.yml:md5,73621eae1bfd89c2ceb009524fe680d4", - "versions.yml:md5,7ae4d2b0252f9382dd08d783b7a234d2", - "versions.yml:md5,7ae4d2b0252f9382dd08d783b7a234d2", - "versions.yml:md5,7ae4d2b0252f9382dd08d783b7a234d2", - "versions.yml:md5,7ae4d2b0252f9382dd08d783b7a234d2", - "versions.yml:md5,c7bdac5a09390d02a95e5042a2fd133e", - "versions.yml:md5,c7bdac5a09390d02a95e5042a2fd133e", - "versions.yml:md5,c7bdac5a09390d02a95e5042a2fd133e", - "versions.yml:md5,c7bdac5a09390d02a95e5042a2fd133e" + [ + { + "id": "NA12878", + "chr": "chr21", + "region": "chr21:16600000-16800000" + }, + "NA12878_chr21_null_ligate.vcf.gz", + "VcfFile [chromosomes=[chr21], sampleCount=1, variantCount=211, phased=false, phasedAutodetect=false]", + "66d0bfb31b037fb57d6b56e65b7cd6a7" + ], + [ + { + "id": "NA12878", + "chr": "chr22", + "region": "chr22:16600000-16800000" + }, + "NA12878_chr22_null_ligate.vcf.gz", + "VcfFile [chromosomes=[chr22], sampleCount=1, variantCount=266, phased=false, phasedAutodetect=false]", + "58751684e0168ad0485ba3510e0cfd3e" + ], + [ + { + "id": "NA19401", + "chr": "chr21", + "region": "chr21:16600000-16800000" + }, + "NA19401_chr21_null_ligate.vcf.gz", + "VcfFile [chromosomes=[chr21], sampleCount=1, variantCount=211, phased=false, phasedAutodetect=false]", + "66d0bfb31b037fb57d6b56e65b7cd6a7" + ], + [ + { + "id": "NA19401", + "chr": "chr22", + "region": "chr22:16600000-16800000" + }, + "NA19401_chr22_null_ligate.vcf.gz", + "VcfFile [chromosomes=[chr22], sampleCount=1, variantCount=266, phased=false, phasedAutodetect=false]", + "58751684e0168ad0485ba3510e0cfd3e" + ] ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2025-09-15T09:04:33.581167" - }, - "merged": { - "content": [ - "chr21\t16609998\tchr21:16609998:A:G\tA\tG\t.\t.\tRAF=0.00125156;AF=0;INFO=1\tGT:DS:GP:HS\t0/0:0:1,0,0:0" - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-03-01T13:00:44.91963315" + "timestamp": "2025-11-27T11:10:39.309436558" } } \ No newline at end of file