Skip to main content

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.

PlotNado logo

Tests

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 GenomicFigure API for programmatic plotting.
  • plotnado init, plotnado validate, and plotnado plot for YAML workflows.
  • In-memory tabular examples for reproducible docs and notebooks.
  • Runtime alias and option lookup through GenomicFigure.available_track_aliases() and GenomicFigure.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.

Download files

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

Source Distribution

plotnado-0.3.2.tar.gz (7.8 MB view details)

Uploaded Source

Built Distribution

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

plotnado-0.3.2-py3-none-any.whl (7.8 MB view details)

Uploaded Python 3

File details

Details for the file plotnado-0.3.2.tar.gz.

File metadata

  • Download URL: plotnado-0.3.2.tar.gz
  • Upload date:
  • Size: 7.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for plotnado-0.3.2.tar.gz
Algorithm Hash digest
SHA256 d60bd40969992405e4a310d9df373616c85bab3ae5d9c49d74a0151b0891ac9e
MD5 c656293af91f22bc659088cf5e0bc047
BLAKE2b-256 8f5a85f5018ac170fb363fe2f1466279b1d3f8065653fc0b41b903022d8b53f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for plotnado-0.3.2.tar.gz:

Publisher: publish.yml on alsmith151/plotnado

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file plotnado-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: plotnado-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 7.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for plotnado-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1ec7b9b0392a8039689fc1a1fe767db652a6e2b216980e13ab77460151fc1559
MD5 991d0d8418c0745ac8f1319529c295aa
BLAKE2b-256 51a4f438b09157509f3e3433ed58c06dafb64224893cec43f3008d241cb41454

See more details on using hashes here.

Provenance

The following attestation bundles were made for plotnado-0.3.2-py3-none-any.whl:

Publisher: publish.yml on alsmith151/plotnado

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 files

0.3.1

2 files

0.3

2 files

0.2

2 files

0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page