JBrowseMSA user guide
JBrowseMSA (the react-msaview package) renders a phylogenetic tree alongside a
protein or nucleotide alignment on HTML5 canvas, tiled so it stays responsive on
very large inputs (up to the 230k-node UCSC SARS-CoV-2 sample tree). Everything
runs in the browser — nothing is uploaded.
This guide tours the live app. Every
figure below links to the app in that exact state via the ?data= URL
parameter — click any screenshot to open and explore it yourself.
Getting started#
Open the app and you land on the import form.

You can load an alignment on its own, a tree on its own, or both together. When both are present, rows are ordered and connected to match the tree.
Loading your own data#
The import form accepts a pasted string, a local file, or a remote URL for each of the alignment, the tree, and (optionally) a domain-annotation track.
| Input | Formats |
|---|---|
| Alignment | FASTA (gaps already inserted), Stockholm (.stock, single or multi-alignment, may embed a tree and SS), Clustal (.aln), A3M, EMF |
| Tree | Newick (.nh), or the tree embedded in a Stockholm/EMF file |
| Domains | InterProScan GFF3 (generate it with the CLI) |
Stockholm files may carry both the tree and a secondary-structure annotation inline, so a single file can populate the whole view. A “multi-Stockholm” file with several alignments is supported too.
A tour of the viewer#
Once data is loaded the view has four parts:
- Tree panel (left) — the phylogeny, with clickable branch nodes.
- Alignment panel (right) — the residues, colored by the active scheme.
- Header (top) — menu buttons for files, color schemes, and tree/MSA settings, plus zoom controls.
- Minimap & tracks — an overview ruler above the alignment for fast navigation, and a strip of per-column tracks sharing the alignment’s columns (see Tracks).
Hovering a column highlights the corresponding position across rows (and on the tree), making it easy to read a single site down the whole family.
Navigating#
- Pan by click-dragging the alignment, or scroll vertically/horizontally.
- Zoom with the magnifier buttons in the header, or enable scroll zoom (MSA settings menu) to zoom with the mouse wheel.
- Fit the alignment to the window — fit both axes, horizontally, or vertically — from the zoom controls, and Reset zoom returns to defaults.
- Set tiny row height / column width to “zoom out” far enough to see big-picture patterns across a large alignment at a glance.
Color schemes#
Open the palette menu in the header to switch schemes live.

Two schemes are dynamic — they color each column from statistics about the residues in that column rather than from a fixed per-letter table:

clustalx_protein_dynamic — ClustalX-style coloring driven by per-column
composition.
percent_identity_dynamic — columns shaded by their percent identity, so
conserved sites stand out.Working with the tree#
Click a branch node to collapse that subtree. Collapsing also hides any alignment columns that consist only of gaps introduced by the collapsed rows, so the alignment tightens up as you fold clades away.

The tree settings menu toggles branch-length rendering, right-aligned vs tree-adjacent labels, and clickable branch bubbles. You can also compute a neighbor-joining tree (BLOSUM62) directly from an alignment that arrived without one.
Protein domains#
Load a GFF3 annotation file from the import form, or query InterProScan from within the app under the Annotations menu, to overlay domains on the alignment. Any GFF3 works — InterProScan output is the common case, not a requirement — and the same overlay draws exon and gene models. Each row’s annotation coordinates are translated into MSA coordinate space, so they line up across the family even where alignment gaps shift the underlying sequence positions.

react-msaview-cli interproscan. Zoomed out to full length, the shared SH3,
SH2, and tyrosine-kinase catalytic domain architecture lines up across every
member.Why the overlay is column-locked#
Translating into MSA coordinate space is the whole point, and the difference is easiest to see by taking it away. Both panels below are the same twelve NLRP1 orthologs, the same domain GFF, the same component and palette, and the same tree — the only difference is whether the input was aligned.

That is what makes a domain overlay comparable across a family rather than a row of independent cartoons.

Viewing metadata#
Alignment file headers and per-sequence information are available from the Metadata dialog (file menu).

Sharing and exporting#
- Share a session by copying the page URL — the full view state (data, colors, zoom, collapsed clades) is encoded in it, so a collaborator who opens the link sees exactly what you see.
- Export an image with Export SVG (file menu) for a crisp, scalable figure of the current viewport or the entire alignment, optionally including the minimap and annotation tracks.

Tracks#
Strips drawn above the alignment, sharing its columns and its horizontal scroll. The Tracks submenu at the top of the MSA settings menu lists every one and turns it on or off; a track’s own dropdown arrow, on its label at the left, also closes it and shows its details.
- Conservation — a per-column histogram of how conserved the column is, from Shannon entropy, scaled down by how gappy the column is. On by default.
- Property conservation — the same idea over physicochemical property class rather than exact identity, so it surfaces sites held constant by conservative substitution that identity-based conservation reads as variable. Protein alignments only, on by default.
- Sequence logo — the residues of each column stacked by the information they carry, tallest on top, each letter’s height its share of the column’s total. Off by default. Column height is information content in bits, so it tops out at log2(20) for protein and log2(4) for nucleotide, and a column whose residues are evenly split draws nothing at all. Frequencies come from the non-gap residues, then the whole stack is scaled by the column’s occupancy — a column that is mostly gaps stays short even when the few residues left in it agree.
- Secondary structure and other annotation rows carried inline by a Stockholm file appear as text tracks, colored by the active scheme.

-
in the rows below it.Tracks are included in an SVG export when you check “include tracks” in the export dialog.
Settings reference#
Layout options live in two dropdowns in the header: MSA settings and tree settings, beside the color-scheme palette.

Scaling to large data#
Both axes are tiled, so memory and draw time scale with what’s on screen rather than with the size of the file.

Embedding and related projects#
- Embedding guide — React, UMD-in-HTML, and the R package.
- Gallery — the viewer as a view inside JBrowse 2, connected to a genome view and 3D structure.
- jbrowse-plugin-msaview — the JBrowse 2 plugin (demo).
- ProteinBrowser — a fuller protein-analysis suite built on this viewer.