ipSAE结合剂设计排序工具Skill ipsae

ipSAE 是一个用于蛋白质-蛋白质相互作用预测结果排序的评分工具,专门针对结合剂设计优化。它能有效处理 AlphaFold2、AlphaFold3 和 Boltz1 等模型的输出,通过分析预测对齐误差来评估和排序设计的蛋白质结合剂,其精度优于传统的 ipTM 和 iPAE 评分方法。关键词:ipSAE,蛋白质设计,结合剂排序,AlphaFold,生物信息学,结构预测,蛋白质相互作用,评分函数

生物制药 0 次安装 2 次浏览 更新于 2/27/2026

name: ipsae description: > 使用 ipSAE(基于对齐误差的蛋白质间评分)进行结合剂设计排序。 在以下情况使用此技能:(1) 为实验测试对结合剂设计进行排序, (2) 过滤 BindCraft 或 RFdiffusion 的输出, (3) 比较 AF2/AF3/Boltz 的预测结果, (4) 预测结合成功率, (5) 需要比 ipTM 或 iPAE 更好的排序方法时。

对于结构预测,请使用 chai 或 alphafold。 对于质量控制阈值,请使用 protein-qc。 license: MIT category: evaluation tags: [ranking, scoring, binding]

ipSAE 结合剂排序

前提条件

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

概述

ipSAE(基于对齐误差的蛋白质间评分)是一个用于对 AlphaFold2、AlphaFold3 和 Boltz1 预测的蛋白质-蛋白质相互作用进行排序的评分函数。在结合剂设计排序方面,它优于 ipTM 和 iPAE,识别真正结合剂的精度提高了 1.4 倍

论文: What’s wrong with AlphaFold’s ipTM score

如何运行

安装

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 距离 (A) 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
正在处理 design_0...
找到 2 条链: A, B
正在计算 ipSAE 分数...

结果已写入:
  design_0_chains.csv
  design_0_residues.csv

摘要:
  ipSAE_min: 0.72
  pDockQ: 0.65
  LIS: 0.45
  界面接触数: 42

良好输出的特征:

  • ipSAE_min > 0.61 (主要过滤器)
  • pDockQ > 0.5 (辅助指标)
  • 合理的界面接触数 (20-100)

决策树

我应该使用 ipSAE 吗?
│
├─ 你要排序什么?
│  ├─ 设计的结合剂 → ipSAE ✓
│  ├─ 天然复合物 → ipTM 即可
│  └─ 单个蛋白质 → 不适用
│
├─ 你使用了什么预测器?
│  ├─ AlphaFold2 → ipSAE ✓
│  ├─ AlphaFold3 → ipSAE ✓
│  ├─ Boltz1 → ipSAE ✓
│  ├─ Chai → ipSAE (使用 PAE 输出)
│  └─ ESMFold → 不适用 (无 PAE)
│
└─ 为什么选择 ipSAE 而不是 ipTM?
   ├─ 不同长度的构建体 → ipSAE ✓
   ├─ 具有无序区域的设计 → ipSAE ✓
   └─ 标准复合物 → 两者皆可

推荐阈值

指标 标准 严格 使用场景
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):
    """对目录中的所有设计进行评分。"""
    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  # 应与预测数量匹配

故障排除

良好设计得分低:检查 PAE/距离截断值 缺少输出:验证 PAE 文件格式是否与预测器匹配 分数不一致:对所有设计使用相同的截断值

错误解释

错误 原因 解决方法
KeyError: 'pae' PAE 格式错误 检查是否为 AF2/AF3/Boltz 格式
FileNotFoundError 未找到结构文件 验证文件路径
ValueError: no contacts 未检测到界面 检查链 ID,降低截断值

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