Chai-1¶
Multi-modal biomolecular structure prediction model capable of predicting 3D structures of proteins, DNA, RNA, ligands, glycans, and their complexes.
License: Apache-2.0 · Molecules: protein, dna, rna, ligand, complex · Tasks: structure_prediction
Actions: fold · Variants: 1
At a glance¶
Use it when
- You need to predict the 3D structure of a multi-molecule complex (protein-ligand, protein-DNA, protein-RNA, or any combination) and no experimental structure is available
- You are performing protein-ligand docking in early drug discovery where the target protein structure is unknown -- Chai-1 predicts both the protein structure and ligand binding pose simultaneously
- You need to model protein-nucleic acid interactions (transcription factor-DNA binding, CRISPR-Cas complexes, RNA-binding protein complexes) with atomic-level detail
- You want to explore multiple binding modes by generating diverse structure samples from different diffusion seeds and ranking by confidence
- You need an open-source (Apache-2.0) multi-molecule structure predictor as an alternative to the closed-source AlphaFold3 server
- You are studying antibody-antigen interactions and need to predict epitope-paratope contacts for therapeutic antibody development
Strengths
- True multi-modal co-folding: jointly predicts structure of protein + DNA + RNA + small-molecule ligand complexes (up to 5 entities) in a single inference pass, eliminating the need for separate docking tools
- Protein-ligand docking via SMILES input enables simultaneous structure prediction and binding pose prediction without requiring a pre-existing protein structure -- valuable for early-stage drug discovery
- Apache-2.0 open-source license with commercially supported development from Chai Discovery, providing both community access and enterprise-grade support options
- Diffusion-based architecture generates multiple diverse structure samples from different random seeds, enabling exploration of alternative binding modes and conformational states
- Supports optional ESM embeddings (use_esm_embeddings=True) to improve prediction quality for proteins with shallow MSA coverage, bridging single-sequence and MSA-based approaches
- Handles nucleic acid complexes natively -- protein-DNA (transcription factor binding) and protein-RNA (ribosome, CRISPR-Cas) -- covering a broad range of biological interaction types
- Competitive with AlphaFold3 on cross-docking benchmarks (60-61% accuracy), representing the open-source state of the art for multi-molecule structure prediction
- Supports proteins up to 1024 residues and nucleic acids up to 3072 bases per entity, covering most biologically relevant complex sizes
Limitations
- Requires A100 80GB GPU with 64GB system RAM -- the most resource-intensive deployment tier, limiting accessibility for smaller research groups
- No binding affinity prediction -- produces structures and confidence scores but cannot estimate binding energies; a dedicated affinity predictor is required for that
- Single-sequence mode (without MSA or ESM embeddings) substantially reduces prediction accuracy, especially for proteins lacking close homologs in training data
- Membrane protein predictions are weakened by training primarily on soluble protein structures -- no lipid bilayer context is modeled
- Very short peptides (< 10 residues) lack sufficient structural context for reliable binding pose prediction within the diffusion framework
- Complex macrocyclic and metalloorganic ligands may produce poor binding poses due to limited representation in training data
- Produces static conformations from diffusion sampling -- does not model conformational ensembles or intrinsically disordered regions
- No dedicated interface confidence metric such as ipSAE -- interface quality must be assessed from general pTM/pLDDT scores
Reach for something else when
- You only need single-chain protein structure prediction -- ESMFold is orders of magnitude faster for single proteins
- You need binding affinity predictions alongside structure -- Chai-1 predicts structures and confidence scores but does not estimate binding affinities
- You need de novo protein design or sequence generation -- Chai-1 is prediction-only; use BoltzGen for generative design tasks
- Your sequences exceed 1024 residues per protein chain or 3072 bases per nucleic acid -- consider RF3 or breaking the problem into subunits
- You need conformational ensemble modeling for intrinsically disordered proteins -- Chai-1 produces single static structures
- You need pocket-constrained docking where the binding site is fixed in advance -- Chai-1 performs unconstrained structure prediction and does not accept explicit pocket constraints
- GPU resources are limited (no A100 80GB available) -- use ESMFold for single-chain proteins or RF3 on A100 40GB for multi-molecule targets
Alternatives
| Model | Better when | Worse when |
|---|---|---|
| rf3 | RF3 supports template conditioning, cyclic peptides, and CCD codes for non-canonical residues; newest architecture with potentially highest accuracy on multi-molecule benchmarks. | Chai-1 has more published cross-docking benchmarks; different training data may favor different target classes; Chai-1's ESM embedding integration is a unique feature. |
| esmfold | 100-1000x faster single-sequence inference (seconds vs minutes) on A10G GPU; no MSA required; dramatically lower cost per prediction. | Protein-only with lower accuracy; no multi-molecule support; cannot model binding interactions with DNA/RNA/ligand molecules that Chai-1 co-folds. |
API & schema¶
Call an action with POST /api/v1/{slug}/{action} — the request envelope is {"items": [...], "params": {...}} and a success returns {"results": [...]}. See the HTTP API page for the base URL, error shape, and full contract.
fold¶
Call it
curl -X POST http://127.0.0.1:8000/api/v1/chai1/fold \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"molecules": [
{
"name": "string",
"type": "protein"
}
]
}
]
}'
Request — Chai1FoldRequest
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
params |
Chai1FoldRequestParams | no | Optional parameters controlling this action (defaults are used when omitted). | |
items |
list[Chai1FoldRequestInput] | yes | items 1–1 | Batch of inputs to process in a single request. |
Nested types
Chai1AlignmentDatabase
Allowed values: mgnify, small_bfd, uniref90
Chai1EntityType
Allowed values: protein, DNA, RNA, ligand, polymer_hybrid, water, unknown
Chai1FoldRequestInput
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
molecules |
list[Chai1Molecule] | yes | List of molecules forming the complex to predict (up to 5 entities per request). |
Chai1FoldRequestParams
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
num_trunk_recycles |
integer | no | ≥1; ≤10; default 3 |
Number of trunk recycling iterations; more recycles improve accuracy at the cost of inference time. |
num_diffusion_timesteps |
integer | no | ≥50; ≤200; default 200 |
Number of diffusion denoising timesteps; higher values improve structure quality at the cost of inference time. |
num_diffn_samples |
integer | no | ≥1; ≤5; default 1 |
Number of candidate structures to generate per input complex (1–5); more samples increase output diversity. |
use_esm_embeddings |
boolean | no | default True |
Whether to use ESM protein language model embeddings to enrich sequence representations. |
seed |
integer | no | default 42 |
Random seed for reproducible sampling. |
include |
list[Chai1ScoreOptions] | no | Confidence-score outputs to include in the response. Currently disabled — pae/plddt are not returned due to large payload size. Pass an empty list or omit this field. |
Chai1Molecule
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
name |
string | yes | Human-readable name identifying this molecule within the complex (used in FASTA headers and MSA labels). | |
type |
Chai1EntityType | yes | Molecule type (protein, DNA, RNA, ligand, polymer_hybrid, water, or unknown). | |
sequence |
string | null | no | Amino-acid, nucleotide (DNA/RNA), or SMILES sequence for the molecule; validated against the declared entity type. | |
smiles |
string | null | no | Ligand structure as a SMILES string. | |
alignment |
object | null | no | Pre-computed MSA alignments for this protein molecule; keys are database names, values are A3M-format strings. |
Chai1ScoreOptions
Allowed values: pae, plddt
Raw JSON Schema
{
"$defs": {
"Chai1AlignmentDatabase": {
"enum": [
"mgnify",
"small_bfd",
"uniref90"
],
"title": "Chai1AlignmentDatabase",
"type": "string"
},
"Chai1EntityType": {
"enum": [
"protein",
"DNA",
"RNA",
"ligand",
"polymer_hybrid",
"water",
"unknown"
],
"title": "Chai1EntityType",
"type": "string"
},
"Chai1FoldRequestInput": {
"additionalProperties": false,
"properties": {
"molecules": {
"description": "List of molecules forming the complex to predict (up to 5 entities per request).",
"items": {
"$ref": "#/$defs/Chai1Molecule"
},
"title": "Molecules",
"type": "array"
}
},
"required": [
"molecules"
],
"title": "Chai1FoldRequestInput",
"type": "object"
},
"Chai1FoldRequestParams": {
"additionalProperties": false,
"properties": {
"num_trunk_recycles": {
"default": 3,
"description": "Number of trunk recycling iterations; more recycles improve accuracy at the cost of inference time.",
"maximum": 10,
"minimum": 1,
"title": "Num Trunk Recycles",
"type": "integer"
},
"num_diffusion_timesteps": {
"default": 200,
"description": "Number of diffusion denoising timesteps; higher values improve structure quality at the cost of inference time.",
"maximum": 200,
"minimum": 50,
"title": "Num Diffusion Timesteps",
"type": "integer"
},
"num_diffn_samples": {
"default": 1,
"description": "Number of candidate structures to generate per input complex (1\u20135); more samples increase output diversity.",
"maximum": 5,
"minimum": 1,
"title": "Num Diffn Samples",
"type": "integer"
},
"use_esm_embeddings": {
"default": true,
"description": "Whether to use ESM protein language model embeddings to enrich sequence representations.",
"title": "Use Esm Embeddings",
"type": "boolean"
},
"seed": {
"default": 42,
"description": "Random seed for reproducible sampling.",
"title": "Seed",
"type": "integer"
},
"include": {
"description": "Confidence-score outputs to include in the response. Currently disabled \u2014 pae/plddt are not returned due to large payload size. Pass an empty list or omit this field.",
"items": {
"$ref": "#/$defs/Chai1ScoreOptions"
},
"title": "Include",
"type": "array",
"default": []
}
},
"title": "Chai1FoldRequestParams",
"type": "object"
},
"Chai1Molecule": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Human-readable name identifying this molecule within the complex (used in FASTA headers and MSA labels).",
"title": "Name",
"type": "string"
},
"type": {
"$ref": "#/$defs/Chai1EntityType",
"description": "Molecule type (protein, DNA, RNA, ligand, polymer_hybrid, water, or unknown)."
},
"sequence": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Amino-acid, nucleotide (DNA/RNA), or SMILES sequence for the molecule; validated against the declared entity type.",
"title": "Sequence"
},
"smiles": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Ligand structure as a SMILES string.",
"title": "Smiles"
},
"alignment": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"propertyNames": {
"$ref": "#/$defs/Chai1AlignmentDatabase"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Pre-computed MSA alignments for this protein molecule; keys are database names, values are A3M-format strings.",
"title": "Alignment"
}
},
"required": [
"name",
"type"
],
"title": "Chai1Molecule",
"type": "object"
},
"Chai1ScoreOptions": {
"enum": [
"pae",
"plddt"
],
"title": "Chai1ScoreOptions",
"type": "string"
}
},
"additionalProperties": false,
"properties": {
"params": {
"$ref": "#/$defs/Chai1FoldRequestParams",
"description": "Optional parameters controlling this action (defaults are used when omitted)."
},
"items": {
"description": "Batch of inputs to process in a single request.",
"items": {
"$ref": "#/$defs/Chai1FoldRequestInput"
},
"maxItems": 1,
"minItems": 1,
"title": "Items",
"type": "array"
}
},
"required": [
"items"
],
"title": "Chai1FoldRequest",
"type": "object"
}
Response — Chai1FoldResponse
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
results |
list[list[Chai1FoldResponseResult]] | yes | Per-input results, returned in the same order as the request items. |
Nested types
Chai1FoldResponseResult
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
cif |
string | yes | Predicted structure in mmCIF format. | |
pae |
list[list[number]] | null | no | Predicted aligned error (PAE) matrix, in Ångströms. | |
plddt |
list[number] | null | no | Per-residue pLDDT confidence score (0–100; higher is more confident). |
Raw JSON Schema
{
"$defs": {
"Chai1FoldResponseResult": {
"exclude_none": true,
"exclude_unset": true,
"properties": {
"cif": {
"description": "Predicted structure in mmCIF format.",
"title": "Cif",
"type": "string"
},
"pae": {
"anyOf": [
{
"items": {
"items": {
"type": "number"
},
"type": "array"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Predicted aligned error (PAE) matrix, in \u00c5ngstr\u00f6ms.",
"title": "Pae"
},
"plddt": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Per-residue pLDDT confidence score (0\u2013100; higher is more confident).",
"title": "Plddt"
}
},
"required": [
"cif"
],
"title": "Chai1FoldResponseResult",
"type": "object"
}
},
"properties": {
"results": {
"description": "Per-input results, returned in the same order as the request items.",
"items": {
"items": {
"$ref": "#/$defs/Chai1FoldResponseResult"
},
"type": "array"
},
"title": "Results",
"type": "array"
}
},
"required": [
"results"
],
"title": "Chai1FoldResponse",
"type": "object"
}
Usage¶
One-line summary: Multi-modal biomolecular structure prediction model capable of predicting 3D structures of proteins, DNA, RNA, ligands, glycans, and their complexes.
Overview¶
Chai-1 is a multi-modal foundation model for molecular structure prediction developed by Chai Discovery. It predicts the joint 3D structure of complexes containing proteins, nucleic acids (DNA/RNA), small molecule ligands, and other biomolecules from their sequences.
Chai-1 achieves accuracy competitive with AlphaFold3 on structure prediction benchmarks while being fully open-source under the Apache-2.0 license. Its key innovation is the ability to handle heterogeneous molecular complexes in a single forward pass, combining diffusion-based structure generation with transformer-based sequence processing.
The primary use case is predicting the 3D atomic coordinates of biomolecular complexes, returned in mmCIF format. This is valuable for drug discovery (protein-ligand docking), understanding molecular interactions, and structural biology research.
Architecture¶
| Property | Value |
|---|---|
| Architecture | Transformer + Diffusion |
| Input modalities | Sequence, SMILES, MSA |
| Input molecule types | Protein, DNA, RNA, Ligand, Complex |
| Task | Structure prediction |
| Output | 3D atomic coordinates (mmCIF) |
| Variants | Single variant (no size options) |
Chai-1 uses a trunk network with recycling iterations followed by a diffusion module that generates 3D coordinates. ESM embeddings can optionally be used to enrich the protein sequence representations.
Capabilities & Limitations¶
CAN be used for: - Predicting 3D structures of single-chain proteins (up to 1024 residues) - Predicting structures of protein-protein complexes - Predicting protein-DNA and protein-RNA complexes (nucleic acids up to 3072 bases) - Predicting protein-ligand binding poses (ligands specified via SMILES, up to 128 characters) - Multi-component complexes with up to 5 molecular entities - Incorporating pre-computed MSA alignments (UniRef90, MGnify, small_bfd) for improved accuracy
CANNOT be used for: - Protein sequences longer than 1024 residues - DNA/RNA sequences longer than 3072 bases - Ligand SMILES strings longer than 128 characters - More than 5 molecular entities per complex - Batch processing (batch size is fixed at 1) - Dynamics or conformational ensembles (produces static structures)
Other considerations:
- Inference is stochastic: different seeds or diffusion samples produce different structure predictions
- The num_diffn_samples parameter controls how many candidate structures are generated (1-5)
- More trunk recycles and diffusion timesteps improve accuracy at the cost of longer inference time
- PAE and pLDDT confidence scores are currently disabled in the response due to large payload sizes
Usage Examples¶
from models.chai1.schema import (
Chai1Molecule,
Chai1EntityType,
Chai1FoldRequest,
Chai1FoldRequestInput,
Chai1FoldRequestParams,
)
# Predict structure of a protein-ligand complex
request = Chai1FoldRequest(
params=Chai1FoldRequestParams(
num_trunk_recycles=3,
num_diffusion_timesteps=200,
num_diffn_samples=1,
seed=42,
),
items=[
Chai1FoldRequestInput(
molecules=[
Chai1Molecule(
name="target_protein",
type=Chai1EntityType.PROTEIN,
sequence="MKTVRQERLKSIVRILERSKEPVSG",
),
Chai1Molecule(
name="drug_molecule",
type=Chai1EntityType.LIGAND,
smiles="CC(=O)Oc1ccccc1C(=O)O",
),
]
)
],
)
# Protein-DNA complex with MSA alignment
request = Chai1FoldRequest(
items=[
Chai1FoldRequestInput(
molecules=[
Chai1Molecule(
name="transcription_factor",
type=Chai1EntityType.PROTEIN,
sequence="MKTVRQERLKSIVRILERSKEPVSG",
alignment={
"uniref90": ">query\nMKTVRQERLKSIVRILERSKEPVSG\n>hit1\nMKTVRQERLKSIVRILERSKEPVSG\n",
},
),
Chai1Molecule(
name="dna_target",
type=Chai1EntityType.DNA,
sequence="ATCGATCGATCG",
),
]
)
],
)
Confidence Metrics¶
| Metric | Range | Interpretation |
|---|---|---|
| pLDDT | 0-100 | Per-residue confidence. >90: high confidence, 70-90: moderate, <70: low confidence / disordered |
| PAE | 0-31.75 A | Predicted Aligned Error between residue pairs. Lower is better. <5 A indicates confident relative positioning |
Note: PAE and pLDDT scores are currently disabled in the API response due to large payload sizes. The include parameter is accepted but forced to an empty list.
Architecture & training¶
Architecture¶
Model Type & Innovation¶
Chai-1 is a diffusion-based generative model for predicting 3D biomolecular structures. It combines a transformer trunk network with a diffusion module to generate atomic coordinates from sequences of proteins, nucleic acids, and small molecules.
The key innovation is multi-modal structure prediction: unlike earlier models that handle only proteins (AlphaFold2) or require separate pipelines for different molecule types, Chai-1 processes heterogeneous molecular complexes in a unified architecture. It supports proteins, DNA, RNA, ligands, glycans, and their combinations in a single forward pass.
The architecture follows a trunk-and-diffusion design: 1. Trunk network: Processes input features (sequence, MSA, optional ESM embeddings) through multiple transformer layers with recycling iterations 2. Diffusion module: Generates 3D coordinates through iterative denoising from random noise, conditioned on trunk representations 3. Confidence head: Predicts pLDDT and PAE quality metrics for the generated structure
Parameters & Layers¶
| Component | Details |
|---|---|
| Architecture | Transformer trunk + Diffusion structure module |
| Trunk recycles | 3 (default, configurable 1-10) |
| Trunk samples | 5 (used in evaluation) |
| Diffusion timesteps | 200 (default, configurable 50-200) |
| Diffusion samples | 5 (used in evaluation, total 25 structures per prediction) |
| ESM embeddings | 3 billion parameter protein language model (per-residue embeddings) |
| Output format | mmCIF with full atomic coordinates |
| Training compute | 128 NVIDIA A100 GPUs, batch size 128, 30 days |
The paper notes that Chai-1's architecture "largely follows" AlphaFold3 (Abramson et al., 2024) with key additions including language model embedding input tracks and constraint features. Exact parameter counts are not published in the technical report.
Training Data¶
| Property | Details |
|---|---|
| Dataset | PDB structures + AlphaFoldDB predicted structures |
| Training data cutoff | 2021-01-12 (PDB release date) |
| Molecule types | Proteins, DNA, RNA, small molecules, covalent modifications |
| MSA databases | UniRef90, UniProt, MGnify, UniClust30+BFD (via OpenProteinSet or jackhmmer) |
| Template database | PDB70 (same 2021-01-12 cutoff) |
| Evaluation set | PDB structures released 2022-05-01 to 2023-01-12, non-NMR, resolution < 4.5 A, <= 2048 tokens |
| Filtering | Low-homology: monomers and interfaces with < 40% sequence identity to training set |
Loss Function & Objective¶
Chai-1 uses a multi-component loss combining:
- Diffusion loss: Denoising score matching on atomic coordinates
- Bond loss: Enforces chemical validity of predicted bond geometries (has a dedicated bond_loss_input_proj component)
- Confidence loss: Trains the confidence head to predict pLDDT and PAE
- Auxiliary losses: Additional structural constraints
The paper states the training strategy "largely follows" AlphaFold3 (Abramson et al., 2024). Exact loss formulations and weightings are not separately detailed in the Chai-1 technical report; the key difference is that a single model is trained (rather than separate models for separate evaluations) and constraint features (pocket, contact, docking) are each included independently with 10% probability during training.
Tokenization / Input Processing¶
Input molecules are specified as FASTA-like entries with entity type annotations:
- Proteins: Standard single-letter amino acid codes (ACDEFGHIKLMNPQRSTVWY). Maximum 1024 residues.
- DNA: Standard nucleotide codes (ACGT). Maximum 3072 bases.
- RNA: Standard nucleotide codes (ACGU). Maximum 3072 bases.
- Ligands: SMILES notation. Maximum 128 characters. Validated using RDKit.
- MSA alignments: Optional A3M format alignments from UniRef90, MGnify, or small_BFD databases, provided for protein entities only.
Multi-entity complexes are encoded as multiple FASTA entries with type headers (e.g., >protein|name=chain_A). Up to 5 molecular entities per complex.
Performance & Benchmarks¶
Published Benchmarks¶
Chai-1 demonstrates competitive performance with AlphaFold3 across structure prediction tasks. Key benchmark categories include:
Protein-Ligand Prediction (PoseBusters V1, n=427)¶
| Method | Ligand RMSD <= 2 A success rate |
|---|---|
| Chai-1 | 77.05% |
| AlphaFold3 | 76.34% |
| RoseTTAFold All-Atom | 42% |
| Chai-1 (docking mode, apo structure provided) | 81.20% |
Protein-Protein Complexes (low-homology eval set, n=929 interface clusters)¶
| Method | DockQ success rate (DockQ > 0.23) |
|---|---|
| Chai-1 (with MSA) | 0.751 (95% CI: 0.723-0.778) |
| Chai-1 (no templates) | 0.743 |
| Chai-1 (single-sequence) | 0.698 (95% CI: 0.668-0.728) |
| AlphaFold 2.3 multimer | 0.677 (95% CI: 0.646-0.706) |
Antibody-Protein Interfaces (n=122 clusters)¶
| Method | DockQ success rate (DockQ > 0.23) |
|---|---|
| Chai-1 (with MSA) | 0.529 (95% CI: 0.438-0.620) |
| Chai-1 (single-sequence) | 0.479 (95% CI: 0.388-0.570) |
| AlphaFold 2.3 multimer | 0.380 (95% CI: 0.298-0.463) |
Protein Monomer Prediction¶
| Method | Ca-LDDT (low-homology eval, n=271 clusters) | LDDT (CASP15, n=69 targets) |
|---|---|---|
| Chai-1 (with MSA) | 0.915 (95% CI: 0.907-0.922) | 0.849 |
| Chai-1 (single-sequence) | 0.852 (95% CI: 0.834-0.867) | -- |
| AlphaFold 2.3 multimer | 0.903 (95% CI: 0.895-0.911) | 0.843 |
| ESM3 (98B param) | -- | 0.801 |
On hard CASP15 targets (AF2.3 LDDT < 0.75, n=14), Chai-1 achieves 0.643 vs 0.552 for AF2.3.
BioLM Verification Results¶
The BioLM implementation uses the official chai-lab==0.6.1 package directly, so inference results are numerically identical to the reference implementation given the same inputs and random seed. Integration tests compare outputs against golden fixtures with RMSD thresholds to catch regressions.
Comparison to Alternatives¶
| Model | Strengths | Limitations | When to prefer |
|---|---|---|---|
| Chai-1 | Multi-modal (protein + DNA/RNA + ligand), open-source, single-pass | High GPU requirements (A100 80GB) | Heterogeneous complexes, open-source requirement |
| Boltz-1 | Open-source structure prediction | Different accuracy/speed tradeoffs | Alternative open-source option |
| AlphaFold2 | Well-established, MSA-dependent accuracy | Proteins only, no ligands/nucleic acids | Protein-only monomer/multimer tasks |
| ESMFold | Fast, single-sequence (no MSA needed) | Proteins only, lower accuracy on hard targets | Fast protein structure screening |
Error Bars & Confidence¶
- Stochastic outputs: different random seeds produce different structures. Run multiple samples (
num_diffn_samplesup to 5) and select by confidence score. - Confidence varies with input complexity: simple monomers tend to have higher pLDDT than large multi-chain complexes.
- Proteins with close homologs in training data produce more confident predictions.
Strengths & Limitations¶
Pros¶
- Handles heterogeneous biomolecular complexes (protein + DNA/RNA + ligand) in a single forward pass
- Fully open-source (Apache-2.0) with publicly available weights
- Competitive accuracy with AlphaFold3 on multiple benchmarks
- Supports optional MSA input for improved protein structure accuracy
- Integrates ESM protein language model embeddings
- Generates multiple candidate structures per run for ensemble analysis
Cons¶
- High resource requirements: requires A100 80GB GPU and 64 GB system memory
- Slow inference: 30-120+ seconds per prediction depending on complex size
- Batch size limited to 1 due to memory constraints
- Maximum protein length of 1024 residues (shorter than some alternatives)
- PAE and pLDDT confidence scores currently disabled in the API
- Stochastic outputs require multiple samples for robust predictions
Known Failure Modes¶
- Very large complexes (approaching all input limits simultaneously) may cause GPU OOM errors
- Ligands with complex ring systems or unusual chemistry may produce poor binding poses
- Intrinsically disordered regions will have low pLDDT scores and unreliable coordinates
- Sequences with no homologs in training data may produce low-quality predictions
- The model may hallucinate contacts between molecules that do not actually interact
Implementation Details¶
Inference Pipeline¶
Request
+-- 1. Validate input molecules (sequence/SMILES/type checks)
+-- 2. Convert molecules to FASTA format with type headers
+-- 3. Process MSA alignments (if provided)
| +-- Write A3M files per database per protein
| +-- Merge A3M files using chai_lab utility
+-- 4. Run chai_lab.chai1.run_inference on GPU
| +-- Trunk network with recycling (N iterations)
| +-- Diffusion module (M timesteps)
| +-- Generate K candidate structures
+-- 5. Read generated mmCIF files from output directory
+-- 6. Package CIF content into response
+-- 7. Clean up temporary files
Memory & Compute Profile¶
| Parameter Setting | Approximate Inference Time | Notes |
|---|---|---|
| Default (3 recycles, 200 steps, 1 sample) | 30-60s | Standard quality |
| Fast (1 recycle, 50 steps, 1 sample) | 10-20s | Lower quality, useful for screening |
| High quality (10 recycles, 200 steps, 5 samples) | 120-300s | Best quality, multiple candidates |
GPU memory usage scales with the total number of tokens (residues + bases + ligand atoms) in the complex. The A100 80GB allocation provides headroom for the maximum supported input sizes.
Determinism & Reproducibility¶
torch.manual_seed(42): Set during CPU snapshottorch.cuda.manual_seed_all(42): Set during GPU setup- Configurable
seedparameter per request - Diffusion sampling is inherently stochastic; same seed produces same output
- Different
num_diffn_samplesvalues will produce different structures even with the same seed
Caching Behavior¶
- Response caching: Handled by the
modal_endpointdecorator; responses are cached per unique input + parameter combination. - R2 caching: Model weights are cached in R2 with fallback to the chai-lab library's native download mechanism.
- Cache key composition: Determined by the
modal_endpointdecorator based on request content.
Versions & Changelog¶
| Version | Date | Changes |
|---|---|---|
| v1 | 2024 | Initial implementation using chai-lab v0.6.1 |
Biology¶
Molecule Coverage¶
Primary Molecule Type(s)¶
Chai-1 is designed for multi-modal biomolecular structure prediction covering:
- Proteins: Globular proteins, enzymes, antibodies, and peptides from all domains of life. Handles single chains up to 1024 residues and multi-chain complexes. Standard 20 canonical amino acids only.
- DNA: Double-stranded and single-stranded DNA up to 3072 bases. Useful for modeling protein-DNA interactions such as transcription factor binding.
- RNA: Single-stranded and structured RNA up to 3072 bases. Supports modeling of protein-RNA complexes, riboswitches, and aptamer interactions.
- Small molecule ligands: Drug-like molecules and cofactors specified via SMILES notation. Enables protein-ligand docking and binding pose prediction.
- Complexes: Heterogeneous assemblies combining any of the above molecule types (up to 5 entities per complex).
Cross-Applicability¶
| Molecule Type | Applicability | Evidence | Caveats |
|---|---|---|---|
| Globular proteins | High | Primary training target; competitive with AlphaFold3 | Best with MSA; single-sequence mode less accurate |
| Antibodies | High | Protein structure prediction applies to antibody Fv regions | CDR loop modeling accuracy varies; no antibody-specific training |
| Enzymes | High | Protein-ligand docking enables active site modeling | Does not predict catalytic mechanism or transition states |
| Peptides | Moderate | Short sequences within the 1024 residue limit | Very short peptides (<10 residues) may lack structural context |
| Membrane proteins | Moderate | Can predict structure but trained primarily on soluble proteins | No lipid bilayer context; transmembrane regions may be less accurate |
| Nucleic acid complexes | High | Explicit support for DNA and RNA entities | Long nucleic acids (>3072 bases) not supported |
| Drug-like ligands | High | SMILES input with RDKit validation | Complex macrocyclic or metalloorganic ligands may produce poor poses |
Biological Problems Addressed¶
Structure Prediction of Biomolecular Complexes¶
Determining the three-dimensional structure of biomolecular complexes is fundamental to understanding how biological molecules interact. Experimental methods like X-ray crystallography, cryo-EM, and NMR spectroscopy are time-consuming, expensive, and not always feasible for all complex types.
Chai-1 addresses this by computationally predicting the 3D atomic coordinates of multi-component complexes from sequence information alone. Given protein sequences, nucleic acid sequences, and/or small molecule SMILES strings, it generates plausible 3D structures in mmCIF format.
The output represents a predicted static structure showing the spatial arrangement of all atoms, including how the different molecular components contact each other. This is directly useful for understanding binding interfaces, identifying key interacting residues, and guiding experimental design.
Protein-Ligand Docking¶
Understanding how small molecules (drugs, cofactors, metabolites) bind to protein targets is central to drug discovery. Traditional computational docking methods require a known protein structure and use physics-based scoring functions that can be inaccurate.
Chai-1 performs structure prediction and docking simultaneously: given a protein sequence and a ligand SMILES string, it predicts the complex structure including the ligand binding pose. This is particularly valuable in early-stage drug discovery when: - No experimental structure of the target protein exists - The binding site location is unknown - Multiple binding modes need to be explored (via multiple diffusion samples)
Protein-Nucleic Acid Interactions¶
Many biological processes depend on protein-DNA and protein-RNA interactions: transcription factor binding, CRISPR-Cas systems, ribosomal machinery, and RNA-binding protein regulation. Predicting these interaction structures helps understand gene regulation and RNA biology.
Chai-1 can model protein-nucleic acid complexes by accepting both protein and DNA/RNA sequences as input entities. The predicted structure reveals the binding interface, including which protein residues contact which nucleotide bases.
Antibody-Antigen Modeling¶
Therapeutic antibody development requires understanding how antibody variable regions interact with target antigens. Chai-1 can predict antibody-antigen complex structures, providing insights into: - Epitope identification (which antigen residues are contacted) - Paratope characterization (which antibody residues drive binding) - Binding mode comparison across antibody candidates
Applied Use Cases¶
Chai-1 has been evaluated in several independent benchmarking studies since its release:
- Cross-docking benchmark (PoseX, 2025): A large-scale evaluation of 25 structure prediction methods found co-folding approaches including Chai-1 converge at approximately 60–61% success on cross-docking tasks, outperforming classical physics-based docking tools.
- GPCR-peptide binding (2025): Benchmarking on 124 GPCR ligands with 1,240 decoys compared Chai-1 against AlphaFold2, AlphaFold3, and ESMFold for peptide binding prediction.
- Flexible protein-ligand docking review (2025): A systematic review positions Chai-1 among leading deep learning methods for flexible receptor docking in drug discovery pipelines.
- SARS-CoV-2 Mac1 prospective evaluation (2025): Testing on 557 Mac1-ligand poses showed Chai-1 achieves >50% under 2 Å RMSD, comparable to AlphaFold3 and Boltz-2.
- FoldBench comprehensive benchmark (2025): Evaluation across 1,522 assemblies and 9 tasks (protein-ligand, protein-RNA, protein-DNA, antibody-antigen) demonstrates Chai-1's breadth across complex types.
- Protein-peptide docking (PepPCBench, 2025): Benchmarked on 261 protein-peptide complexes (5–30 residues) for docking accuracy and scoring alongside AlphaFold3, HelixFold3, and RFAA.
Chai-1's multi-modal capability enables several practical workflows:
- Virtual screening: Dock libraries of small molecules against a protein target to identify candidate binders
- Binding site identification: Predict where a ligand binds on a protein of unknown structure
- Protein engineering: Model how mutations affect complex formation with binding partners
- Structural biology: Generate starting models for molecular replacement in crystallography or for fitting into cryo-EM density maps
Related Models¶
Predecessor Models¶
- AlphaFold2 (2021): Revolutionized protein structure prediction but limited to proteins (no ligands, DNA/RNA). Required MSA input. Chai-1 extends this to multi-modal complexes.
- RoseTTAFold (2021): Alternative protein structure prediction approach. Single-molecule only.
Complementary Models¶
- ESM2: Protein language model whose embeddings can be used by Chai-1 (
use_esm_embeddings=True) to improve structure prediction quality, especially for proteins without good MSA coverage. - RF3: Alternative open-source AF3-like structure prediction model in this catalog. Can be used as a second opinion or for ensemble predictions.
Alternative Models¶
| Alternative | Advantage over Chai-1 | Disadvantage |
|---|---|---|
| AlphaFold3 | Potentially higher accuracy on some benchmarks | Not open-source; API access only |
| Boltz-1 | Different model architecture; useful for ensemble | May differ in accuracy on specific complex types |
| ESMFold | Much faster inference (~1 second); no MSA needed | Proteins only; lower accuracy on hard targets |
| AlphaFold2 | Well-established; extensive validation literature | Proteins only; no ligand/DNA/RNA support |
Biological Background¶
Biomolecular Structure¶
Biological molecules -- proteins, DNA, RNA, and small molecules -- carry out their functions through specific three-dimensional arrangements of atoms. The spatial structure determines which molecules can interact, how enzymes catalyze reactions, how drugs bind to targets, and how genetic information is read and regulated.
Proteins are chains of amino acids that fold into complex 3D shapes. The structure hierarchy includes: - Primary: Linear amino acid sequence - Secondary: Local folding patterns (alpha-helices, beta-sheets) - Tertiary: Overall 3D arrangement of a single chain - Quaternary: Assembly of multiple chains into complexes
Nucleic acids (DNA and RNA) adopt specific structures through base pairing and stacking interactions. DNA typically forms a double helix, while RNA folds into diverse structures including hairpins, loops, and pseudoknots.
Small molecules (ligands) bind to proteins at specific sites, often triggering biological responses. Drug molecules are designed to bind specific protein targets to modulate their activity.
Why Structure Prediction Matters¶
Experimental structure determination is slow (months to years per structure) and expensive. As of 2024, the Protein Data Bank contains ~220,000 experimentally determined structures, but there are hundreds of millions of known protein sequences. Computational structure prediction fills this gap, enabling:
- Drug discovery: Understanding target structure accelerates drug design
- Protein engineering: Structural models guide rational mutagenesis
- Basic biology: Structure reveals function and mechanism
- Diagnostics: Understanding disease-associated mutations at the structural level
The Multi-Modal Challenge¶
Most biological functions involve interactions between different molecule types. A transcription factor (protein) binds DNA to regulate gene expression. A ribosome (protein + RNA complex) reads mRNA to synthesize proteins. A drug (small molecule) binds a protein to treat disease. Predicting these multi-component structures requires models that understand the physics and chemistry of diverse molecular interactions simultaneously, which is the core capability that Chai-1 provides.
Sources & license¶
License: Apache-2.0 (text)
Papers
- Chai-1: Decoding the molecular interactions of life — bioRxiv preprint, 2024 · DOI
Source repositories
Cite
@article{chaidiscovery2024chai1,
title={Chai-1: Decoding the molecular interactions of life},
author={{Chai Discovery}},
year={2024}
}