Skip to main content

Sniffles2

A fast structural variant caller for long-read sequencing, Sniffles2 accurately detect SVs on germline, somatic and population-level for PacBio and Oxford Nanopore read data.

Quick Start: Germline SV calling using Sniffles2

To call SVs from long read alignments (PacBio / ONT), you can use:

sniffles -i mapped_input.bam -v output.vcf

See sniffles --help or below for full usage information.

Installation

You can install Sniffles2 using pip or conda using:

pip install sniffles

or

conda install sniffles=2.8.1

If you previously installed Sniffles1 using conda and want to upgrade to Sniffles2, you can use:

conda update sniffles=2.8.1

Requirements

  • Python ==3.10.15
  • pysam >=0.21.0
  • edlib >=1.3.9
  • psutil>=5.9.4
  • numpy>=2.2.0
  • pyspoa>=0.2.1

Tested on:

  • python==3.10.12
  • pysam==0.21.0

Citation

Please cite our paper at: Sniffles v2: https://www.nature.com/articles/s41587-023-02024-y

and Sniffles v1: https://www.nature.com/articles/s41592-018-0001-7

Use-Cases / Modes

A. General (all Modes)

  • To output deletion (DEL SV) sequences, the reference genome (.fasta) must be specified using e.g. --reference reference.fasta.
  • Sniffles2 is fully parallelized and uses 4 threads by default. This value can be adapted using e.g. --threads 4 as option. Memory requirements will increase with the number of threads used.
  • To output read names in SNF and VCF files, the --output-rnames option is required.

B. Multi-Sample SV Calling (Trios, Populations)

Multi-sample SV calling using Sniffles2 population mode works in two steps:

  1. Call SV candidates and create an associated .snf file for each sample: sniffles --input sample1.bam --snf sample1.snf
  2. Combined calling using multiple .snf files into a single .vcf: sniffles --input sample1.snf sample2.snf ... sampleN.snf --vcf multisample.vcf

Alternatively, for step 2. you can supply a .tsv file, containing a list of .snf files, and custom sample ids in an optional second column (one sample per line), .e.g.: 2. Combined calling using a .tsv as sample list: sniffles --input snf_files_list.tsv --vcf multisample.vcf

C. Mosaic SV Calling (Non-germline or somatic SVs)

To call mosaic SVs, the --mosaic option should be added, i.e.:

sniffles --input mapped_input.bam --vcf output.vcf --mosaic

D. Genotyping a known set of SVs (Force Calling)

Example command, to determine the genotype of each SV in input_known_svs.vcf for sample.bam and write the re-genotyped SVs to output_genotypes.vcf:

sniffles --input sample.bam --genotype-vcf input_known_svs.vcf --vcf output_genotypes.vcf

Quick Tips

Input / Output

  • .bam or .cram files containing long read alignments (i.e. from minimap2 or ngmlr) are supported as input
  • .vcf.gz (bgzipped+tabix indexed) output is supported
  • Simultaneous output of both .vcf and .snf file (for multi-sample calling) is supported

Companion apps

Supplementary tables

https://github.com/smolkmo/Sniffles2-Supplement/blob/main/Supplemetary%20tables.xlsx

Metadata

Release files for sniffles 2.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sniffles 2.8.1
File Size Uploaded Provenance Actions
sniffles-2.8.1.tar.gz 76.1 kB With provenance Details for sniffles-2.8.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for sniffles 2.8.1
File Interpreter ABI Platform Actions
sniffles-2.8.1-py3-none-any.whl Python 3 none any Details for sniffles-2.8.1-py3-none-any.whl

Total release size: 159.4 kB

Release files / sniffles-2.8.1.tar.gz

Download URL sniffles-2.8.1.tar.gz
Size 76.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9017d22e77ee0ef796e918ec307b6264a5efe7247d0ee5d50f662acc8af53f5f
BLAKE2b-256 checksum
How to use checksums
f199e71e60c4fa02a6429c273fa3525793e9714f628348c76857b4a6f686218d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Release files / sniffles-2.8.1-py3-none-any.whl

Download URL sniffles-2.8.1-py3-none-any.whl
Size 83.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6aff8156f6d8be8ab4ff262d36f7cef953fa58a1881138a0da80d18192cc7cb0
BLAKE2b-256 checksum
How to use checksums
ffa26662f4332d83c2a0e676defc98f5df9e0e71997960ed647b622107c19ccc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

Security for sniffles 2.8.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for sniffles-2.8.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.8.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page