Nano Sniffer is a bioinformatics tool for detecting copy number variations (CNVs) in Oxford Nanopore Technologies (ONT) amplicon sequencing data using a negative control and intra-sample normalization.
It is specifically designed for targeted regions in long-read sequencing datasets.
Keywords: nanopore, ONT, CNV, amplicon sequencing, long-read sequencing, bioinformatics
You need to install first the required Python dependencies. The tool has been developed and tested with Python ≥ 3.9.
Install all required packages using pip:
pip install numpy pysam scipy openpyxl
- numpy → numerical computations and array handling (coverage, ratios, statistics)
- pysam → BAM file parsing and coverage extraction
- scipy → statistical tests (t-test, p-value calculations, Fisher’s method)
- openpyxl → generation of Excel reports
Prepare:
- a file with all BAMs to analyze (one per line)
- a negative control BAM
- a BED file with target regions
Then run:
python3 nano_sniffer.py \
--input bam_list.txt \
--neg negative_control.bam \
--bed targets.bed \
--output results.xlsx \
--threads 4
/path/sample1.bam
/path/sample2.bam
/path/sample3.bam
chr1 1000000 1000100 GENE1_Ex1
chr1 1000101 1000200 GENE1_Ex2
The script generates an Excel file with:
- CNV_Calls → final CNV events (filtered and merged)
- All_Targets → full per-target metrics (including neutral regions)
- BAM files must be indexed (.bai)
- Designed for ONT amplicon sequencing
- Requires a negative control sample processed with the same protocol
More details about Nano Sniffer can be found in the wiki.
