name: chai
description: >
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.
license: MIT
category: design-tools
tags: [structure-prediction, validation, foundation-model]
source: https://github.com/adaptyvbio/protein-design-skills
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
Option 1: Modal
cd biomodals
modal run modal_chai1.py \
--input-faa complex.fasta \
--out-dir predictions/
Option 2: Chai API (recommended)
pip install chai_lab
python -c "
from chai_lab.chai1 import run_inference
run_inference(fasta_file='complex.fasta', output_dir='predictions/', num_trunk_recycles=3)
"
FASTA Format
>binder
MKTAYIAKQRQISFVKSHFSRQLE...
>target
MVLSPADKTNVKAAWGKVGAHAGE...
Protein + ligand
>protein
MKTAYIAKQRQISFVKSHFSRQLE...
>ligand|smiles
CCO
Key parameters
| Parameter |
Default |
Description |
num_trunk_recycles |
3 |
Recycles (more = better) |
num_diffn_timesteps |
200 |
Diffusion steps |
Output format
predictions/
├── pred.model_idx_0.cif # Best model
├── scores.json # pTM, ipTM, ranking_score
├── pae.npy # PAE matrix
└── plddt.npy # pLDDT values
Chai vs AF2
| Aspect |
Chai-1 |
AlphaFold2 |
| MSA required |
No |
Yes |
| Small molecules |
Yes |
No |
| Speed |
Faster |
Slower |
| Accuracy |
Comparable |
Reference |
Typical performance
| Campaign |
Time (A100) |
Cost (Modal) |
| 100 complexes |
30-60 min |
~$10 |
| 500 complexes |
2-4h |
~$45 |
Troubleshooting
| Error |
Cause |
Fix |
CUDA out of memory |
Complex too large |
Use A100-80GB |
KeyError: 'iptm' |
Single chain |
Ensure FASTA has 2+ chains |
ValueError: invalid SMILES |
Malformed ligand |
Validate SMILES with RDKit |
Next: protein-qc for filtering and ranking.