jbrowse-plugin-protein3d
v0.13.2
Published
This is a 3-D protein structure viewer for JBrowse 2
Readme
jbrowse-plugin-protein3d
This is a 3-D protein structure viewer for JBrowse 2
The major workflow enabled by this is
- Right click gene of interest -> launch 3-D protein viewer with linked mouseover between genome and structure
It has features to automatically look up a protein structure of interest using the UniProt ID mapping API to connect to AlphaFoldDB, lists the experimental PDB entries SIFTS maps to that UniProt entry, and can also use Foldseek to look up related structures
Coordinate-mapping harness
A standalone diagnostic page that loads real PDB / AlphaFold structures through the plugin's actual mapping code and surfaces cases it mishandles (multi-chain complexes, partial/repeat structures, AlphaFold fragments):
https://gmod.org/jbrowse-plugin-protein3d/
Source and details in harness/.
Screenshot

Example at https://jbrowse.org/code/jb2/latest/?config=%2Fucsc%2Fhg38%2Fconfig.json&session=share-aZOIjR_qs4&password=NT4sa
Demos
Structures that are easy to map wrong, each one link away: 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.
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
Availability
This plugin is installed by default on https://genomes.jbrowse.org so you can use it on any species there
Programmatic usage
See DEVELOPERS.md
How it works
Notes on the parts that are easy to get subtly wrong, written 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.
- 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.
Publishing
just push a new tag using e.g.
pnpm version minor