Nextflow Parameters¶
Complete reference for all pipeline parameters.
Required Parameters¶
| Parameter | Description |
|---|---|
--input |
Path to samplesheet CSV |
--variants |
Path to VCF/MAF variants file |
--fasta |
Reference FASTA (with .fai index). Also used for CRAM decoding. |
Mode¶
| Parameter | Default | Description |
|---|---|---|
--mode |
dna |
Analysis mode: dna (cfDNA/somatic) or rna (RNA-seq with transcriptome-aware filtering) |
Output Options¶
| Parameter | Default | Description |
|---|---|---|
--outdir |
results |
Output directory |
--format |
vcf |
Output format (vcf or maf) |
--suffix |
'' |
Suffix for output filenames |
--column_prefix |
'' |
Prefix for gbcms count columns in MAF output |
--preserve_barcode |
false |
Keep original Tumor_Sample_Barcode from input MAF |
--publish_dir_mode |
copy |
How Nextflow stages results into --outdir (publishDir mode: copy, symlink, link, move, ...) |
--tracedir |
${params.outdir}/pipeline_info |
Directory for the execution trace, report, timeline and DAG files |
mFSD Options (DNA only)¶
| Parameter | Default | Description |
|---|---|---|
--mfsd |
false |
Enable mFSD analysis — adds 41 mFSD columns to MAF and 13 MFSD_* INFO fields to VCF. See mFSD metrics. |
--mfsd_parquet |
false |
Write a companion <sample>.fsd.parquet with raw per-variant fragment size arrays. Requires --mfsd. |
--mfsd_report |
false |
Generate an interactive HTML report with per-variant fragment size distributions. Implies --mfsd and --mfsd_parquet; requires --format maf (the pipeline stops at launch otherwise). See mFSD Report. |
--observations_parquet |
false |
Write a companion <sample>.observations.parquet recording which molecule carried which allele at each variant. Enables read-backed phasing and allelic-imbalance analyses. Counts output is unchanged. See Per-Molecule Observations. |
--mfsd_report_min_alt |
3 |
Minimum ALT fragment count to include a variant in the HTML report. |
--mfsd_report_max_variants |
20 |
Maximum variants in the HTML report. Use -1 for no limit. |
Quality & Filtering Options¶
| Parameter | Default | Description |
|---|---|---|
--min_mapq |
20 |
Minimum mapping quality for DNA counting |
--rna_min_mapq |
1 |
Minimum mapping quality for RNA counting. Defaults to 1 to match the gbcms rna CLI: STAR gives uniquely-mapped reads MAPQ 255 but 2–4-locus multi-mappers MAPQ 3/1, so a DNA-style floor of 20 silently drops those primaries (~16% of reads genome-wide on a FORTE sample; up to ~6% of depth at an individual locus). Raise it to 20 for unique-only RNA counting. |
--min_baseq |
20 |
Minimum base quality, passed to --min-baseq: a base below it is read as unknown, like N; reads still count toward depth (see Read Filters → Quality Thresholds) |
--fragment_qual_threshold |
10 |
Quality margin for fragment consensus — when R1/R2 disagree on a non-INDEL variant, the higher-quality allele wins only if the difference exceeds this. INDEL conflicts with structural CIGAR evidence bypass this threshold. |
--context_padding |
5 |
Minimum flanking bases for Phase 3 alignment (auto-increased in repeats) |
--adaptive_context |
true |
Dynamically increase context padding in tandem repeat regions |
--filter_duplicates |
true |
Filter duplicate reads |
--filter_secondary |
true |
Filter secondary alignments |
--filter_supplementary |
true |
Filter supplementary alignments |
--filter_qc_failed |
true |
Filter QC failed reads |
--filter_improper_pair |
false |
Filter improperly paired reads |
--filter_indel |
false |
Filter reads with indels |
--filter_by_sample |
false |
Filter multi-sample MAF by Tumor_Sample_Barcode (details) |
--show_normalization |
false |
Add norm_* columns showing left-aligned coordinates in output |
--rescue_mnp |
false |
Enable MNP rescue pass — for MNPs whose partial evidence dominates (partial_alt > alt_count), reports the best-supported component SNV's counts |
--rescue_homopolymer |
false |
Deprecated. Deprecated in 6.7.0; removed in 6.8.0. Still accepted and ignored, with a warning; it did nothing useful the diagnostics do not (OBSERVED_ALLELE and COEXISTING_ALLELE). The row counts the given allele. |
--rescue_mnp_threshold |
1.0 |
Maximum disc/len ratio for MNP rescue eligibility (0.0–1.0). 1.0 = all MNPs eligible (C++ compatible). 0.5 = conservative sparse-only mode. 0.0 = disable rescue eligibility (diagnostics still emitted). |
UMI & BAQ Options¶
| Parameter | Default | Description |
|---|---|---|
--umi_tag |
'' |
UMI BAM tag for deduplication (e.g., XM, RX). When set, reads sharing the same UMI are grouped as a single observation. |
--apply_baq |
false |
DNA Base Alignment Quality downgrade (matches gbcms dna, off). Reduces false positives near indels. See BAQ Options. |
--rna_apply_baq |
true |
RNA Base Alignment Quality downgrade (matches gbcms rna, on): RNA BAMs typically lack BQSR. The penalty applies near a read's indels only; a splice junction (CIGAR N) lowers no base's quality. Set false to pass --no-baq. |
RNA-Specific Options¶
These parameters are only used when --mode rna is specified.
| Parameter | Default | Description |
|---|---|---|
--gtf |
'' |
Path to an Ensembl/GENCODE GTF, plain or .gtf.gz. Enables exon-boundary distance, per-transcript counts and ASJD, and supplies each variant's gene strand, which --enforce_strandedness needs (without it every read counts as sense). See GTF loading. |
--rna_editing_db |
'' |
Path to REDIportal editing database file (e.g., TABLE1_hg38_v3.txt). Flags ALT sites that overlap known A→I RNA editing positions. |
--enforce_strandedness |
true |
Filter reads by orientation relative to the gene strand (needs --gtf for the strand). false passes --no-strandedness, which only stops the filtering. For an unstranded RNA-seq library set --strandedness unstranded instead. |
--strandedness |
'reverse' |
RNA library strand protocol: 'reverse' (dUTP/fr-firststrand, featureCounts -s 2 — the FORTE default), 'forward' (fr-secondstrand, -s 1), or 'unstranded' (-s 0). Sets the read→transcript-strand fold used by --enforce_strandedness and ASJD strand-discordance; 'unstranded' disables both. |
--library_type |
'capture' |
'capture' (default) or 'amplicon'. Amplicon mode treats R1 and R2 as independent observations (no fragment-level consensus) and auto-disables strandedness — use it for amplicon/primer-based RNA panels where mates aren't independent fragments. |
RNA mode defaults
RNA mode uses its own PairHMM gap penalties (--rna_gap_open_prob 5e-3, --rna_gap_extend_prob 0.25, the gbcms rna defaults) to tolerate RT-induced stutter at homopolymers, and its own BAQ switch (--rna_apply_baq, on). The --gap_* and --apply_baq params are DNA's and do not reach RNA tasks. See the alignment backend parameters below.
GTF loading (RNA)¶
Each GBCMS_RNA task loads the GTF (plain or .gtf.gz) in a few seconds (2 s for a whole Ensembl GTF). There is no index cache: --gtf_cache and the GBCMS_BUILD_GTF_CACHE step were deprecated in 6.6.0 and removed in 6.7.0.
Cohorts on shared storage: pass the .gtf.gz
Every task reads the GTF. The Ensembl GRCh38 GTF is 1.46 GB plain and 61 MB
gzipped, so --gtf Homo_sapiens.GRCh38.111.gtf.gz keeps per-task reads below
what the old cache file was (96–125 MB) for about 0.4 s more decoding.
Alignment Backend (Advanced)¶
| Parameter | Default | Description |
|---|---|---|
--alignment_backend |
pairhmm |
Phase 3 alignment backend: pairhmm (WFA2 + PairHMM, default) or sw (Smith-Waterman). See CLI Reference. |
--read_judge |
rules |
DNA read judgment, passed as --read-judge: rules (the size-specific rules, the default) or sequence (the sequence judge, opt-in; haplotype is its former name). The RNA module does not pass it: the sequence judge refuses RNA mode. See CLI Reference. |
--llr_threshold |
2.3 |
PairHMM log-likelihood ratio threshold for confident calls |
--gap_open_prob |
1e-4 |
DNA PairHMM gap-open probability for non-repeat regions |
--gap_extend_prob |
0.1 |
DNA PairHMM gap-extend probability for non-repeat regions |
--gap_open_prob_repeat |
1e-2 |
DNA PairHMM gap-open probability for tandem repeat regions |
--gap_extend_prob_repeat |
0.5 |
DNA PairHMM gap-extend probability for tandem repeat regions |
--rna_gap_open_prob |
5e-3 |
RNA PairHMM gap-open probability for non-repeat regions (the gbcms rna default; the --gap_* params above are DNA's) |
--rna_gap_extend_prob |
0.25 |
RNA PairHMM gap-extend probability for non-repeat regions |
--rna_gap_open_prob_repeat |
1e-2 |
RNA PairHMM gap-open probability for tandem repeat regions |
--rna_gap_extend_prob_repeat |
0.5 |
RNA PairHMM gap-extend probability for tandem repeat regions |
Merge Options¶
These parameters control the multi-BAM merge step. Requires a bam_type column in the samplesheet.
| Parameter | Default | Description |
|---|---|---|
--merge_counts |
false |
Enable multi-BAM merge — combine per-type MAFs into a single output with type-prefixed count columns. Requires bam_type in samplesheet. |
--merge_add_combined |
true |
When both duplex and simplex inputs are present, compute additive simplex_duplex_* combined columns (20 columns including strand bias). |
--merge_legacy_naming |
false |
Use t_{metric}_{type} naming (genotype_variants compatible). |
QC Summary Options¶
Each gbcms dna / gbcms rna task already ends its log with a QC summary. This parameter adds one for the whole run.
| Parameter | Default | Description |
|---|---|---|
--qc_summary |
false |
After all samples finish, run gbcms summarize over every output (merged MAFs included) and publish to ${params.outdir}/gbcms/qc_summary/: MultiQC custom content (gbcms_qc_summary_mqc.json, and gbcms_qc_warning_mqc.json only when a row needs a look) and one <name>.qc_summary.json per output. Nothing else changes. |
Resource Limits¶
| Parameter | Default | Description |
|---|---|---|
--max_cpus |
16 |
Maximum CPUs per job |
--max_memory |
128.GB |
Maximum memory per job |
--max_time |
240.h |
Maximum runtime per job |
Performance Benchmarks¶
Representative metrics from cfDNA duplex BAM samples:
| Sample Type | BAM Size | Variants | Runtime | CPUs |
|---|---|---|---|---|
| ctDNA (plasma) | 1.3 GB | 608 | ~25s | 4 |
| Plasma control | 776 MB | 608 | ~20s | 4 |
Execution Profiles¶
| Profile | Description |
|---|---|
docker |
Local with Docker containers |
singularity |
HPC with Singularity |
slurm |
SLURM cluster with Singularity |
local |
No container (requires local install) |
Advanced¶
task.ext.args — Arbitrary CLI Arguments
Any CLI option not exposed as a Nextflow parameter can be passed via task.ext.args in your config:
See DNA CLI Reference or RNA CLI Reference for all available options.
Related¶
- Samplesheet — Input format
- Examples — Usage patterns
- DNA CLI Reference — Underlying DNA command
- RNA CLI Reference — Underlying RNA command
abbreviations