Skip to main content
Chai-1 is a diffusion-based protein structure prediction model that generates high-quality 3D structures. It supports optional ESM embeddings, MSA server queries, and template-based modeling.

Quick example

Methods

.fold()

Predict the 3D structure of a single top-level sequence entry.
str | Sequence[str]
required
A single amino acid sequence string or a one-item sequence containing a single amino acid sequence. Use ":" to separate chains in a multimer (e.g., "CHAIN_A:CHAIN_B"). Chai-1 currently supports exactly one top-level input per call.
dict | None
default:"None"
Per-call configuration overrides. Only dynamic config keys can be set here — static keys raise ValueError. See Configuration.
Returns: Chai1Output (see Output below)

Output

The Chai1Output dataclass returned by .fold().

Always included

PredictionMetadata
Prediction metadata with timing information. See PredictionMetadata.
list[AtomArray] | None
List of Biotite AtomArray objects. Always generated.

Confidence metrics

list[np.ndarray] | None
Predicted aligned error matrices (one per diffusion sample).
list[np.ndarray] | None
Predicted distance error matrices (one per diffusion sample).
list[np.ndarray] | None
Per-residue pLDDT scores (one array per diffusion sample).
list[np.ndarray] | None
Complex pTM scores.
list[np.ndarray] | None
Interface pTM scores.
list[np.ndarray] | None
Per-chain-pair interface pTM scores.

Structure representations

list[str] | None
mmCIF-formatted structure strings. Only generated when include_fields contains "cif" or "*".

Configuration

These keys can be set via config={} at initialization or options={} per call (unless marked static).

Multimer prediction

Separate chains with ":" in the sequence string:
Chai-1 currently supports only a single batch entry (one sequence or one multimer). If you pass a list of sequences, it must contain exactly one element.