adaptyvbio/protein-design-skills/ipsae

Claude Code and agent skill by adaptyvbio/protein-design-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

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.

Install

npx vskill@latest install adaptyvbio/protein-design-skills/ipsae

SKILL.md

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 separates true from false predicted complexes more reliably than ipTM, which dilutes interface confidence across disordered or accessory regions. In a separate binder meta-analysis (Overath et al. 2025), AF3 ipSAE_min gave a 1.4-fold gain in average precision over the ipAE score that RFdiffusion pipelines commonly filter on.

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

How to run

Installation
bash
git clone https://github.com/DunbrackLab/IPSAE.git
cd IPSAE
pip install numpy
AlphaFold2
bash
python ipsae.py scores_rank_001.json unrelaxed_rank_001.pdb 15 15
AlphaFold3
bash
python ipsae.py fold_model_full_data_0.json fold_model_0.cif 10 10
Boltz1
bash
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

Recommended thresholds

MetricStandardStringentUse Case
ipSAE_min> 0.61> 0.70Primary filter
LIS> 0.35> 0.45Interface quality
pDockQ> 0.5> 0.6Supporting

Batch processing

python
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

bash
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.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
114
Repository forks
13
7-day trend score
24

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/adaptyvbio/protein-design-skills/ipsae/badge)](https://verified-skill.com/skills/adaptyvbio/protein-design-skills/ipsae)

Something wrong with this skill or its page? Tell us.