mcpField
P
proteinmpnn

proteinmpnn

github.com/adaptyvbioその他17246 回インストール20 週間前に更新
リポジトリ

proteinmpnn について

proteinmpnnは、バックボーン構造からタンパク質配列を設計するためのガイドです。ProteinMPNNと関連モデルを扱い、配列生成、チェーン選択、位置制約を設定する研究者向けに、バインダーや界面設計の例を示します。

主な機能

  1. 01PDBバックボーンからの配列生成
  2. 02チェーンと位置の選択
  3. 03温度とアミノ酸の制御
  4. 04ProteinMPNN、SolubleMPNN、LigandMPNN

活用シーン

  1. 01バインダーチェーン配列の設計
  2. 02タンパク質界面の再設計
  3. 03複数のコンフォメーション向け配列生成

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/proteinmpnnを入力して読み込まれたか確認します。

同梱ファイルreferences/temperature-guide.md

詳細

ProteinMPNN Sequence Design

前提条件

要件最低要件推奨
Python3.8+3.10
CUDA11.0+11.7+
GPU VRAM8GB16GB (T4)
RAM8GB16GB

実行方法

初めてですか? Modal と biomodals のセットアップについては、はじめにを参照してください。

オプション 1:ローカルインストール(推奨)
git clone https://github.com/dauparas/ProteinMPNN.git
cd ProteinMPNN

python protein_mpnn_run.py \
  --pdb_path backbone.pdb \
  --out_folder output/ \
  --num_seq_per_target 16 \
  --sampling_temp "0.1"

GPU:T4(16GB)で十分 | 所要時間:約50〜100配列/分

オプション 2:Modal(LigandMPNN ラッパー経由)
cd biomodals
# modal_ligandmpnn.py takes --input-pdb and forwards run.py args via --params-str
modal run modal_ligandmpnn.py \
  --input-pdb backbone.pdb \
  --params-str "--model_type protein_mpnn --number_of_batches 16 --temperature 0.1"

GPU(Modal):デフォルトは A10G | タイムアウト:デフォルトは900s

注:LigandMPNN には ProteinMPNN の機能が含まれています(--model_type protein_mpnn で選択)。

設定スキーマ

主なパラメーター
パラメーターデフォルト範囲説明
--pdb_path必須path単一の PDB 入力
--pdb_path_chainsすべてA,B設計するチェーン(カンマ区切り)
--out_folder必須path出力ディレクトリ
--num_seq_per_target11-1000構造あたりの配列数
--sampling_temp"0.1""0.0001-1.0"温度(文字列です!)
--seed0int乱数シード
--batch_size11-32バッチサイズ
温度ガイド
0.1  -> Low diversity, high recovery (production)
0.2  -> Moderate diversity (default)
0.3  -> Higher diversity (exploration)
0.5+ -> Very diverse, lower quality

重要:温度は浮動小数点数ではなく、文字列として渡す必要があります。

よくある間違い

温度パラメーター

✅ 正しい例:

--sampling_temp "0.1"    # String with quotes

❌ 誤った例:

--sampling_temp 0.1      # Float without quotes - may cause errors
--sampling_temp 0.1,0.2  # Multiple temps need proper format
固定位置の JSONL

✅ 正しい例:

{"A": [1, 2, 3, 10, 11], "B": [5, 6]}

❌ 誤った例:

{"A": "1,2,3,10,11"}     # String instead of list
{A: [1, 2, 3]}           # Missing quotes on key
{"A": [1,2,3,]}          # Trailing comma
チェーンの選択

✅ 正しい例:

--pdb_path_chains A,B    # No spaces

❌ 誤った例:

--pdb_path_chains A, B   # Space after comma
--pdb_path_chains "A,B"  # Quotes may cause issues
アミノ酸バイアス
# Bias toward certain AAs (positive = favor)
--bias_AA_jsonl '{"A": {"A": 1.5, "W": -2.0}}'

# Omit specific AAs globally
--omit_AAs "CM"  # No cysteine or methionine

# Per-position omission
--omit_AA_jsonl '{"A": {"1": "C", "2": "CM"}}'
マルチチェーン設計
# Design chains A and B together
--pdb_path_chains A,B

# Tie chains (same sequence)
--tied_positions_jsonl tied.jsonl

バリアントの比較

バリアント用途主な違い
ProteinMPNN汎用オリジナルモデル
SolubleMPNN発現可溶性タンパク質で学習
LigandMPNN小分子リガンドを考慮したコンテキスト

出力形式

output/
├── seqs/
│   └── backbone.fa          # FASTA sequences
└── backbone_pdb/
    └── backbone_0001.pdb    # PDBs with designed sequence
FASTA ヘッダー形式
>backbone_0001, score=1.234, global_score=1.234, seq_recovery=0.85
MKTAYIAKQRQISFVKSHFSRQLE...

よくあるワークフロー

バインダー配列設計
python protein_mpnn_run.py \
  --pdb_path binder_backbone.pdb \
  --out_folder output/ \
  --num_seq_per_target 16 \
  --sampling_temp "0.1" \
  --pdb_path_chains B  # Design binder chain only
インターフェースの再設計
# Fix core, design interface
python protein_mpnn_run.py \
  --pdb_path complex.pdb \
  --fixed_positions_jsonl core_positions.jsonl \
  --num_seq_per_target 32
マルチステート設計
# Design for multiple conformations
python protein_mpnn_run.py \
  --pdb_path_multi state1.pdb,state2.pdb \
  --num_seq_per_target 16

出力例

実行成功
$ python protein_mpnn_run.py --pdb_path backbone.pdb --out_folder output/ --num_seq_per_target 8
Loading model weights...
Designing sequences for backbone.pdb
Generated 8 sequences in 2.3 seconds

output/seqs/backbone.fa:
>backbone_0001, score=1.234, global_score=1.189, seq_recovery=0.82
MKTAYIAKQRQISFVKSHFSRQLEERGLTKE...
>backbone_0002, score=1.198, global_score=1.156, seq_recovery=0.79
MKTAYIAKQRQISFVKSQFSRQLDERGLTKE...

良好な出力の目安:

  • スコア:1.0〜2.0(低いほど信頼度が高い)
  • 配列回復率:de novo の場合は0.3〜0.6、再設計の場合は0.7〜0.9
  • temp > 0.1 の場合、多様な配列(すべて同一ではない)

判断ツリー

Should I use ProteinMPNN?
│
├─ Have a backbone structure?
│  ├─ Yes → Continue below
│  └─ No → Use RFdiffusion first
│
├─ What's in the binding site?
│  ├─ Nothing / protein only → ProteinMPNN ✓
│  ├─ Small molecule / ligand → Use LigandMPNN
│  └─ Metal / cofactor → Use LigandMPNN
│
├─ Priority?
│  ├─ Solubility/expression → Consider SolubleMPNN
│  ├─ Speed → ProteinMPNN ✓
│  └─ AF2 optimization → Consider ColabDesign
│
└─ Need fixed positions?
   ├─ Yes → Use --fixed_positions_jsonl
   └─ No → ProteinMPNN ✓ (design all)

一般的なパフォーマンス

キャンペーン規模所要時間(T4)コスト(Modal)備考
100バックボーン × 8配列15-20 min~$2標準
500バックボーン × 8配列1-1.5h~$8大規模キャンペーン
1000バックボーン × 16配列3-4h~$18包括的

スループット:T4 GPU で約50〜100配列/分。


検証

grep -c "^>" output/seqs/*.fa  # Should match backbone_count × num_seq_per_target

トラブルシューティング

配列の多様性が低い:sampling_temp を0.2〜0.3に上げてください 回復率が低い:sampling_temp を0.1に下げてください OOM エラー:batch_size を小さくしてください 不要なシステイン:--omit_AAs "C" を使用してください

エラーの解釈
エラー原因対処方法
RuntimeError: CUDA out of memoryタンパク質が長い、またはバッチが大きいbatch_size を小さくするか、より大きな GPU を使用してください
KeyError: 'A'PDB にチェーンがありませんPDB ファイルのチェーン ID を確認してください
JSONDecodeErrorJSONL 形式が無効ですJSON 構文を検証してください(よくある間違いを参照)
IndexError: list indexチェーンまたは残基リストが空ですPDB に HEADER だけでなく原子が含まれていることを確認してください

次:検証のための構造予測 → フィルタリングには protein-qc を使用してください。

コメント