Skip to main content

BiNgo Genome Viewer — a lightweight browser-based genomics viewer

Project description

BiNgo Genome Viewer

PyPI version Python 3.10+ License

A lightweight, browser-based genomics viewer for visualizing genomes, coverage tracks, read alignments, variants, and annotations. Built as a modern alternative to IGV.

Supported File Formats

Type Formats
Genome GenBank (.gb, .gbk), FASTA (.fasta, .fa)
Coverage BigWig (.bw), WIG (.wig), BedGraph (.bedgraph, .bdg)
Reads BAM (.bam + .bai index)
Variants VCF (.vcf, .vcf.gz)
Annotations BED (.bed), GFF (.gff, .gff3), GTF (.gtf), GenBank (.gb)

Quick Start

Requires Python 3.10 or newer. Download from python.org if needed.

Install with pip (recommended)

No Node.js required — the frontend is pre-built and bundled.

pip install BiNgoViewer
bingo

Options:

bingo                    # launch on default port 8000
bingo --port 9000        # use a custom port
bingo --no-browser       # start without opening the browser
bingo --install          # create a desktop shortcut
bingo --update           # check for updates
bingo --version          # show installed version
bingo --no-update        # skip automatic update check

Windows (one-click)

Double-click Install_Windows.bat. It will install Python dependencies into a local environment and launch the viewer. No command line needed.

macOS / Linux (one-click)

Double-click Install_macOS.command (or run it from a terminal). It will create a virtual environment, install dependencies, and launch the viewer.

Permission denied? Run once in Terminal:

chmod +x Install_macOS.command

Docker

No Python or Node.js required — everything runs inside the container.

cd app
docker compose up --build

Then open http://localhost:8000.

Troubleshooting

Problem Solution
python not found Install Python 3.10+ and check Add to PATH during setup
"No matching distribution" Your Python is too old — BiNgo requires Python 3.10+. Check with python --version
pip install fails Try pip install --user BiNgoViewer or use a virtual environment
Port 8000 in use Run bingo --port 9000 (or any free port)
Browser doesn't open Visit http://localhost:8000 manually
Server won't stop The server auto-exits when you close all browser tabs; or press Ctrl+C

Usage

  1. Load files — Use the file picker, drag and drop, or paste a local file path (recommended for large BAM files).
  2. Navigate — Left-click drag to pan, scroll to zoom, use the chromosome scrubber to jump across the genome.
  3. Select regions — Right-click drag to select a region; hover for stats (coverage, variants, reads).
  4. Zoom to gene — Double-click a gene annotation to zoom in with context.
  5. Track settings — Adjust height, color, scale, bar width, peak outline trace, and nucleotide display.
  6. Reorder tracks — Drag the grip handle on any track label.
  7. Export — Save the current view as SVG or PNG with layered groups.
  8. Save session — Export/restore your entire workspace including zoom, colors, and settings.
  9. Save session — Store your workspace and restore it later.

API Documentation

When the server is running, interactive API documentation is available at:

Project Structure

├── Install_Windows.bat         # Windows installer (double-click)
├── Install_macOS.command       # macOS / Linux installer (double-click)
├── README.md
├── pyproject.toml              # pip package definition
├── bingoviewer/                # Installable Python package
│   ├── cli.py                  # `bingo` CLI entry point
│   ├── server/                 # FastAPI backend (bundled)
│   └── frontend_dist/          # Pre-built React frontend
└── app/                        # Application source code
    ├── backend/                # Python (FastAPI) REST API
    └── frontend/               # React (Vite) user interface

Citation

If you use this software in your research, please cite:

Ngo, B.M. (2026). BiNgo Genome Viewer (v1.8.2) [Software].

References & Acknowledgments

Click to expand

Software Dependencies

Backend

  • FastAPI — Ramírez, S. (2018). FastAPI: A modern, fast web framework for building APIs with Python. https://fastapi.tiangolo.com/
  • Uvicorn — Encode OSS. ASGI server implementation for Python. https://www.uvicorn.org/
  • BioPython — Cock, P.J.A. et al. (2009). Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics, 25(11), 1422–1423.
  • pyfaidx — Shirley, M.D. et al. (2015). Efficient "pythonic" access to FASTA files using pyfaidx. PeerJ PrePrints, 3:e1196.
  • bamnostic — Sherman, M.A. & Mills, R.E. (2019). BAMnostic: a pure Python, OS-agnostic Binary Alignment Map (BAM) file parser and random access tool.

Frontend

File Format Specifications

  • SAM/BAM — Li, H. et al. (2009). The Sequence Alignment/Map format and SAMtools. Bioinformatics, 25(16), 2078–2079.
  • VCF — Danecek, P. et al. (2011). The variant call format and VCFtools. Bioinformatics, 27(15), 2156–2158.
  • BigWig/WIG — Kent, W.J. et al. (2010). BigWig and BigBed: enabling browsing of large distributed datasets. Bioinformatics, 26(17), 2204–2207.
  • BED — UCSC Genome Browser, University of California, Santa Cruz.
  • GFF3 — Sequence Ontology Project. Generic Feature Format Version 3.
  • GTF — Ensembl genome database project.
  • GenBank — Benson, D.A. et al. (2013). GenBank. Nucleic Acids Research, 41(D1), D36–D42.

Inspiration

  • IGV — Robinson, J.T. et al. (2011). Integrative Genomics Viewer. Nature Biotechnology, 29(1), 24–26.

Acknowledgments

Early version testing and feedback:

  • Amanda Antoch
  • Isaac Poarch
  • Otto Chipashvili
  • Jake Colautti

License

All rights reserved. Contact the author for licensing inquiries.

Project details


Release history Release notifications | RSS feed

This version

2.5.3

Download files

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

Source Distribution

bingoviewer-2.5.3.tar.gz (141.3 kB view details)

Uploaded Source

Built Distribution

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

bingoviewer-2.5.3-py3-none-any.whl (149.1 kB view details)

Uploaded Python 3

File details

Details for the file bingoviewer-2.5.3.tar.gz.

File metadata

  • Download URL: bingoviewer-2.5.3.tar.gz
  • Upload date:
  • Size: 141.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bingoviewer-2.5.3.tar.gz
Algorithm Hash digest
SHA256 629c9c36fa7e95515c84afe4f4f821951b3b1740ab20ec89106dddcb6f8877d0
MD5 56a3ea8b0b10b1686e8f6476f60333d1
BLAKE2b-256 aecc11222f8d53d908ac9a71faedfcae95130dc3eac192b5463008f89d63d537

See more details on using hashes here.

Provenance

The following attestation bundles were made for bingoviewer-2.5.3.tar.gz:

Publisher: publish.yml on billy-ngo/bingo-genome-viewer

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

File details

Details for the file bingoviewer-2.5.3-py3-none-any.whl.

File metadata

  • Download URL: bingoviewer-2.5.3-py3-none-any.whl
  • Upload date:
  • Size: 149.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bingoviewer-2.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cd8d627669df47a9310eba77ada6d9548060e58f14797bbff4138df6e7608f94
MD5 6f1a78341bb5f71689b200224cf93920
BLAKE2b-256 2d537e34ea622ac95ee92d9b4138b60eb85022af1d83be29a6642417446ff69e

See more details on using hashes here.

Provenance

The following attestation bundles were made for bingoviewer-2.5.3-py3-none-any.whl:

Publisher: publish.yml on billy-ngo/bingo-genome-viewer

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

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