From 4d2f4abcfcda90ab3233fee468add3bbc7d5f2d6 Mon Sep 17 00:00:00 2001 From: ramprasadn <20065894+ramprasadn@users.noreply.github.com> Date: Sun, 10 Nov 2024 10:41:05 +0100 Subject: [PATCH 1/6] update modules --- modules.json | 46 +-- modules/nf-core/bcftools/annotate/main.nf | 10 +- modules/nf-core/bcftools/filter/main.nf | 2 +- modules/nf-core/bcftools/filter/meta.yml | 4 + .../bcftools/filter/tests/main.nf.test | 52 ++- .../bcftools/filter/tests/main.nf.test.snap | 45 +++ .../determinegermlinecontigploidy/main.nf | 2 + .../nf-core/gatk4/germlinecnvcaller/main.nf | 2 + .../nf-core/genmod/annotate/environment.yml | 2 +- modules/nf-core/genmod/annotate/main.nf | 6 +- .../genmod/annotate/tests/main.nf.test | 31 +- .../nf-core/genmod/compound/environment.yml | 2 +- modules/nf-core/genmod/compound/main.nf | 6 +- .../genmod/compound/tests/main.nf.test | 31 +- modules/nf-core/genmod/models/environment.yml | 2 +- modules/nf-core/genmod/models/main.nf | 9 +- modules/nf-core/genmod/models/meta.yml | 4 +- .../nf-core/genmod/models/tests/main.nf.test | 38 ++- modules/nf-core/genmod/score/environment.yml | 2 +- modules/nf-core/genmod/score/main.nf | 9 +- modules/nf-core/genmod/score/meta.yml | 4 +- .../nf-core/genmod/score/tests/main.nf.test | 39 ++- modules/nf-core/glnexus/main.nf | 5 +- modules/nf-core/glnexus/meta.yml | 9 + .../addorreplacereadgroups/environment.yml | 2 +- .../picard/addorreplacereadgroups/main.nf | 4 +- .../tests/main.nf.test.snap | 26 +- .../picard/collecthsmetrics/environment.yml | 2 +- .../nf-core/picard/collecthsmetrics/main.nf | 4 +- .../collecthsmetrics/tests/main.nf.test.snap | 40 +-- .../collectmultiplemetrics/environment.yml | 2 +- .../picard/collectmultiplemetrics/main.nf | 4 +- .../tests/main.nf.test.snap | 18 +- .../picard/collectwgsmetrics/environment.yml | 4 +- .../nf-core/picard/collectwgsmetrics/main.nf | 4 +- .../collectwgsmetrics/tests/main.nf.test.snap | 12 +- .../picard/liftovervcf/environment.yml | 2 +- modules/nf-core/picard/liftovervcf/main.nf | 4 +- .../liftovervcf/tests/main.nf.test.snap | 12 +- .../picard/markduplicates/environment.yml | 2 +- modules/nf-core/picard/markduplicates/main.nf | 4 +- .../markduplicates/tests/main.nf.test.snap | 48 +-- .../picard/renamesampleinvcf/environment.yml | 2 +- .../nf-core/picard/renamesampleinvcf/main.nf | 4 +- .../renamesampleinvcf/tests/main.nf.test.snap | 6 +- .../nf-core/picard/sortvcf/environment.yml | 2 +- modules/nf-core/picard/sortvcf/main.nf | 4 +- .../picard/sortvcf/tests/main.nf.test.snap | 6 +- modules/nf-core/rtgtools/format/main.nf | 1 - modules/nf-core/samtools/sort/main.nf | 10 +- .../nf-core/samtools/sort/tests/main.nf.test | 64 ++++ .../samtools/sort/tests/main.nf.test.snap | 99 +++++- modules/nf-core/samtools/view/environment.yml | 2 + modules/nf-core/samtools/view/main.nf | 4 +- modules/nf-core/stranger/environment.yml | 2 +- modules/nf-core/stranger/main.nf | 4 +- modules/nf-core/stranger/tests/main.nf.test | 2 +- .../nf-core/stranger/tests/main.nf.test.snap | 20 +- .../nf-core/stranger/tests/nextflow.config | 8 +- modules/nf-core/svdb/merge/environment.yml | 5 +- modules/nf-core/svdb/merge/main.nf | 82 ++++- modules/nf-core/svdb/merge/meta.yml | 46 ++- modules/nf-core/svdb/merge/tests/main.nf.test | 319 +++++++++++++++++- modules/nf-core/svdb/query/environment.yml | 2 +- modules/nf-core/svdb/query/main.nf | 4 +- .../svdb/query/tests/main.nf.test.snap | 25 +- 66 files changed, 1003 insertions(+), 276 deletions(-) diff --git a/modules.json b/modules.json index 6f4dce4e..c57ffae7 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "bcftools/annotate": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "cb08035150685b11d890d90c9534d4f16869eaec", "installed_by": ["modules"] }, "bcftools/concat": { @@ -17,7 +17,7 @@ }, "bcftools/filter": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "f85dbddd7a335fc0f5ac331e8d22ca94123b654b", "installed_by": ["modules"] }, "bcftools/merge": { @@ -168,7 +168,7 @@ }, "gatk4/determinegermlinecontigploidy": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "d6dd4ddea1663edbf15f40e089cc16db96e75f1d", "installed_by": ["modules"] }, "gatk4/filtermutectcalls": { @@ -178,7 +178,7 @@ }, "gatk4/germlinecnvcaller": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "d6dd4ddea1663edbf15f40e089cc16db96e75f1d", "installed_by": ["modules"] }, "gatk4/intervallisttools": { @@ -243,27 +243,27 @@ }, "genmod/annotate": { "branch": "master", - "git_sha": "55692e15e2ef8be6b37ad1475944a338770b4b3e", + "git_sha": "91a84f951358143e93dc9e03470db4e6a4a7105c", "installed_by": ["modules"] }, "genmod/compound": { "branch": "master", - "git_sha": "55692e15e2ef8be6b37ad1475944a338770b4b3e", + "git_sha": "91a84f951358143e93dc9e03470db4e6a4a7105c", "installed_by": ["modules"] }, "genmod/models": { "branch": "master", - "git_sha": "55692e15e2ef8be6b37ad1475944a338770b4b3e", + "git_sha": "f888300c726e1f817a9f93a680866ff7e6c669f6", "installed_by": ["modules"] }, "genmod/score": { "branch": "master", - "git_sha": "55692e15e2ef8be6b37ad1475944a338770b4b3e", + "git_sha": "f888300c726e1f817a9f93a680866ff7e6c669f6", "installed_by": ["modules"] }, "glnexus": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "bcf36bc95e3e5605e9859b8e9a49648841e04fe8", "installed_by": ["modules"] }, "haplocheck": { @@ -309,42 +309,42 @@ }, "picard/addorreplacereadgroups": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["modules"] }, "picard/collecthsmetrics": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["modules"] }, "picard/collectmultiplemetrics": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["modules"] }, "picard/collectwgsmetrics": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["modules"] }, "picard/liftovervcf": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["modules"] }, "picard/markduplicates": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["modules"] }, "picard/renamesampleinvcf": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["modules"] }, "picard/sortvcf": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["modules"] }, "qualimap/bamqc": { @@ -364,7 +364,7 @@ }, "rtgtools/format": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "167a20a2e267261af397e9ea5bf58426e6345ce7", "installed_by": ["modules"] }, "rtgtools/vcfeval": { @@ -389,7 +389,7 @@ }, "samtools/sort": { "branch": "master", - "git_sha": "b13f07be4c508d6ff6312d354d09f2493243e208", + "git_sha": "b7800db9b069ed505db3f9d91b8c72faea9be17b", "installed_by": ["modules"] }, "samtools/stats": { @@ -399,7 +399,7 @@ }, "samtools/view": { "branch": "master", - "git_sha": "b13f07be4c508d6ff6312d354d09f2493243e208", + "git_sha": "669eb24fd82a9d3cb18ad0e73673ecb26827f683", "installed_by": ["modules"] }, "sentieon/bwaindex": { @@ -449,17 +449,17 @@ }, "stranger": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "26cdbf29e76695c7fd85e42e0015c7e96f979fe9", "installed_by": ["modules"] }, "svdb/merge": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "a8ad84b7ee0cda0b001490e95d9ed277e687e368", "installed_by": ["modules"] }, "svdb/query": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "eb2c3f7ee2c938ab1a49764bdb1319adaa35492c", "installed_by": ["modules"] }, "tabix/bgzip": { diff --git a/modules/nf-core/bcftools/annotate/main.nf b/modules/nf-core/bcftools/annotate/main.nf index c3b8b196..9ffdfdf0 100644 --- a/modules/nf-core/bcftools/annotate/main.nf +++ b/modules/nf-core/bcftools/annotate/main.nf @@ -59,12 +59,12 @@ process BCFTOOLS_ANNOTATE { args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : "vcf" - def index = args.contains("--write-index=tbi") || args.contains("-W=tbi") ? "tbi" : - args.contains("--write-index=csi") || args.contains("-W=csi") ? "csi" : - args.contains("--write-index") || args.contains("-W") ? "csi" : - "" + def index_extension = args.contains("--write-index=tbi") || args.contains("-W=tbi") ? "tbi" : + args.contains("--write-index=csi") || args.contains("-W=csi") ? "csi" : + args.contains("--write-index") || args.contains("-W") ? "csi" : + "" def create_cmd = extension.endsWith(".gz") ? "echo '' | gzip >" : "touch" - def create_index = extension.endsWith(".gz") && index.matches("csi|tbi") ? "touch ${prefix}.${extension}.${index}" : "" + def create_index = extension.endsWith(".gz") && index_extension.matches("csi|tbi") ? "touch ${prefix}.${extension}.${index_extension}" : "" """ ${create_cmd} ${prefix}.${extension} diff --git a/modules/nf-core/bcftools/filter/main.nf b/modules/nf-core/bcftools/filter/main.nf index 8f92c51a..36cbf8c2 100644 --- a/modules/nf-core/bcftools/filter/main.nf +++ b/modules/nf-core/bcftools/filter/main.nf @@ -8,7 +8,7 @@ process BCFTOOLS_FILTER { 'biocontainers/bcftools:1.20--h8b25389_0' }" input: - tuple val(meta), path(vcf) + tuple val(meta), path(vcf), path(tbi) output: tuple val(meta), path("*.${extension}"), emit: vcf diff --git a/modules/nf-core/bcftools/filter/meta.yml b/modules/nf-core/bcftools/filter/meta.yml index 8ac594fc..d72f2755 100644 --- a/modules/nf-core/bcftools/filter/meta.yml +++ b/modules/nf-core/bcftools/filter/meta.yml @@ -23,6 +23,10 @@ input: type: file description: VCF input file pattern: "*.{vcf,bcf,vcf.gz,bcf.gz}" + - tbi: + type: file + description: VCF index file + pattern: "*.tbi" output: - vcf: - meta: diff --git a/modules/nf-core/bcftools/filter/tests/main.nf.test b/modules/nf-core/bcftools/filter/tests/main.nf.test index 646f37ad..fadff0e3 100644 --- a/modules/nf-core/bcftools/filter/tests/main.nf.test +++ b/modules/nf-core/bcftools/filter/tests/main.nf.test @@ -18,7 +18,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -42,7 +43,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -72,7 +74,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -102,7 +105,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -132,7 +136,8 @@ nextflow_process { """ input[0] = [ [id:"bcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -147,6 +152,31 @@ nextflow_process { } + test("sarscov2 - vcf.gz, tbi - region filter") { + + config "./region_filter.config" + + when { + process { + """ + input[0] = [ + [id:"bcf_test"], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match("region filter") } + ) + } + + } + test("sarscov2 - vcf - stub") { config "./nextflow.config" @@ -157,7 +187,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -182,7 +213,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -208,7 +240,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -234,7 +267,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } diff --git a/modules/nf-core/bcftools/filter/tests/main.nf.test.snap b/modules/nf-core/bcftools/filter/tests/main.nf.test.snap index 3d7605f2..640907e4 100644 --- a/modules/nf-core/bcftools/filter/tests/main.nf.test.snap +++ b/modules/nf-core/bcftools/filter/tests/main.nf.test.snap @@ -1,4 +1,49 @@ { + "region filter": { + "content": [ + { + "0": [ + [ + { + "id": "bcf_test" + }, + "bcf_test_vcf.vcf.gz:md5,8e722884ffb75155212a3fc053918766" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,9a336d1ee26b527d7a2bdbeead155f64" + ], + "csi": [ + + ], + "tbi": [ + + ], + "vcf": [ + [ + { + "id": "bcf_test" + }, + "bcf_test_vcf.vcf.gz:md5,8e722884ffb75155212a3fc053918766" + ] + ], + "versions": [ + "versions.yml:md5,9a336d1ee26b527d7a2bdbeead155f64" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T09:14:47.394005264" + }, "sarscov2 - vcf_gz_index_tbi - stub": { "content": [ { diff --git a/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf b/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf index 71a67f70..fc98e80e 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/germlinecnvcaller/main.nf b/modules/nf-core/gatk4/germlinecnvcaller/main.nf index cd1916ec..90aa7e47 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/genmod/annotate/environment.yml b/modules/nf-core/genmod/annotate/environment.yml index bbc3fd97..227ee892 100644 --- a/modules/nf-core/genmod/annotate/environment.yml +++ b/modules/nf-core/genmod/annotate/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.3 + - bioconda::genmod=3.9 diff --git a/modules/nf-core/genmod/annotate/main.nf b/modules/nf-core/genmod/annotate/main.nf index 033caa9a..0b8b232d 100644 --- a/modules/nf-core/genmod/annotate/main.nf +++ b/modules/nf-core/genmod/annotate/main.nf @@ -4,15 +4,15 @@ process GENMOD_ANNOTATE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': - 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.9--pyhdfd78af_0': + 'biocontainers/genmod:3.9--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) output: tuple val(meta), path("*_annotate.vcf"), emit: vcf - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/genmod/annotate/tests/main.nf.test b/modules/nf-core/genmod/annotate/tests/main.nf.test index d17ebc9e..a4b3fccb 100644 --- a/modules/nf-core/genmod/annotate/tests/main.nf.test +++ b/modules/nf-core/genmod/annotate/tests/main.nf.test @@ -24,8 +24,35 @@ nextflow_process { then { assertAll( - {assert process.success}, - {assert path(process.out.vcf.get(0).get(1)).readLines().contains("##fileformat=VCFv4.2")} + { assert process.success }, + { assert snapshot( + process.out.versions, + path(process.out.vcf.get(0).get(1)).vcf.summary, + ).match() } + ) + } + + } + + test("genmod_annotate - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/genmod.vcf.gz', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/genmod/compound/environment.yml b/modules/nf-core/genmod/compound/environment.yml index bbc3fd97..227ee892 100644 --- a/modules/nf-core/genmod/compound/environment.yml +++ b/modules/nf-core/genmod/compound/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.3 + - bioconda::genmod=3.9 diff --git a/modules/nf-core/genmod/compound/main.nf b/modules/nf-core/genmod/compound/main.nf index 4831da85..ca6a22a1 100644 --- a/modules/nf-core/genmod/compound/main.nf +++ b/modules/nf-core/genmod/compound/main.nf @@ -4,15 +4,15 @@ process GENMOD_COMPOUND { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': - 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.9--pyhdfd78af_0': + 'biocontainers/genmod:3.9--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) output: tuple val(meta), path("*_compound.vcf"), emit: vcf - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/genmod/compound/tests/main.nf.test b/modules/nf-core/genmod/compound/tests/main.nf.test index 43ed9f0d..4c667c17 100644 --- a/modules/nf-core/genmod/compound/tests/main.nf.test +++ b/modules/nf-core/genmod/compound/tests/main.nf.test @@ -23,8 +23,35 @@ nextflow_process { then { assertAll( - {assert process.success}, - {assert path(process.out.vcf.get(0).get(1)).readLines().contains("##fileformat=VCFv4.2")} + { assert process.success }, + { assert snapshot( + process.out.versions, + path(process.out.vcf.get(0).get(1)).vcf.summary, + ).match() } + ) + } + + } + + test("genmod_compound - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/genmod_compound.vcf', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/genmod/models/environment.yml b/modules/nf-core/genmod/models/environment.yml index bbc3fd97..227ee892 100644 --- a/modules/nf-core/genmod/models/environment.yml +++ b/modules/nf-core/genmod/models/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.3 + - bioconda::genmod=3.9 diff --git a/modules/nf-core/genmod/models/main.nf b/modules/nf-core/genmod/models/main.nf index 90c1fd48..a869221e 100644 --- a/modules/nf-core/genmod/models/main.nf +++ b/modules/nf-core/genmod/models/main.nf @@ -4,17 +4,16 @@ process GENMOD_MODELS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': - 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.9--pyhdfd78af_0': + 'biocontainers/genmod:3.9--pyhdfd78af_0' }" input: - tuple val(meta), path(input_vcf) - path (fam) + tuple val(meta), path(input_vcf), path (fam) path (reduced_penetrance) output: tuple val(meta), path("*_models.vcf"), emit: vcf - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/genmod/models/meta.yml b/modules/nf-core/genmod/models/meta.yml index dca74095..a6249114 100644 --- a/modules/nf-core/genmod/models/meta.yml +++ b/modules/nf-core/genmod/models/meta.yml @@ -22,9 +22,9 @@ input: type: file description: vcf file pattern: "*.{vcf}" - - - fam: + - fam: type: file - description: file with family information + description: PED file with family information - - reduced_penetrance: type: file description: file with gene ids that have reduced penetrance diff --git a/modules/nf-core/genmod/models/tests/main.nf.test b/modules/nf-core/genmod/models/tests/main.nf.test index 9eba8dd5..0b9a3ebd 100644 --- a/modules/nf-core/genmod/models/tests/main.nf.test +++ b/modules/nf-core/genmod/models/tests/main.nf.test @@ -15,21 +15,49 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test_annotate.vcf.gz', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test_annotate.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/ped/justhusky.ped', checkIfExists: true) ] - input[1] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/ped/justhusky.ped', checkIfExists: true) - input[2] = [] + input[1] = [] """ } } then { assertAll( - {assert process.success}, - {assert path(process.out.vcf.get(0).get(1)).readLines().contains("##fileformat=VCFv4.2")} + { assert process.success }, + { assert snapshot( + process.out.versions, + path(process.out.vcf.get(0).get(1)).vcf.summary, + ).match() } ) } } + test("genmod_models - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test_annotate.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/ped/justhusky.ped', checkIfExists: true) + ] + input[1] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } } diff --git a/modules/nf-core/genmod/score/environment.yml b/modules/nf-core/genmod/score/environment.yml index bbc3fd97..227ee892 100644 --- a/modules/nf-core/genmod/score/environment.yml +++ b/modules/nf-core/genmod/score/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.3 + - bioconda::genmod=3.9 diff --git a/modules/nf-core/genmod/score/main.nf b/modules/nf-core/genmod/score/main.nf index 522e05b6..756fc731 100644 --- a/modules/nf-core/genmod/score/main.nf +++ b/modules/nf-core/genmod/score/main.nf @@ -4,17 +4,16 @@ process GENMOD_SCORE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': - 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.9--pyhdfd78af_0': + 'biocontainers/genmod:3.9--pyhdfd78af_0' }" input: - tuple val(meta), path(input_vcf) - path (fam) + tuple val(meta), path(input_vcf), path (fam) path (score_config) output: tuple val(meta), path("*_score.vcf"), emit: vcf - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/genmod/score/meta.yml b/modules/nf-core/genmod/score/meta.yml index 32da6468..c5fe2e2a 100644 --- a/modules/nf-core/genmod/score/meta.yml +++ b/modules/nf-core/genmod/score/meta.yml @@ -22,9 +22,9 @@ input: type: file description: vcf file pattern: "*.{vcf}" - - - fam: + - fam: type: file - description: file with family information + description: PED file with family information - - score_config: type: file description: rank model config file diff --git a/modules/nf-core/genmod/score/tests/main.nf.test b/modules/nf-core/genmod/score/tests/main.nf.test index 030ef6ba..6181f63a 100644 --- a/modules/nf-core/genmod/score/tests/main.nf.test +++ b/modules/nf-core/genmod/score/tests/main.nf.test @@ -15,18 +15,47 @@ nextflow_process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test_models.vcf.gz', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test_models.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/ped/justhusky.ped', checkIfExists: true) ] - input[1] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/ped/justhusky.ped', checkIfExists: true) - input[2] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/genmod/svrank_model_-v1.8-.ini', checkIfExists: true) + input[1] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/genmod/svrank_model_-v1.8-.ini', checkIfExists: true) """ } } then { assertAll( - {assert process.success}, - {assert path(process.out.vcf.get(0).get(1)).readLines().contains("##fileformat=VCFv4.2")} + { assert process.success }, + { assert snapshot( + process.out.versions, + path(process.out.vcf.get(0).get(1)).vcf.summary, + ).match() } + ) + } + + } + + test("genmod_score - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/vcf/test_models.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/vcf/ped/justhusky.ped', checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/genmod/svrank_model_-v1.8-.ini', checkIfExists: true) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/glnexus/main.nf b/modules/nf-core/glnexus/main.nf index eb86b9b8..191f0499 100644 --- a/modules/nf-core/glnexus/main.nf +++ b/modules/nf-core/glnexus/main.nf @@ -1,6 +1,6 @@ process GLNEXUS { tag "$meta.id" - label 'process_medium' + label 'process_high' conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -9,6 +9,7 @@ process GLNEXUS { input: tuple val(meta), path(gvcfs) + tuple val(meta2), path(bed) output: tuple val(meta), path("*.bcf"), emit: bcf @@ -20,6 +21,7 @@ process GLNEXUS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def regions = bed ? "--bed ${bed}" : "" // Make list of GVCFs to merge def input = gvcfs.collect { it.toString() } @@ -33,6 +35,7 @@ process GLNEXUS { glnexus_cli \\ --threads $task.cpus \\ --mem-gbytes $avail_mem \\ + $regions \\ $args \\ ${input.join(' ')} \\ > ${prefix}.bcf diff --git a/modules/nf-core/glnexus/meta.yml b/modules/nf-core/glnexus/meta.yml index a79fc63c..8f18bf3f 100644 --- a/modules/nf-core/glnexus/meta.yml +++ b/modules/nf-core/glnexus/meta.yml @@ -23,6 +23,15 @@ input: type: list description: Input genomic vcf files pattern: "*.{gvcf,gvcf.gz,g.vcf,g.vcf.gz}" + - - meta2: + type: map + description: | + Groovy Map containing regions information + e.g. [ id:'test' ] + - bed: + type: list + description: Input BED file + pattern: "*.bed" output: - bcf: - meta: diff --git a/modules/nf-core/picard/addorreplacereadgroups/environment.yml b/modules/nf-core/picard/addorreplacereadgroups/environment.yml index ff4a85ed..1d715d56 100644 --- a/modules/nf-core/picard/addorreplacereadgroups/environment.yml +++ b/modules/nf-core/picard/addorreplacereadgroups/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::picard=3.2.0 + - bioconda::picard=3.3.0 diff --git a/modules/nf-core/picard/addorreplacereadgroups/main.nf b/modules/nf-core/picard/addorreplacereadgroups/main.nf index 3f03c680..5a71e085 100644 --- a/modules/nf-core/picard/addorreplacereadgroups/main.nf +++ b/modules/nf-core/picard/addorreplacereadgroups/main.nf @@ -4,8 +4,8 @@ process PICARD_ADDORREPLACEREADGROUPS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.2.0--hdfd78af_0' : - 'biocontainers/picard:3.2.0--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(reads) diff --git a/modules/nf-core/picard/addorreplacereadgroups/tests/main.nf.test.snap b/modules/nf-core/picard/addorreplacereadgroups/tests/main.nf.test.snap index f823197d..3ae6b917 100644 --- a/modules/nf-core/picard/addorreplacereadgroups/tests/main.nf.test.snap +++ b/modules/nf-core/picard/addorreplacereadgroups/tests/main.nf.test.snap @@ -3,14 +3,14 @@ "content": [ "test.replaced.cram", [ - "versions.yml:md5,7ec6e56d1d70ed028928dc82b32b27cd" + "versions.yml:md5,e82588e0fecbeafdff36e3b3001b3bca" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T09:54:40.471730168" + "timestamp": "2024-10-18T10:13:23.115450366" }, "sarscov2 - bam - stub": { "content": [ @@ -30,7 +30,7 @@ ], "3": [ - "versions.yml:md5,7ec6e56d1d70ed028928dc82b32b27cd" + "versions.yml:md5,e82588e0fecbeafdff36e3b3001b3bca" ], "bai": [ @@ -47,28 +47,28 @@ ], "versions": [ - "versions.yml:md5,7ec6e56d1d70ed028928dc82b32b27cd" + "versions.yml:md5,e82588e0fecbeafdff36e3b3001b3bca" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T09:55:08.402649243" + "timestamp": "2024-10-18T10:13:47.23694937" }, "sarscov2 - bam": { "content": [ "null.replaced.bam", "null.replaced.bai", [ - "versions.yml:md5,7ec6e56d1d70ed028928dc82b32b27cd" + "versions.yml:md5,e82588e0fecbeafdff36e3b3001b3bca" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T09:54:22.239968953" + "timestamp": "2024-10-18T10:12:53.083677142" } } \ No newline at end of file diff --git a/modules/nf-core/picard/collecthsmetrics/environment.yml b/modules/nf-core/picard/collecthsmetrics/environment.yml index ff4a85ed..1d715d56 100644 --- a/modules/nf-core/picard/collecthsmetrics/environment.yml +++ b/modules/nf-core/picard/collecthsmetrics/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::picard=3.2.0 + - bioconda::picard=3.3.0 diff --git a/modules/nf-core/picard/collecthsmetrics/main.nf b/modules/nf-core/picard/collecthsmetrics/main.nf index a9cbafd4..1d017ef8 100644 --- a/modules/nf-core/picard/collecthsmetrics/main.nf +++ b/modules/nf-core/picard/collecthsmetrics/main.nf @@ -4,8 +4,8 @@ process PICARD_COLLECTHSMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.2.0--hdfd78af_0' : - 'biocontainers/picard:3.2.0--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(bam), path(bai), path(bait_intervals, stageAs: "baits/*"), path(target_intervals, stageAs: 'targets/*') diff --git a/modules/nf-core/picard/collecthsmetrics/tests/main.nf.test.snap b/modules/nf-core/picard/collecthsmetrics/tests/main.nf.test.snap index 53855d13..4d21710a 100644 --- a/modules/nf-core/picard/collecthsmetrics/tests/main.nf.test.snap +++ b/modules/nf-core/picard/collecthsmetrics/tests/main.nf.test.snap @@ -106,26 +106,26 @@ "89\t0\t0" ], [ - "versions.yml:md5,e390b048af294086f56621c38ebde05a" + "versions.yml:md5,bdfc7b655683e7b66f68e894c999805e" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T09:45:46.991614248" + "timestamp": "2024-10-18T10:51:55.291163084" }, "versions": { "content": [ [ - "versions.yml:md5,e390b048af294086f56621c38ebde05a" + "versions.yml:md5,bdfc7b655683e7b66f68e894c999805e" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T09:36:50.350567213" + "timestamp": "2024-10-18T10:51:30.748857589" }, "sarscov2 - bam - samebed": { "content": [ @@ -234,14 +234,14 @@ "89\t0\t0" ], [ - "versions.yml:md5,e390b048af294086f56621c38ebde05a" + "versions.yml:md5,bdfc7b655683e7b66f68e894c999805e" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T09:46:33.770516478" + "timestamp": "2024-10-18T10:52:43.803456585" }, "sarscov2 - bam": { "content": [ @@ -350,14 +350,14 @@ "89\t0\t0" ], [ - "versions.yml:md5,e390b048af294086f56621c38ebde05a" + "versions.yml:md5,bdfc7b655683e7b66f68e894c999805e" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T09:45:16.117386245" + "timestamp": "2024-10-18T10:51:01.881343611" }, "sarscov2 - bam - bed": { "content": [ @@ -466,13 +466,13 @@ "89\t0\t0" ], [ - "versions.yml:md5,e390b048af294086f56621c38ebde05a" + "versions.yml:md5,bdfc7b655683e7b66f68e894c999805e" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T09:46:13.489487836" + "timestamp": "2024-10-18T10:52:22.830749735" } } \ No newline at end of file diff --git a/modules/nf-core/picard/collectmultiplemetrics/environment.yml b/modules/nf-core/picard/collectmultiplemetrics/environment.yml index ff4a85ed..1d715d56 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/environment.yml +++ b/modules/nf-core/picard/collectmultiplemetrics/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::picard=3.2.0 + - bioconda::picard=3.3.0 diff --git a/modules/nf-core/picard/collectmultiplemetrics/main.nf b/modules/nf-core/picard/collectmultiplemetrics/main.nf index c5555871..cf1af40a 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/main.nf +++ b/modules/nf-core/picard/collectmultiplemetrics/main.nf @@ -4,8 +4,8 @@ process PICARD_COLLECTMULTIPLEMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.2.0--hdfd78af_0' : - 'biocontainers/picard:3.2.0--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(bam), path(bai) diff --git a/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test.snap b/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test.snap index 1859541b..a76a3237 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test.snap +++ b/modules/nf-core/picard/collectmultiplemetrics/tests/main.nf.test.snap @@ -16,14 +16,14 @@ "test.CollectMultipleMetrics.read_length_histogram.pdf" ], [ - "versions.yml:md5,b68b83e8dd0f9360453213acad639338" + "versions.yml:md5,791db2719d57a997f8253b3ba97d62d7" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-26T10:03:36.631174" + "timestamp": "2024-10-18T11:05:12.591021247" }, "test-picard-collectmultiplemetrics-cram": { "content": [ @@ -42,14 +42,14 @@ "test.CollectMultipleMetrics.read_length_histogram.pdf" ], [ - "versions.yml:md5,b68b83e8dd0f9360453213acad639338" + "versions.yml:md5,791db2719d57a997f8253b3ba97d62d7" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-26T10:04:13.955902" + "timestamp": "2024-10-18T11:06:08.499320579" }, "test-picard-collectmultiplemetrics-nofasta": { "content": [ @@ -68,13 +68,13 @@ "test.CollectMultipleMetrics.read_length_histogram.pdf" ], [ - "versions.yml:md5,b68b83e8dd0f9360453213acad639338" + "versions.yml:md5,791db2719d57a997f8253b3ba97d62d7" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-26T10:03:54.707587" + "timestamp": "2024-10-18T11:05:42.117033611" } } \ No newline at end of file diff --git a/modules/nf-core/picard/collectwgsmetrics/environment.yml b/modules/nf-core/picard/collectwgsmetrics/environment.yml index 58d52581..13265842 100644 --- a/modules/nf-core/picard/collectwgsmetrics/environment.yml +++ b/modules/nf-core/picard/collectwgsmetrics/environment.yml @@ -2,5 +2,5 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::picard=3.2.0 - - r::r-base + - bioconda::picard=3.3.0 + - conda-forge::r-base=4.4.1 diff --git a/modules/nf-core/picard/collectwgsmetrics/main.nf b/modules/nf-core/picard/collectwgsmetrics/main.nf index 6002a7ca..39cf7d2b 100644 --- a/modules/nf-core/picard/collectwgsmetrics/main.nf +++ b/modules/nf-core/picard/collectwgsmetrics/main.nf @@ -4,8 +4,8 @@ process PICARD_COLLECTWGSMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.2.0--hdfd78af_0' : - 'biocontainers/picard:3.2.0--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(bam), path(bai) diff --git a/modules/nf-core/picard/collectwgsmetrics/tests/main.nf.test.snap b/modules/nf-core/picard/collectwgsmetrics/tests/main.nf.test.snap index f188382b..1958fcde 100644 --- a/modules/nf-core/picard/collectwgsmetrics/tests/main.nf.test.snap +++ b/modules/nf-core/picard/collectwgsmetrics/tests/main.nf.test.snap @@ -3,26 +3,26 @@ "content": [ true, [ - "versions.yml:md5,06b5898fb06823b736c90e1dcebe75fe" + "versions.yml:md5,9927db69fdd55176be5cdbd427d000c2" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-23T11:02:46.301176" + "timestamp": "2024-10-18T10:15:18.13771243" }, "test-picard-collectwgsmetrics": { "content": [ true, [ - "versions.yml:md5,06b5898fb06823b736c90e1dcebe75fe" + "versions.yml:md5,9927db69fdd55176be5cdbd427d000c2" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-23T11:02:25.132069" + "timestamp": "2024-10-18T10:14:57.786056996" } } \ No newline at end of file diff --git a/modules/nf-core/picard/liftovervcf/environment.yml b/modules/nf-core/picard/liftovervcf/environment.yml index ff4a85ed..1d715d56 100644 --- a/modules/nf-core/picard/liftovervcf/environment.yml +++ b/modules/nf-core/picard/liftovervcf/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::picard=3.2.0 + - bioconda::picard=3.3.0 diff --git a/modules/nf-core/picard/liftovervcf/main.nf b/modules/nf-core/picard/liftovervcf/main.nf index a4b27c88..69feb624 100644 --- a/modules/nf-core/picard/liftovervcf/main.nf +++ b/modules/nf-core/picard/liftovervcf/main.nf @@ -4,8 +4,8 @@ process PICARD_LIFTOVERVCF { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.2.0--hdfd78af_0' : - 'biocontainers/picard:3.2.0--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(input_vcf) diff --git a/modules/nf-core/picard/liftovervcf/tests/main.nf.test.snap b/modules/nf-core/picard/liftovervcf/tests/main.nf.test.snap index 585ea369..e88aa970 100644 --- a/modules/nf-core/picard/liftovervcf/tests/main.nf.test.snap +++ b/modules/nf-core/picard/liftovervcf/tests/main.nf.test.snap @@ -4,27 +4,27 @@ "test.lifted.vcf.gz", "test.unlifted.vcf.gz", [ - "versions.yml:md5,e1aaacb3c05a0d822f7abdcf3a55fa91" + "versions.yml:md5,af33ca5d76aec86863614805fbb4fafb" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-26T09:38:05.840798" + "timestamp": "2024-10-18T12:08:23.913395641" }, "test-picard-liftovervcf": { "content": [ "VcfFile [chromosomes=[], sampleCount=1, variantCount=0, phased=true, phasedAutodetect=true]", "39a9de5185d94289283bd27cfcdeba97", [ - "versions.yml:md5,e1aaacb3c05a0d822f7abdcf3a55fa91" + "versions.yml:md5,af33ca5d76aec86863614805fbb4fafb" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-26T09:41:33.022998" + "timestamp": "2024-10-18T12:08:12.803193917" } } \ No newline at end of file diff --git a/modules/nf-core/picard/markduplicates/environment.yml b/modules/nf-core/picard/markduplicates/environment.yml index ff4a85ed..1d715d56 100644 --- a/modules/nf-core/picard/markduplicates/environment.yml +++ b/modules/nf-core/picard/markduplicates/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::picard=3.2.0 + - bioconda::picard=3.3.0 diff --git a/modules/nf-core/picard/markduplicates/main.nf b/modules/nf-core/picard/markduplicates/main.nf index cf18ac35..8a2ed64e 100644 --- a/modules/nf-core/picard/markduplicates/main.nf +++ b/modules/nf-core/picard/markduplicates/main.nf @@ -4,8 +4,8 @@ process PICARD_MARKDUPLICATES { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.2.0--hdfd78af_0' : - 'biocontainers/picard:3.2.0--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(reads) diff --git a/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap b/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap index 8b37e65b..13770a8e 100644 --- a/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap +++ b/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap @@ -27,7 +27,7 @@ ] ], "4": [ - "versions.yml:md5,33dd4b32140e801e0d2e50aeefd0788d" + "versions.yml:md5,88717faa02b215b99eef3d05214a6fea" ], "bai": [ @@ -54,15 +54,15 @@ ] ], "versions": [ - "versions.yml:md5,33dd4b32140e801e0d2e50aeefd0788d" + "versions.yml:md5,88717faa02b215b99eef3d05214a6fea" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T11:56:32.025869" + "timestamp": "2024-10-18T10:58:50.046420643" }, "sarscov2 [unsorted bam] - stub": { "content": [ @@ -92,7 +92,7 @@ ] ], "4": [ - "versions.yml:md5,33dd4b32140e801e0d2e50aeefd0788d" + "versions.yml:md5,88717faa02b215b99eef3d05214a6fea" ], "bai": [ @@ -119,69 +119,69 @@ ] ], "versions": [ - "versions.yml:md5,33dd4b32140e801e0d2e50aeefd0788d" + "versions.yml:md5,88717faa02b215b99eef3d05214a6fea" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T11:56:20.497105" + "timestamp": "2024-10-18T10:58:36.738907079" }, "sarscov2 [unsorted bam]": { "content": [ "test.marked.bam", [ "## htsjdk.samtools.metrics.StringHeader", - "# MarkDuplicates --INPUT test.paired_end.bam --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_DUP_STRATEGY FLOW_QUALITY_SUM_STRATEGY --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --UNPAIRED_START_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false", + "# MarkDuplicates --INPUT test.paired_end.bam --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_DUP_STRATEGY FLOW_QUALITY_SUM_STRATEGY --FLOW_USE_END_IN_UNPAIRED_READS false --FLOW_USE_UNPAIRED_CLIPPED_END false --FLOW_UNPAIRED_END_UNCERTAINTY 0 --FLOW_UNPAIRED_START_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false", "## htsjdk.samtools.metrics.StringHeader" ], [ - "versions.yml:md5,33dd4b32140e801e0d2e50aeefd0788d" + "versions.yml:md5,88717faa02b215b99eef3d05214a6fea" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T11:50:14.881666" + "timestamp": "2024-10-18T10:57:16.683233382" }, "sarscov2 [sorted bam]": { "content": [ "test.marked.bam", [ "## htsjdk.samtools.metrics.StringHeader", - "# MarkDuplicates --INPUT test.paired_end.sorted.bam --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_DUP_STRATEGY FLOW_QUALITY_SUM_STRATEGY --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --UNPAIRED_START_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false", + "# MarkDuplicates --INPUT test.paired_end.sorted.bam --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_DUP_STRATEGY FLOW_QUALITY_SUM_STRATEGY --FLOW_USE_END_IN_UNPAIRED_READS false --FLOW_USE_UNPAIRED_CLIPPED_END false --FLOW_UNPAIRED_END_UNCERTAINTY 0 --FLOW_UNPAIRED_START_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false", "## htsjdk.samtools.metrics.StringHeader" ], [ - "versions.yml:md5,33dd4b32140e801e0d2e50aeefd0788d" + "versions.yml:md5,88717faa02b215b99eef3d05214a6fea" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T11:52:03.11428" + "timestamp": "2024-10-18T10:57:47.416956759" }, "homo_sapiens [cram]": { "content": [ "test.marked.cram", [ "## htsjdk.samtools.metrics.StringHeader", - "# MarkDuplicates --INPUT test.paired_end.sorted.cram --OUTPUT test.marked.cram --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --REFERENCE_SEQUENCE genome.fasta --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_DUP_STRATEGY FLOW_QUALITY_SUM_STRATEGY --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --UNPAIRED_START_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false", + "# MarkDuplicates --INPUT test.paired_end.sorted.cram --OUTPUT test.marked.cram --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --REFERENCE_SEQUENCE genome.fasta --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_DUP_STRATEGY FLOW_QUALITY_SUM_STRATEGY --FLOW_USE_END_IN_UNPAIRED_READS false --FLOW_USE_UNPAIRED_CLIPPED_END false --FLOW_UNPAIRED_END_UNCERTAINTY 0 --FLOW_UNPAIRED_START_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false", "## htsjdk.samtools.metrics.StringHeader" ], [ - "versions.yml:md5,33dd4b32140e801e0d2e50aeefd0788d" + "versions.yml:md5,88717faa02b215b99eef3d05214a6fea" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T11:53:05.403139" + "timestamp": "2024-10-18T10:58:15.143314223" }, "homo_sapiens [cram] - stub": { "content": [ @@ -211,7 +211,7 @@ ] ], "4": [ - "versions.yml:md5,33dd4b32140e801e0d2e50aeefd0788d" + "versions.yml:md5,88717faa02b215b99eef3d05214a6fea" ], "bai": [ @@ -238,14 +238,14 @@ ] ], "versions": [ - "versions.yml:md5,33dd4b32140e801e0d2e50aeefd0788d" + "versions.yml:md5,88717faa02b215b99eef3d05214a6fea" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T11:56:43.438188" + "timestamp": "2024-10-18T10:59:03.402916523" } } \ No newline at end of file diff --git a/modules/nf-core/picard/renamesampleinvcf/environment.yml b/modules/nf-core/picard/renamesampleinvcf/environment.yml index ff4a85ed..1d715d56 100644 --- a/modules/nf-core/picard/renamesampleinvcf/environment.yml +++ b/modules/nf-core/picard/renamesampleinvcf/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::picard=3.2.0 + - bioconda::picard=3.3.0 diff --git a/modules/nf-core/picard/renamesampleinvcf/main.nf b/modules/nf-core/picard/renamesampleinvcf/main.nf index 3e4f38ca..9e5e2e2d 100644 --- a/modules/nf-core/picard/renamesampleinvcf/main.nf +++ b/modules/nf-core/picard/renamesampleinvcf/main.nf @@ -5,8 +5,8 @@ process PICARD_RENAMESAMPLEINVCF { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.2.0--hdfd78af_0' : - 'biocontainers/picard:3.2.0--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(vcf) diff --git a/modules/nf-core/picard/renamesampleinvcf/tests/main.nf.test.snap b/modules/nf-core/picard/renamesampleinvcf/tests/main.nf.test.snap index a9bf7b7b..6a21666a 100644 --- a/modules/nf-core/picard/renamesampleinvcf/tests/main.nf.test.snap +++ b/modules/nf-core/picard/renamesampleinvcf/tests/main.nf.test.snap @@ -3,13 +3,13 @@ "content": [ "e21a2349f41663d1fc38f47fbe65a6d5", [ - "versions.yml:md5,d4de734264e0c3b33d23e4a40de26a5f" + "versions.yml:md5,89be4b901aa05e78d449d11b00eff5e9" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-26T09:32:02.18878" + "timestamp": "2024-10-18T09:53:47.55538945" } } \ No newline at end of file diff --git a/modules/nf-core/picard/sortvcf/environment.yml b/modules/nf-core/picard/sortvcf/environment.yml index ff4a85ed..1d715d56 100644 --- a/modules/nf-core/picard/sortvcf/environment.yml +++ b/modules/nf-core/picard/sortvcf/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::picard=3.2.0 + - bioconda::picard=3.3.0 diff --git a/modules/nf-core/picard/sortvcf/main.nf b/modules/nf-core/picard/sortvcf/main.nf index 7133c13a..a094e6bf 100644 --- a/modules/nf-core/picard/sortvcf/main.nf +++ b/modules/nf-core/picard/sortvcf/main.nf @@ -4,8 +4,8 @@ process PICARD_SORTVCF { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.2.0--hdfd78af_0' : - 'biocontainers/picard:3.2.0--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(vcf) diff --git a/modules/nf-core/picard/sortvcf/tests/main.nf.test.snap b/modules/nf-core/picard/sortvcf/tests/main.nf.test.snap index db80323b..e4a02c4f 100644 --- a/modules/nf-core/picard/sortvcf/tests/main.nf.test.snap +++ b/modules/nf-core/picard/sortvcf/tests/main.nf.test.snap @@ -9,13 +9,13 @@ "##INFO=" ], [ - "versions.yml:md5,11949a1af95080dcc5bd1c75d68dee71" + "versions.yml:md5,e6e6356d3b5b1b8e8cfd5d4958c694e6" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-26T09:20:13.124551" + "timestamp": "2024-10-18T10:45:30.685264704" } } \ No newline at end of file diff --git a/modules/nf-core/rtgtools/format/main.nf b/modules/nf-core/rtgtools/format/main.nf index 802d3b20..9cae7f99 100644 --- a/modules/nf-core/rtgtools/format/main.nf +++ b/modules/nf-core/rtgtools/format/main.nf @@ -46,7 +46,6 @@ process RTGTOOLS_FORMAT { """ stub: - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def avail_mem = "3G" diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index acfd9252..caf3c61a 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -12,11 +12,11 @@ process SAMTOOLS_SORT { tuple val(meta2), path(fasta) output: - tuple val(meta), path("*.bam"), emit: bam, optional: true - tuple val(meta), path("*.cram"), emit: cram, optional: true - tuple val(meta), path("*.crai"), emit: crai, optional: true - tuple val(meta), path("*.csi"), emit: csi, optional: true - path "versions.yml" , emit: versions + tuple val(meta), path("*.bam"), emit: bam, optional: true + tuple val(meta), path("*.cram"), emit: cram, optional: true + tuple val(meta), path("*.crai"), emit: crai, optional: true + tuple val(meta), path("*.csi"), emit: csi, optional: true + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test b/modules/nf-core/samtools/sort/tests/main.nf.test index c2ea9c72..b05e6691 100644 --- a/modules/nf-core/samtools/sort/tests/main.nf.test +++ b/modules/nf-core/samtools/sort/tests/main.nf.test @@ -39,6 +39,40 @@ nextflow_process { } } + test("multiple bam") { + + config "./nextflow.config" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam', checkIfExists: true) + ] + ]) + input[1] = Channel.of([ + [ id:'fasta' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + process.out.bam, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.versions + ).match()} + ) + } + } + test("cram") { config "./nextflow_cram.config" @@ -98,6 +132,36 @@ nextflow_process { } } + test("multiple bam - stub") { + + config "./nextflow.config" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam', checkIfExists: true) + ] + ]) + input[1] = Channel.of([ + [ id:'fasta' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + test("cram - stub") { options "-stub" diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test.snap b/modules/nf-core/samtools/sort/tests/main.nf.test.snap index 2d6b2900..469891fe 100644 --- a/modules/nf-core/samtools/sort/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/sort/tests/main.nf.test.snap @@ -159,6 +159,101 @@ }, "timestamp": "2024-09-16T08:50:19.061912443" }, + "multiple bam": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,8a16ba90c7d294cbb4c33ac0f7127a12" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi" + ] + ], + [ + "versions.yml:md5,2659b187d681241451539d4c53500b9f" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.09.0" + }, + "timestamp": "2024-10-08T11:59:55.479443" + }, + "multiple bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,8a16ba90c7d294cbb4c33ac0f7127a12" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi:md5,d185916eaff9afeb4d0aeab3310371f9" + ] + ], + "4": [ + "versions.yml:md5,2659b187d681241451539d4c53500b9f" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,8a16ba90c7d294cbb4c33ac0f7127a12" + ] + ], + "crai": [ + + ], + "cram": [ + + ], + "csi": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi:md5,d185916eaff9afeb4d0aeab3310371f9" + ] + ], + "versions": [ + "versions.yml:md5,2659b187d681241451539d4c53500b9f" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.09.0" + }, + "timestamp": "2024-10-08T11:36:13.781404" + }, "bam": { "content": [ [ @@ -185,8 +280,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.09.0" }, - "timestamp": "2024-09-16T08:49:43.971158333" + "timestamp": "2024-10-08T11:59:46.372244" } } \ No newline at end of file diff --git a/modules/nf-core/samtools/view/environment.yml b/modules/nf-core/samtools/view/environment.yml index 62054fc9..02cda6e6 100644 --- a/modules/nf-core/samtools/view/environment.yml +++ b/modules/nf-core/samtools/view/environment.yml @@ -4,5 +4,7 @@ channels: - conda-forge - bioconda dependencies: + # renovate: datasource=conda depName=bioconda/htslib - bioconda::htslib=1.21 + # renovate: datasource=conda depName=bioconda/samtools - bioconda::samtools=1.21 diff --git a/modules/nf-core/samtools/view/main.nf b/modules/nf-core/samtools/view/main.nf index 37e05cec..41fa3d6a 100644 --- a/modules/nf-core/samtools/view/main.nf +++ b/modules/nf-core/samtools/view/main.nf @@ -4,8 +4,8 @@ process SAMTOOLS_VIEW { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.21--h50ea8bc_0' : - 'biocontainers/samtools:1.21--h50ea8bc_0' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/9e/9edc2564215d5cd137a8b25ca8a311600987186d406b092022444adf3c4447f7/data' : + 'community​.wave​.seqera​.io/library/htslib_samtools:1​.21--6cb89bfd40cbaabf' }" input: tuple val(meta), path(input), path(index) diff --git a/modules/nf-core/stranger/environment.yml b/modules/nf-core/stranger/environment.yml index 910bcae7..c476e2b3 100644 --- a/modules/nf-core/stranger/environment.yml +++ b/modules/nf-core/stranger/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::stranger=0.9.1 + - bioconda::stranger=0.9.2 diff --git a/modules/nf-core/stranger/main.nf b/modules/nf-core/stranger/main.nf index 923483f4..bc31e703 100644 --- a/modules/nf-core/stranger/main.nf +++ b/modules/nf-core/stranger/main.nf @@ -4,8 +4,8 @@ process STRANGER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/stranger:0.9.1--pyh7e72e81_0': - 'biocontainers/stranger:0.9.1--pyh7e72e81_0' }" + 'https://depot.galaxyproject.org/singularity/stranger:0.9.2--pyh7e72e81_0': + 'biocontainers/stranger:0.9.2--pyh7e72e81_0' }" input: tuple val(meta), path(vcf) diff --git a/modules/nf-core/stranger/tests/main.nf.test b/modules/nf-core/stranger/tests/main.nf.test index 13c61f43..3c12a2c5 100644 --- a/modules/nf-core/stranger/tests/main.nf.test +++ b/modules/nf-core/stranger/tests/main.nf.test @@ -15,7 +15,7 @@ nextflow_process { script "../../expansionhunter/main.nf" process { """ - input[0] = [ + input[0] = [ [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) diff --git a/modules/nf-core/stranger/tests/main.nf.test.snap b/modules/nf-core/stranger/tests/main.nf.test.snap index 3faa4e58..b0ce7380 100644 --- a/modules/nf-core/stranger/tests/main.nf.test.snap +++ b/modules/nf-core/stranger/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,68446c9e91e20825f7430db64e85aa7c" + "versions.yml:md5,a3f4f3b2391e96e77caa158199436fcb" ], "vcf": [ [ @@ -22,15 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,68446c9e91e20825f7430db64e85aa7c" + "versions.yml:md5,a3f4f3b2391e96e77caa158199436fcb" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-03T08:09:27.725425094" + "timestamp": "2024-11-04T10:27:41.164430492" }, "homo_sapiens - vcf, repeat_catalogue": { "content": [ @@ -44,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,68446c9e91e20825f7430db64e85aa7c" + "versions.yml:md5,a3f4f3b2391e96e77caa158199436fcb" ], "vcf": [ [ @@ -55,14 +55,14 @@ ] ], "versions": [ - "versions.yml:md5,68446c9e91e20825f7430db64e85aa7c" + "versions.yml:md5,a3f4f3b2391e96e77caa158199436fcb" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-03T08:09:14.472394433" + "timestamp": "2024-11-04T10:27:31.05008915" } } \ No newline at end of file diff --git a/modules/nf-core/stranger/tests/nextflow.config b/modules/nf-core/stranger/tests/nextflow.config index 98459330..0ddc8bbd 100644 --- a/modules/nf-core/stranger/tests/nextflow.config +++ b/modules/nf-core/stranger/tests/nextflow.config @@ -1,5 +1,5 @@ process { - withName: 'STRANGER' { - ext.prefix = "stranger" - } - } + withName: 'STRANGER' { + ext.prefix = "stranger" + } +} diff --git a/modules/nf-core/svdb/merge/environment.yml b/modules/nf-core/svdb/merge/environment.yml index f725b652..ab87ec70 100644 --- a/modules/nf-core/svdb/merge/environment.yml +++ b/modules/nf-core/svdb/merge/environment.yml @@ -3,6 +3,5 @@ channels: - bioconda dependencies: - - htslib=1.19.1 - - samtools=1.19.2 - - svdb=2.8.1 + - bcftools=1.21 + - svdb=2.8.2 diff --git a/modules/nf-core/svdb/merge/main.nf b/modules/nf-core/svdb/merge/main.nf index c24a9a7c..24c5effd 100644 --- a/modules/nf-core/svdb/merge/main.nf +++ b/modules/nf-core/svdb/merge/main.nf @@ -1,59 +1,105 @@ process SVDB_MERGE { tag "$meta.id" - label 'process_medium' + label 'process_single' conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-c8daa8f9d69d3c5a1a4ff08283a166c18edb0000:511069f65a53621c5503e5cfee319aa3c735abfa-0': - 'biocontainers/mulled-v2-c8daa8f9d69d3c5a1a4ff08283a166c18edb0000:511069f65a53621c5503e5cfee319aa3c735abfa-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-375a758a4ca8c128fb9d38047a68a9f4322d2acd:b3615e06ef17566f2988a215ce9e10808c1d08bf-0': + 'biocontainers/mulled-v2-375a758a4ca8c128fb9d38047a68a9f4322d2acd:b3615e06ef17566f2988a215ce9e10808c1d08bf-0' }" input: tuple val(meta), path(vcfs) - val (priority) + val(input_priority) + val(sort_inputs) output: - tuple val(meta), path("*.vcf.gz"), emit: vcf - path "versions.yml" , emit: versions + tuple val(meta), path("*.{vcf,vcf.gz,bcf,bcf.gz}"), emit: vcf + tuple val(meta), path("*.tbi") , emit: tbi, optional: true + tuple val(meta), path("*.csi") , emit: csi, optional: true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = "${vcfs.join(" ")}" - def prio = "" - if(priority) { - prio = "--priority ${priority.join(',')}" + + // Ensure priority list matches the number of VCFs if priority is provided + if (input_priority && vcfs.collect().size() != input_priority.collect().size()) { + error "If priority is used, one tag per VCF is needed" + } + + def input = "" + def prio = "" + if (input_priority) { + if (vcfs.collect().size() > 1 && sort_inputs) { + // make vcf-prioprity pairs and sort on VCF name, so priority is also sorted the same + def pairs = vcfs.indices.collect { [vcfs[it], input_priority[it]] } + pairs = pairs.sort { a, b -> a[0].name <=> b[0].name } + vcfs = pairs.collect { it[0] } + priority = pairs.collect { it[1] } + } else { + priority = input_priority + } + + // Build inputs + prio = "--priority ${input_priority.join(',')}" input = "" - for (int index = 0; index < vcfs.size(); index++) { - input += " ${vcfs[index]}:${priority[index]}" + for (int index = 0; index < vcfs.collect().size(); index++) { + input += "${vcfs[index]}:${priority[index]} " } + + } else { + // if there's no priority input just sort the vcfs by name if possible + input = (vcfs.collect().size() > 1 && sort_inputs) ? vcfs.sort { it.name } : vcfs } + + def extension = args2.contains("--output-type b") || args2.contains("-Ob") ? "bcf.gz" : + args2.contains("--output-type u") || args2.contains("-Ou") ? "bcf" : + args2.contains("--output-type z") || args2.contains("-Oz") ? "vcf.gz" : + args2.contains("--output-type v") || args2.contains("-Ov") ? "vcf" : + "vcf.gz" """ svdb \\ --merge \\ $args \\ $prio \\ - --vcf $input \\ - > ${prefix}.vcf - bgzip ${prefix}.vcf + --vcf $input |\\ + bcftools view \\ + $args2 \\ + --threads ${task.cpus} \\ + --output ${prefix}.${extension} cat <<-END_VERSIONS > versions.yml "${task.process}": svdb: \$( echo \$(svdb) | head -1 | sed 's/usage: SVDB-\\([0-9]\\.[0-9]\\.[0-9]\\).*/\\1/' ) - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') END_VERSIONS """ stub: def prefix = task.ext.prefix ?: "${meta.id}" + def args2 = task.ext.args2 ?: '' + def extension = args2.contains("--output-type b") || args2.contains("-Ob") ? "bcf.gz" : + args2.contains("--output-type u") || args2.contains("-Ou") ? "bcf" : + args2.contains("--output-type z") || args2.contains("-Oz") ? "vcf.gz" : + args2.contains("--output-type v") || args2.contains("-Ov") ? "vcf" : + "vcf.gz" + def index = args2.contains("--write-index=tbi") || args2.contains("-W=tbi") ? "tbi" : + args2.contains("--write-index=csi") || args2.contains("-W=csi") ? "csi" : + args2.contains("--write-index") || args2.contains("-W") ? "csi" : + "" + def create_cmd = extension.endsWith(".gz") ? "echo '' | gzip >" : "touch" + def create_index = extension.endsWith(".gz") && index.matches("csi|tbi") ? "touch ${prefix}.${extension}.${index}" : "" """ - touch ${prefix}.vcf.gz + ${create_cmd} ${prefix}.${extension} + ${create_index} cat <<-END_VERSIONS > versions.yml "${task.process}": svdb: \$( echo \$(svdb) | head -1 | sed 's/usage: SVDB-\\([0-9]\\.[0-9]\\.[0-9]\\).*/\\1/' ) - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') END_VERSIONS """ } diff --git a/modules/nf-core/svdb/merge/meta.yml b/modules/nf-core/svdb/merge/meta.yml index 7dc7c675..c34a9cb1 100644 --- a/modules/nf-core/svdb/merge/meta.yml +++ b/modules/nf-core/svdb/merge/meta.yml @@ -19,23 +19,52 @@ input: e.g. [ id:'test' ] - vcfs: type: list - description: Two or more VCF files. Order of files should correspond to the - order of tags used for priority. + description: | + One or more VCF files. The order and number of files should correspond to + the order and number of tags in the `priority` input channel. pattern: "*.{vcf,vcf.gz}" - - - priority: + - - input_priority: type: list - description: prioritise the input vcf files according to this list, e.g ['tiddit','cnvnator'] + description: | + Prioritize the input VCF files according to this list, + e.g ['tiddit','cnvnator']. The order and number of tags should correspond to + the order and number of VCFs in the `vcfs` input channel. + - - sort_inputs: + type: boolean + description: | + Should the input files be sorted by name. The priority tag will be sorted + together with it's corresponding VCF file. output: - vcf: - meta: type: map description: | Groovy Map containing sample information - e.g. [ id:'test' ] - - "*.vcf.gz": + e.g. [ id:'test', single_end:false ] + - "*.{vcf,vcf.gz,bcf,bcf.gz}": + type: file + description: VCF output file + pattern: "*.{vcf,vcf.gz,bcf,bcf.gz}" + - tbi: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.tbi": + type: file + description: Alternative VCF file index + pattern: "*.tbi" + - csi: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.csi": type: file - description: merged VCF file - pattern: "*.vcf.gz" + description: Default VCF file index + pattern: "*.csi" - versions: - versions.yml: type: file @@ -45,3 +74,4 @@ authors: - "@ramprasadn" maintainers: - "@ramprasadn" + - "@fellen31" diff --git a/modules/nf-core/svdb/merge/tests/main.nf.test b/modules/nf-core/svdb/merge/tests/main.nf.test index 42f7c570..6a79d7a0 100644 --- a/modules/nf-core/svdb/merge/tests/main.nf.test +++ b/modules/nf-core/svdb/merge/tests/main.nf.test @@ -2,23 +2,108 @@ nextflow_process { name "Test Process SVDB_MERGE" script "modules/nf-core/svdb/merge/main.nf" + config "./nextflow.config" process "SVDB_MERGE" tag "modules" tag "modules_nfcore" tag "svdb" tag "svdb/merge" - test("test_svdb_merge") { + test("1 sample, [], []") { when { process { """ input[0] = Channel.of([ [ id:'test' ], // meta map - [file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true) ] + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) ]) - input[1] = [ 'tiddit', 'cnvnator'] + input[1] = [] + input[2] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert path(process.out.vcf.get(0).get(1)).linesGzip[3].contains("--vcf test.vcf") }, // SVDB command line + { assert snapshot( + path(process.out.vcf.get(0).get(1)).vcf.summary, + path(process.out.vcf.get(0).get(1)).vcf.variantsMD5, + process.out.versions + ).match() } + ) + } + } + + test("1 sample, [], true") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ]) + input[1] = [] + input[2] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert path(process.out.vcf.get(0).get(1)).linesGzip[3].contains("--vcf test.vcf") }, // SVDB command line + { assert snapshot( + path(process.out.vcf.get(0).get(1)).vcf.summary, + path(process.out.vcf.get(0).get(1)).vcf.variantsMD5, + process.out.versions + ).match() } + ) + } + } + + test("1 sample, ['tiddit'], []") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ]) + input[1] = ['tiddit'] + input[2] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert path(process.out.vcf.get(0).get(1)).linesGzip[3].contains("--priority tiddit --vcf test.vcf:tiddit") }, // SVDB command line + { assert snapshot( + path(process.out.vcf.get(0).get(1)).vcf.summary, + path(process.out.vcf.get(0).get(1)).vcf.variantsMD5, + process.out.versions + ).match() } + ) + } + } + + test("1 sample, ['tiddit'], true") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ]) + input[1] = ['tiddit'] + input[2] = true """ } } @@ -26,23 +111,61 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert path(process.out.vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") } + { assert path(process.out.vcf.get(0).get(1)).linesGzip[3].contains("--priority tiddit --vcf test.vcf:tiddit") }, // SVDB command line + { assert snapshot( + path(process.out.vcf.get(0).get(1)).vcf.summary, + path(process.out.vcf.get(0).get(1)).vcf.variantsMD5, + process.out.versions + ).match() } ) } + } + + test("2 samples, [], []") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] + ]) + input[1] = [] + input[2] = [] + """ + } + } + then { + assertAll ( + { assert process.success }, + { assert path(process.out.vcf.get(0).get(1)).linesGzip[3].contains("--vcf test2.vcf test.vcf") }, // SVDB command line + { assert snapshot( + path(process.out.vcf.get(0).get(1)).vcf.summary, + path(process.out.vcf.get(0).get(1)).vcf.variantsMD5, + process.out.versions + ).match() } + ) + } } - test("test_svdb_merge_noprio") { + test("2 samples, [], true") { when { process { """ input[0] = Channel.of([ [ id:'test' ], // meta map - [file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true) ] + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] ]) input[1] = [] + input[2] = true """ } } @@ -50,10 +173,188 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert path(process.out.vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") } + { assert path(process.out.vcf.get(0).get(1)).linesGzip[3].contains("--vcf test.vcf test2.vcf") }, // SVDB command line + { assert snapshot( + path(process.out.vcf.get(0).get(1)).vcf.summary, + path(process.out.vcf.get(0).get(1)).vcf.variantsMD5, + process.out.versions + ).match() } ) } + } + + test("2 samples, ['tiddit', 'cnvnator'], []") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] + ]) + input[1] = ['tiddit', 'cnvnator'] + input[2] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert path(process.out.vcf.get(0).get(1)).linesGzip[3].contains("--priority tiddit,cnvnator --vcf test2.vcf:tiddit test.vcf:cnvnator") }, // SVDB command line + { assert snapshot( + path(process.out.vcf.get(0).get(1)).vcf.summary, + path(process.out.vcf.get(0).get(1)).vcf.variantsMD5, + process.out.versions + ).match() } + ) + } + } + + test("2 samples, ['tiddit', 'cnvnator'], true") { + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] + ]) + input[1] = ['tiddit', 'cnvnator'] + input[2] = true + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert path(process.out.vcf.get(0).get(1)).linesGzip[3].contains("--priority tiddit,cnvnator --vcf test.vcf:cnvnator test2.vcf:tiddit") }, // SVDB command line + { assert snapshot( + path(process.out.vcf.get(0).get(1)).vcf.summary, + path(process.out.vcf.get(0).get(1)).vcf.variantsMD5, + process.out.versions + ).match() } + ) + } + } + + test("2 samples, [], [] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] + ]) + input[1] = [] + input[2] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("2 samples, [], true - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] + ]) + input[1] = [] + input[2] = true + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("2 samples, ['tiddit', 'cnvnator'], [] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] + ]) + input[1] = ['tiddit', 'cnvnator'] + input[2] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("2 samples, ['tiddit', 'cnvnator'], true - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.vcf', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + ] + ]) + input[1] = ['tiddit', 'cnvnator'] + input[2] = true + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } } } diff --git a/modules/nf-core/svdb/query/environment.yml b/modules/nf-core/svdb/query/environment.yml index cd35cf48..2af55220 100644 --- a/modules/nf-core/svdb/query/environment.yml +++ b/modules/nf-core/svdb/query/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::svdb=2.8.1 + - bioconda::svdb=2.8.2 diff --git a/modules/nf-core/svdb/query/main.nf b/modules/nf-core/svdb/query/main.nf index d516d382..4ceb477a 100644 --- a/modules/nf-core/svdb/query/main.nf +++ b/modules/nf-core/svdb/query/main.nf @@ -4,8 +4,8 @@ process SVDB_QUERY { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/svdb:2.8.1--py39h5371cbf_0': - 'biocontainers/svdb:2.8.1--py39h5371cbf_0' }" + 'https://depot.galaxyproject.org/singularity/svdb:2.8.2--py39h5371cbf_0': + 'biocontainers/svdb:2.8.2--py39h5371cbf_0' }" input: tuple val(meta), path(vcf) diff --git a/modules/nf-core/svdb/query/tests/main.nf.test.snap b/modules/nf-core/svdb/query/tests/main.nf.test.snap index 22021d0a..65f2fcfa 100644 --- a/modules/nf-core/svdb/query/tests/main.nf.test.snap +++ b/modules/nf-core/svdb/query/tests/main.nf.test.snap @@ -4,27 +4,10 @@ "test_query.vcf", "versions.yml" ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, "timestamp": "2023-11-22T14:56:08.90223505" - }, - "versions": { - "content": [ - [ - "versions.yml:md5,e10873514a6dfc4ff377d645e7b3c9f5" - ] - ], - "timestamp": "2023-11-22T14:36:48.543666873" - }, - "vcf": { - "content": [ - [ - [ - { - "id": "test" - }, - "test_query.vcf:md5,a29542606323b2430ec52ffb5c4c7f5e" - ] - ] - ], - "timestamp": "2023-11-22T14:36:48.523155905" } } \ No newline at end of file From 1563213255faec10ea1e8efe40687add95add4b6 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Sun, 10 Nov 2024 11:19:05 +0100 Subject: [PATCH 2/6] fix subworkflows --- subworkflows/local/call_mobile_elements.nf | 2 +- subworkflows/local/call_repeat_expansions.nf | 2 +- subworkflows/local/call_structural_variants.nf | 2 +- subworkflows/local/generate_clinical_set.nf | 2 +- subworkflows/local/rank_variants.nf | 11 +++++++++-- .../local/variant_calling/call_snv_deepvariant.nf | 2 +- .../local/variant_calling/call_sv_cnvnator.nf | 2 +- .../variant_calling/call_sv_germlinecnvcaller.nf | 2 +- subworkflows/local/variant_calling/call_sv_tiddit.nf | 2 +- 9 files changed, 17 insertions(+), 10 deletions(-) diff --git a/subworkflows/local/call_mobile_elements.nf b/subworkflows/local/call_mobile_elements.nf index 000b68cb..fcae6019 100644 --- a/subworkflows/local/call_mobile_elements.nf +++ b/subworkflows/local/call_mobile_elements.nf @@ -121,7 +121,7 @@ workflow CALL_MOBILE_ELEMENTS { .combine(ch_vcf_list) .set { ch_svdb_merge_me_input } - SVDB_MERGE_ME ( ch_svdb_merge_me_input, [] ) + SVDB_MERGE_ME ( ch_svdb_merge_me_input, [], true ) TABIX_ME ( SVDB_MERGE_ME.out.vcf ) ch_versions = ch_versions.mix(ME_SPLIT_ALIGNMENT.out.versions).first() diff --git a/subworkflows/local/call_repeat_expansions.nf b/subworkflows/local/call_repeat_expansions.nf index c45a92ff..fb364aac 100644 --- a/subworkflows/local/call_repeat_expansions.nf +++ b/subworkflows/local/call_repeat_expansions.nf @@ -58,7 +58,7 @@ workflow CALL_REPEAT_EXPANSIONS { .combine(ch_exp_vcfs) .set {ch_svdb_merge_input} - SVDB_MERGE_REPEATS ( ch_svdb_merge_input, [] ) + SVDB_MERGE_REPEATS ( ch_svdb_merge_input, [], true ) ch_versions = ch_versions.mix(EXPANSIONHUNTER.out.versions.first()) ch_versions = ch_versions.mix(BCFTOOLS_REHEADER_EXP.out.versions.first()) diff --git a/subworkflows/local/call_structural_variants.nf b/subworkflows/local/call_structural_variants.nf index 3222c9b9..960e2ca4 100644 --- a/subworkflows/local/call_structural_variants.nf +++ b/subworkflows/local/call_structural_variants.nf @@ -103,7 +103,7 @@ workflow CALL_STRUCTURAL_VARIANTS { .combine(vcf_list) .set { merge_input_vcfs } - SVDB_MERGE (merge_input_vcfs, ch_svcaller_priority) + SVDB_MERGE (merge_input_vcfs, ch_svcaller_priority, true) TABIX_TABIX (SVDB_MERGE.out.vcf) ch_merged_svs = SVDB_MERGE.out.vcf diff --git a/subworkflows/local/generate_clinical_set.nf b/subworkflows/local/generate_clinical_set.nf index e4b94d8c..8fb541af 100644 --- a/subworkflows/local/generate_clinical_set.nf +++ b/subworkflows/local/generate_clinical_set.nf @@ -31,7 +31,7 @@ workflow GENERATE_CLINICAL_SET { .set { ch_filtervep_out } if (val_ismt) { - BCFTOOLS_FILTER (ch_filtervep_out) + BCFTOOLS_FILTER (ch_filtervep_out.map { meta, vcf -> return [meta, vcf, []]}) ch_clinical = BCFTOOLS_FILTER.out.vcf ch_versions = ch_versions.mix( BCFTOOLS_FILTER.out.versions ) } else { diff --git a/subworkflows/local/rank_variants.nf b/subworkflows/local/rank_variants.nf index cf8c6a8d..801499f4 100644 --- a/subworkflows/local/rank_variants.nf +++ b/subworkflows/local/rank_variants.nf @@ -23,9 +23,16 @@ workflow RANK_VARIANTS { GENMOD_ANNOTATE(ch_vcf) - GENMOD_MODELS(GENMOD_ANNOTATE.out.vcf, ch_pedfile, ch_reduced_penetrance) + ch_models_in = GENMOD_ANNOTATE.out.vcf.combine(ch_pedfile) - GENMOD_SCORE(GENMOD_MODELS.out.vcf, ch_pedfile, ch_score_config) + ch_models_in.dump(tag:'models') + GENMOD_MODELS(ch_models_in, ch_reduced_penetrance) + + ch_score_in = GENMOD_MODELS.out.vcf.combine(ch_pedfile) + + ch_score_in.dump(tag:'score') + + GENMOD_SCORE(ch_score_in, ch_score_config) GENMOD_COMPOUND(GENMOD_SCORE.out.vcf) diff --git a/subworkflows/local/variant_calling/call_snv_deepvariant.nf b/subworkflows/local/variant_calling/call_snv_deepvariant.nf index 3b309cb3..9cfb6389 100644 --- a/subworkflows/local/variant_calling/call_snv_deepvariant.nf +++ b/subworkflows/local/variant_calling/call_snv_deepvariant.nf @@ -49,7 +49,7 @@ workflow CALL_SNV_DEEPVARIANT { .combine(ch_file_list) .set { ch_gvcfs } - GLNEXUS ( ch_gvcfs ) + GLNEXUS ( ch_gvcfs, [[:],[]] ) ch_split_multi_in = GLNEXUS.out.bcf .map{ meta, bcf -> diff --git a/subworkflows/local/variant_calling/call_sv_cnvnator.nf b/subworkflows/local/variant_calling/call_sv_cnvnator.nf index 62074ecb..05a679d4 100644 --- a/subworkflows/local/variant_calling/call_sv_cnvnator.nf +++ b/subworkflows/local/variant_calling/call_sv_cnvnator.nf @@ -36,7 +36,7 @@ workflow CALL_SV_CNVNATOR { .combine(vcf_file_list) .set { merge_input_vcfs } - SVDB_MERGE_CNVNATOR ( merge_input_vcfs, [] ) + SVDB_MERGE_CNVNATOR ( merge_input_vcfs, [], true ) ch_versions = ch_versions.mix(CNVNATOR_RD.out.versions) ch_versions = ch_versions.mix(CNVNATOR_HIST.out.versions) diff --git a/subworkflows/local/variant_calling/call_sv_germlinecnvcaller.nf b/subworkflows/local/variant_calling/call_sv_germlinecnvcaller.nf index 566bfc2e..ac7add2a 100644 --- a/subworkflows/local/variant_calling/call_sv_germlinecnvcaller.nf +++ b/subworkflows/local/variant_calling/call_sv_germlinecnvcaller.nf @@ -67,7 +67,7 @@ workflow CALL_SV_GERMLINECNVCALLER { .combine(vcf_file_list) .set { merge_input_vcfs } - SVDB_MERGE_GCNVCALLER ( merge_input_vcfs, [] ) + SVDB_MERGE_GCNVCALLER ( merge_input_vcfs, [], true ) ch_versions = ch_versions.mix(GATK4_COLLECTREADCOUNTS.out.versions) ch_versions = ch_versions.mix(GATK4_DETERMINEGERMLINECONTIGPLOIDY.out.versions) diff --git a/subworkflows/local/variant_calling/call_sv_tiddit.nf b/subworkflows/local/variant_calling/call_sv_tiddit.nf index f033c51e..dbafd3b2 100644 --- a/subworkflows/local/variant_calling/call_sv_tiddit.nf +++ b/subworkflows/local/variant_calling/call_sv_tiddit.nf @@ -25,7 +25,7 @@ workflow CALL_SV_TIDDIT { .combine(vcf_file_list) .set { merge_input_vcfs } - SVDB_MERGE_TIDDIT ( merge_input_vcfs, [] ) + SVDB_MERGE_TIDDIT ( merge_input_vcfs, [], true ) ch_versions = TIDDIT_SV.out.versions.first() ch_versions = ch_versions.mix(SVDB_MERGE_TIDDIT.out.versions) From cf07ac6c6d0e112806e1b660827744fbb06260a0 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Sun, 10 Nov 2024 11:19:23 +0100 Subject: [PATCH 3/6] remove dump --- subworkflows/local/rank_variants.nf | 3 --- 1 file changed, 3 deletions(-) diff --git a/subworkflows/local/rank_variants.nf b/subworkflows/local/rank_variants.nf index 801499f4..29399d4f 100644 --- a/subworkflows/local/rank_variants.nf +++ b/subworkflows/local/rank_variants.nf @@ -25,13 +25,10 @@ workflow RANK_VARIANTS { ch_models_in = GENMOD_ANNOTATE.out.vcf.combine(ch_pedfile) - ch_models_in.dump(tag:'models') GENMOD_MODELS(ch_models_in, ch_reduced_penetrance) ch_score_in = GENMOD_MODELS.out.vcf.combine(ch_pedfile) - ch_score_in.dump(tag:'score') - GENMOD_SCORE(ch_score_in, ch_score_config) GENMOD_COMPOUND(GENMOD_SCORE.out.vcf) From 49c09af83b088b68e69c40f4e7db9de27649ffe0 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:02:32 +0100 Subject: [PATCH 4/6] update changelog --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c74b3258..65974a9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,13 +34,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | ---------- | ----------- | ----------- | | bcftools | 1.18 | 1.20 | | ensemblvep | 112 | 113 | -| genmod | 3.8.2 | 3.8.3 | +| genmod | 3.8.2 | 3.9 | | mosdepth | 0.3.6 | 0.3.8 | | multiqc | 1.21 | 1.25.1 | -| picard | 3.1.1 | 3.2.0 | +| picard | 3.1.1 | 3.3.0 | | samtools | 1.19.2 | 1.21 | | sentieon | 202308.02 | 202308.03 | -| stranger | 0.8.1 | 0.9.1 | +| stranger | 0.8.1 | 0.9.2 | | tabix | 1.19.1 | 1.20 | ## 2.2.0 - Dogmatix [2024-09-13] From d54401ab14ca6354dd87d1fe3a5b64356d4abf84 Mon Sep 17 00:00:00 2001 From: ramprasadn <20065894+ramprasadn@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:21:17 +0100 Subject: [PATCH 5/6] revert samtools view to previous version --- modules.json | 2 +- modules/nf-core/samtools/view/environment.yml | 2 -- modules/nf-core/samtools/view/main.nf | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/modules.json b/modules.json index c57ffae7..b99a590e 100644 --- a/modules.json +++ b/modules.json @@ -399,7 +399,7 @@ }, "samtools/view": { "branch": "master", - "git_sha": "669eb24fd82a9d3cb18ad0e73673ecb26827f683", + "git_sha": "b13f07be4c508d6ff6312d354d09f2493243e208", "installed_by": ["modules"] }, "sentieon/bwaindex": { diff --git a/modules/nf-core/samtools/view/environment.yml b/modules/nf-core/samtools/view/environment.yml index 02cda6e6..62054fc9 100644 --- a/modules/nf-core/samtools/view/environment.yml +++ b/modules/nf-core/samtools/view/environment.yml @@ -4,7 +4,5 @@ channels: - conda-forge - bioconda dependencies: - # renovate: datasource=conda depName=bioconda/htslib - bioconda::htslib=1.21 - # renovate: datasource=conda depName=bioconda/samtools - bioconda::samtools=1.21 diff --git a/modules/nf-core/samtools/view/main.nf b/modules/nf-core/samtools/view/main.nf index 41fa3d6a..37e05cec 100644 --- a/modules/nf-core/samtools/view/main.nf +++ b/modules/nf-core/samtools/view/main.nf @@ -4,8 +4,8 @@ process SAMTOOLS_VIEW { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/9e/9edc2564215d5cd137a8b25ca8a311600987186d406b092022444adf3c4447f7/data' : - 'community​.wave​.seqera​.io/library/htslib_samtools:1​.21--6cb89bfd40cbaabf' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.21--h50ea8bc_0' : + 'biocontainers/samtools:1.21--h50ea8bc_0' }" input: tuple val(meta), path(input), path(index) From d029b01c4cea86cfd06f8a1857ec222c02657fe6 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Mon, 11 Nov 2024 10:13:21 +0100 Subject: [PATCH 6/6] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65974a9d..47ec307e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | samtools | 1.19.2 | 1.21 | | sentieon | 202308.02 | 202308.03 | | stranger | 0.8.1 | 0.9.2 | +| svdb | 2.8.1 | 2.8.2 | | tabix | 1.19.1 | 1.20 | ## 2.2.0 - Dogmatix [2024-09-13]