mcpField
C
campaign-manager

campaign-manager

github.com/adaptyvbioOther17240 installsUpdated 20w ago
Repository

About campaign-manager

Campaign Manager is a planning skill for protein binder design campaigns, aimed at researchers turning a target and desired binder count into a workable pipeline. It outlines tool choices, campaign scale, expected screening yield, time, and cost, with pipeline variants for different priorities.

Key features

  1. 01Generate target-to-pipeline plans
  2. 02Recommend campaign design scale
  3. 03Compare tools by design scenario
  4. 04Estimate campaign time and cost
  5. 05Outline throughput and quality variants

Use cases

  1. 01Plan a binder campaign for a target
  2. 02Estimate designs needed for a binder goal
  3. 03Choose a pipeline for a difficult target
  4. 04Compare quick exploration and high-quality runs

Install

Copy the command and run it in a terminal.

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

After installing, type/campaign-managerin Claude Code to confirm it loaded.

Details

From the project README

Campaign Manager

Goal-oriented design

From goal to pipeline

When user says: "I need 10 good binders for EGFR"

Campaign Planning:

Goal: 10 high-quality binders for EGFR
├── Achievable: Yes (standard target)
├── Recommended pipeline: rfdiffusion → proteinmpnn → chai → protein-qc
├── Estimated designs needed: 500 backbones (to get ~50 passing QC)
├── Estimated time: 8-12 hours total
├── Estimated cost: ~$60 (Modal GPU compute)
└── Expected yield:
    ├── After backbone (500): 500 structures
    ├── After sequence (×8): 4,000 sequences
    ├── After validation: 4,000 predictions
    ├── After QC (~10-15%): 400-600 candidates
    └── After clustering: 10-20 diverse final designs

Complete pipeline generator

Standard miniprotein binder campaign
# Step 1: Fetch and prepare target (5 min)
curl -o target.pdb "https://files.rcsb.org/download/{PDB_ID}.pdb"
# Trim to binding region if needed

# Step 2: Generate backbones (2-3h, ~$15)
# RFdiffusion runs from the official repo, not biomodals
python run_inference.py \
  inference.input_pdb=target.pdb \
  contigmap.contigs=[A1-150/0 70-100] \
  ppi.hotspot_res=[A45,A67,A89] \
  inference.num_designs=500

# Checkpoint: ls output/*.pdb | wc -l  # Should be 500

# Step 3: Design sequences (1-2h, ~$10)
for f in output/*.pdb; do
  modal run modal_ligandmpnn.py \
    --input-pdb "$f" \
    --params-str "--number_of_batches 8 --temperature 0.1"
done

# Checkpoint: grep -c "^>" output/seqs/*.fa  # Should be ~4000

# Step 4: Quick ESM2 filter (30 min, ~$5, optional)
modal run modal_esm2_predict_masked.py --input-faa output/all_seqs.fa
# Filter sequences with PLL < 0.0

# Step 5: Structure validation (3-4h, ~$35)
modal run modal_alphafold.py \
  --input-faa output/filtered_seqs.fa \
  --out-dir predictions/

# Checkpoint: find predictions -name "*rank_001.pdb" | wc -l

# Step 6: Filter and rank (protein-qc skill)
# Apply thresholds: pLDDT > 0.85, ipTM > 0.5, scRMSD < 2.0
# Compute composite score
# Cluster at 70% identity, select top from each cluster

Total estimated time: 8-12 hours Total estimated cost: ~$60-70


Campaign size recommendations

GoalBackbonesSequences/BBTotal SeqExpected Passing
5 binders20081,600160-240
10 binders50084,000400-600
20 binders1,00088,000800-1,200
50 binders2,500820,0002,000-3,000

Rule of thumb: Generate 50x more designs than you need (10-15% pass rate × clustering).


Tool selection guide

When to use each tool
ScenarioRecommended ToolReason
Standard miniproteinRFdiffusion + ProteinMPNNHigh diversity, proven
Need higher success rateBindCraftIntegrated design loop
All-atom precision neededBoltzGenSide-chain aware
Difficult targetMosaicGradient, multi-model objective
Need fast iterationESMFold2 + ESM2Quick screening
Target difficulty assessment
IndicatorEasy TargetDifficult Target
Surface typeConcave pocketFlat or convex
ConservationHighLow
Known bindersYesNo
FlexibilityRigidFlexible
Expected pass rate15-20%5-10%

Campaign health assessment

Quick metrics check
import pandas as pd

def assess_campaign(csv_path):
    df = pd.read_csv(csv_path)

    # Calculate pass rates
    plddt_pass = (df['pLDDT'] > 0.85).mean()
    iptm_pass = (df['ipTM'] > 0.50).mean()
    scrmsd_pass = (df['scRMSD'] < 2.0).mean()
    all_pass = ((df['pLDDT'] > 0.85) & (df['ipTM'] > 0.5) & (df['scRMSD'] < 2.0)).mean()

    # Determine health
    if all_pass > 0.15:
        health = "EXCELLENT"
    elif all_pass > 0.10:
        health = "GOOD"
    elif all_pass > 0.05:
        health = "MARGINAL"
    else:
        health = "POOR"

    # Identify top issue
    issues = []
    if plddt_pass < 0.20:
        issues.append("Low pLDDT - backbone or sequence issue")
    if iptm_pass < 0.20:
        issues.append("Low ipTM - hotspot or interface issue")
    if scrmsd_pass < 0.50:
        issues.append("High scRMSD - sequence doesn't specify backbone")

    return {
        "health": health,
        "overall_pass_rate": all_pass,
        "plddt_pass_rate": plddt_pass,
        "iptm_pass_rate": iptm_pass,
        "scrmsd_pass_rate": scrmsd_pass,
        "top_issues": issues
    }
Interpreting results
HealthPass RateAction
EXCELLENT> 15%Proceed to selection
GOOD10-15%Proceed, normal yield
MARGINAL5-10%Review failure tree
POOR< 5%Diagnose and restart

Cost estimation

Per-tool costs (Modal)
ToolGPU$/hourTypical JobCost
RFdiffusionA10G~$1.20500 designs/2h~$2.50
ProteinMPNNT4~$0.604000 seq/1.5h~$1.00
ESM2 (PLL)A10G~$1.204000 seq/30min~$0.60
AlphaFoldA100~$4.504000 preds/4h~$18.00
ChaiA100~$4.50500 preds/1h~$4.50
Campaign cost estimates
Campaign SizeTotal CostNotes
Small (100 bb)~$15Quick exploration
Standard (500 bb)~$60Most campaigns
Large (1000 bb)~$120Comprehensive
XL (5000 bb)~$600Very thorough

Pipeline variants

High-throughput (maximize diversity)
# More backbones, fewer sequences each (RFdiffusion from the official repo)
python run_inference.py inference.num_designs=2000
modal run modal_ligandmpnn.py --input-pdb bb.pdb --params-str "--number_of_batches 4 --temperature 0.2"
High-quality (maximize per-design quality)
# Fewer backbones, more sequences each, lower temperature
python run_inference.py inference.num_designs=200
modal run modal_ligandmpnn.py --input-pdb bb.pdb --params-str "--number_of_batches 32 --temperature 0.1"
Quick exploration (fast iteration)
# Small batch, ESMFold2 for fast single-sequence folding
# RFdiffusion runs from the official repo (not biomodals); see the rfdiffusion skill
modal run modal_ligandmpnn.py --input-pdb bb.pdb --params-str "--number_of_batches 8"
modal run modal_esmfold2.py --input-faa all_seqs.fa

See also

  • Tool-specific parameters: rfdiffusion, proteinmpnn, mosaic, chai, boltz, alphafold
  • QC thresholds and filtering: protein-qc
  • Tool selection guidance: binder-design

Comments

Markdown supported