FiberBrowser
An interactive genome browser for Fiber-seq and DAF-seq data at single-molecule resolution. Each row is one DNA molecule, drawn with its nucleosomes, transcription-factor footprints, accessible patches and base modifications. You can cluster, sort and filter molecules by their footprints, measure how often a footprint is occupied and which footprints occur together, split reads by haplotype or structural-variant allele, and export figures and the data behind them.
FiberBrowser shows the footprints called by FiberHMM. FiberBrowser 3.0 is released together with FiberHMM 3.0 and installs it.
Documentation: docs/index.md · User guide · Tutorial · Reference · Changelog
Install
| You want | Do this |
|---|---|
| The Mac app (Apple silicon, macOS 14+) | Download FiberBrowser-<version>-arm64.dmg from Releases and drag it to Applications. It bundles Python, FiberHMM 3, minimap2 and BLAST+. |
| The Windows app (Windows 10 2004+ or 11, x64) | Run FiberBrowser-<version>-Setup.exe from Releases. It runs in WSL 2 and opens in its own window. |
The fiberbrowser command (macOS, Linux, or WSL; Python 3.10+) |
pipx install "fiberbrowser[app]" (or python3 -m pip install "fiberbrowser[app]"). This installs FiberHMM 3 (fiberhmm[consensus]>=3.0,<4) from PyPI. |
| A source checkout | git clone https://github.com/fiberseq/FiberBrowser && cd FiberBrowser, then bash scripts/install.sh (or python3 -m pip install -r requirements.txt) and python browser.py. |
| A read-only server for reviewers | The Docker image ghcr.io/fiberseq/fiberbrowser:<version> (runs --public). |
Extras for the pip install: app (its own window), copilot (local Copilot on
Apple silicon), primers (primer3-py, seqfold), contact-maps (cooler, h5py),
umap, plots, pipeline (mappy, for DAF-seq runs without minimap2), or
all. Details, conda, the Windows app and Docker:
Installing FiberBrowser.
Quick start
fiberbrowser # empty browser; open files from the UI
fiberbrowser -b sample.bam -g genes.gtf -f genome.fa # a BAM with gene annotations and a reference
fiberbrowser --app -b sample.bam # the same, in its own window
fiberbrowser --help # every option
From a source checkout, python browser.py takes the same options. The server
listens on this computer only (port 8000, or the next free port) and opens its
access link, http://localhost:8000/?token=..., in your web browser. Every
launch has a new access token, so other users of the machine or network can't
use your browser.
New to FiberBrowser? Click Take the tour on the welcome screen. The tour opens in a separate sandbox tab, loads two small bundled demos (DddA-seq reads at the NAPA promoter, and H1 Fiber-seq reads around a 7.5 kb insertion) and walks through the main tools in 58 steps. It never changes your own work. The tutorial follows the same path in text, and the user guide has a screenshot of every step.
What you can do
Molecule panels. One read panel per dataset, with the layers each file carries (nucleosomes, TF footprints, accessibility, m6A, 5mC, deamination, and any custom Molecular-annotation layer), a metaprofile track, peaks, genes and the reference sequence. Panels can be linked, merged, copied, stacked, shown side by side, or moved independently (Linked / Per panel), and each panel can be on its own genome.
Clustering, sorting and filtering. Select peaks and cluster the molecules by their footprints there (K-means, Neighbourhoods on the t-SNE graph, hierarchical, HDBSCAN, combinatorial), merge similar clusters, focus one, compare their profiles, composition and V-plots, and see every read on a t-SNE, UMAP or PCA map. Sort reads within clusters and filter them with reusable rules.
Metaprofiles. Per-layer and per-rule profiles over the reads in view, per dataset or per cluster, as a track or overlaid in the Clusters panel.
Footprints and co-occupancy. Cmd/Ctrl+click a footprint to see the sizes of the footprints at that spot, save a size range as a definition, and look at its sequence with JASPAR motif matches and a V-plot. Co-occupancy tests whether saved footprints occur together on the same molecules (odds ratios, Fisher exact tests with Benjamini–Hochberg correction), and can cluster the reads by which ones they carry.
Footprint classes (Preview). Find footprint classes runs FiberHMM's lattice recaller over every read in view, groups recurring footprints into classes and gives each class's prevalence on each strand or chemistry. Saved classes join co-occupancy, filtering and clustering.
Variants: haplotypes and alleles. The Variants panel finds the SNPs and small indels in the reads in view, groups the reads by the alleles they carry, and splits them into one panel per allele or per haplotype (from HP tags or local allele patterns).
Structural variants and inserts. Deletions and insertions are drawn on the reads and in an SV row; any SV can split the reads into carriers and reference reads. The Insertion lens shows the chromatin inside a large insertion, and Identify reports candidate transposable-element families and genome copies of the insert. Open carriers with the insert expanded (Preview) re-aligns the carriers onto the alternate allele so the reads inside the insert can be clustered and analysed like any region.
NFRs. The NFRs panel runs FiberHMM's fiberhmm-nfr on the view: NFR
variants with their prevalence, which NFRs open together, and motifs at each
NFR.
Sessions. Save writes a session file that reopens the exact view, datasets, clusters, rules and settings. Work is kept as you go; the next launch offers to reopen it. Every change can be undone, and a timeline jumps back to any step. New Independent Workspace opens a separate session on the same server.
Export. Export makes a figure (PNG, or SVG and PDF with editable vector text and tracks). Data (Cmd/Ctrl+Shift+E) exports read names, read tables, a BAM of chosen reads, peaks and regions as BED, cluster assignments, class and co-occupancy tables, and the session. Every chart saves its plotted values as TSV.
Python API. browser_client.py drives a running browser from Jupyter, or
starts a headless server for scripted figures and analyses:
from browser_client import BrowserClient
with BrowserClient.headless(bam="footprints.bam", gtf="genes.gtf", fasta="genome.fa") as client:
client.goto_gene("NAPA")
reads = client.get_reads() # a DataFrame, one row per read
client.save_view("napa.pdf") # the figure the browser would draw
Primer design. The Primers panel designs PCR primers around selected peaks (or for 3C and 4C), checks them with BLAST against the genome, and exports an order list for common vendors. It needs the reference FASTA.
The Library. Every BAM, BigBed and plasmid map you open, your DAF-seq runs and watched folders, in one searchable list with chemistry, genome, QC verdicts and FiberHMM re-run advisories. New DAF-seq run aligns and calls raw reads (FASTQ, or Nanopore POD5) from the app.
Connect to cluster. Open BAMs, BigBeds, FASTAs and plasmid maps that stay on a cluster, over your own SSH connection. S3 and HTTPS URLs open directly.
Tracks. bigWig, bigBed and BED tracks, JASPAR or custom motif tracks,
UCSC, ENCODE and ChIP-Atlas hubs, contact maps (.cool/.mcool) and
co-accessibility matrices.
Copilot (optional). The Tutorial panel's Copilot tab answers "how do I…?" questions by opening the right panels and pointing at the controls, like the tour. It runs a small model on your computer: MLX on Apple silicon Macs (one click downloads it), or a model you run with Ollama elsewhere. Nothing runs until you set it up. FiberBrowser.app leaves it out. See Local Copilot.
What is supported and what is Preview in 3.0: What 3.0 includes.
Documentation
| Page | What it covers |
|---|---|
| User guide | Every step of the guided tour with a screenshot, then footprint classes, haplotypes, figures, data export, sessions and workspaces. |
| Tutorial | A written walkthrough of the tour on the bundled demos. |
| Reference | Command-line options, environment variables, the access token, file formats, BAM tags and layers, the dataset catalog, panels, keyboard shortcuts. |
| Installing FiberBrowser | The Mac and Windows apps, pip and extras, conda, Docker, a source checkout. |
| Workflows | DAF-seq runs, the Library, data on a cluster or S3, plasmids, clustering and transcription states, haplotypes. |
| Jupyter / Python API | browser_client.py: connecting, headless servers, figures, every method. |
| Analysis methods and statistics | How each analysis is computed and tested. |
| Deploying on a server | Personal, lab and public servers; Open OnDemand. |
| Plugins | Adding an analysis panel with a Python plugin. |
How to cite
If you use FiberBrowser in published work, please cite FiberBrowser and FiberHMM, which calls the footprints it shows. The reference with its version is in CITATION.cff (GitHub's Cite this repository); see How to cite. In the app, About FiberBrowser and ⋮ → How to cite give the citation, and exported figures carry a citation line (on by default).
License
MIT. See LICENSE.
Metadata
Release files for fiberbrowser 3.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fiberbrowser-3.0.0.tar.gz | 20.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fiberbrowser-3.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.2 MB
Release files / fiberbrowser-3.0.0.tar.gz
| Download URL | fiberbrowser-3.0.0.tar.gz |
|---|---|
| Size | 20.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15bdbb9771567eaeef32fc1b6a9f65811381038aa946d6fbeb7e46a90bfbeec8
|
|
BLAKE2b-256 checksum How to use checksums |
aeaa810b5da403415ce75599f1c66d7a9aaa8ac123a6316e358eff3cd2b637f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.13
|
Release files / fiberbrowser-3.0.0-py3-none-any.whl
| Download URL | fiberbrowser-3.0.0-py3-none-any.whl |
|---|---|
| Size | 17.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b5b5315e5c76da3e3f21fc5d284bbc932ba413c41c64f861033af94e7022ccc0
|
|
BLAKE2b-256 checksum How to use checksums |
3f3803be64d1ff26885516fcc8b6ddd0edf03241d251fb5cf7b1c07a13d26a1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.13
|