Sign in
BioinformaticsBioinformatics
Peer-reviewed journal article

NanoPack: visualizing and processing long read sequencing data

Wouter De CosteriD, Svenn D’HertiD, Darrin T. SchultziD, Marc CrutsiD, Christine Van BroeckhoveniD

Abstract

Summary: Here we describe NanoPack, a set of tools developed for visualization and processing of long read sequencing data from Oxford Nanopore Technologies and Pacific Biosciences.\n\nAvailability and Implementation: The NanoPack tools are written in Python3 and released under the GNU GPL3.0 Licence. The source code can be found at https://github.com/wdecoster/nanopack, together with links to separate scripts and their documentation. The scripts are compatible with Linux, Mac OS and the MS Windows 10 subsystem for linux and are available as a graphical user interface, a web service at http://nanoplot.bioinf.be and command line tools.\n\nContact: wouter.decoster@molgen.vib-ua.be\n\nSupplementary information: Supplementary tables and figures are available at Bioinformatics online.

PDFDOICode
Full-text digest ↓

02 /Specification & Classification

Click any tag to browse matching papers

In-depth summary

✦ Multi-agent verified full-text synthesis

Claude Opus 5.5 · xhigh effort · 8 Nov 2026 · from the full text of version 3 (15 Feb 2018) · CC BY 4.0

NanoPack bundles Python3 tools (command line, GUI, web service) for QC plotting, summary statistics, read filtering and contaminant removal of Oxford Nanopore and PacBio long reads.

Long reads from Pacific Biosciences and Oxford Nanopore Technologies (ONT) commonly reach 10kb (up to 1.2 Megabases for ONT) but are only about 85-95% accurate, so Illumina-oriented QC tools such as FastQC fit poorly. Earlier long-read tools (poretools, poRe, IONiseR) centered on legacy fast5 feature extraction, while pycoQC and minion_qc are described as less flexible; NanoPack aims to partly fill this gap.

Key results

  1. ShownNanoPlot and NanoComp produce a single html report of QC plots and statistics from several input formats. Multiplexed runs supplied as albacore summary files can be split per barcode, and large datasets are handled with hexagonal-bin or 2D kernel density bivariate plots.

    Inputs: (compressed) fastq/fasta, bam, (compressed) albacore summary files, or multiple files of one type. Outputs: png, jpg, pdf, svg. Plots: length histograms (optional log scale), cumulative yield, violin plots over time, channel heatmap, length/quality/identity/mapping-quality bivariates. Options: downsampling and length or quality cutoffs. · Scripts for statistic evaluation and…; Figure legends

  2. SuggestedOn an ultra-long-read E. coli MinION run, NanoPlot showed the run degrading over time: yield efficiency fell as the flow cell wore out and base-call quality dropped later in the run. Read quality also tracked reference identity closely.

    150,735 reads, R9.4 flow cell, Albacore 2.0.2 base calls, Minimap2 alignment. Quality per 6 hours interval was uniform early and lower after 24h. Most reads were near 10kb with a quality score of 12, plus a subgroup of short low-quality reads. Mean quality vs percent identity is called a strong correlation, but no coefficient is given. · Examples and discussion; Figure legends

  3. SuggestedNanoComp separated read-length profiles across runs. The E. coli ultra-long protocol gave far longer reads than a K. pneumoniae ligation library (standard lengths) and a human PromethION sample (suboptimal lengths).

    Comparison of log-transformed read lengths for E. coli vs K. pneumoniae vs human (the latter two unpublished). Supplementary plots reportedly show K. pneumoniae with the highest yield, higher mean quality than both other datasets, and percent identity comparable to the human data. Comparisons are visual only, with no summary numbers in the main text. · Examples and discussion; Figure legends

  4. ClaimedNanoFilt and NanoLyse process reads as a stream before alignment. NanoFilt filters by mean quality, length and GC content and trims a user-set number of bases from either end. NanoLyse removes contaminant DNA such as the ONT lambda phage control.

    NanoLyse aligns reads with Minimap2 through the mappy Python binding against a lambda phage reference bundled with the package. Both tools are described as having a minimal memory footprint, but no memory, runtime or filtering-accuracy measurements are reported. · Scripts for data processing

  5. ClaimedThe suite is available through several installation routes, platforms and interfaces. One NanoPlot or NanoComp command generates a full report.

    Installable via PyPI (pip) and bioconda (conda). Runs on Linux, Mac OS and the Windows 10 subsystem for Linux. Offered as command-line scripts, a graphical user interface and a web service at http://nanoplot.bioinf.be. Licensed under GNU GPL3.0. · Abstract; Installation and dependencies; Conclusion

Methods, data and reproducibility

A suite of Python3 scripts. NanoStat computes summary statistics. NanoPlot and NanoComp draw QC plots and html reports from fastq/fasta, bam or albacore summaries. NanoFilt and NanoLyse filter, trim and decontaminate streamed reads, with NanoLyse using Minimap2 via mappy.

  • ONT ultra-long-read E. coli run on an R9.4 MinION flow cell, base called with Albacore 2.0.2 and aligned to the E. coli reference genome with Minimap2 · E. coli · n = 150,735 reads
  • K. pneumoniae long-read dataset from a ligation library prep (unpublished), used for NanoComp comparisons · K. pneumoniae
  • Human PromethION dataset (unpublished), used for NanoComp comparisons · human
  • Reference sequence of the ONT-supplied lambda phage control DNA, bundled with NanoLyse for contaminant removal · lambda phage
Methods & tools
NanoPlot, NanoComp, NanoStat, NanoFilt, NanoLyse, Minimap2 (via the mappy Python binding), Albacore 2.0.2 (base calling), pauvre (plotting style incorporated), matplotlib, seaborn, pysam, pandas / numpy / biopython
Software & environment
Python3; dependencies matplotlib, pysam, pandas, numpy, seaborn, biopython; distributed via PyPI (pip) and bioconda (conda); runs on Linux, Mac OS and the Windows 10 subsystem for Linux; GNU GPL3.0 licence.
Reproducibility gaps
The K. pneumoniae and human PromethION example datasets are unpublished, and no accession is given for the E. coli run. Dependency versions are not pinned in the text.
Limitations (3)
  • NanoLyse removes contaminants by alignment, so it can discard genuine reads from genomic regions highly homologous to the lambda phage genome. · stated by the authors
  • No quantitative benchmark is reported. Speed and memory footprint (claimed to be minimal for NanoFilt and NanoLyse) are not measured, and outputs are not compared with pycoQC, minion_qc, poretools or FastQC. · noted in this summary
  • The demonstrations rest on one E. coli run and two unpublished datasets without accessions. The cross-dataset observations are visual, with no summary statistics in the main text. · noted in this summary

Who should read:Read this if you run Oxford Nanopore or PacBio sequencing and need a citable, lightweight Python toolkit for QC plots, run comparisons, read filtering or lambda phage removal.

Reproducibility ledger

Nobody has reported trying to reproduce this paper yet. Did you replicate an experiment or run the code? Your report saves the next lab a week.

Sign in to file a reproducibility report.

Similarity Map
SelectedSame fieldCross-field
THISCoster '23Perdomo '25Payne '18Bolognini '19Loman '14Watson '14
84% semantic matchBioinformatics
Wouter De Coster, Rosa Rademakers·Bioinformatics·May 1, 2023· 868 citations