Proteins (v1.19.0+)¶
Structure prediction, protein annotation and protein family pipelines publish a 3D model, the alignment behind it and per-residue facts (confidence, secondary structure, domains, variants). Eight advanced visualizations draw them, and they stay linked: pick a residue in any of them and every tile moves to it, point at a residue and every tile marks it. Each tile has its own entry, with its settings and a YAML example, on the Advanced visualizations page. This page covers what they share.
3D structure v1.19.0+
Sequence track v1.19.0+
Alignment v1.19.0+
HMM logo v1.19.0+
Domain architecture v1.19.0+
Secondary structure v1.19.0+
Predicted aligned error v1.19.0+
Ramachandran v1.19.0+
The nf-core proteinfamilies, proteinannotator and proteinfold templates are built on them, and sarek and oncoanalyser draw coding variants on a predicted structure.
The data¶
Every protein tile reads tables joined on two column names: entity (which protein) and
position (the 1-based residue number in the structure's numbering). A tile shows one entity
at a time: the one the filters name, else the reader's pick, else the first.
| Input | Shape | Read by |
|---|---|---|
| Structure files | indexed_file collection, format: pdb or mmcif, one file per entity, the sample id equal to the entity value. Predictors write pLDDT in the B-factor column |
3D structure, Ramachandran |
| Residue table | entity, position, optionally chain, residue, value, category |
3D structure, Sequence track, Secondary structure, Predicted aligned error, Ramachandran |
| Variants | entity, position, ref_aa, alt_aa, a consequence and a label |
3D structure, Sequence track |
| Domains | entity, start, end, label, optionally source |
Sequence track, Domain architecture |
| Alignment | msa_id (the entity it aligns), seq_id, rank (0 is the query), aligned_sequence |
Alignment |
| PAE files | indexed_file collection, format: pae: proteinfold TSV, AlphaFold DB or ColabFold JSON |
Predicted aligned error |
The helpers in depictio/recipes/lib/ (protein_structure, msa, hmm,
secondary_structure, pae) build these tables. See Recipes.
Linked by residue¶

- A pick is a filter. A click or brush emits a
residue_selection: the entity, apositionrange and, on a complex, the chain. Every table with those columns narrows, and every protein tile shows the range. The last gesture wins. - A hover is not. Pointing at a residue marks it in every protein tile, in the browser only.
- v1.19.1+ Zoom can follow. Turn on the sync icon of a tile, or a section's button, and the other residue tiles and the 3D model follow its zoom.
- A lollipop joins with
selection_enabled: true, a profile withresidue_axis: true. Cards and figures that do not draw the position column ignore the range.
Where the structure comes from¶

structure_source: file reads the run's own files and makes no outbound call.
structure_source: resolve asks the server for a model by UniProt accession, by gene and
taxon, or by sequence. The resolver is off until DEPICTIO_STRUCTURE_RESOLVER_ENABLED=true,
and tries, first hit wins:
- its cache in the instance bucket;
- AlphaFold DB, by accession;
- UniProt, gene and taxon to an accession, then AlphaFold DB;
- ESMFold, for a sequence of at most 400 residues.
The tile credits the service it used. A pae_matrix has no resolver path. See
External structure services for what leaves the server and
the environment reference for the settings.
Numbering mismatch¶
A variant table and a model do not always number residues alike (a construct, an isoform, an
off-by-one). A variant whose ref_aa disagrees with the model is listed under a numbering
mismatch badge instead of being drawn on the wrong residue; one past the end of the model is
counted under outside the model.