ALPHABETTI

Amino-acid Letters Plotted Helically As Backbone-Embedded Text In 3D

What it does

ALPHABETTI draws a protein's own single-letter amino acid codes in three dimensions, positioned and oriented along a predicted backbone. It is a sequence logo that has been wrapped around the structure it describes.

The part that is actually new: there is no multiple sequence alignment anywhere in this pipeline. A conventional logo measures conservation by counting residues in an alignment column, which means finding homologues, aligning them, and inheriting every bias in that process. ALPHABETTI asks a protein language model what it expects at each position instead, having first masked that position so the model cannot read the answer off its own input. What you are looking at is a model's expectation, mapped onto a model's structure.

How a stack is built

At each position the model gives a probability for all twenty canonical amino acids. From that:

H_i      = -sum_a p_a log2(p_a)          Shannon entropy, bits
R_i      = log2(20) - H_i               information content, max 4.322 bits
height_a = p_a * R_i                    per-letter height, bits

The letters at a position are stacked tallest-first along the residue's own side-chain direction, each standing on the one below, so the total height of a stack is that position's information content. That is the property that makes the picture mean something, and it is checked by a unit test against hand-calculated values.

No small-sample entropy correction is applied. The usual correction in a sequence logo compensates for estimating a distribution from a finite number of aligned sequences; here there is no alignment and no sample, so correcting would mean subtracting a bias that does not exist.

Models

RoleModelCheckpointReference
StructureESMFold facebook/esmfold_v1 Lin et al., Science 379:1123 (2023)
LanguageESM-2 650M facebook/esm2_t33_650M_UR50D Lin et al., Science 379:1123 (2023)

Both run on a Hugging Face ZeroGPU Space rather than on this server. The server this app is served from has 3.9 GB of memory; the ESMFold checkpoint alone is 7.9 GB of weights.

The other quantities

QuantityHow it is computed
pLDDTESMFold's own per-residue confidence, from the B-factor column, normalised and asserted to be 0-100.
Relative SASAFreeSASA with a 1.4 A probe, divided by the theoretical maximum for that residue type from Tien et al. (2013), PLoS ONE 8(11):e80635. Not clipped at 1: a predicted structure can be more exposed than the reference tripeptide.
Secondary structureDSSP where mkdssp is installed, otherwise a P-SEA-style assignment from CA positions alone (Labesse et al., CABIOS 1997). The fallback agrees with DSSP on 83.7 % of 805 residues across ten diverse chains. The panel names which was used.
Variant scorelog p(mutant) - log p(wild type), the ESM-1v convention. Natural log. Negative means deleterious. The wild-type entry is exactly zero by construction.
Virtual CBGlycine has no beta carbon, so one is constructed from N, CA and C by the standard tetrahedral geometry. Validated against ubiquitin: 0.13 A mean deviation from the real CB across all 70 non-glycine residues. Glycines are never skipped.

Limitations, plainly

Colophon

Flask and Gunicorn behind nginx; three.js with no build step; ESMFold and ESM-2 on a ZeroGPU Space. The 3D letterforms are Baloo 2 Bold, converted to outlines and extruded. Written by Marc C. Deller, D.Phil. Backend running the hf_space fold backend.