ESM3
v3.4.1.post1Generate proteins with the ESM3 multimodal language model.
Give ESM3 the backbone of ubiquitin and ask for a sequence, and it returns the natural 76 residues back. Give it a sequence with a gap, a secondary structure string or a solvent accessibility pattern, and it fills in the rest. ESM3 is a generative language model that reads and writes sequence, structure and function as one set of tokens, so a partial prompt on any of those tracks is enough to start from. The model is described in Hayes et al., Science 2025.
ProteinIQ runs ESM3-open (esm3-sm-open-v1, 1.4 billion parameters) from the Biohub esm 3.4.1.post1 release. The code and the weights are MIT licensed, and Biohub asks users to follow its acceptable use policy. The larger ESM3 models are only available through Biohub's own API and are not offered here.
There are two tasks. Generate a sequence completes a prompt and returns one sequence as a FASTA file. Predict a structure generates the structure of a complete sequence and returns a PDB file with its pTM, per-residue pLDDT and PAE.
A job costs at least 8 credits. The quote grows with the decoding steps and the prompt length, because ESM3 makes one pass of the model per decoding step and each pass takes longer on a longer prompt. A short prompt at the default number of steps stays at 8 credits, and the exact quote is shown before submission.
Credits for Generate a sequence with no sequence prompt, so that every position is open:
| Prompt length | 20 steps (default) | 50 steps | 100 steps | 200 steps | 400 steps |
|---|---|---|---|---|---|
| 76 residues | 8 | 9 | 10 | 10 | 10 |
| 300 residues | 9 | 13 | 18 | 30 | 42 |
| 768 residues | 13 | 21 | 36 | 64 | 121 |
Credits for Predict a structure with a complete sequence:
| Sequence length | 20 steps (default) | 50 steps | 100 steps | 200 steps | 400 steps |
|---|---|---|---|---|---|
| 76 residues | 8 | 9 | 10 | 10 | 10 |
| 300 residues | 9 | 13 | 20 | 33 | 46 |
| 768 residues | 13 | 22 | 38 | 69 | 131 |
ESM3 lowers the number of steps to the number of positions it has to fill, and the quote follows the steps it runs. A prompt of 76 residues stops growing in price after 76 steps, and a sequence prompt with 10 open _ positions is priced as 10 steps however many are set. The secondary structure, solvent accessibility and structure prompts set the length in the same way as the sequence prompt, and a structure file counts the residues of the chain that is read. The other sampling settings and the content of the prompt do not change the price.
| Input | Used by | Description |
|---|---|---|
Sequence prompt | both tasks | One sequence as FASTA or plain text, .fasta, .fa or .txt up to 1 MiB. Write _ for each position ESM3 should fill in. Required for Predict a structure, where it must have no _. |
Structure prompt | Generate a sequence | A .pdb file up to 50 MiB, or a PDB entry fetched from RCSB. Only the first model is read. |
Secondary structure prompt | Generate a sequence | One letter per residue from G, H, I, T, E, B, S and C (the eight DSSP classes), with _ for open positions. |
Solvent accessibility prompt | Generate a sequence | One value per residue in square angstroms, separated by spaces or commas, with _ for open positions. |
Generate a sequence needs at least one of the four. The prompts that are given must describe the same number of residues. Prompts are limited to 768 residues; a 1,024-residue design does not fit on the GPU that runs ESM3 here.
The sequence alphabet is the 20 standard amino acids plus X, B, U, Z, O, the gap tokens . and -, and | as a chain break, in uppercase. The sequence stored in a structure file is not used. With no sequence prompt, the structure is the only condition, which is how ESM3 does inverse folding.
| Parameter | Type | Default | Description |
|---|---|---|---|
Task | enum | Generate a sequence | Generate a sequence generates the sequence track. Predict a structure generates the structure track. |
Structure chain | string | all | Chain of the structure prompt to read: all, detect for the first chain found, or a chain ID such as A. Used by Generate a sequence. |
| Parameter | Type | Default | Description |
|---|---|---|---|
Decoding steps | integer | 20 | Number of iterative decoding steps, at least 1. ESM3 uses fewer steps when fewer positions are masked than steps. More steps raise the price and the run time. |
Temperature | number | 1 | Sampling temperature, at least 0. |
Anneal temperature | boolean | true | Lowers the temperature over the decoding steps. |
Top-p | number | 1 | Nucleus sampling cutoff from 0 to 1. |
Unmasking schedule | enum | cosine | cosine or linear: how many positions are unmasked in each step. |
Unmasking strategy | enum | random | random or entropy: which positions are unmasked in each step. entropy unmasks the lowest-entropy positions first. |
Condition on coordinates only | boolean | true | Uses the structure prompt's coordinates instead of structure tokens as the condition. Used by Generate a sequence. |
ESM3 has no seed setting, so every run samples afresh. With Temperature at 0, Anneal temperature off and Unmasking strategy set to entropy, the same prompt gives the same result.
| Output | Task | Description |
|---|---|---|
esm3_sequence.fasta | Generate a sequence | The generated sequence, as one FASTA record. |
esm3_structure.pdb | Predict a structure | The predicted structure, written by ESM3. Opens in the structure viewer. |
esm3_pae.npy | Predict a structure | The predicted aligned error matrix as returned by ESM3, saved as a NumPy array. |
esm3_run.json | both | The settings, the source version and weights revision, SHA-256 hashes of the prompts, and every track ESM3 returned, including per-residue pLDDT. |
run.log | both | The run log. |
The Data table has one row per job with the task, the number of residues, the sequence, the returned secondary structure, pTM, mean pLDDT, the decoding steps and the temperature.
A generated sequence has no score of its own. The prompt positions that were not masked come back unchanged, and everything else is a sample from the model. Judge it the way you would any designed sequence: fold it, and compare the fold with what the prompt asked for. Run Predict a structure on the returned sequence, then check the prompted region against the structure you meant to keep.
Sampling settings decide how far the samples spread. At the defaults, Temperature 1 with annealing and random unmasking gives varied sequences from run to run, which suits design. For inverse folding of a native backbone, ESM3 can land on the natural sequence: ubiquitin (1UBQ chain A) returned its native 76 residues at 8 steps, both at temperature 1 and at 0. Run the job several times to collect different candidates.
For a predicted structure, three values describe confidence. The pTM is a single score for the whole chain; see ipTM and pTM. The per-residue pLDDT is reported by ESM3 between 0 and 1, not 0 to 100, so multiply by 100 to compare it with the ranges in the pLDDT guide. The PAE matrix in esm3_pae.npy is read as described in the PAE guide; for the 76-residue ubiquitin it has shape 1 by 78 by 78, with two extra positions for the start and end tokens of the model input.
Ubiquitin predicted with 8 steps gave a pTM between 0.80 and 0.88 and a mean pLDDT between 0.95 and 0.97 across repeated runs. A 768-residue repeat of ubiquitin, which is not a real protein, gave a pTM of 0.52, a reminder that these scores describe the model's confidence and not whether a sequence is natural.
ESM3-open is the small public model. Its predictions are not a replacement for AlphaFold2 or ESMFold when the structure itself is the goal, and designed sequences need experimental testing.
esm repository and the ESM3 READMEGenerate de novo protein sequences from plain-text prompts with sampling controls.
All-atom SE(3)-equivariant diffusion for unconditional generation, motif scaffolding, and binder design.
Design all-atom protein binders with controlled target sites, lengths, and interaction parameters.
Design proteins from a text description
Family-conditioned protein sequence generation from FASTA, A2M, or A3M input
Generate protein sequences de novo, scaffold fixed motifs, or inpaint selected regions.
Generate novel drug-like molecules in protein binding pockets using AI-powered structure-based design.
Generate docking poses, drug-like molecules, and peptides inside protein binding pockets with PocketXMol.
Design antibody CDRs with Proteo-R1 reasoning, diffusion, and optional framework inpainting.
Design protein structures for de novo scaffolds, binders, motifs, and symmetric oligomers.