Skip to content

Repository files navigation

License: GPL v3

dot-explorer

A python library with Shiny Web App frontend for fast dot plot comparisons of DNA sequences. Written in Rust with PyO3 python bindings.

Browser app

Web App

Try dot-explorer without installing anything: Launch Dot-Explorer Live.

The app runs entirely in your browser (WebAssembly + Pyodide) — uploaded assemblies never leave your machine. Align with the k-mer engine, minimap2, or nucmer (or import a PAF file), overlay GFF3 annotations, and download SVG/PDF plots, PAF alignments, and a reordered/reoriented query FASTA.

In-browser computation is memory limited (the wasm heap caps at ~4 GB, so the k-mer method is gated above ~80 Mb of combined input); larger genomes should use minimap2 instead of k-mer based plotting. Alternatively, run the same app locally with no size limits (pip install "dot-explorer[app]", then dot-explorer-app), or generate plots using the Python API locally or on Google Colab.

See docs/webapp.md for capabilities, limits, and the local/HPC run guide, and Python library tutorials to run analysis locally.

Installation

Requires Python >=3.12 <3.15. Binary wheels are published for 3.12, 3.13, 3.14 and 3.14t on Linux, macOS and Windows, so pip never has to compile Rust.

# Python library
pip install dot-explorer

# Library plus the local browser app
pip install "dot-explorer[app]"

# Optional: similarity metrics, clustering and trees (sourmash + scipy)
pip install "dot-explorer[cluster]"

Run the app locally

dot-explorer-app

Serves the app on http://127.0.0.1:8000 and opens a browser. Use --host, --port and --no-browser when running on a remote machine or HPC node — see the web app guide for the SSH-tunnel recipe and for where the app writes temporary files.

Build from source

Only needed to modify the Rust core.

Requirements:

# Clone this project repo
git clone https://github.com/Adamtaranto/dot-explorer.git && cd dot-explorer

# Install maturin build tool
pip install maturin

# Build and install the python package
maturin develop --release

See the development guide for the full contributor setup.

About

A Python library for making fast dot-plot comparisons of DNA sequences powered by Rust

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages