diff --git a/.nf-core.yml b/.nf-core.yml index 773ef643ab..c804dc3544 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -10,6 +10,5 @@ lint: - docs/images/nf-core-sarek_logo_light.png - lib/NfcoreTemplate.groovy - lib/NfcoreSchema.groovy - schema_params: False template_strings: False multiqc_config: False diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fca54ccbc..8d1e2b4338 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.3.1](https://github.com/nf-core/sarek/releases/tag/3.3.1) - Biellorippjávrre + +A lake near the Rapaselet delta. + +### Added + +- [#1231](https://github.com/nf-core/sarek/pull/1231) - Back to dev + +### Changed + +- [#1242](https://github.com/nf-core/sarek/pull/1242) - Simplify sentieon nf-core test license usage +- [#1243](https://github.com/nf-core/sarek/pull/1243) - Improve json schema usage for input + +### Fixed + +- [#1232](https://github.com/nf-core/sarek/pull/1232) - Fix Zenodo IDs in manifest +- [#1236](https://github.com/nf-core/sarek/pull/1236) - Fix annotation cache folder verification when no annotation +- [#1240](https://github.com/nf-core/sarek/pull/1240) - Disable JVM Hotspot in all modules/gatk4 ([#1030](https://github.com/nf-core/sarek/issues/1030)) +- [#1241](https://github.com/nf-core/sarek/pull/1241) - Fix axis text of controlfreec plots closing [#921](https://github.com/nf-core/sarek/issues/921) + +### Dependencies + +| Dependency | Old version | New version | +| ------------- | ----------- | ----------- | +| Control-FREEC | 11.6 | 11.6b | + ## [3.3.0](https://github.com/nf-core/sarek/releases/tag/3.3.0) - Rapaselet Rapaselet is a delta formed by the Rapaätno river between the Bielloriehppe massif (formerly written Piellorieppe) and the Skårki massif. diff --git a/CITATIONS.md b/CITATIONS.md index c7d1721cf7..062f2cef35 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -1,5 +1,9 @@ # nf-core/sarek: Citations +## [nf-core/sarek 3](https://www.biorxiv.org/content/10.1101/2023.07.19.549462v2) + +> Hanssen F, Garcia MU, Folkersen L, Pedersen AS, Lescai F, Jodoin S, Miller E, Wacker O, Smith N, nf-core community, Gabernet G, Nahnsen S. Scalable and efficient DNA sequencing analysis on different compute infrastructures aiding variant discovery. bioRxiv. 2023 Jul 19:2023-07. + ## [nf-core/sarek](https://pubmed.ncbi.nlm.nih.gov/32269765/) > Garcia MU, Juhos S, Larsson M, Olason PI, Martin M, Eisfeldt J, DiLorenzo S, Sandgren J, Díaz De Ståhl T, Ewels PA, Wirta V, Nistér M, Käller M, Nystedt B. Sarek: A portable workflow for whole-genome sequencing analysis of germline and somatic variants. F1000Res. 2020 Jan 29;9:63. eCollection 2020. doi: 10.12688/f1000research.16665.2. PubMed PMID: 32269765. @@ -74,6 +78,8 @@ > McKenna A, Hanna M, Banks E, et al.: The Genome Analysis Toolkit: a MapReduce framework for analyzing next-generation DNA sequencing data. Genome Res. 2010 Sep;20(9):1297-303. doi: 10.1101/gr.107524.110. Epub 2010 Jul 19. PubMed PMID: 20644199; PubMed Central PMCID: PMC2928508. +- [GNU sed](http://www.gnu.org/software/sed/) + - [HaplotypeCaller Joint Germline](https://www.biorxiv.org/content/10.1101/201178v3) > Poplin R. et al, Scaling accurate genetic variant discovery to tens of thousands of samples, bioRxiv 2018. doi: 10.1101/201178 @@ -110,8 +116,6 @@ > Li H, Handsaker B, Wysoker A, Fennell T, Ruan J, Homer N, Marth G, Abecasis G, Durbin R; 1000 Genome Project Data Processing Subgroup. The Sequence Alignment/Map format and SAMtools. Bioinformatics. 2009 Aug 15;25(16):2078-9. doi: 10.1093/bioinformatics/btp352. Epub 2009 Jun 8. PubMed PMID: 19505943; PubMed Central PMCID: PMC2723002. -- [GNU sed](http://www.gnu.org/software/sed/) - - [snpEff](https://pubmed.ncbi.nlm.nih.gov/22728672/) > Cingolani P, Platts A, Wang le L, et al.: A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3. Fly (Austin). Apr-Jun 2012;6(2):80-92. doi: 10.4161/fly.19695. PubMed PMID: 22728672; PubMed Central PMCID: PMC3679285. diff --git a/conf/test/cache.config b/conf/test/cache.config index 732d827dfe..9f51f72354 100644 --- a/conf/test/cache.config +++ b/conf/test/cache.config @@ -58,11 +58,6 @@ params { } process { - withLabel: 'sentieon' { - ext.sentieon_auth_mech_base64 = secrets.SENTIEON_AUTH_MECH_BASE64 - ext.sentieon_auth_data_base64 = secrets.SENTIEON_AUTH_DATA_BASE64 - } - // This must contain .* in order to properly overwrite the standard config in test cases withName:'.*:FREEC_SOMATIC'{ ext.args = { diff --git a/docs/usage.md b/docs/usage.md index 0f794f54e4..63e338c3c6 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1062,7 +1062,7 @@ In particular, Sentieon contains what may be view as speedup version of some sta Sentieon supply license in the form of a string-value (a url) or a file. It should be base64-encoded and stored in a nextflow secret named `SENTIEON_LICENSE_BASE64`. If a license string (url) is supplied, then the nextflow secret should be set like this: ```bash -nextflow secret set SENTIEON_LICENSE_BASE64 $(echo -n | base64 -w 0) +nextflow secrets set SENTIEON_LICENSE_BASE64 $(echo -n | base64 -w 0) ``` If a license file is supplied, then the nextflow secret should be set like this: diff --git a/modules.json b/modules.json index 0ebe620919..1837c6d402 100644 --- a/modules.json +++ b/modules.json @@ -77,28 +77,29 @@ }, "controlfreec/assesssignificance": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "053564d29a20d45323547973c4023914923823df", "installed_by": ["modules"] }, "controlfreec/freec": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "053564d29a20d45323547973c4023914923823df", "installed_by": ["modules"] }, "controlfreec/freec2bed": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "053564d29a20d45323547973c4023914923823df", "installed_by": ["modules"] }, "controlfreec/freec2circos": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "053564d29a20d45323547973c4023914923823df", "installed_by": ["modules"] }, "controlfreec/makegraph": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "git_sha": "053564d29a20d45323547973c4023914923823df", + "installed_by": ["modules"], + "patch": "modules/nf-core/controlfreec/makegraph/controlfreec-makegraph.diff" }, "custom/dumpsoftwareversions": { "branch": "master", @@ -163,127 +164,127 @@ }, "gatk4/applybqsr": { "branch": "master", - "git_sha": "240937a2a9c30298110753292be041188891f2cb", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/applybqsrspark": { "branch": "master", - "git_sha": "bd8092b67b5103bdd52e300f75889442275c3117", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/applyvqsr": { "branch": "master", - "git_sha": "359dcb06bda60c43955752e356e25c91cfd38ae0", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/baserecalibrator": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/baserecalibratorspark": { "branch": "master", - "git_sha": "4b7d4863a5883b76e6bff13b6e52468fab090c5b", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/calculatecontamination": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/cnnscorevariants": { "branch": "master", - "git_sha": "8c4542e5d421c4690cf1fa6ec729e9304763fdaf", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/createsequencedictionary": { "branch": "master", - "git_sha": "541811d779026c5d395925895fa5ed35e7216cc0", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/estimatelibrarycomplexity": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/filtermutectcalls": { "branch": "master", - "git_sha": "2df2a11d5b12f2a73bca74f103691bc35d83c5fd", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/filtervarianttranches": { "branch": "master", - "git_sha": "541811d779026c5d395925895fa5ed35e7216cc0", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/gatherbqsrreports": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/gatherpileupsummaries": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/genomicsdbimport": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/genotypegvcfs": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/getpileupsummaries": { "branch": "master", - "git_sha": "2df2a11d5b12f2a73bca74f103691bc35d83c5fd", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/haplotypecaller": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/intervallisttobed": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/learnreadorientationmodel": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/markduplicates": { "branch": "master", - "git_sha": "0a261469640941da2488e1a5aa023b64db837c70", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/markduplicatesspark": { "branch": "master", - "git_sha": "0a261469640941da2488e1a5aa023b64db837c70", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/mergemutectstats": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/mergevcfs": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/mutect2": { "branch": "master", - "git_sha": "2df2a11d5b12f2a73bca74f103691bc35d83c5fd", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "gatk4/variantrecalibrator": { "branch": "master", - "git_sha": "359dcb06bda60c43955752e356e25c91cfd38ae0", + "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", "installed_by": ["modules"] }, "manta/germline": { diff --git a/modules/nf-core/controlfreec/assesssignificance/main.nf b/modules/nf-core/controlfreec/assesssignificance/main.nf index c6d81edc3a..5019780964 100644 --- a/modules/nf-core/controlfreec/assesssignificance/main.nf +++ b/modules/nf-core/controlfreec/assesssignificance/main.nf @@ -2,10 +2,10 @@ process CONTROLFREEC_ASSESSSIGNIFICANCE { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6" + conda "bioconda::control-freec=11.6b" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': - 'biocontainers/control-freec:11.6--h1b792b2_1' }" + 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0 ': + 'biocontainers/control-freec:11.6b--hdbdd923_0 ' }" input: tuple val(meta), path(cnvs), path(ratio) diff --git a/modules/nf-core/controlfreec/freec/main.nf b/modules/nf-core/controlfreec/freec/main.nf index da368a524c..7ba83353c9 100644 --- a/modules/nf-core/controlfreec/freec/main.nf +++ b/modules/nf-core/controlfreec/freec/main.nf @@ -2,10 +2,10 @@ process CONTROLFREEC_FREEC { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6" + conda "bioconda::control-freec=11.6b" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': - 'biocontainers/control-freec:11.6--h1b792b2_1' }" + 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0 ': + 'biocontainers/control-freec:11.6b--hdbdd923_0 ' }" input: tuple val(meta), path(mpileup_normal), path(mpileup_tumor), path(cpn_normal), path(cpn_tumor), path(minipileup_normal), path(minipileup_tumor) diff --git a/modules/nf-core/controlfreec/freec2bed/main.nf b/modules/nf-core/controlfreec/freec2bed/main.nf index 8218ce8691..31c35e1d8a 100644 --- a/modules/nf-core/controlfreec/freec2bed/main.nf +++ b/modules/nf-core/controlfreec/freec2bed/main.nf @@ -2,10 +2,10 @@ process CONTROLFREEC_FREEC2BED { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6" + conda "bioconda::control-freec=11.6b" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': - 'biocontainers/control-freec:11.6--h1b792b2_1' }" + 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0 ': + 'biocontainers/control-freec:11.6b--hdbdd923_0 ' }" input: tuple val(meta), path(ratio) diff --git a/modules/nf-core/controlfreec/freec2circos/main.nf b/modules/nf-core/controlfreec/freec2circos/main.nf index f6b440f447..f0a1fb445a 100644 --- a/modules/nf-core/controlfreec/freec2circos/main.nf +++ b/modules/nf-core/controlfreec/freec2circos/main.nf @@ -2,10 +2,10 @@ process CONTROLFREEC_FREEC2CIRCOS { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6" + conda "bioconda::control-freec=11.6b" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': - 'biocontainers/control-freec:11.6--h1b792b2_1' }" + 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0 ': + 'biocontainers/control-freec:11.6b--hdbdd923_0 ' }" input: tuple val(meta), path(ratio) diff --git a/modules/nf-core/controlfreec/makegraph/controlfreec-makegraph.diff b/modules/nf-core/controlfreec/makegraph/controlfreec-makegraph.diff new file mode 100644 index 0000000000..a78c18fa32 --- /dev/null +++ b/modules/nf-core/controlfreec/makegraph/controlfreec-makegraph.diff @@ -0,0 +1,23 @@ +Changes in module 'nf-core/controlfreec/makegraph' +--- modules/nf-core/controlfreec/makegraph/main.nf ++++ modules/nf-core/controlfreec/makegraph/main.nf +@@ -7,7 +7,7 @@ + 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0 ': + 'biocontainers/control-freec:11.6b--hdbdd923_0 ' }" + input: +- tuple val(meta), path(ratio), path(baf), val(ploidy) ++ tuple val(meta), path(ratio), path(baf) + + output: + tuple val(meta), path("*_BAF.png") , emit: png_baf +@@ -24,7 +24,7 @@ + def prefix = task.ext.prefix ?: "${meta.id}" + def baf = baf ?: "" + """ +- cat \$(which makeGraph.R) | R --slave --args ${ploidy} ${args} ${ratio} ${baf} ++ cat \$(which makeGraph.R) | R --slave --args ${args} ${ratio} ${baf} + + mv *_BAF.txt.png ${prefix}_BAF.png + mv *_ratio.txt.log2.png ${prefix}_ratio.log2.png + +************************************************************ diff --git a/modules/nf-core/controlfreec/makegraph/main.nf b/modules/nf-core/controlfreec/makegraph/main.nf index 293cf1feaa..f9978bf952 100644 --- a/modules/nf-core/controlfreec/makegraph/main.nf +++ b/modules/nf-core/controlfreec/makegraph/main.nf @@ -2,11 +2,10 @@ process CONTROLFREEC_MAKEGRAPH { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6" + conda "bioconda::control-freec=11.6b" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': - 'biocontainers/control-freec:11.6--h1b792b2_1' }" - + 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0 ': + 'biocontainers/control-freec:11.6b--hdbdd923_0 ' }" input: tuple val(meta), path(ratio), path(baf) diff --git a/modules/nf-core/controlfreec/makegraph/meta.yml b/modules/nf-core/controlfreec/makegraph/meta.yml index a207ec8c8f..7b97dcf9bc 100644 --- a/modules/nf-core/controlfreec/makegraph/meta.yml +++ b/modules/nf-core/controlfreec/makegraph/meta.yml @@ -30,6 +30,9 @@ input: type: file description: .BAF file generated by FREEC pattern: "*.BAF" + - ploidy: + type: integer + description: Ploidy value for which graph should be created output: - meta: diff --git a/modules/nf-core/gatk4/applybqsr/main.nf b/modules/nf-core/gatk4/applybqsr/main.nf index b515f1c5ea..e5e6bf99c7 100644 --- a/modules/nf-core/gatk4/applybqsr/main.nf +++ b/modules/nf-core/gatk4/applybqsr/main.nf @@ -33,7 +33,8 @@ process GATK4_APPLYBQSR { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" ApplyBQSR \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + ApplyBQSR \\ --input $input \\ --output ${prefix}.${input.getExtension()} \\ --reference $fasta \\ diff --git a/modules/nf-core/gatk4/applybqsr/meta.yml b/modules/nf-core/gatk4/applybqsr/meta.yml index 3002ab600e..2085fa97b2 100644 --- a/modules/nf-core/gatk4/applybqsr/meta.yml +++ b/modules/nf-core/gatk4/applybqsr/meta.yml @@ -1,9 +1,11 @@ name: gatk4_applybqsr description: Apply base quality score recalibration (BQSR) to a bam file keywords: - - bqsr - bam - base quality score recalibration + - bqsr + - cram + - gatk4 tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/applybqsrspark/main.nf b/modules/nf-core/gatk4/applybqsrspark/main.nf index 6451b1bad4..7a4c29bbca 100644 --- a/modules/nf-core/gatk4/applybqsrspark/main.nf +++ b/modules/nf-core/gatk4/applybqsrspark/main.nf @@ -32,7 +32,7 @@ process GATK4_APPLYBQSR_SPARK { } """ gatk \\ - --java-options "-Xmx${avail_mem}M" \\ + --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ ApplyBQSRSpark \\ --input $input \\ --output ${prefix}.${input.getExtension()} \\ diff --git a/modules/nf-core/gatk4/applybqsrspark/meta.yml b/modules/nf-core/gatk4/applybqsrspark/meta.yml index 9acdecc5af..b253fc78ce 100644 --- a/modules/nf-core/gatk4/applybqsrspark/meta.yml +++ b/modules/nf-core/gatk4/applybqsrspark/meta.yml @@ -1,9 +1,12 @@ name: gatk4_applybqsr_spark description: Apply base quality score recalibration (BQSR) to a bam file keywords: - - bqsr - bam - - gatk + - base quality score recalibration + - bqsr + - cram + - gatk4 + - spark tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/applyvqsr/main.nf b/modules/nf-core/gatk4/applyvqsr/main.nf index 381af40fb1..8413f2bb3b 100644 --- a/modules/nf-core/gatk4/applyvqsr/main.nf +++ b/modules/nf-core/gatk4/applyvqsr/main.nf @@ -33,7 +33,8 @@ process GATK4_APPLYVQSR { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" ApplyVQSR \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + ApplyVQSR \\ --variant ${vcf} \\ --output ${prefix}.vcf.gz \\ $reference_command \\ diff --git a/modules/nf-core/gatk4/applyvqsr/meta.yml b/modules/nf-core/gatk4/applyvqsr/meta.yml index a05813d1d3..e1e121a661 100644 --- a/modules/nf-core/gatk4/applyvqsr/meta.yml +++ b/modules/nf-core/gatk4/applyvqsr/meta.yml @@ -6,8 +6,9 @@ description: | in the first step by VariantRecalibrator and a target sensitivity value. keywords: - gatk4 - - applyvqsr - - VQSR + - variant quality score recalibration + - vcf + - vqsr tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/baserecalibrator/main.nf b/modules/nf-core/gatk4/baserecalibrator/main.nf index 318703a48f..5375289a16 100644 --- a/modules/nf-core/gatk4/baserecalibrator/main.nf +++ b/modules/nf-core/gatk4/baserecalibrator/main.nf @@ -35,7 +35,8 @@ process GATK4_BASERECALIBRATOR { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" BaseRecalibrator \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + BaseRecalibrator \\ --input $input \\ --output ${prefix}.table \\ --reference $fasta \\ diff --git a/modules/nf-core/gatk4/baserecalibrator/meta.yml b/modules/nf-core/gatk4/baserecalibrator/meta.yml index a6b06c730c..db4fecfc92 100644 --- a/modules/nf-core/gatk4/baserecalibrator/meta.yml +++ b/modules/nf-core/gatk4/baserecalibrator/meta.yml @@ -1,6 +1,10 @@ name: gatk4_baserecalibrator description: Generate recalibration table for Base Quality Score Recalibration (BQSR) keywords: + - base quality score recalibration + - table + - bqsr + - gatk4 - sort tools: - gatk4: diff --git a/modules/nf-core/gatk4/baserecalibratorspark/main.nf b/modules/nf-core/gatk4/baserecalibratorspark/main.nf index d240a10d3f..6db088bb75 100644 --- a/modules/nf-core/gatk4/baserecalibratorspark/main.nf +++ b/modules/nf-core/gatk4/baserecalibratorspark/main.nf @@ -33,7 +33,8 @@ process GATK4_BASERECALIBRATOR_SPARK { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" BaseRecalibratorSpark \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + BaseRecalibratorSpark \\ --input $input \\ --output ${prefix}.table \\ --reference $fasta \\ diff --git a/modules/nf-core/gatk4/baserecalibratorspark/meta.yml b/modules/nf-core/gatk4/baserecalibratorspark/meta.yml index a4a73ade51..d175ca13a1 100644 --- a/modules/nf-core/gatk4/baserecalibratorspark/meta.yml +++ b/modules/nf-core/gatk4/baserecalibratorspark/meta.yml @@ -1,9 +1,12 @@ name: gatk4_baserecalibrator_spark description: Generate recalibration table for Base Quality Score Recalibration (BQSR) keywords: - - sort + - base quality score recalibration + - table - bqsr - - gatk + - gatk4 + - sort + - spark tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/calculatecontamination/main.nf b/modules/nf-core/gatk4/calculatecontamination/main.nf index 4fccf8b246..9dd961bec0 100644 --- a/modules/nf-core/gatk4/calculatecontamination/main.nf +++ b/modules/nf-core/gatk4/calculatecontamination/main.nf @@ -30,7 +30,8 @@ process GATK4_CALCULATECONTAMINATION { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" CalculateContamination \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + CalculateContamination \\ --input $pileup \\ --output ${prefix}.contamination.table \\ $matched_command \\ diff --git a/modules/nf-core/gatk4/cnnscorevariants/main.nf b/modules/nf-core/gatk4/cnnscorevariants/main.nf index 25e476411f..71efe9b12d 100644 --- a/modules/nf-core/gatk4/cnnscorevariants/main.nf +++ b/modules/nf-core/gatk4/cnnscorevariants/main.nf @@ -40,7 +40,8 @@ process GATK4_CNNSCOREVARIANTS { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" CNNScoreVariants \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + CNNScoreVariants \\ --variant $vcf \\ --output ${prefix}.cnn.vcf.gz \\ --reference $fasta \\ diff --git a/modules/nf-core/gatk4/cnnscorevariants/meta.yml b/modules/nf-core/gatk4/cnnscorevariants/meta.yml index 26d0622a1d..a2fe3d47c6 100644 --- a/modules/nf-core/gatk4/cnnscorevariants/meta.yml +++ b/modules/nf-core/gatk4/cnnscorevariants/meta.yml @@ -1,7 +1,7 @@ name: "gatk4_cnnscorevariants" description: Apply a Convolutional Neural Net to filter annotated variants keywords: - - gatk4_cnnscorevariants + - cnnscorevariants - gatk4 - variants tools: diff --git a/modules/nf-core/gatk4/createsequencedictionary/main.nf b/modules/nf-core/gatk4/createsequencedictionary/main.nf index 15a86beab3..3e4efdd983 100644 --- a/modules/nf-core/gatk4/createsequencedictionary/main.nf +++ b/modules/nf-core/gatk4/createsequencedictionary/main.nf @@ -27,7 +27,8 @@ process GATK4_CREATESEQUENCEDICTIONARY { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" CreateSequenceDictionary \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + CreateSequenceDictionary \\ --REFERENCE $fasta \\ --URI $fasta \\ --TMP_DIR . \\ diff --git a/modules/nf-core/gatk4/createsequencedictionary/meta.yml b/modules/nf-core/gatk4/createsequencedictionary/meta.yml index a421e6817a..9b8b8c8917 100644 --- a/modules/nf-core/gatk4/createsequencedictionary/meta.yml +++ b/modules/nf-core/gatk4/createsequencedictionary/meta.yml @@ -1,9 +1,10 @@ name: gatk4_createsequencedictionary description: Creates a sequence dictionary for a reference sequence keywords: + - createsequencedictionary - dictionary - fasta - - createsequencedictionary + - gatk4 tools: - gatk: description: | diff --git a/modules/nf-core/gatk4/estimatelibrarycomplexity/main.nf b/modules/nf-core/gatk4/estimatelibrarycomplexity/main.nf index 0f33c7c357..81fc83513d 100644 --- a/modules/nf-core/gatk4/estimatelibrarycomplexity/main.nf +++ b/modules/nf-core/gatk4/estimatelibrarycomplexity/main.nf @@ -32,7 +32,8 @@ process GATK4_ESTIMATELIBRARYCOMPLEXITY { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" EstimateLibraryComplexity \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + EstimateLibraryComplexity \\ $input_list \\ --OUTPUT ${prefix}.metrics \\ --REFERENCE_SEQUENCE ${fasta} \\ diff --git a/modules/nf-core/gatk4/estimatelibrarycomplexity/meta.yml b/modules/nf-core/gatk4/estimatelibrarycomplexity/meta.yml index 72a679e990..2783152a59 100644 --- a/modules/nf-core/gatk4/estimatelibrarycomplexity/meta.yml +++ b/modules/nf-core/gatk4/estimatelibrarycomplexity/meta.yml @@ -1,9 +1,9 @@ name: gatk4_estimatelibrarycomplexity description: Estimates the numbers of unique molecules in a sequencing library. keywords: + - duplication metrics + - estimatelibrarycomplexity - gatk4 - - gatk4_estimatelibrarycomplexity - - duplication_metrics - reporting tools: - gatk4: diff --git a/modules/nf-core/gatk4/filtermutectcalls/main.nf b/modules/nf-core/gatk4/filtermutectcalls/main.nf index d0cf5b4a17..623b91aece 100644 --- a/modules/nf-core/gatk4/filtermutectcalls/main.nf +++ b/modules/nf-core/gatk4/filtermutectcalls/main.nf @@ -38,7 +38,8 @@ process GATK4_FILTERMUTECTCALLS { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" FilterMutectCalls \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + FilterMutectCalls \\ --variant $vcf \\ --output ${prefix}.vcf.gz \\ --reference $fasta \\ diff --git a/modules/nf-core/gatk4/filtermutectcalls/meta.yml b/modules/nf-core/gatk4/filtermutectcalls/meta.yml index 1a6faecbdf..095a28e321 100644 --- a/modules/nf-core/gatk4/filtermutectcalls/meta.yml +++ b/modules/nf-core/gatk4/filtermutectcalls/meta.yml @@ -3,9 +3,10 @@ description: | Filters the raw output of mutect2, can optionally use outputs of calculatecontamination and learnreadorientationmodel to improve filtering. keywords: - filtermutectcalls - - mutect2 + - filter - gatk4 - - filtervcf + - mutect2 + - vcf tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/filtervarianttranches/main.nf b/modules/nf-core/gatk4/filtervarianttranches/main.nf index be232ab4bb..90cbf5f0a6 100644 --- a/modules/nf-core/gatk4/filtervarianttranches/main.nf +++ b/modules/nf-core/gatk4/filtervarianttranches/main.nf @@ -36,7 +36,8 @@ process GATK4_FILTERVARIANTTRANCHES { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" FilterVariantTranches \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + FilterVariantTranches \\ --variant $vcf \\ $resources \\ --output ${prefix}.filtered.vcf.gz \\ diff --git a/modules/nf-core/gatk4/filtervarianttranches/meta.yml b/modules/nf-core/gatk4/filtervarianttranches/meta.yml index 4152a65c1f..c5325b4891 100644 --- a/modules/nf-core/gatk4/filtervarianttranches/meta.yml +++ b/modules/nf-core/gatk4/filtervarianttranches/meta.yml @@ -1,9 +1,9 @@ name: "gatk4_filtervarianttranches" description: Apply tranche filtering keywords: - - gatk4 - filtervarianttranches - - tranche_filtering + - gatk4 + - tranche filtering tools: - "gatk4": description: | diff --git a/modules/nf-core/gatk4/gatherbqsrreports/main.nf b/modules/nf-core/gatk4/gatherbqsrreports/main.nf index 8ee92e2985..3eeca5ad90 100644 --- a/modules/nf-core/gatk4/gatherbqsrreports/main.nf +++ b/modules/nf-core/gatk4/gatherbqsrreports/main.nf @@ -29,7 +29,8 @@ process GATK4_GATHERBQSRREPORTS { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" GatherBQSRReports \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + GatherBQSRReports \\ $input_list \\ --output ${prefix}.table \\ --tmp-dir . \\ diff --git a/modules/nf-core/gatk4/gatherbqsrreports/meta.yml b/modules/nf-core/gatk4/gatherbqsrreports/meta.yml index efd72e1034..d9faf09d45 100644 --- a/modules/nf-core/gatk4/gatherbqsrreports/meta.yml +++ b/modules/nf-core/gatk4/gatherbqsrreports/meta.yml @@ -1,9 +1,10 @@ name: gatk4_gatherbqsrreports description: Gathers scattered BQSR recalibration reports into a single file keywords: + - base quality score recalibration + - bqsr + - gatherbqsrreports - gatk4 - - gatk4_gatherbqsrreports - - base_recalibration tools: - gatk4: description: Genome Analysis Toolkit (GATK4) diff --git a/modules/nf-core/gatk4/gatherpileupsummaries/main.nf b/modules/nf-core/gatk4/gatherpileupsummaries/main.nf index 3e92eb0079..f315e1af3b 100644 --- a/modules/nf-core/gatk4/gatherpileupsummaries/main.nf +++ b/modules/nf-core/gatk4/gatherpileupsummaries/main.nf @@ -31,7 +31,8 @@ process GATK4_GATHERPILEUPSUMMARIES { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" GatherPileupSummaries \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + GatherPileupSummaries \\ $input_list \\ --O ${prefix}.pileups.table \\ --sequence-dictionary $dict \\ diff --git a/modules/nf-core/gatk4/gatherpileupsummaries/meta.yml b/modules/nf-core/gatk4/gatherpileupsummaries/meta.yml index 695335ca59..6b8569dd5b 100644 --- a/modules/nf-core/gatk4/gatherpileupsummaries/meta.yml +++ b/modules/nf-core/gatk4/gatherpileupsummaries/meta.yml @@ -1,6 +1,8 @@ name: gatk4_gatherpileupsummaries description: write your description here keywords: + - gatk4 + - mpileup - sort tools: - gatk4: @@ -18,7 +20,7 @@ input: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - pileup: - type: (list of) file(s) + type: file description: Pileup files from gatk4/getpileupsummaries pattern: "*.pileups.table" diff --git a/modules/nf-core/gatk4/genomicsdbimport/main.nf b/modules/nf-core/gatk4/genomicsdbimport/main.nf index dc773453e7..a8725d3f9a 100644 --- a/modules/nf-core/gatk4/genomicsdbimport/main.nf +++ b/modules/nf-core/gatk4/genomicsdbimport/main.nf @@ -53,7 +53,8 @@ process GATK4_GENOMICSDBIMPORT { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" GenomicsDBImport \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + GenomicsDBImport \\ $input_command \\ $genomicsdb_command \\ $interval_command \\ diff --git a/modules/nf-core/gatk4/genomicsdbimport/meta.yml b/modules/nf-core/gatk4/genomicsdbimport/meta.yml index af626cb1f2..ff114d7d20 100644 --- a/modules/nf-core/gatk4/genomicsdbimport/meta.yml +++ b/modules/nf-core/gatk4/genomicsdbimport/meta.yml @@ -2,10 +2,10 @@ name: gatk4_genomicsdbimport description: merge GVCFs from multiple samples. For use in joint genotyping or somatic panel of normal creation. keywords: - gatk4 - - genomicsdbimport - genomicsdb - - panelofnormalscreation + - genomicsdbimport - jointgenotyping + - panelofnormalscreation tools: - gatk4: description: | @@ -33,7 +33,7 @@ input: pattern: "*.vcf.gz_tbi" - wspace: - type: path + type: file description: path to an existing genomicsdb to be used in update db mode or get intervals mode. This WILL NOT specify name of a new genomicsdb in create db mode. pattern: "/path/to/existing/gendb" diff --git a/modules/nf-core/gatk4/genotypegvcfs/main.nf b/modules/nf-core/gatk4/genotypegvcfs/main.nf index fac131f5cc..a3e3129fcf 100644 --- a/modules/nf-core/gatk4/genotypegvcfs/main.nf +++ b/modules/nf-core/gatk4/genotypegvcfs/main.nf @@ -37,7 +37,8 @@ process GATK4_GENOTYPEGVCFS { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" GenotypeGVCFs \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + GenotypeGVCFs \\ --variant $gvcf_command \\ --output ${prefix}.vcf.gz \\ --reference $fasta \\ diff --git a/modules/nf-core/gatk4/genotypegvcfs/meta.yml b/modules/nf-core/gatk4/genotypegvcfs/meta.yml index 7bec10ed17..d759270d6a 100644 --- a/modules/nf-core/gatk4/genotypegvcfs/meta.yml +++ b/modules/nf-core/gatk4/genotypegvcfs/meta.yml @@ -2,9 +2,10 @@ name: gatk4_genotypegvcfs description: | Perform joint genotyping on one or more samples pre-called with HaplotypeCaller. keywords: - - joint genotyping + - gatk4 - genotype - gvcf + - joint genotyping tools: - gatk4: description: Genome Analysis Toolkit (GATK4) diff --git a/modules/nf-core/gatk4/getpileupsummaries/main.nf b/modules/nf-core/gatk4/getpileupsummaries/main.nf index cde39fb3b3..f7d0f2942c 100644 --- a/modules/nf-core/gatk4/getpileupsummaries/main.nf +++ b/modules/nf-core/gatk4/getpileupsummaries/main.nf @@ -35,7 +35,8 @@ process GATK4_GETPILEUPSUMMARIES { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" GetPileupSummaries \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + GetPileupSummaries \\ --input $input \\ --variant $variants \\ --output ${prefix}.pileups.table \\ diff --git a/modules/nf-core/gatk4/getpileupsummaries/meta.yml b/modules/nf-core/gatk4/getpileupsummaries/meta.yml index 0f531c5456..6aaa4b9e7c 100644 --- a/modules/nf-core/gatk4/getpileupsummaries/meta.yml +++ b/modules/nf-core/gatk4/getpileupsummaries/meta.yml @@ -3,9 +3,9 @@ description: | Summarizes counts of reads that support reference, alternate and other alleles for given sites. Results can be used with CalculateContamination. Requires a common germline variant sites file, such as from gnomAD. keywords: - gatk4 + - germlinevariantsites - getpileupsumaries - readcountssummary - - germlinevariantsites tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/haplotypecaller/main.nf b/modules/nf-core/gatk4/haplotypecaller/main.nf index 478681bd18..9ac87518e9 100644 --- a/modules/nf-core/gatk4/haplotypecaller/main.nf +++ b/modules/nf-core/gatk4/haplotypecaller/main.nf @@ -39,7 +39,8 @@ process GATK4_HAPLOTYPECALLER { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" HaplotypeCaller \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + HaplotypeCaller \\ --input $input \\ --output ${prefix}.vcf.gz \\ --reference $fasta \\ diff --git a/modules/nf-core/gatk4/haplotypecaller/meta.yml b/modules/nf-core/gatk4/haplotypecaller/meta.yml index 27633cca66..03afe29427 100644 --- a/modules/nf-core/gatk4/haplotypecaller/meta.yml +++ b/modules/nf-core/gatk4/haplotypecaller/meta.yml @@ -2,8 +2,8 @@ name: gatk4_haplotypecaller description: Call germline SNPs and indels via local re-assembly of haplotypes keywords: - gatk4 - - haplotypecaller - haplotype + - haplotypecaller tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/intervallisttobed/main.nf b/modules/nf-core/gatk4/intervallisttobed/main.nf index afa4423b1a..2537f0aa68 100644 --- a/modules/nf-core/gatk4/intervallisttobed/main.nf +++ b/modules/nf-core/gatk4/intervallisttobed/main.nf @@ -28,7 +28,8 @@ process GATK4_INTERVALLISTTOBED { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" IntervalListToBed \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + IntervalListToBed \\ --INPUT $intervals \\ --OUTPUT ${prefix}.bed \\ --TMP_DIR . \\ diff --git a/modules/nf-core/gatk4/intervallisttobed/meta.yml b/modules/nf-core/gatk4/intervallisttobed/meta.yml index f09f1ee91c..df3705aa15 100644 --- a/modules/nf-core/gatk4/intervallisttobed/meta.yml +++ b/modules/nf-core/gatk4/intervallisttobed/meta.yml @@ -1,9 +1,10 @@ name: gatk4_intervallisttobed description: Converts an Picard IntervalList file to a BED file. keywords: - - interval - bed - conversion + - gatk4 + - interval tools: - gatk4: description: Genome Analysis Toolkit (GATK4) diff --git a/modules/nf-core/gatk4/learnreadorientationmodel/main.nf b/modules/nf-core/gatk4/learnreadorientationmodel/main.nf index b1e8780a89..89a6ae77b6 100644 --- a/modules/nf-core/gatk4/learnreadorientationmodel/main.nf +++ b/modules/nf-core/gatk4/learnreadorientationmodel/main.nf @@ -29,7 +29,8 @@ process GATK4_LEARNREADORIENTATIONMODEL { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" LearnReadOrientationModel \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + LearnReadOrientationModel \\ $input_list \\ --output ${prefix}.tar.gz \\ --tmp-dir . \\ diff --git a/modules/nf-core/gatk4/learnreadorientationmodel/meta.yml b/modules/nf-core/gatk4/learnreadorientationmodel/meta.yml index b2dd9612e5..e29fee2251 100644 --- a/modules/nf-core/gatk4/learnreadorientationmodel/meta.yml +++ b/modules/nf-core/gatk4/learnreadorientationmodel/meta.yml @@ -4,8 +4,8 @@ description: | keywords: - gatk4 - learnreadorientationmodel - - readorientationartifacts - mutect2 + - readorientationartifacts tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/markduplicates/main.nf b/modules/nf-core/gatk4/markduplicates/main.nf index f4b3f6dcf0..e4c01f9a2e 100644 --- a/modules/nf-core/gatk4/markduplicates/main.nf +++ b/modules/nf-core/gatk4/markduplicates/main.nf @@ -43,7 +43,8 @@ process GATK4_MARKDUPLICATES { // Using samtools and not Markduplicates to compress to CRAM speeds up computation: // https://medium.com/@acarroll.dna/looking-at-trade-offs-in-compression-levels-for-genomics-tools-eec2834e8b94 """ - gatk --java-options "-Xmx${avail_mem}M" MarkDuplicates \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + MarkDuplicates \\ $input_list \\ --OUTPUT ${prefix_bam} \\ --METRICS_FILE ${prefix}.metrics \\ diff --git a/modules/nf-core/gatk4/markduplicates/meta.yml b/modules/nf-core/gatk4/markduplicates/meta.yml index ddf98d2f5a..d3e755054a 100644 --- a/modules/nf-core/gatk4/markduplicates/meta.yml +++ b/modules/nf-core/gatk4/markduplicates/meta.yml @@ -1,8 +1,9 @@ name: gatk4_markduplicates description: This tool locates and tags duplicate reads in a BAM or SAM file, where duplicate reads are defined as originating from a single fragment of DNA. keywords: - - markduplicates - bam + - gatk4 + - markduplicates - sort tools: - gatk4: diff --git a/modules/nf-core/gatk4/markduplicatesspark/main.nf b/modules/nf-core/gatk4/markduplicatesspark/main.nf index 30f4703613..f318ed50a6 100644 --- a/modules/nf-core/gatk4/markduplicatesspark/main.nf +++ b/modules/nf-core/gatk4/markduplicatesspark/main.nf @@ -32,7 +32,8 @@ process GATK4_MARKDUPLICATES_SPARK { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" MarkDuplicatesSpark \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + MarkDuplicatesSpark \\ $input_list \\ --output $prefix \\ --reference $fasta \\ diff --git a/modules/nf-core/gatk4/markduplicatesspark/meta.yml b/modules/nf-core/gatk4/markduplicatesspark/meta.yml index 00d080801a..c9bb263a96 100644 --- a/modules/nf-core/gatk4/markduplicatesspark/meta.yml +++ b/modules/nf-core/gatk4/markduplicatesspark/meta.yml @@ -1,9 +1,11 @@ name: gatk4_markduplicates_spark description: This tool locates and tags duplicate reads in a BAM or SAM file, where duplicate reads are defined as originating from a single fragment of DNA. keywords: - - markduplicates - bam + - gatk4 + - markduplicates - sort + - spark tools: - gatk4: description: diff --git a/modules/nf-core/gatk4/mergemutectstats/main.nf b/modules/nf-core/gatk4/mergemutectstats/main.nf index 51338597f7..269721cbf9 100644 --- a/modules/nf-core/gatk4/mergemutectstats/main.nf +++ b/modules/nf-core/gatk4/mergemutectstats/main.nf @@ -29,7 +29,8 @@ process GATK4_MERGEMUTECTSTATS { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" MergeMutectStats \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + MergeMutectStats \\ $input_list \\ --output ${prefix}.vcf.gz.stats \\ --tmp-dir . \\ diff --git a/modules/nf-core/gatk4/mergemutectstats/meta.yml b/modules/nf-core/gatk4/mergemutectstats/meta.yml index c9950e1400..f75833c9bc 100644 --- a/modules/nf-core/gatk4/mergemutectstats/meta.yml +++ b/modules/nf-core/gatk4/mergemutectstats/meta.yml @@ -1,8 +1,10 @@ name: gatk4_mergemutectstats description: Merges mutect2 stats generated on different intervals/regions keywords: - - mutectstats + - gatk4 - merge + - mutect2 + - mutectstats tools: - gatk4: description: Genome Analysis Toolkit (GATK4) @@ -19,7 +21,7 @@ input: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - stats: - type: (list of) file(s) + type: file description: Stats file pattern: "*.{stats}" diff --git a/modules/nf-core/gatk4/mergevcfs/main.nf b/modules/nf-core/gatk4/mergevcfs/main.nf index dfb5b33a9c..29c08e169c 100644 --- a/modules/nf-core/gatk4/mergevcfs/main.nf +++ b/modules/nf-core/gatk4/mergevcfs/main.nf @@ -32,7 +32,8 @@ process GATK4_MERGEVCFS { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" MergeVcfs \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + MergeVcfs \\ $input_list \\ --OUTPUT ${prefix}.vcf.gz \\ $reference_command \\ diff --git a/modules/nf-core/gatk4/mergevcfs/meta.yml b/modules/nf-core/gatk4/mergevcfs/meta.yml index db8c4cb0bf..4e11311c17 100644 --- a/modules/nf-core/gatk4/mergevcfs/meta.yml +++ b/modules/nf-core/gatk4/mergevcfs/meta.yml @@ -1,8 +1,9 @@ name: gatk4_mergevcfs description: Merges several vcf files keywords: - - vcf + - gatk4 - merge + - vcf tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/mutect2/main.nf b/modules/nf-core/gatk4/mutect2/main.nf index bddc3688e0..4e353979db 100644 --- a/modules/nf-core/gatk4/mutect2/main.nf +++ b/modules/nf-core/gatk4/mutect2/main.nf @@ -42,7 +42,8 @@ process GATK4_MUTECT2 { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" Mutect2 \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + Mutect2 \\ $inputs \\ --output ${prefix}.vcf.gz \\ --reference $fasta \\ diff --git a/modules/nf-core/gatk4/mutect2/meta.yml b/modules/nf-core/gatk4/mutect2/meta.yml index 4842c229fa..693aeb296a 100644 --- a/modules/nf-core/gatk4/mutect2/meta.yml +++ b/modules/nf-core/gatk4/mutect2/meta.yml @@ -2,8 +2,10 @@ name: gatk4_mutect2 description: Call somatic SNVs and indels via local assembly of haplotypes. keywords: - gatk4 - - mutect2 - haplotype + - indels + - mutect2 + - snvs - somatic tools: - gatk4: diff --git a/modules/nf-core/gatk4/variantrecalibrator/main.nf b/modules/nf-core/gatk4/variantrecalibrator/main.nf index adfd1063ed..fa262e4a95 100644 --- a/modules/nf-core/gatk4/variantrecalibrator/main.nf +++ b/modules/nf-core/gatk4/variantrecalibrator/main.nf @@ -39,7 +39,8 @@ process GATK4_VARIANTRECALIBRATOR { avail_mem = (task.memory.mega*0.8).intValue() } """ - gatk --java-options "-Xmx${avail_mem}M" VariantRecalibrator \\ + gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\ + VariantRecalibrator \\ --variant $vcf \\ --output ${prefix}.recal \\ --tranches-file ${prefix}.tranches \\ diff --git a/modules/nf-core/gatk4/variantrecalibrator/meta.yml b/modules/nf-core/gatk4/variantrecalibrator/meta.yml index 6ed3a40e2c..5ade4d89b1 100644 --- a/modules/nf-core/gatk4/variantrecalibrator/meta.yml +++ b/modules/nf-core/gatk4/variantrecalibrator/meta.yml @@ -6,9 +6,9 @@ description: | tool to produce optimal results. For example, 30 samples for exome data. For more details see https://gatk.broadinstitute.org/hc/en-us/articles/4402736812443-Which-training-sets-arguments-should-I-use-for-running-VQSR- keywords: - - VariantRecalibrator - gatk4 - - recalibration_model + - recalibration model + - variantrecalibrator tools: - gatk4: description: | diff --git a/nextflow.config b/nextflow.config index 513cfbed07..8bf4d71e0e 100644 --- a/nextflow.config +++ b/nextflow.config @@ -335,8 +335,8 @@ manifest { description = """An open-source analysis pipeline to detect germline or somatic variants from whole genome or targeted sequencing""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '3.3.0' - doi = '10.12688/f1000research.16665.2, 10.5281/zenodo.4063683' + version = '3.3.1' + doi = '10.12688/f1000research.16665.2, 10.1101/2023.07.19.549462, 10.5281/zenodo.3476425' } // Load modules.config for DSL2 module specific options diff --git a/nextflow_schema.json b/nextflow_schema.json index 3ea9efeba0..03ae8c15df 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -18,19 +18,11 @@ "help_text": "A design file with information about the samples in your experiment. Use this parameter to specify the location of the input files. It has to be a comma-separated file with a header row. See [usage docs](https://nf-co.re/sarek/usage#input).\n\nIf no input file is specified, sarek will attempt to locate one in the `{outdir}` directory. If no input should be supplied, i.e. when --step is supplied or --build_from_index, then set --input false", "fa_icon": "fas fa-file-csv", "schema": "assets/schema_input.json", - "anyOf": [ - { - "type": "string", - "format": "file-path", - "exists": true, - "mimetype": "text/csv", - "pattern": "^\\S+\\.csv$" - }, - { - "type": "boolean", - "enum": ["false"] - } - ] + "type": "string", + "format": "file-path", + "exists": true, + "mimetype": "text/csv", + "pattern": "^\\S+\\.csv$" }, "input_restart": { "type": "string", diff --git a/tests/config/tags.yml b/tests/config/tags.yml index 851d80c225..362bc525b9 100644 --- a/tests/config/tags.yml +++ b/tests/config/tags.yml @@ -138,7 +138,7 @@ sentieon/bwamem: - modules/nf-core/sentieon/bwamem/main.nf - subworkflows/local/fastq_align_bwamem_mem2_dragmap_sentieon/main.nf - tests/csv/3.0/fastq_single.csv - - tests/test_aligner_sentieon_bwamem.yml + - tests/test_sentieon_aligner_bwamem.yml ## markduplicates gatk4/markduplicates: diff --git a/tests/test_aligner_sentieon_bwamem.yml b/tests/test_sentieon_aligner_bwamem.yml similarity index 94% rename from tests/test_aligner_sentieon_bwamem.yml rename to tests/test_sentieon_aligner_bwamem.yml index f919a725ba..37f883312d 100644 --- a/tests/test_aligner_sentieon_bwamem.yml +++ b/tests/test_sentieon_aligner_bwamem.yml @@ -1,5 +1,5 @@ - name: Run sentieon bwamem - command: nextflow run main.nf -profile test_cache --aligner sentieon-bwamem --save_reference --outdir results + command: nextflow run main.nf -profile test_cache,software_license --sentieon_extension --aligner sentieon-bwamem --save_reference --outdir results tags: - aligner - sentieon/bwamem @@ -74,7 +74,7 @@ - path: results/reports/samtools/test/test.recal.cram.stats # conda changes md5sums for test - name: Build only index with sentieon bwa - command: nextflow run main.nf -profile test_cache --aligner sentieon-bwamem --build_only_index --outdir results + command: nextflow run main.nf -profile test_cache,software_license --sentieon_extension --aligner sentieon-bwamem --build_only_index --outdir results tags: - aligner - build_only_index @@ -106,7 +106,7 @@ - path: results/reference/known_indels/mills_and_1000G.indels.vcf.gz.tbi # conda changes md5sums for test - name: Run sentieon bwamem save bam - command: nextflow run main.nf -profile test_cache --aligner sentieon-bwamem --save_mapped --save_output_as_bam --outdir results + command: nextflow run main.nf -profile test_cache,software_license --sentieon_extension --aligner sentieon-bwamem --save_mapped --save_output_as_bam --outdir results tags: - aligner - sentieon/bwamem @@ -160,7 +160,7 @@ - path: results/reports/samtools/test/test.recal.cram.stats # conda changes md5sums for test - name: Run sentieon bwamem save cram - command: nextflow run main.nf -profile test_cache --aligner sentieon-bwamem --save_mapped --outdir results + command: nextflow run main.nf -profile test_cache,software_license --sentieon_extension --aligner sentieon-bwamem --save_mapped --outdir results tags: - aligner - sentieon/bwamem diff --git a/tests/test_sentieon_dedup_from_bam.yml b/tests/test_sentieon_dedup_from_bam.yml index cba467d07f..54df60e415 100644 --- a/tests/test_sentieon_dedup_from_bam.yml +++ b/tests/test_sentieon_dedup_from_bam.yml @@ -1,5 +1,5 @@ - name: Run sentieon dedup starting from BAM - command: nextflow run main.nf -profile test_cache,sentieon_dedup_bam --outdir results + command: nextflow run main.nf -profile test_cache,software_license,sentieon_dedup_bam --sentieon_extension --outdir results tags: - input_bam - preprocessing diff --git a/tests/test_sentieon_dedup_from_cram.yml b/tests/test_sentieon_dedup_from_cram.yml index e92fff1c60..87dfdebfa7 100644 --- a/tests/test_sentieon_dedup_from_cram.yml +++ b/tests/test_sentieon_dedup_from_cram.yml @@ -1,5 +1,5 @@ - name: Run sentieon dedup starting from CRAM - command: nextflow run main.nf -profile test_cache,sentieon_dedup_cram --outdir results + command: nextflow run main.nf -profile test_cache,software_license,sentieon_dedup_cram --sentieon_extension --outdir results tags: - input_cram - preprocessing diff --git a/tests/test_sentieon_haplotyper.yml b/tests/test_sentieon_haplotyper.yml index 5e06ccf604..b90e538e70 100644 --- a/tests/test_sentieon_haplotyper.yml +++ b/tests/test_sentieon_haplotyper.yml @@ -1,5 +1,5 @@ - name: Run variant calling on germline sample with sentieons haplotyper - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --outdir results + command: nextflow run main.nf -profile test_cache,software_license,targeted --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --outdir results tags: - germline - sentieon/haplotyper @@ -35,7 +35,7 @@ - path: results/haplotyper should_exist: false - name: Run variant calling on germline sample with sentieons haplotyper without intervals - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --no_intervals --outdir results + command: nextflow run main.nf -profile test_cache,software_license,targeted --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --no_intervals --outdir results tags: - germline - sentieon/haplotyper @@ -78,7 +78,7 @@ - path: results/sentieon_haplotyper should_exist: false - name: Run variant calling on germline sample with sentieons haplotyper output gvcf - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --outdir results --sentieon_haplotyper_emit_mode gvcf + command: nextflow run main.nf -profile test_cache,software_license,targeted --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --outdir results --sentieon_haplotyper_emit_mode gvcf tags: - germline - sentieon/haplotyper @@ -116,7 +116,7 @@ - path: results/haplotyper should_exist: false - name: Run variant calling on germline sample with sentieons haplotyper output both gvcf and vcf - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --outdir results --sentieon_haplotyper_emit_mode variant,gvcf + command: nextflow run main.nf -profile test_cache,software_license,targeted --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --outdir results --sentieon_haplotyper_emit_mode variant,gvcf tags: - germline - sentieon/haplotyper diff --git a/tests/test_sentieon_haplotyper_skip_filter.yml b/tests/test_sentieon_haplotyper_skip_filter.yml index 8972c06738..b4229da7b4 100644 --- a/tests/test_sentieon_haplotyper_skip_filter.yml +++ b/tests/test_sentieon_haplotyper_skip_filter.yml @@ -1,5 +1,5 @@ - name: Run variant calling on germline sample with sentieon haplotyper and skip filter - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --skip_tools haplotyper_filter --outdir results + command: nextflow run main.nf -profile test_cache,software_license,targeted --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --skip_tools haplotyper_filter --outdir results tags: - germline - sentieon_haplotyper_skip_filter @@ -36,7 +36,7 @@ - path: results/sentieon_haplotyper should_exist: false - name: Run variant calling on germline sample with sentieon haplotyper without intervals and skip filter - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --skip_tools haplotyper_filter --no_intervals --outdir results + command: nextflow run main.nf -profile test_cache,software_license,targeted --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_haplotyper --step variant_calling --skip_tools haplotyper_filter --no_intervals --outdir results tags: - germline - sentieon_haplotyper_skip_filter diff --git a/tests/test_sentieon_joint_germline.yml b/tests/test_sentieon_joint_germline.yml index 4b42a505a9..4637571aec 100644 --- a/tests/test_sentieon_joint_germline.yml +++ b/tests/test_sentieon_joint_germline.yml @@ -1,5 +1,5 @@ - name: Run joint germline variant calling with sentieon haplotyper - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_haplotyper --step variant_calling --joint_germline --outdir results --sentieon_haplotyper_emit_mode gvcf + command: nextflow run main.nf -profile test_cache,software_license,targeted --sentieon_extension --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_haplotyper --step variant_calling --joint_germline --outdir results --sentieon_haplotyper_emit_mode gvcf tags: - germline - sentieon_joint_germline @@ -28,7 +28,7 @@ - path: results/haplotyper should_exist: false - name: Run joint germline variant calling with sentieon haplotyper all intervals at once - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_haplotyper --step variant_calling --joint_germline --outdir results --sentieon_haplotyper_emit_mode gvcf --nucleotides_per_second 100 + command: nextflow run main.nf -profile test_cache,software_license,targeted --sentieon_extension --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_haplotyper --step variant_calling --joint_germline --outdir results --sentieon_haplotyper_emit_mode gvcf --nucleotides_per_second 100 tags: - germline - sentieon_joint_germline @@ -55,7 +55,7 @@ - path: results/haplotyper should_exist: false - name: Run joint germline variant calling with sentieon haplotyper with stub for VQSR - command: nextflow run main.nf -profile test_cache,tools_germline --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_haplotyper --step variant_calling --joint_germline --outdir results --sentieon_haplotyper_emit_mode gvcf -stub-run + command: nextflow run main.nf -profile test_cache,software_license,tools_germline --sentieon_extension --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_haplotyper --step variant_calling --joint_germline --outdir results --sentieon_haplotyper_emit_mode gvcf -stub-run tags: - germline - sentieon_joint_germline diff --git a/tests/test_umi.yml b/tests/test_umi.yml index 52be524ecd..0034d131d9 100644 --- a/tests/test_umi.yml +++ b/tests/test_umi.yml @@ -52,7 +52,7 @@ # text-based file changes md5sums on reruns - name: Run Sentieon-FGBio UMI combination test - command: nextflow run main.nf -profile test_cache,umi --outdir results --aligner "sentieon-bwamem" + command: nextflow run main.nf -profile test_cache,software_license,umi --sentieon_extension --outdir results --aligner "sentieon-bwamem" tags: - preprocessing - umi diff --git a/workflows/sarek.nf b/workflows/sarek.nf index eec7332c4b..13a2d8d73b 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -50,14 +50,16 @@ def checkPathParamList = [ params.multiqc_config, params.pon, params.pon_tbi, - params.snpeff_cache, params.spliceai_indel, params.spliceai_indel_tbi, params.spliceai_snv, - params.spliceai_snv_tbi, - params.vep_cache + params.spliceai_snv_tbi ] +// only check if we are using the tools +if (params.tools && params.tools.contains("snpeff")) checkPathParamList.add(params.snpeff_cache) +if (params.tools && params.tools.contains("vep")) checkPathParamList.add(params.vep_cache) + // Validate input parameters WorkflowSarek.initialise(params, log) @@ -288,19 +290,6 @@ if ((params.download_cache) && (params.snpeff_cache || params.vep_cache)) { error("Please specify either `--download_cache` or `--snpeff_cache`, `--vep_cache`.\nhttps://nf-co.re/sarek/dev/usage#how-to-customise-snpeff-and-vep-annotation") } -if ( params.vep_cache ) { - def vep_cache_dir = file("$params.vep_cache", type: 'dir') / "${params.vep_cache_version}_${params.vep_genome}" - if ( !vep_cache_dir.exists() || !vep_cache_dir.isDirectory() ) { - error("Files within --vep_cache invalid. Make sure there is a directory named ${params.vep_cache_version}_${params.vep_genome} in ${params.vep_cache}.\nhttps://nf-co.re/sarek/dev/usage#how-to-customise-snpeff-and-vep-annotation") - } -} - -if ( params.snpeff_cache ) { - def snpeff_cache_dir = file("$params.snpeff_cache", type: 'dir') / "${params.snpeff_genome}.${params.snpeff_db}" - if ( !snpeff_cache_dir.exists() || !snpeff_cache_dir.isDirectory() ) { - error("Files within --snpeff_cache invalid. Make sure there is a directory named ${params.snpeff_genome}.${params.snpeff_db} in ${params.snpeff_cache}.\nhttps://nf-co.re/sarek/dev/usage#how-to-customise-snpeff-and-vep-annotation") - } -} /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IMPORT LOCAL MODULES/SUBWORKFLOWS @@ -334,8 +323,26 @@ vep_genome = params.vep_genome ?: Channel.empty() vep_species = params.vep_species ?: Channel.empty() // Initialize files channels based on params, not defined within the params.genomes[params.genome] scope -snpeff_cache = params.snpeff_cache ? params.use_annotation_cache_keys ? Channel.fromPath("${params.snpeff_cache}/${params.snpeff_genome}.${params.snpeff_db}", checkIfExists: true).collect() : Channel.fromPath(params.snpeff_cache).collect() : [] -vep_cache = params.vep_cache ? params.use_annotation_cache_keys ? Channel.fromPath("${params.vep_cache}/${params.vep_cache_version}_${params.vep_genome}", checkIfExists: true).collect() : Channel.fromPath(params.vep_cache).collect() : [] +if (params.snpeff_cache && params.tools && params.tools.contains("snpeff")) { + def snpeff_annotation_cache_key = params.use_annotation_cache_keys ? "${params.snpeff_genome}.${params.snpeff_db}/" : "" + def snpeff_cache_dir = "${snpeff_annotation_cache_key}${params.snpeff_genome}.${params.snpeff_db}" + def snpeff_cache_path_full = file("$params.snpeff_cache/$snpeff_cache_dir", type: 'dir') + if ( !snpeff_cache_path_full.exists() || !snpeff_cache_path_full.isDirectory() ) { + error("Files within --snpeff_cache invalid. Make sure there is a directory named ${snpeff_cache_dir} in ${params.snpeff_cache}.\nhttps://nf-co.re/sarek/dev/usage#how-to-customise-snpeff-and-vep-annotation") + } + snpeff_cache = Channel.fromPath(file("${params.snpeff_cache}/${snpeff_annotation_cache_key}"), checkIfExists: true).collect() + .map{ cache -> [ [ id:"${params.snpeff_genome}.${params.snpeff_db}" ], cache ] } +} else snpeff_cache = [] + +if (params.vep_cache && params.tools && params.tools.contains("vep")) { + def vep_annotation_cache_key = params.use_annotation_cache_keys ? "${params.vep_cache_version}_${params.vep_genome}/" : "" + def vep_cache_dir = "${vep_annotation_cache_key}${params.vep_species}/${params.vep_cache_version}_${params.vep_genome}" + def vep_cache_path_full = file("$params.vep_cache/$vep_cache_dir", type: 'dir') + if ( !vep_cache_path_full.exists() || !vep_cache_path_full.isDirectory() ) { + error("Files within --vep_cache invalid. Make sure there is a directory named ${vep_cache_dir} in ${params.vep_cache}.\nhttps://nf-co.re/sarek/dev/usage#how-to-customise-snpeff-and-vep-annotation") + } + vep_cache = Channel.fromPath(file("${params.vep_cache}/${vep_annotation_cache_key}"), checkIfExists: true).collect() +} else vep_cache = [] vep_extra_files = []