Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/nf-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:
- isMain: false
profile: "singularity"
NXF_VER:
- "24.10.5"
- "25.04.8"
- "latest-everything"
env:
NXF_ANSI_LOG: false
Expand Down
5 changes: 2 additions & 3 deletions .nf-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@ nf_core_version: 3.3.2
repository_type: pipeline
template:
author: Maxime Garcia, Szilveszter Juhos, Friederike Hanssen
description: An open-source analysis pipeline to detect germline or somatic variants
from whole genome or targeted sequencing
description: An open-source analysis pipeline to detect germline or somatic variants from whole genome or targeted sequencing
force: false
is_nfcore: true
name: sarek
org: nf-core
outdir: .
version: 3.6.0
version: 3.6.1
41 changes: 40 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,46 @@ 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.6.1](https://github.com/nf-core/sarek/releases/tag/3.6.1) - Sjnjierák

Sjnjierák is a popular stopover cabin on the way into the park.

This patch release includes a bump to Nextflow 25.04.8.

### Added

### Changed

### Fixed

- [2029](https://github.com/nf-core/sarek/pull/2029) - Correct intervals channel for parabricks

### Removed

### Dependencies

| Dependency | Old version | New version |
| ------------ | ----------- | ----------- |
| `parabricks` | 4.5.1-1 | 4.6.0-1 |

### Parameters

| Params | status |
| ------ | ------ |

### Developer section

#### Added

#### Changed

- [2026](https://github.com/nf-core/sarek/pull/2026) - Back to dev
- [2038](https://github.com/nf-core/sarek/pull/2038) - Improve customising parabricks parameters docs

#### Fixed

#### Removed

## [3.6.0](https://github.com/nf-core/sarek/releases/tag/3.6.0) - Kvikkjokk

Kvikkjokk is a village where many trails start that lead through sarek.
Expand Down Expand Up @@ -102,7 +142,6 @@ Kvikkjokk is a village where many trails start that lead through sarek.
| ------------------------------------- | ------ |
| `--freebayes_filter` | New |
| `--msisensor2_models` | New |
| `--msisensor2_scan` | New |
| `--msisensorpro_scan` | New |
| `--sentieon_consensus` | New |
| `--umi_base_skip` | New |
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.3476425-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.3476425)
[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)

[![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/)
[![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/)
[![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)
[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)
[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)
Expand Down
8 changes: 2 additions & 6 deletions assets/multiqc_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@ custom_logo_url: https://github.com/nf-core/sarek/
custom_logo_title: "nf-core/sarek"

report_comment: >
This report has been generated by the <a href="https://github.com/nf-core/sarek/releases/tag/3.6.0"
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.0/docs/output"
target="_blank">documentation</a>.
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>.
report_section_order:
"nf-core-sarek-methods-description":
order: -1000
Expand Down Expand Up @@ -42,8 +39,7 @@ module_order:
name: "FastP (Read preprocessing)"
- picard:
name: "GATK4 MarkDuplicates"
info: " metrics generated either by GATK4 MarkDuplicates or EstimateLibraryComplexity
(with --use_gatk_spark)."
info: " metrics generated either by GATK4 MarkDuplicates or EstimateLibraryComplexity (with --use_gatk_spark)."
- samtools:
name: "Samtools Flagstat"
- mosdepth:
Expand Down
3 changes: 3 additions & 0 deletions conf/base.config
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ process {
cpus = { 24 * task.attempt }
memory = { 30.GB * task.attempt }
}
withName: 'PARABRICKS_FQ2BAM' {
accelerator = { task.executor in ['awsbatch','google-batch','hq','k8s'] ? 4 : null }
}
withName:'CNVKIT_BATCH' {
cpus = { 12 * task.attempt }
memory = { 36.GB * task.attempt }
Expand Down
10 changes: 9 additions & 1 deletion conf/modules/aligner.config
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,15 @@ process {
}

withName: 'PARABRICKS_FQ2BAM' {
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}" }
ext.args = { [
// Using specific read group tags for mutect compability
"--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}",
// Using -B 3 for tumor samples
meta.status == 1 ? "--bwa-options='-K 100000000 -Y -B 3'" : "--bwa-options='-K 100000000 -Y'",
].join(' ').trim() }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/preprocessing/parabricks/${meta.id}/" },
Expand Down
73 changes: 37 additions & 36 deletions conf/modules/prepare_genome.config
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ process {
// BBSPLIT
withName: '.*:PREPARE_GENOME:BBMAP_BBSPLIT' {
ext.args = 'build=1'
publishDir = [
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference" },
pattern: "bbmap",
Expand All @@ -27,8 +27,9 @@ process {
}

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

withName: 'BWAMEM2_INDEX' {
ext.when = { !params.bwamem2 && params.step == "mapping" && params.aligner == "bwa-mem2" }
publishDir = [
ext.when = { !params.bwamem2 && params.step == "mapping" && params.aligner == "bwa-mem2" }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference" },
pattern: "bwamem2",
Expand All @@ -47,8 +48,8 @@ process {
}

withName: 'CNVKIT_ANTITARGET' {
ext.when = { params.tools && params.tools.split(',').contains('cnvkit') }
publishDir = [
ext.when = { params.tools && params.tools.split(',').contains('cnvkit') }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference" },
pattern: "*{bed}",
Expand All @@ -57,9 +58,9 @@ process {
}

withName: 'CNVKIT_REFERENCE' {
ext.prefix = { 'cnvkit' }
ext.when = { params.tools && params.tools.split(',').contains('cnvkit') && !params.cnvkit_reference }
publishDir = [
ext.prefix = { 'cnvkit' }
ext.when = { params.tools && params.tools.split(',').contains('cnvkit') && !params.cnvkit_reference }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference" },
pattern: "*{cnn}",
Expand All @@ -68,7 +69,7 @@ process {
}

withName: 'DRAGMAP_HASHTABLE' {
ext.when = { !params.dragmap && params.step == "mapping" && params.aligner == "dragmap" }
ext.when = { !params.dragmap && params.step == "mapping" && params.aligner == "dragmap" }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference" },
Expand All @@ -79,8 +80,8 @@ process {

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

withName: 'MSISENSOR2_SCAN' {
publishDir = [
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference/msisensor2" },
pattern: "*scan",
Expand All @@ -98,7 +99,7 @@ process {
}

withName: 'MSISENSORPRO_SCAN' {
publishDir = [
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference/msisensorpro" },
pattern: "*list",
Expand All @@ -107,8 +108,8 @@ process {
}

withName: 'SAMTOOLS_FAIDX' {
ext.when = { !params.fasta_fai && params.step != "annotate" }
publishDir = [
ext.when = { !params.fasta_fai && params.step != "annotate" }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference/fai" },
pattern: "*fai",
Expand All @@ -117,8 +118,8 @@ process {
}

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

withName: 'TABIX_DBSNP' {
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'))) }
publishDir = [
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'))) }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference/dbsnp" },
pattern: "*vcf.gz.tbi",
Expand All @@ -137,8 +138,8 @@ process {
}

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

withName: 'TABIX_KNOWN_INDELS' {
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'))) ) }
publishDir = [
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'))) ) }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference/known_indels" },
pattern: "*vcf.gz.tbi",
Expand All @@ -157,8 +158,8 @@ process {
}

withName: 'TABIX_KNOWN_SNPS' {
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') )) ) }
publishDir = [
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') )) ) }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference/known_snps" },
pattern: "*vcf.gz.tbi",
Expand All @@ -167,8 +168,8 @@ process {
}

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

withName: 'UNZIP_ALLELES|UNZIP_LOCI|UNZIP_GC|UNZIP_RT' {
ext.when = { params.tools && params.tools.split(',').contains('ascat')}
publishDir = [
ext.when = { params.tools && params.tools.split(',').contains('ascat')}
publishDir = [
enabled: false
]
}

withName: 'UNTAR_CHR_DIR' {
ext.prefix = 'chr_dir'
ext.when = { params.tools && params.tools.split(',').contains('controlfreec')}
publishDir = [
ext.prefix = 'chr_dir'
ext.when = { params.tools && params.tools.split(',').contains('controlfreec')}
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference/" },
saveAs: { (params.save_reference || params.build_only_index) && !it.equals('versions.yml') ? it : null }
]
}

withName: 'UNTAR_MSISENSOR2_MODELS' {
ext.prefix = 'models'
publishDir = [
ext.prefix = 'models'
publishDir = [
enabled: true,
mode: params.publish_dir_mode,
path: { "${params.outdir}/reference/msisensor2" },
Expand Down
15 changes: 13 additions & 2 deletions conf/test.config
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,18 @@ process {
ext.args = { "--info-key CNN_1D --indel-tranche 0" }
}

withName: 'NFCORE_SAREK:SAREK:FASTQ_PREPROCESS_PARABRICKS:PARABRICKS_FQ2BAM' {
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" }
withName: '.*:PARABRICKS_FQ2BAM' {
accelerator = { task.executor in ['awsbatch','google-batch','hq','k8s'] ? 1 : null }
ext.args = { [
// Using specific read group tags for mutect compability
"--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}",
// Using -B 3 for tumor samples
meta.status == 1 ? "--bwa-options='-K 100000000 -Y -B 3'" : "--bwa-options='-K 100000000 -Y'",
// Use low memory mode for tests
"--low-memory",
].join(' ').trim() }
}
}
13 changes: 13 additions & 0 deletions conf/test_full.config
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,16 @@ params {
intervals = 's3://ngi-igenomes/test-data/sarek/S07604624_Padded_Agilent_SureSelectXT_allexons_V6_UTR.bed'
wes = true
}

process {
// Request a GPU for every parabricks process
// NOTE https://docs.nvidia.com/clara/parabricks/latest/gettingstarted.html#hardware-requirements
withName: 'PARABRICKS_.*' {
cpus = { 48 * task.attempt }
memory = { task.attempt > 1 ? '370.GB' : '186.GB' }
time = { 1.h * task.attempt }
resourceLimits = [cpus: 96, memory: 370.GB]
maxRetries = 3
errorStrategy = { task.exitStatus in [1,2,143,137,104,134,139,255] ? 'retry' : 'finish' }
}
}
Loading