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 を起動します。このコマンドはポーリング・ページネーション・ヒットごとの構造ダウンロードを行い、終端状態になると終了します。
run_in_background: true を指定した Bash を使用してください。yield_time_ms: 1000 を指定してフォアグラウンドのシェルコマンドとして実行してください。Codex が session_id を返した場合は、同一スレッドでのオプションのポーリングのために保持してください。ただし、download-status と実行ディレクトリを信頼できる情報源として扱ってください。download-results 起動後に定期的に download-status を確認し、ダウンロードが終端状態に達した際に簡潔な完了または失敗の通知を投稿するハートビートを作成してください。ダウンローダー起動後は、必ずジョブ ID・実行名・出力ディレクトリを報告してください。ハートビートを作成した場合は次回確認のタイミングも含め、そうでない場合は download-status コマンドを案内してください。
<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 であることを確認してください。サーバーはこの範囲外の値を拒否します。estimate-cost が権威ある合計値を返します。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 には同じスラグを使用してください。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 を追加してください。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 によるポーリングは、インタラクティブなユーザーからの進捗確認要求の場合のみ実行してください。現在のターンで手動ポーリングループを実行しないでください。download-status の確認コマンドを報告してください。--name "<run-name>" と同じ --root-dir を指定して boltz-api download-results を再実行してください。molecule_filters はユーザーの要求があった場合のみ追加してください。boltz-api small-molecule:design start --helptarget・chemical_space・molecule_filters の構造(フィルターカタログはスクリーンエンドポイントと共通)については references/api.md を参照してください。ダウンロード後に生成分子のランク付けや出力の説明を行う際は references/results.md を参照してください。
download-results 完了後、results/index.jsonl からランク付けを行ってください。ローカルファイルのレイアウトと指標の意味については references/results.md を参照してください。
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).
target.entities, plus optional pocket_residues (0-based) and/or reference_ligands (known binders to help locate the pocket).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.chemical_space (e.g. "enamine_real") if the user explicitly wants generation restricted to synthesizable molecules within that library.chemical_space and molecule_filters; only add them on explicit request. Read references/api.md for exact shapes and filter options.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.start to submit (synchronous). Capture the ID.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.<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.# 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.
10 <= num_molecules <= 1,000,000 before calling estimate-cost. The server rejects values outside that range.estimate-cost returns the authoritative total.references/api.md.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.--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.--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://.--idempotency-key at submit and --name on download-results.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.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.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.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.download-status.boltz-api download-results with the same --name "<run-name>" and the same --root-dir.molecule_filters on user request.boltz-api small-molecule:design start --helpRead 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.
Rank from results/index.jsonl after download-results; use references/results.md for local file layout and metric meanings.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。