mcpField
I
ipsae

ipsae

github.com/adaptyvbioその他17240 回インストール20 週間前に更新
リポジトリ

ipsae について

ipSAEは、AlphaFold2、AlphaFold3、Boltz1が予測したタンパク質複合体を評価するPythonツールです。チェーンペアと残基単位の指標を出力し、結合タンパク質の設計評価に使えます。

主な機能

  1. 01予測タンパク質界面のスコアリング
  2. 02AlphaFold2、AlphaFold3、Boltz1に対応
  3. 03チェーンペアスコアのCSV出力
  4. 04残基単位スコアのCSV出力

活用シーン

  1. 01設計したタンパク質結合体の順位付け
  2. 02界面品質による予測複合体の選別

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/adaptyvbio/protein-design-skills --skill ipsae

インストール後、Claude Code で/ipsaeを入力して読み込まれたか確認します。

詳細

ipSAE バインダーランキング

前提条件

要件最小推奨
Python3.8+3.10
NumPy1.20+最新
RAM8GB16GB

概要

ipSAE(interprotein Score from Aligned Errors)は、AlphaFold2、AlphaFold3、Boltz1で予測されたタンパク質間相互作用をランキングするためのスコアリング関数です。ipTMは無秩序領域や付属領域にまたがって界面の信頼度を希釈してしまいますが、ipSAEは真の複合体と誤予測された複合体を、より確実に区別します。別のバインダーのメタ解析(Overath et al. 2025)では、AF3 ipSAE_minは、RFdiffusionのパイプラインで一般的にフィルタリングに使われるipAEスコアと比べ、平均適合率が1.4倍向上しました。

論文:Dunbrack、「Rēs ipSAE loquuntur:AlphaFoldのipTMスコアの問題点とその解決方法」、bioRxiv 2025.02.10.637595

実行方法

インストール
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

出力形式

2つの出力ファイルが生成されます。

鎖ペアのスコア(_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

トラブルシューティング

良好な設計なのにスコアが低い:PAE/距離のカットオフを確認してください 出力がない:PAEファイルの形式が予測ツールに合っているか確認してください スコアに一貫性がない:すべての設計で同じカットオフを使用してください

エラーの解釈
エラー原因解決方法
KeyError: 'pae'PAE形式が正しくありませんAF2/AF3/Boltzの形式か確認してください
FileNotFoundError構造が見つかりませんファイルパスを確認してください
ValueError: no contacts界面が検出されませんでした鎖IDを確認し、カットオフを下げてください

次の手順:上位の設計を選択します(ipSAE_min > 0.61)→ 実験的検証。

コメント