Protein Structure Viewer Compare, annotate, and publish predicted and experimental structures — entirely in your browser
Add structures or AlphaFold result ZIPs Drop files anywhere on this page, or choose PDB, CIF/mmCIF, JSON, CSV, A3M and ZIP files Multiple ZIPsLocal processingNo upload
Fetching contacts files.rcsb.org or alphafold.ebi.ac.uk. Files you open locally are never sent anywhere.
No structure loaded yetDrop a PDB, CIF, or AlphaFold ZIP anywhere on this page, or fetch an ID above
0 structures Mean pLDDT — Ready

Help and keyboard shortcuts

Getting structures in

  • Drop .pdb, .cif, .mmcif, or whole AlphaFold result .zip archives anywhere on the page.
  • Add AlphaFold *_confidences.json, *_summary_confidences.json, ranking_debug.json, or ranking_scores.csv to attach pTM, ipTM, ranking scores, and PAE to matching models.
  • Type an identifier to fetch it: a four-character PDB ID (1ubq), a UniProt accession (P69905), or an AlphaFold DB name (AF-P0DTC2-F1).

In the 3D view

  • Drag to rotate, scroll to zoom, right-drag or two-finger drag to pan.
  • Click any atom to inspect its residue, chain, and pLDDT, and to place a label.
  • Use Figure annotations in the Annotate tab to draw arrows, lines, residue markers, and text callouts by clicking atoms, and to add corner titles. They follow rotation and alignment and are included in PNG exports and reports.
  • Turn on Synchronized multi-view in the Compare tab to show up to six models in linked viewports. Dragging, spinning, or rocking any one of them moves them all.

Keyboard

Previous / next model
CStart or pause automatic cycling
FFit every panel to what it displays
SStart or stop spinning
X Y ZRotate 90° about that axis (Shift reverses); Shift + R resets orientation
Shift + FToggle full screen
16Jump to a tool tab
Ctrl/ + ZUndo the last label, selection, measurement or annotation change; add Shift to redo
?Open this help
EscClose help, leave full screen, stop measuring

Your work is kept

The open models, annotations, domains, views and settings are saved in this browser a moment after every change. Reopening the page offers to restore them; Forget it discards the copy. Nothing leaves the browser. For anything you must keep, download scene JSON or a report.

How to cite

Cite the viewer and the rendering library it builds on. Each GitHub release is archived on Zenodo with its own DOI; the repository's CITATION.cff carries the current metadata.

  • Awuah, M. B. (2026). Protein Structure Viewer, version [software]. github.com/mbaffour/protein-structure-viewer.
  • Rego, N. & Koes, D. (2015). 3Dmol.js: molecular visualization with WebGL. Bioinformatics 31(8), 1322–1324. doi:10.1093/bioinformatics/btu829.

Reading the numbers

  • pLDDT is per-residue local confidence. High pLDDT does not mean the relative placement of chains is right.
  • PAE and ipTM are what to read for interfaces and domain placement in complexes.
  • RMSD from the Compare tab is a visual-comparison aid. Always report the alignment method, chain mapping, and aligned Cα count alongside it.

Tips for figures and reviewers

  • Publish → Write methods text drafts a Methods paragraph stating exactly how the numbers on screen were computed (superposition, RMSD, RMSF, domains, contacts, dimensions, colour scales); every definition is cross-checked against Biopython in the repository's VALIDATION.md.
  • Confidence → Colour by MSA reads the alignment inside an AlphaFold 3 archive (or an .a3m you add) and colours matching chains by conservation, identity to the query or coverage; the legend, exports and methods text follow.
  • Publish → Download composite figure stitches the 3D view with the PAE heatmap, the pLDDT profile and the contact map into one lettered figure at print size, each panel rendered at output resolution.
  • The Publication checklist at the foot of the Publish tab lists what a journal or reviewer would flag about the current figure — no physical size, low resolution, small text, colour-blind-unsafe colours, missing legend, scale bar in perspective, unsuperposed models, no title — with one-click fixes.
  • Compare → Interface contact map draws every residue pair of two chains within a cutoff, closer pairs darker; hover reads the pair, a click selects both residues, Highlight interface colours the interface, and the map and pair list download as PNG and CSV. Annotate → Label style switches every label between boxed and plain text.
  • Appearance → Outline draws a silhouette line around every element (thin for most figures, bold for small panels) and Depth cueing fades the far side; both apply to panels and exports. In the composition table, Faded blends a chain into the background to spotlight the others. Publish → Journal preset sets width, resolution, text size and font from a journal's figure guide, and Download one panel per model renders every model from the same camera into one lettered figure.
  • The layout button in the header (panel icon) switches between the side-panel workspace, where the 3D view stays pinned while you work in the scrolling tool panel, and the stacked layout. Drag the divider between them to give tables more room; double-click it to reset. Screens narrower than 1100 px always stack.
  • Publish → Save session file writes one ZIP with the models, confidence data, alignment, annotations, domains, views and settings; open it later with Open session file or by dropping it on the page, on any computer, with no other files. Scene JSON remains the light option that expects the original files.
  • Large AlphaFold 3 archives open whole: the confidence files are scanned byte by byte, the unused contact matrix is skipped and the PAE is kept compactly, so a five-model, 4 400-token assembly stays well under a gigabyte of memory.
  • Colour by pLDDT confidence and switch to orthographic projection for publication panels; perspective exaggerates whatever is closest to the camera.
  • Run Align visible, then enable multi-view with Rotation and zoom to inspect a superposition panel by panel. The shared report carries the aligned coordinates.
  • Save named views with captions in Publish: they become lettered figure panels, a caption file, and a guided tour inside the report.
  • Rename a model in the Models list to give it the name a caption should carry; file names stay as identifiers underneath.
  • Download comparison PNG stitches the current panels into one lettered figure at the export size you chose; the SVG variants keep labels, arrows, captions, and the legend as editable vector layers over the rendered molecule.
  • Every residue label and annotation is editable in its list row — text, colour, and size — and can be nudged with the arrow buttons; it moves in screen space and stays put when the model turns. Callouts also take a leader length.
  • Interfaces in the Confidence tab counts inter-chain contacts and buried surface area for a model, and can highlight the interface residues. Read it next to ipTM and PAE; a predicted contact is not an observed one.
  • Tick Embed 3Dmol.js for offline use before sharing a report that must open without internet; drop the PAE detail to Compact or Omit to keep it small.
  • Keep Report contents on Models currently shown for a small file reviewers can open on a laptop; switch to Every loaded model for an archive.

Everything runs locally. Structure files you open are read in the browser and are never uploaded.