mcpField
P
protein_design_boltzgen

protein_design_boltzgen

github.com/fastfold-aiその他3128 回インストール12 週間前に更新
リポジトリ

protein_design_boltzgen について

protein_design_boltzgenは、FastFold BoltzGenを使うワークフローSkillで、タンパク質、ペプチド、ナノボディの設計と結果確認を支援します。API経由でワークフローを作成・実行し、ドラフト確認、候補指標の取得、構造ファイルのダウンロードを行えます。

主な機能

  1. 01単一または複数の設計YAMLの準備
  2. 02CIF入力ファイルの取得・整形
  3. 03ワークフローグラフの作成と登録
  4. 04実行前のドラフト確認
  5. 05候補指標の要約と成果物の取得

活用シーン

  1. 01タンパク質やペプチド結合体の設計フロー構築
  2. 02標的構造と設計仕様の準備
  3. 03候補指標と構造の確認

インストール

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

$npx skills add https://github.com/fastfold-ai/skills --skill protein_design_boltzgen

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
.env.example
api_endpoints.md
preset_references.md
metrics_guide.md
spec_examples.md
references/examples/
README.md
references/examples/binding_disordered_peptides/
tpp4.yaml
references/examples/cyclic_against_hiv_antibody_site/
9d3d.yaml
references/examples/nanobody_against_penguinpox_multi_spec/
penguinpox.yaml
9bkq-assembly2.cif
references/examples/nanobody_scaffolds/
7eow.yaml
7xl0.yaml
sonelokimab.yaml
gontivimab.yaml
isecarosmab.yaml
isecarosmab.cif
gontivimab.cif
sonelokimab.cif
7xl0.cif
references/examples/protein_binding_small_molecule/
chorismite.yaml
references/examples/small_molecule_from_file_and_smiles/
4g37.yaml
4g37.pdb
references/examples/vanilla_protein/
1g13prot.yaml
references/examples/vanilla_target_binding_site/
README.md
beetletert.yaml
references/workflow_specs/
protein_binding_small_molecule.workflow.yml
cyclic_against_hiv_antibody_site.workflow.yml
binding_disordered_peptides.workflow.yml
nanobody_against_penguinpox.workflow.yml
small_molecule_from_file_and_smiles.workflow.yml

詳細

Protein Design (BoltzGen)

概要

このスキルは、Composer と同じフローで FastFold BoltzGen ワークフローを実行します。

  1. デザイン仕様 YAML を準備または生成します(単一仕様または複数仕様)。
  2. CIF 入力を取得・クリーンアップするか、既存の参照を再利用します。
  3. ドラフトワークフローを作成します。
  4. ファイルをアップロードし、完全なワークフローグラフ(workflow.yml)を 1 回のトランザクションで登録・更新します。
  5. グラフの登録・更新が空でないことを確認した後、Composer の完全なリンクとドラフトのレビュー概要(入力 + パラメーター + YAML プレビュー)を共有します。
  6. ユーザーに検証と確認を依頼します。
  7. 実行し、完了を待って、候補の指標と構造リンクを要約します。

以下に基づいています。

ベース URL

スクリプトのデフォルト値は、他のスキルと一致させてください。

  • API のデフォルト: https://api.fastfold.ai
  • ユーザー向けリンクの UI のデフォルト: https://cloud.fastfold.ai

認証

推奨(Sandwalk エージェント): Integrations → Fastfold AI Cloud。チャットシェルでは FASTFOLD_API_KEY として公開されます。このスキルは X-API-Key: <FASTFOLD_API_KEY> を送信します。 Sandwalk が設定する環境変数を使用してください。値をハードコードしたり、ホームディレクトリの設定パスを検索したりしないでください。

チャットでユーザーにシークレットを貼り付けるよう求めないでください。バンドルされたスクリプトで「not configured」または認証エラーが明確に発生するまでは、.env を作成したり、export を求めたりしないでください。 printenv FASTFOLD_API_KEY を優先するか、スクリプトを実行してください。

環境変数: FASTFOLD_API_KEY、SANDWALK_SESSION_WORKSPACE(ワークスペースのルート)、 SANDWALK_SKILLS_DIR(設定されている場合はスキルのルート)。

代替手段: ワークスペースの .env(references/.env.example)、シェルでのエクスポート、または https://cloud.fastfold.ai/api-keys でのキー作成。

スクリプトでキーが見つからないと報告された場合: Sandwalk Integrations(または .env / エクスポート)を案内してから、再試行してください。ファイルシステム内のシークレットを探さないでください。

このスキルを使用する場面

  • ユーザーが BoltzGen による設計(タンパク質、ペプチド、ナノボディ、小分子バインダー)を依頼している場合。
  • デザイン仕様の作成支援(単一または複数の YAML 仕様)が必要な場合。
  • アップロード前に CIF/PDB の取得やクリーンアップが必要な場合。
  • Composer と同等の API 専用ワークフローを希望している場合。
  • ドラフトワークフロー/Composer のリンクや実行ステータスを求めている場合。
  • BoltzGen の出力指標や候補について解釈を求めている場合。

スクリプト

このスキルには、scripts/ 内に自己完結型のスクリプトがバンドルされています(標準ライブラリのみ)。

Sandwalk エージェント — 呼び出し方法(最初に該当したものを使用):

  1. SANDWALK_SKILLS_DIR が設定されている場合: python3 "$SANDWALK_SKILLS_DIR/protein_design_boltzgen/scripts/<name>.py ..."。
  2. それ以外の場合は、Skills System またはスキルのメンション時のコンテキストからスキルディレクトリを使用します。
  3. SANDWALK_SESSION_WORKSPACE が設定されている場合は、その配下にダウンロードを保存します。

/protein_design_boltzgen、/skills/...、または Modal の /workspace をインストール先として扱わないでください。 ~/.sandwalk/... をハードコードしたり、find/locate で検索したりしないでください。

主なスクリプト:

  • python scripts/workflow_api.py — ワークフローの作成/構築/アップロード/実行/結果取得
  • python scripts/fetch_cif.py — 入力 CIF ファイルの取得
重要な実行上のガードレール(必須)

python scripts/workflow_api.py または python scripts/fetch_cif.py がエラーを返した場合:

  1. 正確なコマンドと簡潔なエラーを報告します。
  2. FASTFOLD_API_KEY が設定されていない場合は、Sandwalk Integrations(または .env / エクスポート。キーは https://cloud.fastfold.ai/api-keys で作成できます)を案内します。
  3. 停止します。代替手段による探索(find、locate、パッケージツリーの ls、python -c)を試みないでください。
バックグラウンド実行プロトコル(必須)

ユーザーから BoltzGen を「バックグラウンド」で実行するよう依頼された場合は、次のように分けてください。

  1. draft/submit/execute はフォアグラウンドで実行します。
  2. workflow_id をすぐに取得して表示します。
  3. バックグラウンドで実行するのは、長時間の待機/ログ監視ステップのみです。
  4. 保存しておいた同じ workflow_id を使って結果を取得します。

必ず守るルール:

  • 正式な ID を生成する create/submit/execute ステップをバックグラウンドで実行してはいけません。
  • エージェントが開始した実行について、ユーザーに workflow_id の回収を依頼してはいけません。
  • ID の回収にファイルシステムの検索(find、locate、ls /tmp、シェル履歴の grep)を使ってはいけません。
  • コマンドエラーで ID の取得に失敗した場合は、submit をフォアグラウンドで再実行し、新しい workflow_id を返します。
「例を表示して」の高速パス

「Boltzgen のタンパク質設計の例を見せて」のようなプロンプトの場合:

  1. python scripts/workflow_api.py example-files --list を実行します。
  2. その出力をそのまま提示します。
  3. ユーザーが詳細を求めた場合は、任意でプリセット解決コマンドを1つ(--preset ... --json)実行します。
  4. ユーザーがファイル単位での確認を明示的に求めない限り、ディレクトリをスキャンしないでください。
  • ワークフローのドラフトを作成:
    • 明示的な名前を指定:
      • python scripts/workflow_api.py new --name "API - vanilla target binding site"
    • シンプルな名前を自動設定:
      • python scripts/workflow_api.py new --preset vanilla_target_binding_site
  • バンドルされたサンプルファイルを解決(サンプルを扱う際の推奨される最初の手順):
    • 利用可能なプリセットを一覧表示:
      • python scripts/workflow_api.py example-files --list
    • プリセットのファイルを解決:
      • python scripts/workflow_api.py example-files --preset vanilla_target_binding_site --json
    • 5CQG の簡易エイリアス:
      • python scripts/workflow_api.py example-files --preset 5cqg --json
  • 公式テンプレートからワークフロー仕様を構築(アップロード後):
    • python scripts/workflow_api.py build-spec --preset vanilla_target_binding_site --out /tmp/boltzgen_workflow.yml
    • python scripts/workflow_api.py build-spec --preset 5cqg --json
  • CIF を取得してクリーンアップ:
    • python scripts/fetch_cif.py --pdb-id 5cqg --out-dir /tmp/boltzgen_inputs
  • ワークフローのワークスペースにファイルをアップロード:
    • python scripts/workflow_api.py upload --file /tmp/boltzgen_inputs/5cqg.cif --file-type protein
    • python scripts/workflow_api.py upload --file ./my_design.yaml --file-type yml
  • グラフ仕様を保存(単一の upsert):
    • python scripts/workflow_api.py upsert --spec /tmp/workflow.yml
  • ユーザーによる検証用のドラフトレビュー(upsert 後):
    • python scripts/workflow_api.py draft-review
    • python scripts/workflow_api.py draft-review --json
    • 以下が含まれます:
      • upsert された workflow.yml のプレビュー
      • 設計仕様 YAML ごとのプレビュー(実行前に結合部位のフィールドを確認可能)
  • Composer のリンク全体を表示/共有(upsert 後):
    • python scripts/workflow_api.py composer-link
  • 実行:
    • python scripts/workflow_api.py execute
  • 待機(COMPLETED になるとすべての成果物を自動ダウンロード):
    • python scripts/workflow_api.py wait --poll-seconds 30 --timeout-seconds 7200
    • 出力ディレクトリを選択:python scripts/workflow_api.py wait --out-dir ./fastfold-artifacts/protein_design_boltzgen/<workflow_id>
    • 自動ダウンロードを無効化:python scripts/workflow_api.py wait --no-download
  • ログ(単一のスナップショットと解釈):
    • python scripts/workflow_api.py logs
    • python scripts/workflow_api.py logs --tail-lines 200
  • 実行中のライブログ:
    • python scripts/workflow_api.py logs --watch --poll-seconds 30 --timeout-seconds 1800
  • ログの JSON ペイロード:
    • python scripts/workflow_api.py logs --json
  • 候補/指標とリンクを取得:
    • python scripts/workflow_api.py results
    • python scripts/workflow_api.py results --json(parsed_results_raw 全体、すべての指標フィールド名、および ranked_table を含みます)
  • すべての出力成果物(CIF/CSV/PDF)をローカルディレクトリにダウンロード(INVENTORY.md と inventory.json を書き込み):
    • python scripts/workflow_api.py download
    • python scripts/workflow_api.py download --out-dir ./fastfold-artifacts/protein_design_boltzgen/<workflow_id>
    • python scripts/workflow_api.py download --json
    • デフォルトの出力ディレクトリ:./fastfold-artifacts/protein_design_boltzgen/<workflow_id>。ファイルごとの上限は --max-bytes で指定します(デフォルトは 200 MB)。

エージェントはコマンドを列挙するだけでなく、ユーザーに代わってこれらのスクリプトを実行してください。

結果と成果物のダウンロード

結果では、直接の URL ではなく ライブラリアイテム参照(libraryItemId + fileName)として出力ファイルが返されます。必ず同梱スクリプトを使ってダウンロードしてください。ファイルがブラウザーでしか取得できないと説明してはならず、ブラウザー経由の cloud.fastfold.ai/api/structure ルートも使用しないでください(API キーが拒否されます)。正しい API キー対応のパスは GET /v1/library/file/{item_id}/{file_name} です(library/file/... の順序に注意してください)。スクリプトが署名付き artifacts.fastfold.ai URL を解決し、バイト列を保存します。

  • 実行が COMPLETED に到達したら、すべての成果物を自動的にダウンロードします。依頼されるまで待ってはいけません。
    • wait は COMPLETED になると自動的にダウンロードします(ユーザーがダウンロードしないことを選んだ場合に限り、--no-download を渡してください)。
    • 実行がすでに完了している場合は、自分で python scripts/workflow_api.py download を実行してください。
  • COMPLETED 以外の終了状態(FAILED/STOPPED/CANCELLED)では成果物はありません。代わりにステータスを説明してください。
  • ダウンロードごとに、出力ディレクトリにマニフェストが作成されます。INVENTORY.md(ファイル、種類、サイズ、説明、CSV 列のプレビューを含む読みやすい表)と inventory.json(列の完全な一覧)です。ユーザーには INVENTORY.md を案内してください。

成果物の種類:rank<k>_<x>.cif(ランク付けされた設計 #k の構造)、all_designs_metrics.csv(すべての設計)、final_designs_metrics_<budget>.csv(最終的に選択されたセット)、results_overview.pdf(レポート)。

ダウンロード後、ローカルの out_dir パスと Composer/Mol* のリンクを報告してください。references/api_endpoints.md を参照してください。

ローカルファイルの引用: download / wait による自動ダウンロードの後、local_paths または DOWNLOADED_LOCAL_PATHS: にあるすべてのパスをそのままコピーしてください。完全な絶対パスを1行に1つ記載します。ファイル名やワークフロー ID を途中で省略してはいけません。リモート URL は、Markdown の [ラベル](url) ではなく ラベル: https://… の形式で出力し、URL をそのまま表示してください。

例を優先する動作(必須)

ユーザーが例を求める場合(特に「タンパク質の設計を手伝って」「シンプルなペプチド結合剤」「5CQG でやってみよう」などの自然なプロンプトの場合)は、次の順序を厳守してください。

  1. まず references/examples/ の同梱ローカルプリセットファイルを使用します。
  2. 一致するローカルプリセットファイルがある場合、PDB/RCSB から取得してはいけません。
  3. ファイルを見つけるためにリポジトリ内を検索してはいけません(探索的なパス検索は禁止です)。既知の参照パスを直接使用してください。
  4. example-files でファイルを解決し、ドラフトを作成し、ローカル参照ファイルをアップロードし、build-spec でワークフロー仕様を作成し、グラフを upsert し、ドラフトレビューを共有してから、ユーザーの確認を待ちます。

自然なリクエストに対するデフォルトの対応:

  • 一般的な「シンプルなペプチド結合剤」 -> vanilla_target_binding_site
  • 「5CQG」 -> references/examples/vanilla_target_binding_site/beetletert.yaml
    • references/examples/vanilla_target_binding_site/5cqg.cif
  • 「シンプルなタンパク質の例」 -> vanilla_protein

外部ソースから CIF を取得・クリーンアップするのは、次の場合に限ります。

  • ユーザーが、ローカルの例に含まれていない新しいターゲットを明示的に求めている場合、または
  • ユーザーが同梱の参照ファイルの置き換え・上書きを求めている場合。

プリセットのスモークテストでは、ワークフロー YAML を手書きしてはいけません。必ず次を使用してください。

  • references/workflow_specs/*.workflow.yml(公式テンプレート)
  • python scripts/workflow_api.py build-spec ...(プレースホルダーの置換)

一から作成する YAML の記述(適切なプリセットがない場合)

ユーザーのリクエストに一致する組み込みプリセットがない場合は、次の手順に従って、ユーザーの入力から設計仕様 YAML を作成します。

  1. まず、ユーザーから必要な情報を収集します。
    • 対象構造ファイル(.cif を推奨、.pdb も可)
    • 対象の鎖と、任意の残基範囲
    • 設計モダリティ(タンパク質/ペプチド/ナノボディ/リガンドのコンテキスト)
    • 設計制約(結合部位の残基、含める/除外する要素、挿入、結合)
  2. 最終的な YAML を作成する前に、対象の CIF/PDB ファイルを提供またはアップロードするようユーザーに依頼します。
  3. 入力を次のサポート対象キーにのみ対応付けます。
  4. ドキュメントに記載されていないキーを考案したり渡したりしないでください。リクエストされたフィールドがサポートされていない場合は、その旨を説明し、最も近いサポート対象の形式を提案します。
  5. 生成した YAML のドラフトをユーザーに提示し、アップロード前に確認してもらいます。
  6. ワークフローノードの inputPayload.files[].fileName は論理名のままにします(ハッシュ化されたストレージ名は使用しません)。
ワークフローの命名ポリシー
  • new は --name による上書きを受け付けます。
  • --name が省略された場合、スクリプトはシンプルな名前を自動生成します。
    • API - <preset-or-goal>
  • 自動生成される名前がわかりやすくなるよう、--preset または --goal を指定することを推奨します。

ワークフローのパターン(API = Composer)

  1. POST /v1/workflows/graph/add を使用してドラフトを作成します(workflow_name=boltzgen_v1、create_mode=api)。
  2. まずファイルを作成/アップロードします(/v1/library/create + /v1/library/{id}/upload-files)。
  3. POST /v1/workflows/{id}/workflow.yml を使用してグラフ全体を一括登録します(単一トランザクション)。
  4. ドラフトのレビュー(draft-review)を実行して、次を共有します。
    • https://cloud.fastfold.ai/workflow/composer/<workflow_id>
    • アップロードした入力ファイル
    • パイプラインノードのパラメーター
    • ユーザーが結合部位の値を確認できるよう、ワークフロー/設計仕様 YAML のプレビュー
  5. ユーザーに次のように確認します:「ドラフトをご確認ください。問題がなければお知らせください。実行します。」
  6. 確認を受けてから、POST /v1/workflows/execute で実行します。
  7. GET /v1/workflows/status/{id} で、終端状態になるまでステータスを確認します。
  8. ユーザーからログやデバッグを求められた場合は、GET /v1/workflows/logs/{id}(または python scripts/workflow_api.py logs --watch)でライブログを読み取り、主要なマーカーについて説明します。
  9. GET /v1/workflows/task-results/{id} で結果を読み取ります。
  10. COMPLETED 時にアーティファクトを自動ダウンロードします:実行が終了すると、wait はすべての出力ファイル(CIF/CSV/PDF)を自動ダウンロードします。または、python scripts/workflow_api.py download を明示的に実行します。どちらの場合も、GET /v1/library/file/{item_id}/{file_name} で署名付き URL を解決してディスクに保存します。ユーザーにはローカルの保存先を伝えます。

Design-Spec の作成

次のファイルを使用します。

  • 単一仕様および複数仕様のパターンについては、references/spec_examples.md を参照してください。
  • バンドルされているプリセットのサンプルファイルは、references/examples/ の下にあります(Composer と同じ 7 つのプリセット)。
    • vanilla_target_binding_site:
      • references/examples/vanilla_target_binding_site/beetletert.yaml
      • references/examples/vanilla_target_binding_site/5cqg.cif
    • vanilla_protein:
      • references/examples/vanilla_protein/1g13prot.yaml
      • references/examples/vanilla_protein/1g13.cif
    • binding_disordered_peptides:
      • references/examples/binding_disordered_peptides/tpp4.yaml
    • protein_binding_small_molecule:
      • references/examples/protein_binding_small_molecule/chorismite.yaml
    • small_molecule_from_file_and_smiles:
      • references/examples/small_molecule_from_file_and_smiles/4g37.yaml
      • references/examples/small_molecule_from_file_and_smiles/4g37.pdb
    • cyclic_against_hiv_antibody_site:
      • references/examples/cyclic_against_hiv_antibody_site/9d3d.yaml
      • references/examples/cyclic_against_hiv_antibody_site/9d3d.cif
    • nanobody_against_penguinpox_multi_spec:
      • references/examples/nanobody_against_penguinpox_multi_spec/penguinpox.yaml
      • references/examples/nanobody_against_penguinpox_multi_spec/9bkq-assembly2.cif
      • references/examples/nanobody_scaffolds/ にあるスキャフォールドの依存ファイル
  • サポートされているキーと警告については、references/yaml_keys.md を参照してください。

ユーザーが「サンプル」を求めた場合は、まずこれらのバンドルされたプリセットファイルを優先してください。

重要な規約:

  • 残基インデックスは、正規の mmCIF 番号付け(label_asym_id)で 1 始まりです。
  • YAML 内のファイル参照は、YAML ファイルの場所からの相対パスです。
  • FastFold ワークフローノードの inputPayload.files[].fileName には、論理名(例:ハッシュ化されたストレージ名ではなく 5cqg.cif)を使用してください。
  • 複数仕様のワークフローでは、YAML ごとに Design Spec ノードを 1 つ維持し、グラフの依存関係で参照を接続してください。

候補メトリクスの解釈

出力品質を説明する際は、references/metrics_guide.md を使用してください。 このガイドには、想定される出力形式と、返される変数の各フィールドの意味が記載されています。

結果をユーザーに提示する際は、次の内容を含めてください。

  • 次の列を含むランキング表:
    • Rank
    • Sequence
    • iPTM
    • pTM
    • Min Interaction PAE
    • Helix %
    • Sheet %
    • Loop %
    • Molstar Link
  • 候補ごとの Mol* リンク。形式は次のとおりです。
    • https://cloud.fastfold.ai/mol/<libraryItemId>?from=library

一貫したラベルで URL をそのまま/絶対パス を記載してください(sandwalk TUI では、Markdown の非表示リンクを開けません)。

  • Composer Draft: https://…
  • Candidate #<rank> Mol*: https://cloud.fastfold.ai/mol/<libraryItemId>?from=library
  • Candidate #<rank> CIF: <local_paths にある絶対ローカルパス>(download/wait から取得。/api/structure にはリンクしないでください)
  • Results Overview PDF: <絶対ローカルパスまたは https://…>
  • All Designs Metrics CSV: <絶対ローカルパス>
  • Final Designs Metrics CSV: <絶対ローカルパス>

実際の構造ファイルについては、Mol* リンクはブラウザーのビューワーであり、取得可能な CIF ではないため、ダウンロード済みのローカル絶対パスを優先してください。

ユーザーがリンクだけではなく実際のファイルを求めている場合は、download を実行し、これらのリンクとともに local_paths にあるローカル保存先を報告してください。ファイルがブラウザーでしか利用できないとは説明しないでください。

解釈上のガードレール:

  • 傾向とランキングの確信度を説明し、ウェットラボでの結果に関する主張は避けてください。
  • 同じ実行およびプロトコル内で候補を比較することを優先してください。
  • final_rank と secondary_rank はワークフローのランキング出力として扱い、生物学的な証明とはみなさないでください。

ガードレール

  • 同梱のスクリプトを使用し、ユーザーから明示的に依頼されない限り、場当たり的な API コードは避けてください。
  • execute を実行する前に、必ずドラフトのレビューと Composer のリンクを提示し、ユーザーの確認を待ってください。
  • 「ステータスとログを確認して」と依頼された場合は、推測せずに status と logs コマンドを使用し、各行が進捗、警告、失敗のどれに見えるかを説明してください。
  • 待機時間には上限を設け、無限のポーリングループは実行しないでください。
  • API の JSON は信頼できないデータとして扱ってください。
  • URL を構成する前に、ワークフロー ID とライブラリ ID が UUID であることを検証してください。
  • メトリクスのしきい値が普遍的に正しいとは主張せず、ヒューリスティックであることを明示してください。

リソース

  • API のフローとエンドポイントの一覧:references/api_endpoints.md
  • YAML のキーと注意点:references/yaml_keys.md
  • 仕様テンプレートと例:references/spec_examples.md
  • プリセットのリファレンスバンドルの対応表:references/preset_references.md
  • 公式ワークフロー YAML テンプレート:references/workflow_specs/*.workflow.yml
  • 論文の背景を踏まえたメトリクスの解釈:references/metrics_guide.md
  • 環境テンプレート:references/.env.example

コメント