PlotNado
PlotNado creates genome browser-style figures from Python or YAML templates. It is designed for reproducible genomic plots in scripts, notebooks, Quarto docs, and CLI workflows. Use it when you want compact tracks for BigWig-like signals, BED/narrowPeak intervals, links, genes, and optional matrix/QuantNado data.
Start
Install for day-to-day use:
uv tool install plotnado
plotnado --help
Work from source:
git clone https://github.com/alsmith151/plotnado
cd plotnado
uv sync --extra dev --extra docs
uv run pytest tests/
Python API
from plotnado import GenomicFigure
import numpy as np
import pandas as pd
bins = np.arange(1_000_000, 1_100_000, 1_000)
signal = pd.DataFrame({
"chrom": "chr1",
"start": bins,
"end": bins + 1_000,
"value": 5 + 2 * np.sin(np.linspace(0, 6, len(bins))),
})
fig = (
GenomicFigure()
.scalebar()
.axis()
.bigwig(signal, title="Synthetic signal", style="fill", color="#1f77b4")
)
fig.save("quickstart.png", region="chr1:1,010,000-1,080,000")
CLI + YAML
uv run plotnado init sample1.bw sample2.bw peaks.narrowpeak --auto --output template.yaml
uv run plotnado validate template.yaml
uv run plotnado plot template.yaml --region chr1:1,000,000-1,100,000 --output browser_view.png
Templates are editable YAML:
genome: hg38
guides:
genes: true
tracks:
- path: sample1.bw
type: bigwig
title: sample1
- path: peaks.narrowpeak
type: narrowpeak
title: peaks
The same template can be loaded from Python:
from plotnado import GenomicFigure
fig = GenomicFigure.from_template("template.yaml")
fig.save("browser_view.png", region="chr1:1,000,000-1,100,000")
What It Covers
- Chainable
GenomicFigureAPI for programmatic plotting. plotnado init,plotnado validate, andplotnado plotfor YAML workflows.- In-memory tabular examples for reproducible docs and notebooks.
- Runtime alias and option lookup through
GenomicFigure.available_track_aliases()andGenomicFigure.track_options(...). - Optional cooler, CapCruncher, and QuantNado tracks when their dependencies and input datasets are installed.
Documentation
Troubleshooting
If a plot is empty, first check that the region overlaps your data and that chromosome names match (chr1 versus 1).
If Quarto uses the wrong Python, render with QUARTO_PYTHON=.venv/bin/python quarto render.
For option names, use GenomicFigure.track_options("bigwig").
Development
uv sync --extra dev --extra docs
uv run pytest tests/
uv run python examples/run_examples.py
uv run plotnado --help
QUARTO_PYTHON=.venv/bin/python quarto render
Docs are Quarto pages with executable Python cells. Prefer deterministic in-memory data in docs examples and keep generated option tables secondary to plotted examples.
Contributions should start with a source install, the test suite, the example runner, and a Quarto render. The main branch is protected, so open a pull request for review.
License
PlotNado is licensed under GPL-3.0-or-later. See LICENSE.
Metadata
Release files for plotnado 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| plotnado-0.3.2.tar.gz | 7.8 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plotnado-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.6 MB
Release files / plotnado-0.3.2.tar.gz
| Download URL | plotnado-0.3.2.tar.gz |
|---|---|
| Size | 7.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d60bd40969992405e4a310d9df373616c85bab3ae5d9c49d74a0151b0891ac9e
|
|
BLAKE2b-256 checksum How to use checksums |
8f5a85f5018ac170fb363fe2f1466279b1d3f8065653fc0b41b903022d8b53f8
|
| 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 Aug 12, 2026.
Transparency logRelease files / plotnado-0.3.2-py3-none-any.whl
| Download URL | plotnado-0.3.2-py3-none-any.whl |
|---|---|
| Size | 7.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1ec7b9b0392a8039689fc1a1fe767db652a6e2b216980e13ab77460151fc1559
|
|
BLAKE2b-256 checksum How to use checksums |
51a4f438b09157509f3e3433ed58c06dafb64224893cec43f3008d241cb41454
|
| 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 Aug 12, 2026.
Transparency logSecurity for plotnado 0.3.2
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.
Attestation for plotnado-0.3.2.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 Aug 12, 2026.
Transparency logA 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.