claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 22h ago
スキルOfficialdevelopment

🧪boltz-small-molecule-design

プラグイン
boltz

説明

Boltzを使用して、新しい低分子バインダーを設計します。 次のような場合に使用: 固定された化合物ライブラリを持たないターゲットに対して、新規リガンドやヒット化合物を生成する場合。 既存分子のスクリーニングや単発のドッキング計算には使用しないでください。

原文を表示

Design new small-molecule binders with Boltz. Use when generating novel ligands or hits for a target without a fixed compound library. Not for screening existing molecules or one-off docking.

ユースケース

  • 新規リガンドを生成するとき
  • ヒット化合物を探索するとき
  • ライブラリのないターゲットに対応するとき

本文(日本語訳)

ワークフロー

boltz-apiPATH に存在しない場合は、再試行の前に boltz-cli-setup を使用してインストール/アップデートの手順を確認してください。 コマンドが認証の欠如または期限切れを報告した場合は、再試行の前に boltz-cli-setup を使用して boltz-api auth login --device-code を開始してください。その際、事前に許可を求める必要はありません。 エージェントホストのサンドボックスが boltz-api のインストール・認証・API 呼び出しをブロックする場合は、再試行の前に boltz-cli-setup を使用して、ユーザー全体の CLI インストール・ブラウザログイン・認証情報の保存・一時ファイル・API アクセスに必要なホストサンドボックスのバイパス/昇格を要求してください。

次のような場合に使用: ユーザーがゼロから低分子バインダーを設計したい場合(既存ライブラリを使用しない場合)。

  1. ターゲットを正規化する: 1 つ以上のタンパク質配列を target.entities に入力し、必要に応じて pocket_residues(0 始まりのインデックス)や reference_ligands(ポケットの位置を特定するための既知バインダー)を追加します。

  2. num_molecules を決定する — 有効な範囲は 10 〜 1,000,000(サーバーはこの範囲外を拒否します)。ユーザーが 10 未満を指定した場合は、下限を説明し 10 を提案してください。

  3. 合成可能な分子に限定して生成したいとユーザーが明示的に要求した場合のみ、chemical_space(例: "enamine_real")を追加してください。

  4. サポートされるオプション機能は chemical_spacemolecule_filters です。明示的な要求があった場合のみ追加してください。正確な構造とフィルターオプションは references/api.md を参照してください。

  5. ペイロードの YAML または JSON を作成し、estimate-cost を実行して USD コストを表示し、明示的な確認を待ちます。コストは分子 1 つあたり一律 $0.025(サイズに依存しません)ですが、権威ある合計値としてレスポンスの estimated_cost_usd を引用してください。

  6. start でジョブを送信します(同期処理)。ID を記録してください。

  7. エージェントランタイムのバックグラウンド/ノンブロッキングコマンド機能を使用して download-results を起動します。このコマンドはポーリング・ページネーション・ヒットごとの構造ダウンロードを行い、終端状態になると終了します。

    • Claude Code の場合: run_in_background: true を指定した Bash を使用してください。
    • Codex の場合: yield_time_ms: 1000 を指定してフォアグラウンドのシェルコマンドとして実行してください。Codex が session_id を返した場合は、同一スレッドでのオプションのポーリングのために保持してください。ただし、download-status と実行ディレクトリを信頼できる情報源として扱ってください。
    • 同一スレッドのハートビート自動化を提供する Codex アプリ/デスクトップランタイムの場合は、download-results 起動後に定期的に download-status を確認し、ダウンロードが終端状態に達した際に簡潔な完了または失敗の通知を投稿するハートビートを作成してください。

    ダウンローダー起動後は、必ずジョブ ID・実行名・出力ディレクトリを報告してください。ハートビートを作成した場合は次回確認のタイミングも含め、そうでない場合は download-status コマンドを案内してください。

  8. <output-root>/<run-name>/results/index.jsonl のヒットを、ヒット探索の場合は binding_confidence、リード最適化の場合は optimization_score でランク付けします。生成された各分子には無償の adme ブロック(solubilitypermeabilitylipophilicity)も含まれます — ユーザーが ADME を重視している場合や、トップヒットにリスクが見られる場合は、開発可能性のトリアージとして提示してください。出力レイアウトと指標の詳細は references/results.md を参照してください。


コマンドパターン

# 実行前にプレースホルダーを具体的な絶対パスに置き換えてください。
# 短くわかりやすい実行名を使用してください(例: sm-design-<target>-<batch>-v1)

boltz-api small-molecule:design estimate-cost \
  --input @yaml:///absolute/path/payload.yaml

boltz-api small-molecule:design start \
       --idempotency-key "<run-name>" \
       --input @yaml:///absolute/path/payload.yaml \
       --raw-output --transform id

# 出力されたジョブ ID を以下のコマンドにコピーし、
# エージェントランタイムのバックグラウンド/ノンブロッキングモードで起動してください。
# Claude Code: run_in_background=true を指定した Bash を使用。
# Codex: yield_time_ms=1000 を指定したフォアグラウンドのシェルコマンドとして実行;
#        コマンドがまだ実行中の場合、Codex は session_id を返す場合があります。
# Codex では "&" の追記や nohup の使用は禁止です。
boltz-api download-results \
  --id "<job-id-from-start>" --name "<run-name>" \
  --root-dir "/absolute/path/boltz-experiments" \
  --poll-interval-seconds 60
# -> /absolute/path/boltz-experiments/<run-name>/results/<pres_*>/...

ペイロードのキーは num_moleculestargetchemical_spacemolecule_filters です(API ボディのフィールド名)。


必須事項

  • estimate-cost を呼び出す前に 10 <= num_molecules <= 1,000,000 であることを確認してください。サーバーはこの範囲外の値を拒否します。
  • コストは分子 1 つあたり一律 $0.025(サイズに依存しません)。estimate-cost が権威ある合計値を返します。
  • ポケット残基のインデックスは 0 始まりとして扱ってください。
  • ペイロードのフィールド名は references/api.md に示された API ボディ名と完全に一致させてください。
  • 出力ルート・ペイロードファイル・埋め込みターゲットファイルには絶対パスを使用してください。後続コマンドのために実行ディレクトリへ cd しないでください。同じ --root-dir を渡し、絶対パスを使用することで相対パスのずれを防いでください。
  • estimate-cost および start には、--input @yaml:///absolute/path/payload.yaml または @json:///absolute/path/payload.json によるマージされたトップレベルのペイロードを優先してください。--idempotency-key--workspace-id はトップレベルに記述してください。--input 内にも同じキーが含まれる場合、トップレベルのフラグが優先されます。
  • オブジェクトフラグによる直接指定も上書きとして機能します(例: --target @yaml:///absolute/path/target.yaml--molecule-filters @json:///absolute/path/filters.json)。標準入力へのパイプによる YAML/JSON も機能しますが、API ボディのフィールド名を使用する必要があります。@file:// は使用しないでください。
  • --idempotency-key(送信時)と download-results--name には同じスラグを使用してください。
  • Claude Code などの権限管理が必要なエージェントでは、各 Boltz の呼び出しを boltz-api で始まるトップレベルのコマンドとして記述してください。ユーザーがすでにその形式を許可している場合を除き、boltz-api の呼び出しに対して sh -c・インラインの環境変数代入・エイリアス・ラッパースクリプト・ループ・パイプラインの使用は避けてください。--raw-output --transform id を使用し、出力された ID を読み取り、その ID をそのまま次の download-results コマンドに貼り付けてください。
  • download-results にはエージェントランタイムのバックグラウンド/ノンブロッキングコマンドモードを優先してください。Codex では download-results をフォアグラウンドで実行し、シェルツールの yield を 1000 ms に設定してください。コマンドがまだ実行中の場合、Codex は session_id を返します。Codex ではシェルのバックグラウンド実行(& の追記や nohup)を使用しないでください。ツールランナーがシェルでバックグラウンド化された子プロセスを .boltz-run.json の書き込み完了前にクリーンアップする場合があります。
  • バックグラウンド/セッション開始後は、手動での待機やアドホックなポーリングループを実行しないでください。実行時間は num_molecules に概ね比例します: 100 未満の場合は数分で完了することが多く、100〜1,000 の場合は数分から数十分、それ以上の場合は入力内容やシステム負荷によってさらに長くなる場合があります。固定の所要時間は提示しないでください。--poll-interval-seconds 60 はダウンローダーの適切なデフォルト値です。download-results はデフォルトで stderr に JSONL 形式の進捗を出力します。人間が読みやすいログが必要な場合のみ --progress-format text --verbose を追加してください。
  • 同一スレッドのハートビート自動化をサポートする Codex アプリ/デスクトップランタイムでは、download-results 起動後にハートビートをスケジュールしてください。ハートビートは boltz-api --format json download-status --name "<run-name>" --root-dir "/absolute/path/boltz-experiments" を実行し、終端状態になったら停止します。num_molecules に基づいてポーリング間隔を選択してください: 100 未満 → 1〜2 分ごと、100〜1,000 → 5 分ごと、1,000 超 → 15 分ごと。重要なステータス変更または終端の完了/失敗のみを通知してください。保存した session_id に対する空の write_stdin によるポーリングは、インタラクティブなユーザーからの進捗確認要求の場合のみ実行してください。現在のターンで手動ポーリングループを実行しないでください。
  • 現在のホストがハートビート自動化をサポートしていない場合は、自動的な次回確認を約束しないでください。ジョブ ID・実行名・出力ディレクトリ・download-status の確認コマンドを報告してください。
  • デタッチされたダウンロードを再起動する必要がある場合は、同じ --name "<run-name>" と同じ --root-dir を指定して boltz-api download-results を再実行してください。
  • フィルターを勝手に追加しないでください。molecule_filters はユーザーの要求があった場合のみ追加してください。

参照先

targetchemical_spacemolecule_filters の構造(フィルターカタログはスクリーンエンドポイントと共通)については references/api.md を参照してください。ダウンロード後に生成分子のランク付けや出力の説明を行う際は references/results.md を参照してください。


出力結果

download-results 完了後、results/index.jsonl からランク付けを行ってください。ローカルファイルのレイアウトと指標の意味については references/results.md を参照してください。

原文(English)を表示

Workflow

If boltz-api is missing from PATH, use boltz-cli-setup for install/update guidance before retrying. If a command reports missing or expired authentication, use boltz-cli-setup to start boltz-api auth login --device-code before retrying; do not ask permission first. If the agent host sandbox blocks boltz-api install/auth/API calls, use boltz-cli-setup to request the host sandbox bypass/escalation needed for user-wide CLI install, browser login, credential storage, temp files, or API access before retrying.

Use this skill when the user wants de novo small-molecule binders (no existing library).

  1. Normalize the target: one or more protein sequences into target.entities, plus optional pocket_residues (0-based) and/or reference_ligands (known binders to help locate the pocket).
  2. Pick num_molecules — valid range 10 to 1,000,000 (server rejects outside it). If the user says fewer than 10, explain the floor and propose 10.
  3. Only add chemical_space (e.g. "enamine_real") if the user explicitly wants generation restricted to synthesizable molecules within that library.
  4. Supported optional features include chemical_space and molecule_filters; only add them on explicit request. Read references/api.md for exact shapes and filter options.
  5. Author the payload YAML or JSON, run estimate-cost, show the USD cost, wait for explicit confirmation. Cost is a flat $0.025 per molecule (size-independent); still quote estimated_cost_usd from the response as the authoritative total.
  6. start to submit (synchronous). Capture the ID.
  7. Launch download-results with the agent runtime's background/non-blocking command facility; it polls, paginates, downloads per-hit structures, and exits when terminal. In Claude Code, use Bash with run_in_background: true. In Codex, run download-results as a foreground shell command with yield_time_ms: 1000; if Codex returns a session_id, keep it for optional same-thread polling, but treat download-status plus the run directory as the durable source of truth. In Codex app/desktop runtimes that expose same-thread heartbeat automations, create a heartbeat that checks download-status periodically and posts a concise completion or failure update when the download reaches a terminal state. After launching the downloader, always report the job ID, run name, and output directory. Include the next check cadence if the heartbeat was created; otherwise include the download-status command.
  8. Rank hits from <output-root>/<run-name>/results/index.jsonl by binding_confidence for hit discovery or optimization_score for lead optimization. Each generated molecule also carries a free adme block (solubility, permeability, lipophilicity) — surface it for developability triage when the user cares about ADME, or when a top hit looks risky. Read references/results.md for output layout and metric details.

Command Pattern

# Replace placeholders with concrete absolute paths before running.
# Use a short descriptive run name, for example: sm-design-<target>-<batch>-v1

boltz-api small-molecule:design estimate-cost \
  --input @yaml:///absolute/path/payload.yaml

boltz-api small-molecule:design start \
       --idempotency-key "<run-name>" \
       --input @yaml:///absolute/path/payload.yaml \
       --raw-output --transform id

# Copy the printed job ID into this command, then launch it in the agent
# runtime's background/non-blocking mode.
# Claude Code: Bash with run_in_background=true.
# Codex: foreground shell command with yield_time_ms=1000; keep the returned session_id if one is provided.
# Do not append "&" or use nohup in Codex.
boltz-api download-results \
  --id "<job-id-from-start>" --name "<run-name>" \
  --root-dir "/absolute/path/boltz-experiments" \
  --poll-interval-seconds 60
# -> /absolute/path/boltz-experiments/<run-name>/results/<pres_*>/...

Payload keys are num_molecules, target, chemical_space, molecule_filters — the API body field names.

Always Do This

  • Enforce 10 <= num_molecules <= 1,000,000 before calling estimate-cost. The server rejects values outside that range.
  • Cost is a flat $0.025 per molecule (size-independent). estimate-cost returns the authoritative total.
  • Treat pocket residue indices as 0-based.
  • Keep payload field names exactly as the API body names shown in references/api.md.
  • Use absolute paths for the output root, payload files, and embedded target files. Do not cd into the run directory for follow-up commands; pass the same --root-dir and use absolute paths so later relative paths do not drift.
  • Prefer one merged top-level payload via --input @yaml:///absolute/path/payload.yaml or @json:///absolute/path/payload.json for estimate-cost and start. Keep --idempotency-key and --workspace-id top-level; if they also appear inside --input, the top-level flags win.
  • Direct object flags still work as overrides: for example --target @yaml:///absolute/path/target.yaml or --molecule-filters @json:///absolute/path/filters.json. Piped YAML / JSON on stdin also works, but it must use API body field names. Never use @file://.
  • Use the same slug as both --idempotency-key at submit and --name on download-results.
  • In permission-gated agents such as Claude Code, keep each Boltz call as a top-level command that starts with boltz-api. Prefer concrete arguments over sh -c, inline environment assignments, aliases, wrapper scripts, loops, or pipelines around the boltz-api invocation unless the user already allowed that exact command form. Use --raw-output --transform id, read the printed ID, then paste that literal ID into the next download-results command.
  • Prefer the agent runtime's background/non-blocking command mode for download-results. In Codex specifically, keep download-results in the foreground and set the shell tool yield to 1000 ms; Codex will return a session_id if the command is still running. Do not append & or use nohup in Codex because the tool runner may clean up shell-backgrounded descendants before .boltz-run.json is fully written.
  • After the background/session starts, do not manually wait on it or run ad hoc polling loops. Wall-clock time scales roughly with num_molecules: under 100 often finishes in a few minutes, 100-1,000 may take several minutes to tens of minutes, and larger runs can take longer or hours depending on inputs and system load. Don't quote a fixed duration. --poll-interval-seconds 60 is a sensible default for the downloader. download-results emits JSONL progress on stderr by default; add --progress-format text --verbose only when you explicitly want human-readable logs.
  • In Codex app/desktop runtimes with same-thread heartbeat automation support, schedule a heartbeat after launching download-results. The heartbeat should run boltz-api --format json download-status --name "<run-name>" --root-dir "/absolute/path/boltz-experiments" and stop once terminal. Choose cadence by num_molecules: under 100 -> every 1-2 minutes; 100-1,000 -> every 5 minutes; over 1,000 -> every 15 minutes. Post only material status changes or terminal completion/failure. Poll the saved session_id with an empty write_stdin only for interactive, user-requested progress checks. Never run a manual poll loop in the current turn.
  • If the current host has no heartbeat automation support, do not claim an automatic next check. Report the job ID, run name, output directory, and the command needed to check download-status.
  • If detached download needs to be restarted, re-run boltz-api download-results with the same --name "<run-name>" and the same --root-dir.
  • Do not invent filters; only add molecule_filters on user request.

Escape Hatch

Read references/api.md for the target, chemical_space, and molecule_filters shapes (filter catalog matches the screen endpoint). Read references/results.md after download when ranking generated molecules or explaining outputs.

Outputs

Rank from results/index.jsonl after download-results; use references/results.md for local file layout and metric meanings.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。