Scientific Protein Design
Computational protein design skills. Provides workflows integrating protein language models such as ESM (Evolutionary Scale Modeling), de novo backbone design, sequence optimization, and stability/expressibility prediction.
When to Use
- When performing de novo protein design
- When evaluating sequences with an ESM protein language model
- When guiding library design for directed evolution
- When predicting the impact of mutations on stability and function
- When designing binders (antibodies/peptides/miniproteins)
- When redesigning enzyme active sites
Quick Start
Protein design pipeline
Phase 1: Target Definition
- 設計目標の定義(バインダー/酵素/足場)
- ターゲット構造の取得
- 設計制約の設定
↓
Phase 2: Backbone Generation
- De novo バックボーン生成(RFdiffusion 等)
- トポロジー指定
- 機能サイト保存
↓
Phase 3: Sequence Design
- ProteinMPNN 配列設計
- ESM スコアリング
- 多様性確保
↓
Phase 4: In Silico Validation
- ESMFold 構造予測
- pLDDT / pTM 評価
- 設計-予測一致度 (RMSD)
↓
Phase 5: Developability Assessment
- 安定性予測
- 発現予測
- 凝集リスク
- 最終ランキング
Phase 1: ESM protein language model
Sequence analysis with ESM-2 / ESM-1v
import torch
import esm
def load_esm_model(model_name="esm2_t33_650M_UR50D"):
"""
ESM-2 モデルのロード。
モデルサイズ: 8M, 35M, 150M, 650M, 3B, 15B
推奨: 650M (精度と速度のバランス)
"""
model, alphabet = esm.pretrained.esm2_t33_650M_UR50D()
batch_converter = alphabet.get_batch_converter()
model.eval()
return model, alphabet, batch_converter
def compute_sequence_loglikelihood(model, alphabet, batch_converter, sequence):
"""
配列の対数尤度を計算。設計品質の指標として使用。
"""
data = [("protein", sequence)]
batch_labels, batch_strs, batch_tokens = batch_converter(data)
with torch.no_grad():
results = model(batch_tokens, repr_layers=[33])
logits = results["logits"]
log_probs = torch.log_softmax(logits, dim=-1)
# 各位置の正解アミノ酸の対数確率を取得
token_log_probs = []
for i, aa in enumerate(sequence):
aa_idx = alphabet.get_idx(aa)
token_log_probs.append(log_probs[0, i+1, aa_idx].item())
return {
"sequence": sequence,
"mean_log_likelihood": sum(token_log_probs) / len(token_log_probs),
"total_log_likelihood": sum(token_log_probs),
"per_position": token_log_probs,
}
Phase 2: Mutation effect prediction
Zero-shot mutation scan
def predict_mutation_effect(model, alphabet, batch_converter, wt_sequence, mutations):
"""
ESM による zero-shot 変異影響予測。
mutations: [("A", 42, "V"), ("G", 100, "D"), ...] # (wt_aa, pos, mut_aa)
出力: 各変異の ΔLL (log-likelihood ratio)
正 = 有利な変異, 負 = 有害な変異
"""
wt_data = [("wt", wt_sequence)]
_, _, wt_tokens = batch_converter(wt_data)
with torch.no_grad():
wt_results = model(wt_tokens)
wt_logits = wt_results["logits"]
wt_log_probs = torch.log_softmax(wt_logits, dim=-1)
mutation_effects = []
for wt_aa, pos, mut_aa in mutations:
wt_idx = alphabet.get_idx(wt_aa)
mut_idx = alphabet.get_idx(mut_aa)
# pos は 0-indexed、tokens は 1-indexed (BOS token)
delta_ll = (wt_log_probs[0, pos+1, mut_idx] - wt_log_probs[0, pos+1, wt_idx]).item()
mutation_effects.append({
"mutation": f"{wt_aa}{pos+1}{mut_aa}",
"delta_log_likelihood": delta_ll,
"prediction": "Beneficial" if delta_ll > 0 else "Neutral" if delta_ll > -2 else "Deleterious",
})
return sorted(mutation_effects, key=lambda x: x["delta_log_likelihood"], reverse=True)
Phase 3: De novo design workflow
Pipeline by design task
## Task-Specific Pipelines
### Binder Design (バインダー設計)
1. ターゲット構造取得 → エピトープ定義
2. RFdiffusion でバックボーン生成 (≥5 candidates)
3. ProteinMPNN で配列設計 (≥8 sequences/backbone)
4. ESMFold で構造検証
5. Interface 品質評価 (pAE at interface)
### Scaffold Design (足場設計)
1. トポロジー指定 (α/β/mixed)
2. サイズ制約 (50-200 residues)
3. 機能サイト保存
4. 安定性最適化
### Enzyme Redesign (酵素再設計)
1. 活性部位ジオメトリ維持
2. 触媒残基保存
3. 基質アクセス確保
4. 折り畳みエネルギー最適化
Phase 4: In Silico Validation
ESMFold validation criteria
def validate_design(designed_sequence, target_structure_path=None):
"""
設計配列の in silico 検証。
ESMFold で構造予測し、品質メトリクスを評価。
"""
validation = {
"sequence_length": len(designed_sequence),
"esm_log_likelihood": None, # mean LL
"esmfold_plddt": None, # mean pLDDT
"esmfold_ptm": None, # pTM score
"rmsd_to_target": None, # if target provided
"pass_criteria": {},
}
# Pass/Fail 基準
criteria = {
"pLDDT": {"threshold": 70, "direction": ">"},
"pTM": {"threshold": 0.5, "direction": ">"},
"RMSD": {"threshold": 2.0, "direction": "<"}, # Å
}
return validation
# 発現系推奨
EXPRESSION_SYSTEMS = {
"simple_scaffold": {"recommended": "E. coli", "alternative": "Insect cells"},
"disulfide_containing": {"recommended": "Mammalian", "alternative": "Insect cells"},
"glycosylated": {"recommended": "Mammalian (CHO/HEK)", "alternative": None},
"toxic_protein": {"recommended": "Cell-free", "alternative": "Insect cells"},
"large_complex": {"recommended": "Insect cells (baculovirus)", "alternative": "Mammalian"},
}
Report Template
# Protein Design Report: [PROJECT NAME]
**Design Type**: [Binder / Scaffold / Enzyme]
**Target**: [target protein]
**Date**: [date]
## 1. Design Objective
## 2. Target Analysis
### 2.1 Structure Used
### 2.2 Design Constraints
### 2.3 Key Residues
## 3. Backbone Candidates
| # | Method | Topology | Size | Score |
|---|--------|----------|------|-------|
## 4. Sequence Designs (Top 10)
| Rank | Backbone | Sequence | MPNN Score | ESM LL | pLDDT | pTM |
|------|----------|----------|------------|--------|-------|-----|
## 5. Validation Results
### 5.1 Structure Prediction
### 5.2 Design-Target RMSD
### 5.3 Interface Quality (if binder)
## 6. Developability
| Metric | Value | Status |
|--------|-------|--------|
| Aggregation risk | | |
| Isoelectric point | | |
| Expression prediction | | |
## 7. Final Candidates
### 7.1 Recommended for testing
### 7.2 Sequences (FASTA format)
## 8. Experimental Recommendations
### 8.1 Expression System
### 8.2 Purification Strategy
### 8.3 Characterization Assays
Completeness Checklist
- Target structure: use PDB or AlphaFold
- Backbone: generate ≥5 candidates
- Sequence design: ≥8 sequences/backbone
- ESM score: compute LL for all candidates
- Structure validation: pLDDT >70 & pTM >0.5
- Expression system recommendation: recommendation according to design type
- Final candidates: ≥3 passing designs
Best Practices
- Ensure diversity: explore sequence space broadly (adjust temperature parameter)
- Also consider negative design: eliminate undesirable structures
- Start with conservative mutations: prioritize consensus mutations
- Experimental feedback: plan a design-test-learn cycle
- Scale awareness: explicitly state the trade-off between computational cost and accuracy
References
Output Files
| File |
Format |
Generation timing |
results/design_report.md |
Design report (Markdown) |
When all designs are complete |
results/design_candidates.json |
Design candidate data (JSON) |
When screening is complete |
results/esm_scores.json |
ESM score data (JSON) |
When the mutation scan is complete |
Available tools
ToolUniverse External tools available via SMCP.
| Category |
Main tools |
Purpose |
| UniProt |
UniProt_get_entry_by_accession |
Protein entry retrieval |
| UniProt |
UniProt_get_sequence_by_accession |
Amino acid sequence retrieval |
| InterPro |
InterPro_get_protein_domains |
Domain annotation |
| Proteins API |
proteins_api_get_features |
Protein feature information |
| Proteins API |
proteins_api_get_variants |
Known variant information |
| AlphaMissense |
AlphaMissense_get_residue_scores |
Residue-level resistance prediction |
Reference skills
| Skill |
Integration |
scientific-protein-structure-analysis |
← Provision of target structure data |
scientific-sequence-analysis |
← Sequence and evolutionary information |
scientific-lab-automation |
→ Expression and purification protocols for designed proteins |
scientific-admet-pharmacokinetics |
→ PK evaluation of protein therapeutics |
scientific-academic-writing |
→ Publication of research results |