Chai 是一个基于 Chai-1 基础模型的分子结构预测技能,主要用于预测分子结构,尤其是蛋白质复合物及相关生物分子的三维结构。
用途 该技能适用于以下场景:预测蛋白质-蛋白质复合物结构;预测蛋白质与小分子配体形成的复合物;预测蛋白质与 DNA/RNA 的复合物;对设计出的结合物(binder)进行结构验证;以及批量预测多个序列的结构。
主要能力 Chai-1 无需多序列比对(MSA)即可进行结构预测,支持小分子配体和 DNA/RNA,速度较快,精度与 AlphaFold2 相当。输出包括 CIF 格式的模型文件、scores.json 置信度分数、pae.npy(PAE 矩阵)和 plddt.npy(pLDDT 值)。关键参数包括 num_trunk_recycles(默认 3,范围 1-10)、num_diffn_timesteps(默认 200,范围 50-500)和 seed(默认 0)。
使用方式 运行前需满足环境要求:Python 3.10+(推荐 3.11)、CUDA 12.0+(推荐 12.1+)、GPU 显存最低 24GB(推荐 40GB A100)、内存最低 32GB(推荐 64GB)。
提供三种运行方式:
- Modal:进入 biomodals 目录后运行 modal run modal_chai1.py --input-faa complex.fasta --out-dir predictions/,使用 A100(40GB),默认超时 30 分钟。
- Chai API(推荐):先执行 pip install chai_lab,再通过 Python 调用 run_inference,指定 fasta_file、output_dir 和 num_trunk_recycles 等参数。
- 本地安装:克隆 https://github.com/chaidiscovery/chai-lab.git,进入目录执行 pip install -e .,然后运行 chai-lab predict --fasta complex.fasta --output predictions/。
FASTA 格式支持蛋白质复合物(多个 > 序列)、蛋白质加配体(>ligand|smiles 后接 SMILES 字符串)、蛋白质加 DNA/RNA(>dna 后接碱基序列)。
输出为 CIF 格式,如需 PDB 可用 Bio.PDB 的 MMCIFParser 和 PDBIO 转换。可通过读取 scores.json 和加载 plddt.npy、pae.npy 提取 pLDDT 均值、pTM、ipTM 等指标。
适用场景 结合物验证:预测复合物后检查 ipTM 是否大于 0.5,判断设计是否通过验证。蛋白质-配体复合物:在 FASTA 中嵌入 SMILES 即可同时处理蛋白质和小分子。批量预测:对 sequences 目录下多个 FASTA 文件循环调用 chai-lab predict。
典型性能:100 个复合物在 A100 上约 30-60 分钟,Modal 成本约 10 美元;500 个约 2-4 小时,约 45 美元;1000 个约 5-8 小时,约 90 美元。单个典型结合物-靶标复合物约 20-40 秒。
限制与注意事项 Chai-1 输出 CIF 格式而非 PDB,需要额外转换。低 pLDDT 时可增加 num_trunk_recycles;低 ipTM 时检查链顺序和界面区域;显存不足时可使用 A100-80GB 或减少 batch;预测过慢时可减少 num_diffn_timesteps。常见错误包括 CUDA 显存不足(复合物过大)、KeyError: 'iptm'(仅预测了单链,需确保 FASTA 含多条链)、ValueError: invalid SMILES(配体 SMILES 格式错误,可用 RDKit 验证)以及 torch.cuda.OutOfMemoryError(可将 num_diffn_timesteps 降至 100)。
与 AlphaFold2 相比,Chai-1 不需要 MSA,支持小分子和 DNA/RNA,速度更快,精度相当。若仅预测单个蛋白质,可考虑更快的 ESMFold;若追求最高精度,可使用带 MSA 的 ColabFold。
验证方式:运行 find predictions -name "*.cif" | wc -l,输出数量应与输入数量一致。后续可结合 protein-qc 进行过滤和排序。