scholl-lab/sm-calling
None
Overview
Latest release: v1.5.3, Last update: 2026-10-20
Share link: https://snakemake.github.io/snakemake-workflow-catalog?wf=scholl-lab/sm-calling
Quality control: linting: failed formatting: failed
Deployment
Step 1: Install Snakemake and Snakedeploy
Snakemake and Snakedeploy are best installed via the Conda package manager. It is recommended to install conda via Miniforge. Run
conda create -c conda-forge -c bioconda -c nodefaults --name snakemake snakemake snakedeploy
to install both Snakemake and Snakedeploy in an isolated environment. For all following commands ensure that this environment is activated via
conda activate snakemake
For other installation methods, refer to the Snakemake and Snakedeploy documentation.
Step 2: Deploy workflow
With Snakemake and Snakedeploy installed, the workflow can be deployed as follows. First, create an appropriate project working directory on your system and enter it:
mkdir -p path/to/project-workdir
cd path/to/project-workdir
In all following steps, we will assume that you are inside of that directory. Then run
snakedeploy deploy-workflow https://github.com/scholl-lab/sm-calling . --tag v1.5.3
Snakedeploy will create two folders, workflow and config. The former contains the deployment of the chosen workflow as a Snakemake module, the latter contains configuration files which will be modified in the next step in order to configure the workflow to your needs.
Step 3: Configure workflow
To configure the workflow, adapt config/config.yml to your needs following the instructions below.
Step 4: Run workflow
The deployment method is controlled using the --software-deployment-method (short --sdm) argument.
To run the workflow with automatic deployment of all required software via conda/mamba, use
snakemake --cores all --sdm conda
Snakemake will automatically detect the main Snakefile in the workflow subfolder and execute the workflow module that has been defined by the deployment in step 2.
For further options such as cluster and cloud execution, see the docs.
Step 5: Generate report
After finalizing your data analysis, you can automatically generate an interactive visual HTML report for inspection of results together with parameters and code inside of the browser using
snakemake --report report.zip
Configuration
The following section is imported from the workflow’s config/README.md.
Configuration
config.yaml
Unified pipeline configuration. All paths are relative to the repository root.
Required Fields
Field |
Type |
Description |
|---|---|---|
|
string |
|
|
string |
Path to reference genome FASTA |
|
string |
|
|
string |
Path to samples TSV |
|
string |
Directory with input BAMs |
|
string |
Root output directory |
|
string |
BAM file suffix (e.g., |
|
string |
|
Required for Mutect2
Field |
Description |
|---|---|
|
Path to prebuilt Panel of Normals VCF (or |
|
Optional sites-only PoN VCF (e.g. |
|
Optional BED of recurrent somatic hotspot regions masked out of the cohort/combined PoN |
|
Path to gnomAD allele frequency VCF |
|
Path to gnomAD common biallelic VCF |
Mutect2 Parameters (params.mutect2)
Field |
Type |
Default |
Description |
|---|---|---|---|
|
boolean |
|
Emit germline sites (required for PureCN) |
|
boolean |
|
Emit PoN sites (required for PureCN) |
|
array of strings |
|
Extra |
|
array of strings |
|
Extra |
|
string |
|
Passthrough for any other Mutect2 flags |
QC Parameters (params.bcftools_stats)
Field |
Type |
Default |
Description |
|---|---|---|---|
|
string |
|
Extra flags for |
PureCN Settings (purecn)
Field |
Type |
Default |
Description |
|---|---|---|---|
|
boolean |
|
Enable PureCN copy number analysis |
|
string |
|
PureCN genome identifier ( |
|
string |
|
BED file with capture bait coordinates |
|
string |
|
Pre-built |
|
string |
|
Pre-built |
|
string |
|
Optional simple repeats BED for SNP filtering |
|
string |
|
Extra PureCN.R arguments |
|
integer |
|
Random seed for PureCN |
|
boolean |
|
Run PureCN post-optimization |
samples.tsv
Tab-separated sample metadata. Required columns:
Column |
Description |
|---|---|
|
Unique sample/analysis identifier |
|
BAM file basename (without extension) |
|
Matched normal BAM basename, or |
|
|
Workflow parameters
The following table is automatically parsed from the workflow’s config.schema.y(a)ml file.
Parameter |
Type |
Description |
Required |
Default |
|---|---|---|---|---|
caller |
string |
Which variant caller(s) to run. |
yes |
|
ref |
yes |
|||
. genome |
string |
Path to reference genome FASTA. |
yes |
|
. build |
string |
Reference genome build identifier. |
yes |
|
gatk_resources |
GATK resource files. Required for Mutect2, optional for FreeBayes-only runs. |
|||
. panel_of_normals |
string |
yes |
||
. extra_panel_of_normals |
string |
|||
. pon_mask_bed |
string |
|||
. af_only_gnomad |
string |
yes |
||
. common_biallelic_gnomad |
string |
yes |
||
paths |
yes |
|||
. samples |
string |
Path to the samples TSV file. |
yes |
|
. bam_folder |
string |
Directory containing input BAM files. |
yes |
|
. output_folder |
string |
Root directory for pipeline outputs. |
yes |
|
. log_subdir |
string |
logs |
||
. intervals_dir |
string |
analysis/intervals |
||
bam |
yes |
|||
. file_extension |
string |
yes |
.merged.dedup.bqsr.bam |
|
scatter |
yes |
|||
. mode |
string |
yes |
||
. count |
integer |
400 |
||
. target_bed |
string |
Optional capture target BED file for interval restriction. |
||
. chromosomes |
array |
|||
params |
||||
. mutect2 |
||||
. . genotype_germline_sites |
boolean |
Emit germline sites (required for PureCN). |
true |
|
. . genotype_pon_sites |
boolean |
Emit PoN sites (required for PureCN). |
true |
|
. . disable_adaptive_pruning |
boolean |
Disable Mutect2 adaptive pruning to prevent silent dropout of low-AF somatic variants in tumor-normal mode (GATK issue #7232). |
true |
|
. . annotations |
array |
Extra –annotation flags for Mutect2. |
[] |
|
. . annotation_groups |
array |
Extra –annotation-group flags for Mutect2. |
[] |
|
. . extra |
string |
|||
. filter_mutect_calls |
||||
. . extra |
string |
|||
. freebayes |
||||
. bcftools_norm |
||||
. bcftools_stats |
||||
. . extra |
string |
|||
purecn |
||||
. enabled |
boolean |
Enable PureCN copy number analysis. |
false |
|
. genome |
string |
PureCN genome identifier. |
hg38 |
|
. intervals_bed |
string |
BED file with capture bait coordinates. |
||
. normaldb |
string |
Pre-built normalDB.rds (skip NormalDB.R if provided). |
||
. mapping_bias |
string |
Pre-built mapping_bias.rds. |
||
. snp_blacklist |
string |
Optional simple repeats BED for SNP filtering. |
||
. extra |
string |
Extra PureCN.R arguments. |
||
. seed |
integer |
Random seed for PureCN. |
123 |
|
. postoptimize |
boolean |
Run PureCN post-optimization. |
true |
Linting and formatting
Linting results
1/home/runner/work/snakemake-workflow-catalog/snakemake-workflow-catalog/.pixi/envs/default/lib/python3.13/site-packages/google/auth/transport/grpc.py:43: FutureWarning: grpcio < 1.83.0 does not support Post-Quantum Cryptography (PQC). Support for non-PQC environments is deprecated. In April 2027, google-auth will raise its minimum requirements to enforce grpcio >= 1.83.0. For more details on Google Cloud's post-quantum security migration, visit: https://cloud.google.com/security/resources/post-quantum-cryptography
2 warnings.warn(
3Using workflow specific profile profiles/default for setting default command line arguments.
4Lints for snakefile /tmp/tmp6rri4s2_/scholl-lab-sm-calling-8a7d3c4/workflow/rules/mutect2.smk:
5 * Absolute path "/^@RG/ {{s=""; for (i=1; i<=NF; i++) if ($i ~ /^SM:/) s=substr($i, 4); print s}}" in line 350:
6 Do not define absolute paths inside of the workflow, since this renders
7 your workflow irreproducible on other machines. Use path relative to the
8 working directory instead, or make the path configurable via a config
9 file.
10 Also see:
11 https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
12
13Lints for snakefile /tmp/tmp6rri4s2_/scholl-lab-sm-calling-8a7d3c4/workflow/rules/freebayes.smk:
14 * Mixed rules and functions in same snakefile.:
15 Small one-liner functions used only once should be defined as lambda
16 expressions. Other functions should be collected in a common module, e.g.
17 'rules/common.smk'. This makes the workflow steps more readable.
18 Also see:
19 https://snakemake.readthedocs.io/en/latest/snakefiles/modularization.html#includes
20
21Lints for snakefile /tmp/tmp6rri4s2_/scholl-lab-sm-calling-8a7d3c4/workflow/rules/purecn.smk:
22 * Mixed rules and functions in same snakefile.:
23 Small one-liner functions used only once should be defined as lambda
24 expressions. Other functions should be collected in a common module, e.g.
25 'rules/common.smk'. This makes the workflow steps more readable.
26 Also see:
27 https://snakemake.readthedocs.io/en/latest/snakefiles/modularization.html#includes
28
29Lints for rule merge_freebayes_vcfs (line 58, /tmp/tmp6rri4s2_/scholl-lab-sm-calling-8a7d3c4/workflow/rules/freebayes.smk):
30 * Shell command directly uses variable REF from outside of the rule:
31 It is recommended to pass all files as input and output, and non-file
32 parameters via the params directive. Otherwise, provenance tracking is
33 less accurate.
34 Also see:
35 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
Formatting results
1[DEBUG]
2[DEBUG]
3[DEBUG]
4[DEBUG]
5[DEBUG]
6[DEBUG] In file "/tmp/tmp6rri4s2_/scholl-lab-sm-calling-8a7d3c4/workflow/rules/purecn.smk": Formatted content is different from original
7[DEBUG]
8[DEBUG] In file "/tmp/tmp6rri4s2_/scholl-lab-sm-calling-8a7d3c4/workflow/rules/mutect2.smk": Formatted content is different from original
9[DEBUG]
10[INFO] 2 file(s) would be changed 😬
11[INFO] 5 file(s) would be left unchanged 🎉
12
13snakefmt version: 0.11.5