SuperAPI AI 工具集

ipsae

数据与分析

查看项目

更新于 10-15 10:04

技能介绍

用途

ipSAE(interprotein Score from Aligned Errors,基于对齐误差的蛋白间评分)是一个评分函数,用于对 AlphaFold2、AlphaFold3 和 Boltz1 预测的蛋白质-蛋白质相互作用进行排序。它比 ipTM 更可靠地区分真实与虚假的预测复合物,因为 ipTM 会把界面置信度稀释到无序或附属区域。在 Overath 等人 2025 年的 binder 元分析中,AF3 ipSAE_min 相比 RFdiffusion 流程常用的 ipAE 评分,平均精度提升了 1.4 倍。

相关论文:Dunbrack, "Rēs ipSAE loquuntur: What's wrong with AlphaFold's ipTM score and how to fix it", bioRxiv 2025.02.10.637595

主要能力

  • 对 AlphaFold2、AlphaFold3、Boltz1 预测的蛋白复合物进行评分与排序。
  • 输出两类结果文件:链对评分(_chains.csv)和残基级评分(_residues.csv)。
  • 链对评分包含 ipSAE_min、pDockQ、pDockQ2、LIS、n_contacts、interface_dist 等指标。
  • 残基级评分包含 chain、resnum、pSAE、pLDDT。
  • 支持批量处理多个设计。

使用方式

前置要求

要求 最低 推荐
Python 3.8+ 3.10
NumPy 1.20+ 最新
RAM 8GB 16GB

安装

git clone https://github.com/DunbrackLab/IPSAE.git
cd IPSAE
pip install numpy

运行命令

AlphaFold2:

python ipsae.py scores_rank_001.json unrelaxed_rank_001.pdb 15 15

AlphaFold3:

python ipsae.py fold_model_full_data_0.json fold_model_0.cif 10 10

Boltz1:

python ipsae.py pae_model_0.npz model_0.cif 10 10

关键参数

参数 说明 推荐
PAE 文件 JSON(AF2/AF3)或 NPZ(Boltz) 与预测器匹配
结构文件 PDB 或 CIF 结构 与 PAE 匹配
PAE 截断 接触阈值 10-15
距离截断 最大 CA-CA 距离(Å) 10-15

输出格式

链对评分(_chains.csv)示例:

chain_A,chain_B,ipSAE_min,pDockQ,pDockQ2,LIS,n_contacts,interface_dist
A,B,0.72,0.65,0.58,0.45,42,8.5

残基级评分(_residues.csv)示例:

chain,resnum,pSAE,pLDDT
A,45,0.85,92.3
A,67,0.78,88.1

示例输出

成功运行:

$ python ipsae.py scores_rank_001.json design_0.pdb 10 10
Processing design_0...
Found 2 chains: A, B
Computing ipSAE scores...

Results written to:
  design_0_chains.csv
  design_0_residues.csv

Summary:
  ipSAE_min: 0.72
  pDockQ: 0.65
  LIS: 0.45
  Interface contacts: 42

良好输出的特征:

  • ipSAE_min > 0.61(主要筛选条件)
  • pDockQ > 0.5(辅助指标)
  • 界面接触数量合理(20-100)

决策树

Should I use ipSAE?
│
├─ What are you ranking?
│  ├─ Designed binders → ipSAE ✓
│  ├─ Natural complexes → ipTM is fine
│  └─ Single proteins → Not applicable
│
├─ What predictor did you use?
│  ├─ AlphaFold2 → ipSAE ✓
│  ├─ AlphaFold3 → ipSAE ✓
│  ├─ Boltz1 → ipSAE ✓
│  ├─ Chai → ipSAE (use PAE output)
│  └─ ESMFold → Not applicable (no PAE)
│
└─ Why ipSAE over ipTM?
   ├─ Different length constructs → ipSAE ✓
   ├─ Designs with disordered regions → ipSAE ✓
   └─ Standard complexes → Either works

推荐阈值

指标 标准 严格 用途
ipSAE_min > 0.61 > 0.70 主要筛选
LIS > 0.35 > 0.45 界面质量
pDockQ > 0.5 > 0.6 辅助

批量处理

import subprocess
import os
from pathlib import Path

def score_designs(pae_dir, struct_dir, output_dir):
    """Score all designs in a directory."""
    Path(output_dir).mkdir(exist_ok=True)

    for pae_file in Path(pae_dir).glob("*_scores*.json"):
        name = pae_file.stem.replace("_scores_rank_001", "")
        struct_file = Path(struct_dir) / f"{name}.pdb"

        if struct_file.exists():
            subprocess.run([
                "python", "ipsae.py",
                str(pae_file),
                str(struct_file),
                "10", "10"
            ])

验证

ls *_chains.csv | wc -l  # Should match number of predictions

适用场景

  • 对 binder 设计进行实验测试排序。
  • 使用 AlphaFold2、AlphaFold3、Boltz1 预测的复合物评分。
  • 不同长度构建体、含无序区域的设计,相比 ipTM 更适合使用 ipSAE。
  • 自然复合物使用 ipTM 即可;单蛋白不适用。
  • ESMFold 不适用(无 PAE)。

限制与故障排查

  • 需要 PAE 输出,ESMFold 无 PAE 故不适用。
  • 良好设计得分偏低:检查 PAE/距离截断。
  • 缺少输出:确认 PAE 文件格式与预测器匹配。
  • 得分不一致:对所有设计使用相同截断。

错误解释:

错误 原因 修复
KeyError: 'pae' PAE 格式错误 检查是 AF2/AF3/Boltz 格式
FileNotFoundError 未找到结构 验证文件路径
ValueError: no contacts 未检测到界面 检查链 ID,减小截断

下一步:选择顶级设计(ipSAE_min > 0.61)→ 实验验证。