jbrowse-plugin-protein3d
A 3-D protein structure viewer for JBrowse 2, linked residue by residue to the genome.

TP53 beside PDB 1TUP, p53's core domain bound to DNA. R248, a cancer hotspot, is
selected in magenta on the structure, and its codon is marked on the gene.
Open this session.
CI re-renders the figure from main every hour
(scripts/readme-figure.mjs).
Right-click a gene and choose Open AlphaFold structure for its predicted model in one click, or Launch protein view for the dialog that offers every choice. The plugin looks up the AlphaFold model through UniProt, lists the experimental PDB entries SIFTS maps to that UniProt entry, and can search Foldseek for related structures. It aligns each structure to the transcript's translation, so hovering a residue highlights its codon and hovering a codon highlights its residue.
Try it
The protein browser takes a gene name and opens it in JBrowse with its structure linked to the genome. The plugin is also installed by default on genomes.jbrowse.org, so it works for any species there.
Documentation
Using the plugin:
- Tutorials on jbrowse.org: TP53 from prediction to crystal opens an AlphaFold model and two crystal structures superposed beside the gene, and reads the R248 hotspot back to its codon; Proteins on genomes.jbrowse.org launches a structure and an MSA from any gene's right-click menu.
- Demos: one link each. Genes opened by name alone in human, mouse, yeast, bacteria, fungi and viruses (E. coli recA, M. tuberculosis katG, the SARS-CoV-2 spike, the HIV-1 capsid), then the structures that are easy to map wrong — a peptide bound to a larger partner, a protein bound to DNA, a receptor with another protein fused into it, a phosphorylated residue, and a mitochondrial protein.
- Your own structures: opening a model you folded yourself (ColabFold, AlphaFold 3, Boltz…) instead of the AlphaFold DB one, from a file, a URL or a generated link per gene, and which features carry over.
Linking and embedding:
- Launching from a URL or code: worked session-spec links,
the short
uniprotId/pdbId+transcriptIdform, several structures in one view, the 1D protein view, and theLaunchView-ProteinViewandLaunchView-ProteinAnnotationViewextension points. - Launch parameters: every argument, the
connectedViewsettings, and the transcriptfeatureshape. - Session snapshots: the saved view's shape, the structure shorthands, and which chain maps.
How it works, for someone extending the plugin or checking what a number on screen means:
- Genome to structure alignment: why the plugin aligns the transcript's translation to the structure on the fly, the precedent for that in SIFTS and G2S, how it picks the chain and isoform, and what sequence alignment cannot decide.
- UniProt feature tracks: where the accession and the UniProt-to-structure offset come from for AlphaFold models, PDB entries and your own models.
- The secret sauce: one variable drawn with one scale in the 3D view, the alignment strip and the genome track, and the ideas that build on it, such as painting any genome track onto the structure.
- Residue numbering: how a paper's R248 becomes
position 154 in the file,
label_seq_id155 for Mol*, and the codon on chr17, and how a session spec names a residue the literature's way.
Working on the plugin:
- DEVELOPERS.md: running it locally and publishing.
- Testing: the unit, e2e, documentation and demo checks.
- Host compatibility: which JBrowse hosts load the published bundle, and the gate that boots it on one.
- Live checks: serving a local build to a session on jbrowse.org.
Publication
If you find this tool useful please cite our work
Diesh, C., Stevens, G., Bridge, C., Hogue, G., Buels, R., Cain, S., Stein, L., & Holmes, I. (2026). Proteins in the Genome Browser: Integration of Phylogenies, Alignments, and Structures With Nucleotide-level Evidence in JBrowse 2. Journal of Molecular Biology, 169645. https://doi.org/10.1016/j.jmb.2026.169645
See also https://github.com/GMOD/proteinbrowser for overview