Back to list
adaptyvbio

ipsae

by adaptyvbio

Claude Code skills for protein design

70🍴 7📅 Jan 23, 2026

SKILL.md


name: ipsae description: > Binder design ranking using ipSAE (interprotein Score from Aligned Errors). Use this skill when: (1) Ranking binder designs for experimental testing, (2) Filtering BindCraft or RFdiffusion outputs, (3) Comparing AF2/AF3/Boltz predictions, (4) Predicting binding success rates, (5) Need better ranking than ipTM or iPAE.

For structure prediction, use chai or alphafold. For QC thresholds, use protein-qc. license: MIT category: evaluation tags: [ranking, scoring, binding]

ipSAE Binder Ranking

Prerequisites

RequirementMinimumRecommended
Python3.8+3.10
NumPy1.20+Latest
RAM8GB16GB

Overview

ipSAE (interprotein Score from Aligned Errors) is a scoring function for ranking protein-protein interactions predicted by AlphaFold2, AlphaFold3, and Boltz1. It outperforms ipTM and iPAE for binder design ranking with 1.4x higher precision in identifying true binders.

Paper: What's wrong with AlphaFold's ipTM score

How to run

Installation

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

Key parameters

ParameterDescriptionRecommended
PAE fileJSON (AF2/AF3) or NPZ (Boltz)Match predictor
Structure filePDB or CIF structureMatch PAE
PAE cutoffThreshold for contacts10-15
Distance cutoffMax CA-CA distance (A)10-15

Output format

Two output files are generated:

Chain-pair scores (_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

Residue-level scores (_residues.csv):

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

Sample output

Successful run

$ 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

What good output looks like:

  • ipSAE_min > 0.61 (primary filter)
  • pDockQ > 0.5 (supporting metric)
  • Reasonable number of interface contacts (20-100)

Decision tree

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
MetricStandardStringentUse Case
ipSAE_min> 0.61> 0.70Primary filter
LIS> 0.35> 0.45Interface quality
pDockQ> 0.5> 0.6Supporting

Batch processing

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"
            ])

Verify

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

Troubleshooting

Low scores for good designs: Check PAE/distance cutoffs Missing output: Verify PAE file format matches predictor Inconsistent scores: Use same cutoffs across all designs

Error interpretation

ErrorCauseFix
KeyError: 'pae'Wrong PAE formatCheck if AF2/AF3/Boltz format
FileNotFoundErrorStructure not foundVerify file paths
ValueError: no contactsNo interface detectedCheck chain IDs, reduce cutoffs

Next: Select top designs (ipSAE_min > 0.61) → experimental validation.

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

0/5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon