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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1ee599da0a68dd42105c5d439d5e7fcb829e4a42b771250d5d25ca16e1b0e03
|
|
| MD5 |
e50d7cd4a11addcaa65ee132f91bfaf8
|
|
| BLAKE2b-256 |
e90e50bc871b049c9ebe6f3cbe826a68965e3a2fe8f25ba12f6a33c06c32c966
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f517da355e213deaeb451d580ed48cea5ab89e77e5ea42fb8e01aa6871fa7b4c
|
|
| MD5 |
cf1f056e623d0351a8ae976b589913b0
|
|
| BLAKE2b-256 |
240197427e39d1c2e7bdcc1705456b529ced67d8d9c3d984d5ff76187edb6032
|