Skip to main content

Merge ONT nanopore data from POD5 and FASTQ for per-pore QC

Project description

purrPore

Merge Oxford Nanopore (ONT) sequencing data from POD5 and FASTQ for per-pore QC.

purrPore loads per-read metadata from POD5 files (channel, well, duration, sample rate) and merges it with FASTQ-derived metrics (length, mean Q, GC). It aggregates by (channel, well) for true per-pore QC—each channel has up to 4 wells (nanopores). Includes N50 per pore, pore dropout detection, and flow cell heatmaps (physical MinION layout).

Install

pip install -e .

Requires Python ≥3.8.

CLI

purrPore run reads.fastq pod5_dir/ -o qc_out/
purrPore run reads.fastq pod5_dir/ -o qc_out/ --heatmap   # also generate heatmaps

Python API

import purrPore

results = purrPore.run_qc("reads.fastq", "pod5_dir/")

# Merged read-level table (FASTQ + POD5 metadata)
print(results.merged)

# Per-pore: reads, yield_bp, mean_len, mean_q, mean_gc, median_speed, active_time_s, n50
print(results.per_pore)

# Flowcell: total_reads, total_yield_bp, mean_q, active_pores, dropout_pores
print(results.flowcell)

# Pores (channel, well) that produced 0 reads (dropout)
print(results.dropout_pores[:20])

# Write outputs (CSV, Parquet, dropout list)
purrPore.write_qc_results(results, "qc_out/")

# Flow cell heatmap (128×16 pore grid: 4 wells per channel)
purrPore.plot_flowcell_heatmap(results.per_pore, value_col="yield_bp", out_path="heatmap.png")

Features

  • Flow cell heatmap: Physical MinION layout (128×16 pore grid: 4 wells per channel)
  • Read N50 per pore: Length such that 50% of pore yield is in reads of that length or longer
  • Pore dropout detection: Pores (channel, well) with 0 reads (written to dropout_pores.txt)

Data

  • FASTQ: read_id, read_length, mean_q, gc
  • POD5: read_id, channel, well, duration_s, ...
  • Per-pore: channel, well, reads, yield_bp, mean_len, mean_q, mean_gc, median_speed, active_time_s, n50
  • Flowcell: total_reads, total_yield_bp, mean_q, active_pores, dropout_pores

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

purrpore-0.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

purrpore-0.1.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file purrpore-0.1.0.tar.gz.

File metadata

  • Download URL: purrpore-0.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for purrpore-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e1ee599da0a68dd42105c5d439d5e7fcb829e4a42b771250d5d25ca16e1b0e03
MD5 e50d7cd4a11addcaa65ee132f91bfaf8
BLAKE2b-256 e90e50bc871b049c9ebe6f3cbe826a68965e3a2fe8f25ba12f6a33c06c32c966

See more details on using hashes here.

File details

Details for the file purrpore-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: purrpore-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for purrpore-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f517da355e213deaeb451d580ed48cea5ab89e77e5ea42fb8e01aa6871fa7b4c
MD5 cf1f056e623d0351a8ae976b589913b0
BLAKE2b-256 240197427e39d1c2e7bdcc1705456b529ced67d8d9c3d984d5ff76187edb6032

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page