Skip to content

Sniffles2 calls unrealistically large deletions (>60 Mb) with PASS filter in clinical WGS #603

@enes-ak

Description

@enes-ak

I am running a clinical whole-genome sequencing (WGS) pipeline using Oxford Nanopore long-read data aligned with minimap2 and SV-called with Sniffles2 v2.5.3. I observe that Sniffles calls extremely large structural variants — for example, a ~61.3 Mb deletion on chr7 - that pass all default quality filters. Such variants are clinically implausible and would not be viable in a living individual.

Example variant

chr7 60501113 Sniffles2.DEL.280S58 N DEL . PASS
PRECISE;SVTYPE=DEL;SVLEN=-61355286;END=121867498;SUPPORT=6;COVERAGE=27,21,24,22,25;
STRAND=+-; STDEV _LEN=0.5;STDEV_POS=0.5;VAF=0.273

  • SVLEN: -61,355,286 bp (~61.3 Mb)
  • SUPPORT: 6 reads
  • VAF: 0.273
  • FILTER: PASS
  • PRECISE: Yes

A 61 Mb deletion spanning nearly the entire q-arm of chr7 would be incompatible with life and is clearly a false positive.

I run Sniffles2 with the following command:

sniffles --input {input.bam} \
--reference {hg38.fasta} \
--threads 32 \
--minsvlen 50
--mapq 20 \
--vcf {output.vcf}

Post-filtering with bcftools:
bcftools view -t chr1,...,chrY \
-i 'INFO/SUPPORT>5 && INFO/IMPRECISE==0 && FILTER="PASS"'
{input.vcf} -o {output.vcf}

Sniffles version: 2.5.3
Aligner: minimap2 (ONT preset)
Reference: GRCh38 (Broad bundle)

Questions

  1. Is there a recommended maximum SV length parameter (e.g., --maxsvlen) to filter out biologically implausible calls? We could not find
    one in the documentation.
  2. Should such ultra-large deletions be flagged or filtered internally by Sniffles rather than receiving a PASS designation?
  3. Are there any additional parameters or best-practice recommendations for clinical/diagnostic pipelines to avoid these false positives?
  4. With only 6 supporting reads and a VAF of 0.27, is this level of evidence sufficient for Sniffles to call a 61 Mb deletion as PRECISE
    and PASS? Could the confidence model be adjusted to account for SV size vs. supporting evidence?

Expected behavior

Structural variants of this magnitude (tens of megabases) should either:

  • Be filtered out internally or flagged with a non-PASS filter tag, or
  • A --maxsvlen parameter should be available to set an upper bound on called SV length

Environment

  • OS: Ubuntu Linux (6.8.0 kernel)
  • Sniffles: 2.5.3 (via conda bioconda channel)
  • minimap2: latest conda version
  • Python: 3.x with numpy 1.26.0

Thank you for this excellent tool — we rely on it daily in our clinical pipeline. We'd appreciate any guidance on handling these edge
cases.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions