Chai-1 Structure Prediction

SkillAI & models

Use when predicting molecular structures (proteins, nucleic acids, small molecules, and complexes) with the Chai-1 foundation model via local inference or the Chai Discovery API.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Chai-1 Structure Prediction skill

What this skill tells your AI

The instructions your AI receives, as published by lamm-mit/scienceclaw in skills/chai/SKILL.md and read by ahel’s review.

Use when the user needs to predict molecular structures — proteins, nucleic acids, small molecules, or multi-chain complexes — using the Chai-1 foundation model. Supports both local GPU inference and the Chai Discovery API for remote execution.

Requirements

  • Python 3.10+
  • 16 GB GPU VRAM (A10G sufficient; A100 for large complexes)
  • Or: use Chai Discovery API (no local GPU needed)

Installation

pip install chai-lab

Local Usage

Python API

from chai_lab.chai1 import run_inference
import torch
from pathlib import Path

# Single protein
results = run_inference(
    fasta_file=Path("input.fasta"),
    output_dir=Path("results/"),
    num_trunk_recycles=3,
    num_diffn_timesteps=200,
    seed=42,
    device=torch.device("cuda:0"),
    use_esm_embeddings=True,
)

# Access results
for i, result in enumerate(results):
    print(f"Model {i}: pTM={result.ptm:.3f}, ipTM={result.iptm:.3f}")

FASTA Input Format

# Single chain
>protein|A
MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPT

# Complex: separate chains with different headers
>protein|A
EVQLVESGGGLVQPGGSLRLSCAASGFTFSDYYMSWVRQAP
>protein|B
MTEYKLVVVGAGGVGKSALTIQLIQNHFVDE

# With small molecule (SMILES)
>protein|A
MTEYKLVVVGAGGVGKS...
>ligand|L
CC1=CC=C(C=C1)NC(=O)C2=CC=C(C=C2)CN3CCN(CC3)C

# RNA
>rna|R
GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGAGGUCCUGUGUUCGAUCCACAGAAUUCGCACCA

Chai Discovery API (No Local GPU)

import requests

# Submit prediction job
response = requests.post(
    "https://api.chaidiscovery.com/v1/predictions",
    headers={"Authorization": f"Bearer {CHAI_API_KEY}"},
    json={
        "sequences": [
            {"type": "protein", "chain_id": "A", "sequence": "MTEYKLVV..."},
            {"type": "protein", "chain_id": "B", "sequence": "EVQLVES..."}
        ],
        "num_diffn_timesteps": 200,
        "num_trunk_recycles": 3,
    }
)
job_id = response.json()["job_id"]

# Poll for results
import time
while True:
    status = requests.get(
        f"https://api.chaidiscovery.com/v1/predictions/{job_id}",
        headers={"Authorization": f"Bearer {CHAI_API_KEY}"}
    ).json()
    if status["status"] == "completed":
        break
    time.sleep(30)

# Download structure
structure_url = status["results"]["structure_url"]

Output Files

FileContents
pred.model_idx_0.cifTop-ranked structure (CIF format)
pred.model_idx_0.npzConfidence arrays (pLDDT, PAE, pDE)
scores.jsonAggregate scores per model

Parsing Confidence Scores

import numpy as np

data = np.load("pred.model_idx_0.npz")
plddt = data["plddt"]                    # Per-residue, shape (N,)
pae = data["pae"]                        # N×N matrix, Angstroms
pde = data.get("pde")                    # Predicted Distance Error

# Interface residues (chain A = target, chain B = binder)
chain_a_len = 150  # length of chain A
interface_pae = pae[:chain_a_len, chain_a_len:].mean()
print(f"Interface PAE: {interface_pae:.2f} Å (< 10 = good)")

Chai vs. Other Predictors

FeatureChai-1BoltzAF2
Speed (complex)FastMediumSlow
Small molecules
RNA/DNA
API available
Open weights
GPU VRAM16 GB24 GB32 GB

Quality Thresholds

MetricMarginalGoodExcellent
Mean pLDDT<6060–80>80
ipTM (complex)<0.50.5–0.75>0.75
Interface PAE>20 Å10–20 Å<10 Å

Use Cases

  • Fast validation: Predicts binder-target complexes quickly before committing to expensive MD simulations.
  • Ligand complexes: Predicts protein-small molecule binding poses from SMILES input.
  • Ensemble scoring: Generates multiple models and ranks them by ipTM for design selection.
  • Nucleic acid interactions: Predicts protein-DNA/RNA complex structures.

Signals

GitHub stars
242
Forks
42
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
chai-lamm-mit
Source
github.com/lamm-mit/scienceclaw