Files
drug-discovery-prompts/upstream/mims-harvard-ToolUniverse/skills/tooluniverse-antibody-engineering/QUICK_START.md

11 KiB

title, task, lineage_type, upstream_source, upstream_sha, imported_at, prompt_class, upstream_changes, author, validated
title task lineage_type upstream_source upstream_sha imported_at prompt_class upstream_changes author validated
Antibody Engineering - Quick Start Guide import https://github.com/mims-harvard/ToolUniverse/blob/e2520a96/skills/tooluniverse-antibody-engineering/QUICK_START.md e2520a96 2026-06-26 prompt accepted upstream false

Antibody Engineering - Quick Start Guide

Status: ✅ WORKING - Pipeline working with correct SOAP parameters Last Updated: 2026-02-09


Choose Your Implementation

Python SDK

# Import from either file (both work)
from python_implementation import AntibodyHumanizer
# or: from antibody_pipeline import AntibodyHumanizer

# Initialize analyzer
analyzer = AntibodyHumanizer()

# Analyze antibody
vh_sequence = "EVQLVESGGGLVQPGGSLRLSCAASGYTFTSYYMHWVRQAPGKGLEWV..."
vl_sequence = "DIQMTQSPSSLSASVGDRVTITCRASQSISSYLNWYQQKPGKAPKLLI..."

report = analyzer.analyze(
    vh_sequence=vh_sequence,
    vl_sequence=vl_sequence,
    target_antigen="PD-L1"
)

# Report automatically saved to: Antibody_Humanization_PD-L1.md
print(f"Humanization Score: {report['humanization_score']}/100")

Option 2: Use Individual Tools

from tooluniverse import ToolUniverse

tu = ToolUniverse()
tu.load_tools()

# Clinical precedents (TheraSAbDab - SOAP tool)
result = tu.tools.TheraSAbDab_search_by_target(
    operation="search_by_target",  # ✅ Required for SOAP tools
    target="PD-L1"
)

# Germline identification (IMGT - SOAP tool)
result = tu.tools.IMGT_search_genes(
    operation="search_genes",      # ✅ Required for SOAP tools
    gene_type="IGHV",
    species="Homo sapiens"
)

result = tu.tools.IMGT_search_genes(
    operation="search_genes",
    gene_type="IGKV",
    species="Homo sapiens"
)

# Get germline sequences (IMGT - SOAP tool)
result = tu.tools.IMGT_get_sequence(
    operation="get_sequence",      # ✅ Required for SOAP tools
    accession="M99641",
    format="fasta"
)

# Antibody structures (SAbDab - SOAP tool)
result = tu.tools.SAbDab_search_structures(
    operation="search_structures", # ✅ Required for SOAP tools
    query="PD-L1"
)

# Immunogenicity (IEDB - NOT SOAP, no 'operation' needed)
result = tu.tools.iedb_search_epitopes(
    epitope_name="PD-L1",
    limit=10
)

MCP (Model Context Protocol)

Option 1: Conversational (Claude Desktop or Compatible Client)

Tell Claude:

"Analyze humanization feasibility for an anti-PD-L1 antibody using ToolUniverse. VH: EVQLVESGGGLVQPGGSLRLSCAAS..., VL: DIQMTQSPSSLSASVGDRVTITCRAS..."

Claude will follow the workflow from SKILL.md and use these tools:

  1. TheraSAbDab_search_by_target - Clinical precedents
  2. IMGT_search_genes - Germline identification
  3. SAbDab_search_structures - Structural precedents
  4. iedb_search_epitopes - Immunogenicity assessment

Option 2: Direct Tool Calls

CRITICAL FOR MCP: SOAP tools (IMGT, SAbDab, TheraSAbDab) require 'operation' parameter!

Step 1: Clinical Precedent Search

Tool: TheraSAbDab_search_by_target
Parameters:
{
  "operation": "search_by_target",
  "target": "PD-L1"
}

Step 2: Germline Gene Search (Heavy Chain)

Tool: IMGT_search_genes
Parameters:
{
  "operation": "search_genes",
  "gene_type": "IGHV",
  "species": "Homo sapiens"
}

Step 3: Germline Gene Search (Light Chain)

Tool: IMGT_search_genes
Parameters:
{
  "operation": "search_genes",
  "gene_type": "IGKV",
  "species": "Homo sapiens"
}

Step 4: Get Germline Sequence

Tool: IMGT_get_sequence
Parameters:
{
  "operation": "get_sequence",
  "accession": "M99641",
  "format": "fasta"
}

Step 5: Structural Precedent Search

Tool: SAbDab_search_structures
Parameters:
{
  "operation": "search_structures",
  "query": "PD-L1"
}

Step 6: Immunogenicity Assessment

Tool: iedb_search_epitopes
Parameters:
{
  "epitope_name": "PD-L1",
  "limit": 10
}

Note: IEDB is NOT a SOAP tool - no 'operation' parameter needed


CRITICAL: SOAP Tool Parameters

IMPORTANT: All SOAP-based tools (IMGT, SAbDab, TheraSAbDab) require an operation parameter. This applies to both Python SDK and MCP.

✅ CORRECT Usage

# Python SDK
result = tu.tools.IMGT_search_genes(
    operation="search_genes",  # ✅ Required!
    gene_type="IGHV",
    species="Homo sapiens"
)
// MCP
{
  "operation": "search_genes",
  "gene_type": "IGHV",
  "species": "Homo sapiens"
}

❌ WRONG Usage

# ❌ Missing 'operation' parameter - WILL FAIL!
result = tu.tools.IMGT_search_genes(
    gene_type="IGHV",
    species="Homo sapiens"
)
# Error: "Parameter validation failed for 'root': 'operation' is a required property"

Run Examples (Python SDK)

# Run the working pipeline
cd skills/tooluniverse-antibody-engineering
python antibody_pipeline.py

# Or use the renamed version
python python_implementation.py

# Generates report:
#   - Antibody_Humanization_PD-L1.md

What Works ✅

  • ✅ SOAP tool calls (with correct 'operation' parameter)
  • ✅ IMGT germline search
  • ✅ TheraSAbDab clinical precedent search
  • ✅ SAbDab structure search
  • ✅ IEDB immunogenicity assessment
  • ✅ Report generation (markdown)
  • ✅ Feasibility scoring

Known Limitations

⚠️ Data Availability: Some tools return empty results:

  • TheraSAbDab may not find all targets (try alternative names like "CD274" for "PD-L1")
  • IMGT SOAP service may have limited responses
  • This is a data/API availability issue, not a code issue

⚠️ Missing Tools: Some tools from original skill are not available:

  • alphafold_get_prediction - Structure modeling not available
  • UniProt_get_entry_by_accession - Target info not available
  • These block certain workflow phases but core humanization still works

⚠️ IEDB Search Specificity: IEDB may return non-specific results

  • Search is broad and doesn't filter well by organism/target
  • Manual filtering may be needed

Tool Parameters (All Implementations)

These parameter names apply to both Python SDK and MCP:

Tool Parameter Correct Name Notes
IMGT_search_genes SOAP operation operation="search_genes" CRITICAL - Required first parameter
IMGT_search_genes Gene type gene_type "IGHV", "IGKV", "IGLV"
IMGT_search_genes Species species "Homo sapiens" for human
IMGT_get_sequence SOAP operation operation="get_sequence" CRITICAL - Required first parameter
IMGT_get_sequence Accession accession Gene accession number
SAbDab_search_structures SOAP operation operation="search_structures" CRITICAL - Required first parameter
SAbDab_search_structures Query query Target antigen name
TheraSAbDab_search_by_target SOAP operation operation="search_by_target" CRITICAL - Required first parameter
TheraSAbDab_search_by_target Target target Target antigen name
iedb_search_epitopes Epitope name epitope_name NOT SOAP - no 'operation'

Note: Whether using Python SDK or MCP, the parameter names are the same


Alternative Target Names for TheraSAbDab

If TheraSAbDab returns empty results, try alternative names:

Common Name Alternative Names
PD-L1 PDL1, CD274, B7-H1
HER2 ERBB2, NEU
EGFR HER1, ERBB1
CD20 MS4A1
VEGF VEGFA

Example (Python):

# Try multiple names
for name in ["PD-L1", "PDL1", "CD274", "B7-H1"]:
    result = tu.tools.TheraSAbDab_search_by_target(
        operation="search_by_target",
        target=name
    )
    if result.get('data', {}).get('therapeutics'):
        print(f"Found results with: {name}")
        break

Example (MCP):

// Try with different names if first fails
{
  "operation": "search_by_target",
  "target": "CD274"
}

Pipeline Analysis Steps

The working pipeline performs 5-step analysis:

  1. Clinical Precedent Search

    • Search TheraSAbDab for approved/clinical antibodies
    • Try alternative target names if needed
  2. Germline Gene Identification

    • Search IMGT for IGHV (heavy chain) germlines
    • Search IMGT for IGKV (kappa light chain) germlines
    • Provides foundation for humanization
  3. Structural Precedent Search

    • Search SAbDab for antibody-antigen structures
    • Identifies structural benchmarks
  4. Immunogenicity Assessment

    • Search IEDB for T-cell epitopes
    • Assesses immunogenicity risk
  5. Humanization Scoring

    • 0-100 score based on data availability
    • Feasibility interpretation

Feasibility Score Interpretation

  • 75-100: HIGH FEASIBILITY - Strong precedents and resources available
  • 50-74: MODERATE FEASIBILITY - Some resources available, gaps exist
  • 25-49: LOW FEASIBILITY - Limited precedents, significant effort needed
  • 0-24: VERY LOW FEASIBILITY - Minimal resources, high risk

Files

  • antibody_pipeline.py - Complete working pipeline ✅
  • python_implementation.py - Same as above (for consistency) ✅
  • SKILL.md - Original skill documentation (has incorrect examples)
  • EXAMPLES.md - Clinical scenarios (has incorrect examples)
  • README.md - Original readme
  • QUICK_START.md - This file (CORRECT examples for Python & MCP)

Key Fixes Applied

1. SOAP Tool Parameters ✅

  • Problem: All SOAP tools failed with "missing 'operation' parameter" error
  • Solution: Added operation parameter to all IMGT, SAbDab, TheraSAbDab calls
  • Impact: SOAP tools now work without validation errors
  • Applies to: Both Python SDK and MCP

2. Alternative Target Names ✅

  • Problem: TheraSAbDab returns empty for some target names
  • Solution: Try multiple alternative names (PD-L1, PDL1, CD274, B7-H1)
  • Impact: Increases chance of finding clinical precedents

3. Graceful Error Handling ✅

  • Problem: Pipeline crashed when tools returned no data
  • Solution: Added try/except blocks, continue on empty results
  • Impact: Pipeline completes even when data is limited

What Still Needs Work

Tools Not Available

These tools from the original skill are not in ToolUniverse:

  • alphafold_get_prediction - Blocks structure modeling phase
  • UniProt_get_entry_by_accession - Blocks target characterization
  • PubMed_search_articles - Available as PubMed_search_articles

Missing Implementations

These analysis functions need to be implemented:

  • CDR annotation (IMGT numbering)
  • Framework identity calculation
  • PTM site detection (deamidation, isomerization, oxidation)
  • Aggregation risk assessment
  • pI calculation

Data Gaps

  • IMGT SOAP service returns no data (may be service issue)
  • TheraSAbDab requires exact target name matching
  • IEDB returns non-specific results (needs better filtering)

Updated: 2026-02-09 - Now supports both Python SDK and MCP implementations