Skip to content

Commit 4221e57

Browse files
fix conflicts with main
2 parents da7639b + f82b567 commit 4221e57

17 files changed

Lines changed: 787 additions & 8 deletions

.github/workflows/deploy-docs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- name: Checkout main
18-
uses: actions/checkout@v4
18+
uses: actions/checkout@v5
1919

2020
- name: Deploy docs
2121
uses: uclahs-cds/tool-Nextflow-action/build-and-deploy-docs@v1

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ 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+
## [Unreleased]
9+
10+
### Added
11+
12+
- `DeepSomatic` variant caller
13+
814
## [8.2.0] - 2025-05-01
915

1016
### Added
@@ -30,6 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3036
- Update BCFtools 1.17 -> 1.21
3137
- Update NFtest for new tool versions
3238
- Set VAF plot y-limit based on max adjusted VAF
39+
- Increase convert_BAM2Pileup memory allocation
3340

3441
### Fixed
3542

README.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
- [Strelka2](#strelka2-1)
1515
- [Mutect2](#gatk-mutect2)
1616
- [MuSE](#muse-1)
17+
- [DeepSomatic](#deepsomatic-1)
1718
- [Variant Intersection](#pipeline-steps---variant-intersection)
1819
- [BCFtools and VennDiagram](#pipeline-steps---variant-intersection)
1920
- [vcf2maf](#vcf2maf)
@@ -27,11 +28,11 @@
2728
- [License](#license)
2829

2930
## Overview
30-
The call-sSNV nextflow pipeline performs somatic SNV calling given a pair of tumor/normal BAM files. Four somatic SNV callers are available: SomaticSniper, Strelka2, Mutect2 and MuSE. The user may request one or more callers, and each caller produces an independently generated filtered VCF file.
31+
The call-sSNV nextflow pipeline performs somatic SNV calling given a pair of tumor/normal BAM files. Five somatic SNV callers are available: SomaticSniper, Strelka2, Mutect2, MuSE, and DeepSomatic. The user may request one or more callers, and each caller produces an independently generated filtered VCF file.
3132

3233
If two or more callers are requested, additional output includes both a VCF and an MAF file with the set of SNVs shared by two or more callers, and a Venn Diagram showing counts of shared and private SNVs.
3334

34-
SomaticSniper, Strelka2, and MuSE require there to be **exactly one pair of input tumor/normal** BAM files, but Mutect2 will take tumor-only input (no paired normal), as well as tumor/normal BAM pairs for multiple samples from the same individual.
35+
SomaticSniper, Strelka2, MuSE, and DeepSomatic require there to be **exactly one pair of input tumor/normal** BAM files, but Mutect2 will take tumor-only input (no paired normal), as well as tumor/normal BAM pairs for multiple samples from the same individual.
3536

3637
### Somatic SNV callers:
3738
* [SomaticSniper](https://github.com/genome/somatic-sniper) is an older tool yielding high specificity single nucleotide somatic variants.
@@ -42,6 +43,8 @@ SomaticSniper, Strelka2, and MuSE require there to be **exactly one pair of inpu
4243

4344
* [MuSE](https://github.com/wwylab/MuSE) accounts for tumor heterogeneity and calls single nucleotide somatic variants.
4445

46+
* [DeepSomatic](https://github.com/google/deepsomatic) detects somatic mutations using a deep neural network.
47+
4548
## How To Run
4649
Below is a summary of how to run the pipeline. See [here](https://uclahs-cds.atlassian.net/wiki/spaces/BOUTROSLAB/pages/3197004/How+to+run+a+nextflow+pipeline) for more information on running Nextflow pipelines.
4750
>
@@ -61,6 +64,7 @@ nextflow run path/to/main.nf -config path/to/input.config -params-file input.yam
6164
### [Strelka2](docs/flowcharts.md#strelka2)
6265
### [Mutect2](docs/flowcharts.md#mutect2)
6366
### [MuSE](docs/flowcharts.md#muse)
67+
### [DeepSomatic](docs/flowcharts.md#deepsomatic)
6468
## Flow Diagrams - Variant Intersection
6569
### [BCFtools intersection and VennDiagram visualization using R](docs/flowcharts.md#intersect)
6670

@@ -115,6 +119,18 @@ Computes tier-based cutoffs from a sample-specific error model.
115119
#### 3.Filter VCF
116120
`MuSE` output has SNVs labeled as `PASS` or one of `Tier 1-5` for the lower confidence calls (`Tier 5` is lowest). This step keeps only SNVs labeled `PASS`.
117121

122+
### DeepSomatic
123+
#### 1. Define intervals for scattering
124+
The `params.intersect_regions` of the reference genome are split into x intervals for parallelization, where x is defined by `params.scatter_count`.
125+
#### 2. Call somatic variants
126+
Call somatic variants with `DeepSomatic`.
127+
#### 3. Merge
128+
Merge scattered VCFs.
129+
#### 4. Split VCF
130+
Split filtered VCF into separate files for each variant type: SNVs, MNVs and INDELs.
131+
#### 5. Filter VCF
132+
Filter for `PASS` variants.
133+
118134
## Pipeline Steps - Variant Intersection
119135
If two or more algorithms were selected the Intersect workflow will run. Currently the resulting VCF and MAF files include any SNVs found by two or more algorithms.
120136
### BCFtools isec -n +1; VennDiagram
@@ -242,6 +258,7 @@ base_resource_update {
242258
|-------------|----|--------|-------------------------------------------|
243259
| dbSNP | yes | path | The path to [NCBI's dbSNP database](https://www.ncbi.nlm.nih.gov/snp/) of known SNPs in VCF format, e.g. `GCF_000001405.40.gz` |
244260

261+
245262
#### Variant Intersection Specific Configuration
246263
| Input | Required | Type | Description |
247264
|-------------|----|--------|-------------------------------------------|
@@ -259,6 +276,7 @@ base_resource_update {
259276
| Mutect2-{version}_{sample_id}_MNV.vcf.gz | .vcf.gz | Filtered MNV VCF (mutect2) |
260277
| Mutect2-{version}_{sample_id}_filteringStats.tsv | .tsv | FilterMutectCalls output (mutect2 QC) |
261278
| MuSE-{version}_{sample_id}_SNV.vcf.gz | .vcf.gz | Filtered SNV VCF (MuSE) |
279+
| DeepSomatic-{version}_{sample_id}_SNV-split.vcf.gz | .vcf.gz | Filtered SNV VCF (DeepSomatic) |
262280
| report.html, timeline.html, trace.txt | .html, .txt | Nextflow logs |
263281

264282
| Intersect Outputs | Type | Description |
@@ -339,6 +357,7 @@ Duration: 1d 11h 6m 54s
339357
2. Kim, S. et al. Strelka2: fast and accurate calling of germline and somatic variants. Nat. Methods 15, 591–594 (2018).
340358
3. McKenna, A. et al. The Genome Analysis Toolkit: A MapReduce framework for analyzing next-generation DNA sequencing data. Genome Res. 20, 1297–1303 (2010).
341359
4. Fan, Y. et al. MuSE: accounting for tumor heterogeneity using a sample-specific error model improves sensitivity and specificity in mutation calling from sequencing data. Genome Biol. 17, 178 (2016).
360+
5. Park J, et al. DeepSomatic: Accurate somatic small variant discovery for multiple sequencing technologies. bioRxiv [Preprint]. 2024 Aug 19:2024.08.16.608331. doi: 10.1101/2024.08.16.608331. PMID: 39229187; PMCID: PMC11370364.
342361

343362
## License
344363

@@ -348,7 +367,7 @@ pipeline-call-sSNV is licensed under the GNU General Public License version 2. S
348367

349368
This pipeline performs somatic SNV calling on a pair of normal/tumor BAMs, utilizing SomaticSniper, Strelka2, Mutect2 and MuSE.
350369

351-
Copyright (C) 2020-2024 University of California Los Angeles ("Boutros Lab") All rights reserved.
370+
Copyright (C) 2020-2025 University of California Los Angeles ("Boutros Lab") All rights reserved.
352371

353372
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
354373

config/default.config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ params {
3131
vcf2maf_version = "v1.6.18"
3232
bpg_version = "7.1.0"
3333
src_util_version = "1.2.0"
34+
deepsomatic_version = "1.9.0"
3435
docker_image_validate_params = "${-> params.docker_container_registry}/pipeval:${params.pipeval_version}"
3536
docker_image_GATK = "broadinstitute/gatk:${params.GATK_version}"
3637
docker_image_somaticsniper = "${-> params.docker_container_registry}/somaticsniper:${params.somaticsniper_version}"
@@ -44,6 +45,7 @@ params {
4445
docker_image_vcf2maf = "ghcr.io/mskcc/vcf2maf/vcf2maf:${params.vcf2maf_version}"
4546
docker_image_bpg = "${-> params.docker_container_registry}/boutroslabplottinggeneral:${params.bpg_version}"
4647
docker_image_src_util = "${-> params.docker_container_registry}/src-util:${params.src_util_version}"
48+
docker_image_deepsomatic = "google/deepsomatic:${params.deepsomatic_version}"
4749
}
4850

4951
docker {

config/methods.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ methods {
8686
}
8787

8888
check_valid_algorithms = {
89-
valid_algorithms = params.single_NT_paired ? ['somaticsniper', 'strelka2', 'mutect2', 'muse'] : ['mutect2']
89+
valid_algorithms = params.single_NT_paired ? ['somaticsniper', 'strelka2', 'mutect2', 'muse', 'deepsomatic'] : ['mutect2']
9090
for (algo in params.algorithm) {
9191
if (!(algo in valid_algorithms)) {
9292
throw new Exception("ERROR: params.algorithm ${params.algorithm} contains an invalid value. Valid algorithms for given inputs: ${valid_algorithms}")

0 commit comments

Comments
 (0)