🧪boltz-small-molecule-design
- プラグイン
- boltz
- ソース
- GitHub で見る ↗
説明
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-api が PATH に存在しない場合は、再試行の前に boltz-cli-setup を使用してインストール/アップデートの手順を確認してください。
コマンドが認証の欠如または期限切れを報告した場合は、再試行の前に boltz-cli-setup を使用して boltz-api auth login --device-code を開始してください。その際、事前に許可を求める必要はありません。
エージェントホストのサンドボックスが boltz-api のインストール・認証・API 呼び出しをブロックする場合は、再試行の前に boltz-cli-setup を使用して、ユーザー全体の CLI インストール・ブラウザログイン・認証情報の保存・一時ファイル・API アクセスに必要なホストサンドボックスのバイパス/昇格を要求してください。
次のような場合に使用: ユーザーがゼロから低分子バインダーを設計したい場合(既存ライブラリを使用しない場合)。
-
ターゲットを正規化する: 1 つ以上のタンパク質配列を
target.entitiesに入力し、必要に応じてpocket_residues(0 始まりのインデックス)やreference_ligands(ポケットの位置を特定するための既知バインダー)を追加します。 -
num_moleculesを決定する — 有効な範囲は 10 〜 1,000,000(サーバーはこの範囲外を拒否します)。ユーザーが 10 未満を指定した場合は、下限を説明し 10 を提案してください。 -
合成可能な分子に限定して生成したいとユーザーが明示的に要求した場合のみ、
chemical_space(例:"enamine_real")を追加してください。 -
サポートされるオプション機能は
chemical_spaceとmolecule_filtersです。明示的な要求があった場合のみ追加してください。正確な構造とフィルターオプションは references/api.md を参照してください。 -
ペイロードの YAML または JSON を作成し、
estimate-costを実行して USD コストを表示し、明示的な確認を待ちます。コストは分子 1 つあたり一律 $0.025(サイズに依存しません)ですが、権威ある合計値としてレスポンスのestimated_cost_usdを引用してください。 -
startでジョブを送信します(同期処理)。ID を記録してください。 -
エージェントランタイムのバックグラウンド/ノンブロッキングコマンド機能を使用して
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コマンドを案内してください。 - Claude Code の場合:
-
<output-root>/<run-name>/results/index.jsonlのヒットを、ヒット探索の場合はbinding_confidence、リード最適化の場合はoptimization_scoreでランク付けします。生成された各分子には無償のadmeブロック(solubility・permeability・lipophilicity)も含まれます — ユーザーが 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_molecules・target・chemical_space・molecule_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はユーザーの要求があった場合のみ追加してください。
参照先
- ペイロードリファレンス: https://api.boltz.bio/docs/api/python/resources/small_molecule/subresources/design/methods/start
- CLI フラグ名:
boltz-api small-molecule:design start --help
target・chemical_space・molecule_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).
- Normalize the target: one or more protein sequences into
target.entities, plus optionalpocket_residues(0-based) and/orreference_ligands(known binders to help locate the pocket). - 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. - Only add
chemical_space(e.g."enamine_real") if the user explicitly wants generation restricted to synthesizable molecules within that library. - Supported optional features include
chemical_spaceandmolecule_filters; only add them on explicit request. Read references/api.md for exact shapes and filter options. - 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 quoteestimated_cost_usdfrom the response as the authoritative total. startto submit (synchronous). Capture the ID.- Launch
download-resultswith 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 withrun_in_background: true. In Codex, rundownload-resultsas a foreground shell command withyield_time_ms: 1000; if Codex returns asession_id, keep it for optional same-thread polling, but treatdownload-statusplus the run directory as the durable source of truth. In Codex app/desktop runtimes that expose same-thread heartbeat automations, create a heartbeat that checksdownload-statusperiodically 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 thedownload-statuscommand. - Rank hits from
<output-root>/<run-name>/results/index.jsonlbybinding_confidencefor hit discovery oroptimization_scorefor lead optimization. Each generated molecule also carries a freeadmeblock (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,000before callingestimate-cost. The server rejects values outside that range. - Cost is a flat $0.025 per molecule (size-independent).
estimate-costreturns 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
cdinto the run directory for follow-up commands; pass the same--root-dirand use absolute paths so later relative paths do not drift. - Prefer one merged top-level payload via
--input @yaml:///absolute/path/payload.yamlor@json:///absolute/path/payload.jsonforestimate-costandstart. Keep--idempotency-keyand--workspace-idtop-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.yamlor--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-keyat submit and--nameondownload-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 oversh -c, inline environment assignments, aliases, wrapper scripts, loops, or pipelines around theboltz-apiinvocation 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 nextdownload-resultscommand. - Prefer the agent runtime's background/non-blocking command mode for
download-results. In Codex specifically, keepdownload-resultsin the foreground and set the shell tool yield to 1000 ms; Codex will return asession_idif the command is still running. Do not append&or usenohupin Codex because the tool runner may clean up shell-backgrounded descendants before.boltz-run.jsonis 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 60is a sensible default for the downloader.download-resultsemits JSONL progress on stderr by default; add--progress-format text --verboseonly 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 runboltz-api --format json download-status --name "<run-name>" --root-dir "/absolute/path/boltz-experiments"and stop once terminal. Choose cadence bynum_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 savedsession_idwith an emptywrite_stdinonly 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-resultswith the same--name "<run-name>"and the same--root-dir. - Do not invent filters; only add
molecule_filterson user request.
Escape Hatch
- Payload reference: https://api.boltz.bio/docs/api/python/resources/small_molecule/subresources/design/methods/start
- CLI flag names:
boltz-api small-molecule:design start --help
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 による自動翻訳です。