Skip to content

Commit 9b85c0f

Browse files
authored
Merge pull request #2037 from nf-core/dev
Release 3.6.1
2 parents 08887a8 + d5f7fe6 commit 9b85c0f

File tree

19 files changed

+560
-232
lines changed

19 files changed

+560
-232
lines changed

.github/workflows/nf-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
- isMain: false
7979
profile: "singularity"
8080
NXF_VER:
81-
- "24.10.5"
81+
- "25.04.8"
8282
- "latest-everything"
8383
env:
8484
NXF_ANSI_LOG: false

.nf-core.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@ nf_core_version: 3.3.2
1717
repository_type: pipeline
1818
template:
1919
author: Maxime Garcia, Szilveszter Juhos, Friederike Hanssen
20-
description: An open-source analysis pipeline to detect germline or somatic variants
21-
from whole genome or targeted sequencing
20+
description: An open-source analysis pipeline to detect germline or somatic variants from whole genome or targeted sequencing
2221
force: false
2322
is_nfcore: true
2423
name: sarek
2524
org: nf-core
2625
outdir: .
27-
version: 3.6.0
26+
version: 3.6.1

CHANGELOG.md

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,46 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [3.6.1](https://github.com/nf-core/sarek/releases/tag/3.6.1) - Sjnjierák
9+
10+
Sjnjierák is a popular stopover cabin on the way into the park.
11+
12+
This patch release includes a bump to Nextflow 25.04.8.
13+
14+
### Added
15+
16+
### Changed
17+
18+
### Fixed
19+
20+
- [2029](https://github.com/nf-core/sarek/pull/2029) - Correct intervals channel for parabricks
21+
22+
### Removed
23+
24+
### Dependencies
25+
26+
| Dependency | Old version | New version |
27+
| ------------ | ----------- | ----------- |
28+
| `parabricks` | 4.5.1-1 | 4.6.0-1 |
29+
30+
### Parameters
31+
32+
| Params | status |
33+
| ------ | ------ |
34+
35+
### Developer section
36+
37+
#### Added
38+
39+
#### Changed
40+
41+
- [2026](https://github.com/nf-core/sarek/pull/2026) - Back to dev
42+
- [2038](https://github.com/nf-core/sarek/pull/2038) - Improve customising parabricks parameters docs
43+
44+
#### Fixed
45+
46+
#### Removed
47+
848
## [3.6.0](https://github.com/nf-core/sarek/releases/tag/3.6.0) - Kvikkjokk
949

1050
Kvikkjokk is a village where many trails start that lead through sarek.
@@ -102,7 +142,6 @@ Kvikkjokk is a village where many trails start that lead through sarek.
102142
| ------------------------------------- | ------ |
103143
| `--freebayes_filter` | New |
104144
| `--msisensor2_models` | New |
105-
| `--msisensor2_scan` | New |
106145
| `--msisensorpro_scan` | New |
107146
| `--sentieon_consensus` | New |
108147
| `--umi_base_skip` | New |

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.3476425-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.3476425)
1212
[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)
1313

14-
[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.10.5-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)
14+
[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.04.8-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)
1515
[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.2)
1616
[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)
1717
[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)

assets/multiqc_config.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@ custom_logo_url: https://github.com/nf-core/sarek/
33
custom_logo_title: "nf-core/sarek"
44

55
report_comment: >
6-
This report has been generated by the <a href="https://github.com/nf-core/sarek/releases/tag/3.6.0"
7-
target="_blank">nf-core/sarek</a> analysis pipeline. For information about how to
8-
interpret these results, please see the <a href="https://nf-co.re/sarek/3.6.0/docs/output"
9-
target="_blank">documentation</a>.
6+
This report has been generated by the <a href="https://github.com/nf-core/sarek/releases/tag/3.6.1" target="_blank">nf-core/sarek</a> analysis pipeline. For information about how to interpret these results, please see the <a href="https://nf-co.re/sarek/3.6.1/docs/output" target="_blank">documentation</a>.
107
report_section_order:
118
"nf-core-sarek-methods-description":
129
order: -1000
@@ -42,8 +39,7 @@ module_order:
4239
name: "FastP (Read preprocessing)"
4340
- picard:
4441
name: "GATK4 MarkDuplicates"
45-
info: " metrics generated either by GATK4 MarkDuplicates or EstimateLibraryComplexity
46-
(with --use_gatk_spark)."
42+
info: " metrics generated either by GATK4 MarkDuplicates or EstimateLibraryComplexity (with --use_gatk_spark)."
4743
- samtools:
4844
name: "Samtools Flagstat"
4945
- mosdepth:

conf/base.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ process {
7474
cpus = { 24 * task.attempt }
7575
memory = { 30.GB * task.attempt }
7676
}
77+
withName: 'PARABRICKS_FQ2BAM' {
78+
accelerator = { task.executor in ['awsbatch','google-batch','hq','k8s'] ? 4 : null }
79+
}
7780
withName:'CNVKIT_BATCH' {
7881
cpus = { 12 * task.attempt }
7982
memory = { 36.GB * task.attempt }

conf/modules/aligner.config

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,15 @@ process {
9090
}
9191

9292
withName: 'PARABRICKS_FQ2BAM' {
93-
ext.args = { "--read-group-id-prefix ${meta.sample_lane_id} --read-group-sm ${meta.patient}_${meta.sample} --read-group-lb ${meta.sample} --read-group-pl ${params.seq_platform}" }
93+
ext.args = { [
94+
// Using specific read group tags for mutect compability
95+
"--read-group-id-prefix ${meta.sample_lane_id}",
96+
"--read-group-sm ${meta.patient}_${meta.sample}",
97+
"--read-group-lb ${meta.sample}",
98+
"--read-group-pl ${params.seq_platform}",
99+
// Using -B 3 for tumor samples
100+
meta.status == 1 ? "--bwa-options='-K 100000000 -Y -B 3'" : "--bwa-options='-K 100000000 -Y'",
101+
].join(' ').trim() }
94102
publishDir = [
95103
mode: params.publish_dir_mode,
96104
path: { "${params.outdir}/preprocessing/parabricks/${meta.id}/" },

conf/modules/prepare_genome.config

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ process {
1818
// BBSPLIT
1919
withName: '.*:PREPARE_GENOME:BBMAP_BBSPLIT' {
2020
ext.args = 'build=1'
21-
publishDir = [
21+
publishDir = [
2222
mode: params.publish_dir_mode,
2323
path: { "${params.outdir}/reference" },
2424
pattern: "bbmap",
@@ -27,8 +27,9 @@ process {
2727
}
2828

2929
withName: 'BWAMEM1_INDEX' {
30-
ext.when = { !params.bwa && params.step == "mapping" && (params.aligner == "bwa-mem" || params.aligner == "sentieon-bwamem" || params.aligner == "parabricks")}
31-
publishDir = [
30+
ext.when = { !params.bwa && params.step == "mapping" && (params.aligner == "bwa-mem" || params.aligner == "sentieon-bwamem" || params.aligner == "parabricks")}
31+
ext.prefix = { params.aligner == "parabricks" ? "${fasta.name}" : "${fasta.baseName}" }
32+
publishDir = [
3233
mode: params.publish_dir_mode,
3334
path: { "${params.outdir}/reference" },
3435
pattern: "bwa",
@@ -37,8 +38,8 @@ process {
3738
}
3839

3940
withName: 'BWAMEM2_INDEX' {
40-
ext.when = { !params.bwamem2 && params.step == "mapping" && params.aligner == "bwa-mem2" }
41-
publishDir = [
41+
ext.when = { !params.bwamem2 && params.step == "mapping" && params.aligner == "bwa-mem2" }
42+
publishDir = [
4243
mode: params.publish_dir_mode,
4344
path: { "${params.outdir}/reference" },
4445
pattern: "bwamem2",
@@ -47,8 +48,8 @@ process {
4748
}
4849

4950
withName: 'CNVKIT_ANTITARGET' {
50-
ext.when = { params.tools && params.tools.split(',').contains('cnvkit') }
51-
publishDir = [
51+
ext.when = { params.tools && params.tools.split(',').contains('cnvkit') }
52+
publishDir = [
5253
mode: params.publish_dir_mode,
5354
path: { "${params.outdir}/reference" },
5455
pattern: "*{bed}",
@@ -57,9 +58,9 @@ process {
5758
}
5859

5960
withName: 'CNVKIT_REFERENCE' {
60-
ext.prefix = { 'cnvkit' }
61-
ext.when = { params.tools && params.tools.split(',').contains('cnvkit') && !params.cnvkit_reference }
62-
publishDir = [
61+
ext.prefix = { 'cnvkit' }
62+
ext.when = { params.tools && params.tools.split(',').contains('cnvkit') && !params.cnvkit_reference }
63+
publishDir = [
6364
mode: params.publish_dir_mode,
6465
path: { "${params.outdir}/reference" },
6566
pattern: "*{cnn}",
@@ -68,7 +69,7 @@ process {
6869
}
6970

7071
withName: 'DRAGMAP_HASHTABLE' {
71-
ext.when = { !params.dragmap && params.step == "mapping" && params.aligner == "dragmap" }
72+
ext.when = { !params.dragmap && params.step == "mapping" && params.aligner == "dragmap" }
7273
publishDir = [
7374
mode: params.publish_dir_mode,
7475
path: { "${params.outdir}/reference" },
@@ -79,8 +80,8 @@ process {
7980

8081
withName: 'GATK4_CREATESEQUENCEDICTIONARY' {
8182
// Prevents dict creation, when step is annotate, controlfreec, or when msisensor2 (as the only tool) is run from variantcalling entrystep
82-
ext.when = { !params.dict && params.step != "annotate" && params.step != "controlfreec" && !(params.step == "variantcalling" && params.tools.split(',').size() == 1 && params.tools.contains('msisensor2')) }
83-
publishDir = [
83+
ext.when = { !params.dict && params.step != "annotate" && params.step != "controlfreec" && !(params.step == "variantcalling" && params.tools.split(',').size() == 1 && params.tools.contains('msisensor2')) }
84+
publishDir = [
8485
mode: params.publish_dir_mode,
8586
path: { "${params.outdir}/reference/dict" },
8687
pattern: "*dict",
@@ -89,7 +90,7 @@ process {
8990
}
9091

9192
withName: 'MSISENSOR2_SCAN' {
92-
publishDir = [
93+
publishDir = [
9394
mode: params.publish_dir_mode,
9495
path: { "${params.outdir}/reference/msisensor2" },
9596
pattern: "*scan",
@@ -98,7 +99,7 @@ process {
9899
}
99100

100101
withName: 'MSISENSORPRO_SCAN' {
101-
publishDir = [
102+
publishDir = [
102103
mode: params.publish_dir_mode,
103104
path: { "${params.outdir}/reference/msisensorpro" },
104105
pattern: "*list",
@@ -107,8 +108,8 @@ process {
107108
}
108109

109110
withName: 'SAMTOOLS_FAIDX' {
110-
ext.when = { !params.fasta_fai && params.step != "annotate" }
111-
publishDir = [
111+
ext.when = { !params.fasta_fai && params.step != "annotate" }
112+
publishDir = [
112113
mode: params.publish_dir_mode,
113114
path: { "${params.outdir}/reference/fai" },
114115
pattern: "*fai",
@@ -117,8 +118,8 @@ process {
117118
}
118119

119120
withName: 'TABIX_BCFTOOLS_ANNOTATIONS' {
120-
ext.when = { !params.bcftools_annotations_tbi && params.bcftools_annotations && params.tools && params.tools.split(',').contains('bcfann') }
121-
publishDir = [
121+
ext.when = { !params.bcftools_annotations_tbi && params.bcftools_annotations && params.tools && params.tools.split(',').contains('bcfann') }
122+
publishDir = [
122123
mode: params.publish_dir_mode,
123124
path: { "${params.outdir}/reference/bcfann" },
124125
pattern: "*vcf.gz.tbi",
@@ -127,8 +128,8 @@ process {
127128
}
128129

129130
withName: 'TABIX_DBSNP' {
130-
ext.when = { !params.dbsnp_tbi && params.dbsnp && ((params.step == "mapping" || params.step == "markduplicates" || params.step == "prepare_recalibration") || params.tools && (params.tools.split(',').contains('controlfreec') || params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope') || params.tools.split(',').contains('muse') || params.tools.split(',').contains('mutect2'))) }
131-
publishDir = [
131+
ext.when = { !params.dbsnp_tbi && params.dbsnp && ((params.step == "mapping" || params.step == "markduplicates" || params.step == "prepare_recalibration") || params.tools && (params.tools.split(',').contains('controlfreec') || params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope') || params.tools.split(',').contains('muse') || params.tools.split(',').contains('mutect2'))) }
132+
publishDir = [
132133
mode: params.publish_dir_mode,
133134
path: { "${params.outdir}/reference/dbsnp" },
134135
pattern: "*vcf.gz.tbi",
@@ -137,8 +138,8 @@ process {
137138
}
138139

139140
withName: 'TABIX_GERMLINE_RESOURCE' {
140-
ext.when = { !params.germline_resource_tbi && params.germline_resource && params.tools && params.tools.split(',').contains('mutect2') }
141-
publishDir = [
141+
ext.when = { !params.germline_resource_tbi && params.germline_resource && params.tools && params.tools.split(',').contains('mutect2') }
142+
publishDir = [
142143
mode: params.publish_dir_mode,
143144
path: { "${params.outdir}/reference/germline_resource" },
144145
pattern: "*vcf.gz.tbi",
@@ -147,8 +148,8 @@ process {
147148
}
148149

149150
withName: 'TABIX_KNOWN_INDELS' {
150-
ext.when = { !params.known_indels_tbi && params.known_indels && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) ) }
151-
publishDir = [
151+
ext.when = { !params.known_indels_tbi && params.known_indels && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) ) }
152+
publishDir = [
152153
mode: params.publish_dir_mode,
153154
path: { "${params.outdir}/reference/known_indels" },
154155
pattern: "*vcf.gz.tbi",
@@ -157,8 +158,8 @@ process {
157158
}
158159

159160
withName: 'TABIX_KNOWN_SNPS' {
160-
ext.when = { !params.known_snps_tbi && params.known_snps && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') )) ) }
161-
publishDir = [
161+
ext.when = { !params.known_snps_tbi && params.known_snps && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') )) ) }
162+
publishDir = [
162163
mode: params.publish_dir_mode,
163164
path: { "${params.outdir}/reference/known_snps" },
164165
pattern: "*vcf.gz.tbi",
@@ -167,8 +168,8 @@ process {
167168
}
168169

169170
withName: 'TABIX_PON' {
170-
ext.when = { !params.pon_tbi && params.pon && params.tools && params.tools.split(',').contains('mutect2') }
171-
publishDir = [
171+
ext.when = { !params.pon_tbi && params.pon && params.tools && params.tools.split(',').contains('mutect2') }
172+
publishDir = [
172173
mode: params.publish_dir_mode,
173174
path: { "${params.outdir}/reference/pon" },
174175
pattern: "*vcf.gz.tbi",
@@ -177,25 +178,25 @@ process {
177178
}
178179

179180
withName: 'UNZIP_ALLELES|UNZIP_LOCI|UNZIP_GC|UNZIP_RT' {
180-
ext.when = { params.tools && params.tools.split(',').contains('ascat')}
181-
publishDir = [
181+
ext.when = { params.tools && params.tools.split(',').contains('ascat')}
182+
publishDir = [
182183
enabled: false
183184
]
184185
}
185186

186187
withName: 'UNTAR_CHR_DIR' {
187-
ext.prefix = 'chr_dir'
188-
ext.when = { params.tools && params.tools.split(',').contains('controlfreec')}
189-
publishDir = [
188+
ext.prefix = 'chr_dir'
189+
ext.when = { params.tools && params.tools.split(',').contains('controlfreec')}
190+
publishDir = [
190191
mode: params.publish_dir_mode,
191192
path: { "${params.outdir}/reference/" },
192193
saveAs: { (params.save_reference || params.build_only_index) && !it.equals('versions.yml') ? it : null }
193194
]
194195
}
195196

196197
withName: 'UNTAR_MSISENSOR2_MODELS' {
197-
ext.prefix = 'models'
198-
publishDir = [
198+
ext.prefix = 'models'
199+
publishDir = [
199200
enabled: true,
200201
mode: params.publish_dir_mode,
201202
path: { "${params.outdir}/reference/msisensor2" },

conf/test.config

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,18 @@ process {
7777
ext.args = { "--info-key CNN_1D --indel-tranche 0" }
7878
}
7979

80-
withName: 'NFCORE_SAREK:SAREK:FASTQ_PREPROCESS_PARABRICKS:PARABRICKS_FQ2BAM' {
81-
ext.args = { "--read-group-id-prefix ${meta.sample_lane_id} --read-group-sm ${meta.patient}_${meta.sample} --read-group-lb ${meta.sample} --read-group-pl ${params.seq_platform} --low-memory" }
80+
withName: '.*:PARABRICKS_FQ2BAM' {
81+
accelerator = { task.executor in ['awsbatch','google-batch','hq','k8s'] ? 1 : null }
82+
ext.args = { [
83+
// Using specific read group tags for mutect compability
84+
"--read-group-id-prefix ${meta.sample_lane_id}",
85+
"--read-group-sm ${meta.patient}_${meta.sample}",
86+
"--read-group-lb ${meta.sample}",
87+
"--read-group-pl ${params.seq_platform}",
88+
// Using -B 3 for tumor samples
89+
meta.status == 1 ? "--bwa-options='-K 100000000 -Y -B 3'" : "--bwa-options='-K 100000000 -Y'",
90+
// Use low memory mode for tests
91+
"--low-memory",
92+
].join(' ').trim() }
8293
}
8394
}

conf/test_full.config

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,16 @@ params {
2323
intervals = 's3://ngi-igenomes/test-data/sarek/S07604624_Padded_Agilent_SureSelectXT_allexons_V6_UTR.bed'
2424
wes = true
2525
}
26+
27+
process {
28+
// Request a GPU for every parabricks process
29+
// NOTE https://docs.nvidia.com/clara/parabricks/latest/gettingstarted.html#hardware-requirements
30+
withName: 'PARABRICKS_.*' {
31+
cpus = { 48 * task.attempt }
32+
memory = { task.attempt > 1 ? '370.GB' : '186.GB' }
33+
time = { 1.h * task.attempt }
34+
resourceLimits = [cpus: 96, memory: 370.GB]
35+
maxRetries = 3
36+
errorStrategy = { task.exitStatus in [1,2,143,137,104,134,139,255] ? 'retry' : 'finish' }
37+
}
38+
}

0 commit comments

Comments
 (0)