Agent skill
chai
Structure prediction using Chai-1, a foundation model for molecular structure. Use this skill when: (1) Predicting protein-protein complex structures, (2) Validating designed binders, (3) Predicting protein-ligand complexes, (4) Using the Chai API for high-throughput prediction, (5) Need an alternative to AlphaFold2. For QC thresholds, use protein-qc. For AlphaFold2 prediction, use alphafold. For ESM-based analysis, use esm.
Install this agent skill to your Project
npx add-skill https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills/tree/main/skills/chai
SKILL.md
Chai-1 Structure Prediction
Prerequisites
| Requirement | Minimum | Recommended |
|---|---|---|
| Python | 3.10+ | 3.11 |
| CUDA | 12.0+ | 12.1+ |
| GPU VRAM | 24GB | 40GB (A100) |
| RAM | 32GB | 64GB |
How to run
First time? See Installation Guide to set up Modal and biomodals.
Option 1: Modal
cd biomodals
modal run modal_chai1.py \
--input-faa complex.fasta \
--out-dir predictions/
GPU: A100 (40GB) | Timeout: 30min default
Option 2: Chai API (recommended)
pip install chai_lab
python -c "
import chai_lab
from chai_lab.chai1 import run_inference
# Run prediction
run_inference(
fasta_file='complex.fasta',
output_dir='predictions/',
num_trunk_recycles=3
)
"
Option 3: Local installation
git clone https://github.com/chaidiscovery/chai-lab.git
cd chai-lab
pip install -e .
chai-lab predict \
--fasta complex.fasta \
--output predictions/
FASTA Format
Protein complex
>binder
MKTAYIAKQRQISFVKSHFSRQLE...
>target
MVLSPADKTNVKAAWGKVGAHAGE...
Protein + ligand
>protein
MKTAYIAKQRQISFVKSHFSRQLE...
>ligand|smiles
CCO
Protein + DNA/RNA
>protein
MKTAYIAKQRQISFVKSHFSRQLE...
>dna
ATCGATCGATCG
Key parameters
| Parameter | Default | Range | Description |
|---|---|---|---|
num_trunk_recycles |
3 | 1-10 | Recycles (more = better) |
num_diffn_timesteps |
200 | 50-500 | Diffusion steps |
seed |
0 | int | Random seed |
Output format
predictions/
├── pred.model_idx_0.cif # Best model (CIF format)
├── pred.model_idx_1.cif # Second model
├── scores.json # Confidence scores
├── pae.npy # PAE matrix
└── plddt.npy # pLDDT values
Note: Chai-1 outputs CIF format. Convert to PDB if needed:
from Bio.PDB import MMCIFParser, PDBIO
parser = MMCIFParser()
structure = parser.get_structure("pred", "pred.model_idx_0.cif")
io = PDBIO()
io.set_structure(structure)
io.save("pred.model_idx_0.pdb")
Extracting metrics
import numpy as np
import json
# Load scores
with open('predictions/scores.json') as f:
scores = json.load(f)
plddt = np.load('predictions/plddt.npy')
pae = np.load('predictions/pae.npy')
print(f"pLDDT: {plddt.mean():.3f}")
print(f"pTM: {scores['ptm']:.3f}")
print(f"ipTM: {scores.get('iptm', 'N/A')}")
Use cases
Binder validation
# Predict complex with Chai
chai-lab predict --fasta binder_target.fasta --output val/
# Check ipTM > 0.5
scores = json.load(open('val/scores.json'))
if scores['iptm'] > 0.5:
print("Design passes validation")
Protein-ligand complex
# FASTA with SMILES
fasta = """
>protein
MKTA...
>ligand|smiles
CCO
"""
# Chai handles both protein and small molecules
Batch prediction
# Multiple sequences
for fasta in sequences/*.fasta; do
chai-lab predict \
--fasta "$fasta" \
--output "predictions/$(basename $fasta .fasta)"
done
Comparison with AF2
| Aspect | Chai-1 | AlphaFold2 |
|---|---|---|
| MSA required | No | Yes |
| Small molecules | Yes | No |
| DNA/RNA | Yes | Limited |
| Speed | Faster | Slower |
| Accuracy | Comparable | Reference |
Sample output
Successful run
$ chai-lab predict --fasta complex.fasta --output predictions/
[INFO] Loading Chai-1 model...
[INFO] Running inference...
[INFO] Saved 5 models to predictions/
predictions/scores.json:
{
"ptm": 0.82,
"iptm": 0.71,
"ranking_score": 0.76
}
What good output looks like:
- pTM: > 0.7 (confident global structure)
- ipTM: > 0.5 (confident interface, > 0.7 for high confidence)
- CIF files with reasonable atom positions
Decision tree
Should I use Chai?
│
├─ What are you predicting?
│ ├─ Protein-protein complex → Chai ✓ or ColabFold
│ ├─ Protein + small molecule → Chai ✓
│ ├─ Protein + DNA/RNA → Chai ✓
│ └─ Single protein only → Use ESMFold (faster)
│
├─ Need MSA?
│ ├─ No / want speed → Chai ✓
│ └─ Yes / want accuracy → ColabFold
│
└─ Priority?
├─ Highest accuracy → ColabFold with MSA
├─ Speed / no MSA → Chai ✓
└─ Ligand binding → Chai ✓
Typical performance
| Campaign Size | Time (A100) | Cost (Modal) | Notes |
|---|---|---|---|
| 100 complexes | 30-60 min | ~$10 | Standard validation |
| 500 complexes | 2-4h | ~$45 | Large campaign |
| 1000 complexes | 5-8h | ~$90 | Comprehensive |
Per-complex: ~20-40s for typical binder-target complex.
Verify
find predictions -name "*.cif" | wc -l # Should match input count
Troubleshooting
Low pLDDT: Increase num_trunk_recycles Low ipTM: Check chain order, interface region OOM errors: Use A100-80GB or reduce batch Slow prediction: Reduce num_diffn_timesteps
Error interpretation
| Error | Cause | Fix |
|---|---|---|
RuntimeError: CUDA out of memory |
Complex too large | Use A100-80GB or split prediction |
KeyError: 'iptm' |
Single chain predicted | Ensure FASTA has multiple chains |
ValueError: invalid SMILES |
Malformed ligand | Validate SMILES with RDKit |
torch.cuda.OutOfMemoryError |
GPU exhausted | Reduce num_diffn_timesteps to 100 |
Next: protein-qc for filtering and ranking.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
vcf-annotator
Annotate VCF variants with VEP, ClinVar, gnomAD frequencies, and ancestry-aware context. Generates prioritised variant reports.
chemist-analyst
Analyzes events through chemistry lens using molecular structure, reaction mechanisms, thermodynamics, kinetics, and analytical techniques (spectroscopy, chromatography, mass spectrometry). Provides insights on chemical processes, material properties, reaction pathways, synthesis, and analytical methods. Use when: Chemical reactions, material analysis, synthesis planning, process optimization, environmental chemistry. Evaluates: Molecular structure, reaction mechanisms, yield, selectivity, safety, environmental impact.
bio-alignment-io
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO. Supports Clustal, PHYLIP, Stockholm, FASTA, Nexus, and other alignment formats for phylogenetics and conservation analysis. Use when reading, writing, or converting alignment file formats.
sleep-analyzer
分析睡眠数据、识别睡眠模式、评估睡眠质量,并提供个性化睡眠改善建议。支持与其他健康数据的关联分析。
metabolomics-workbench-database
Access NIH Metabolomics Workbench via REST API (4,200+ studies). Query metabolites, RefMet nomenclature, MS/NMR data, m/z searches, study metadata, for metabolomics and biomarker discovery.
bio-hi-c-analysis-matrix-operations
Balance, normalize, and transform Hi-C contact matrices using cooler and cooltools. Apply iterative correction (ICE), compute expected values, and generate observed/expected matrices. Use when normalizing or transforming Hi-C matrices.
Didn't find tool you were looking for?