Boltzを使ってすでに存在する小分子ライブラリをスクリーニング(ふるい分け)します。 次のような場合に使用: - 提供されたSMILES(分子構造の記述形式)または化合物ライブラリをターゲット分子に対してドッキング(分子同士の結合位置の予測)、スコアリング(評点付け)、またはランク付け(順位付け)する場合 - 分子ごとのADME/ADMET特性(吸収、分布、代謝、排出、毒性の予測値:溶解性、浸透性、脂溶性など)を無料で取得する必要がある場合 このスキルは以下には対応していません: - 新規の分子設計 - 1回限りのドッキング処理 - ターゲット分子がない状態でのSMILESに対するADME解析 (これらの場合は boltz-small-molecule-adme を使用してください)
Screen existing small-molecule libraries with Boltz. Use when docking, scoring, or ranking a supplied SMILES or compound library against a target; also returns free Tier-1 ADME/ADMET (solubility, permeability, lipophilicity/logD) per molecule. Not for de novo molecule design, one-off docking, or ADME on bare SMILES with no target (use boltz-small-molecule-adme).
boltz-api が PATH に存在しない場合は、再試行前に boltz-cli-setup を使用してインストール・更新の手順を確認してください。
コマンドが認証の欠如または期限切れを報告した場合は、再試行前に boltz-cli-setup を使用して boltz-api auth login --device-code を開始してください(事前に許可を求める必要はありません)。
エージェントホストのサンドボックスが boltz-api のインストール・認証・API 呼び出しをブロックする場合は、再試行前に boltz-cli-setup を使用して、ユーザー全体の CLI インストール・ブラウザログイン・認証情報の保存・一時ファイル・API アクセスに必要なホストサンドボックスのバイパス/権限昇格をリクエストしてください。
次のような場合に使用: ユーザーがすでに候補分子を持っている場合。
.smi、または .txt から molecules リストに正規化します。各エントリは {smiles, id?} の形式で、オプションの id は各結果の external_id としてそのまま返されます。target.entities に設定し、オプションで pocket_residues(0 始まりインデックス)および/または reference_ligands(ポケット位置の特定を補助するための既知結合分子の SMILES)を指定します。molecule_filters は明示的なリクエストがある場合にのみ追加します。estimate-cost を実行してコスト(USD)を表示した後、明示的な確認を待ちます。start でジョブを送信します(同期処理)。ジョブ ID を取得します。download-results を起動します。このコマンドはポーリングを行い、list-results をページネーションしながら全ヒット構造をダウンロードし、終端状態になると終了します。
run_in_background: true を指定した Bash を使用します。yield_time_ms: 1000 を設定したフォアグラウンドシェルコマンドとして download-results を実行します。Codex が session_id を返した場合は同一スレッドでのオプションポーリング用に保持しますが、download-status と実行ディレクトリを信頼できる情報源として扱います。同一スレッドのハートビート自動化を公開している Codex app/デスクトップランタイムの場合は、download-results 起動後にハートビートを作成し、download-status を定期的に確認して、ダウンロードが終端状態に達したときに簡潔な完了または失敗の通知を投稿します。
ダウンローダーを起動したら、必ずジョブ ID・実行名・出力ディレクトリを報告してください。ハートビートを作成した場合は次の確認タイミングを、作成していない場合は download-status コマンドを含めてください。<output-root>/<run-name>/results/index.jsonl からランキングを行います。ヒット探索には binding_confidence で、リード最適化には optimization_score でソートします(これらは並列の意図であり、フォールバック階層ではありません)。上位 5〜10 件のヒットについて smiles・選択したランキング指標・主要な信頼度メトリクス・構造ファイルのパスを報告します。各結果には adme ブロック(solubility・permeability・lipophilicity)も含まれています。ユーザーが ADME を重視する場合、または上位ヒットにリスクが見られる場合は、開発適性の評価のために含めてください。出力レイアウト・メトリクス・ADME・フィルタリング済み入力の説明については references/results.md を参照してください。# 実行前にプレースホルダーを具体的な絶対パスに置き換えてください。
# 例のような短くわかりやすい実行名を使用してください: sm-screen-<target>-<library>-v1
boltz-api small-molecule:library-screen estimate-cost \
--input @yaml:///absolute/path/payload.yaml
boltz-api small-molecule:library-screen 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 を設定したフォアグラウンドシェルコマンドとして実行し、
# 返された 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 30
# -> /absolute/path/boltz-experiments/<run-name>/results/<pres_*>/...
ペイロードのキーは molecules・target・molecule_filters であり、これらは API ボディのフィールド名です。CLI の直接フラグ名(--molecule / --target / --molecule-filters)ではありません。
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・繰り返し指定の --molecule @json:///absolute/path/mol-1.json など)。標準入力へのパイプによる YAML / JSON も使用できますが、API ボディのフィールド名を使用する必要があります。@file:// や @./ は使用しないでください。molecule_filters はユーザーが要求した場合にのみ追加し、カタログをオプションとして案内します。--idempotency-key と download-results の --name には同じスラグを使用し、.boltz-run.json による再実行の再開を可能にしてください。boltz-api で始まるトップレベルコマンドとして保持してください。ユーザーがすでに許可済みのコマンド形式でない限り、boltz-api 呼び出しの周囲で sh -c・インライン環境変数の設定・エイリアス・ラッパースクリプト・ループ・パイプラインよりも具体的な引数を優先してください。--raw-output --transform id を使用し、表示された ID を読み取り、次の download-results コマンドにそのリテラル ID を貼り付けてください。download-results にはエージェントランタイムのバックグラウンド/ノンブロッキングコマンドモードを優先して使用してください。Codex の場合は download-results をフォアグラウンドで実行し、シェルツールの yield を 1000 ms に設定してください。コマンドがまだ実行中の場合、Codex は session_id を返します。Codex では & を追加したり nohup を使用したりしないでください。ツールランナーがシェルのバックグラウンドプロセスを .boltz-run.json の書き込み完了前にクリーンアップする可能性があります。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" を実行し、終端状態になると停止します。分子数に応じた確認間隔の目安: 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 を再実行してください。estimate-cost が正式な合計金額を返します。必ずこれを使用してください。--poll-interval-seconds 30 はダウンローダーの合理的なデフォルト値です。実際の所要時間は分子数に応じて変動します。100 未満は数分程度で完了することが多く、100〜1,000 は数分〜数十分、それ以上の大規模スクリーニングは入力内容やシステム負荷によってさらに長くなる場合があります。固定の所要時間を伝えないでください。また、10 候補のスクリーニングに 30 分や数時間かかるとユーザーに伝えないでください。boltz-api small-molecule:library-screen start --helpmolecules・target・molecule_filters の構造(組み込み SMARTS フィルターや RDKit 記述子の範囲を含む)については 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 already has candidate molecules.
.smi, or .txt into the molecules list. Each entry is {smiles, id?}; the optional id is echoed back as external_id on each result.target.entities, plus optional pocket_residues (0-based) and/or reference_ligands (SMILES of known binders to help locate the pocket).molecule_filters on explicit request.estimate-cost, show the USD cost, wait for explicit confirmation.start to submit (synchronous). Capture the ID.download-results with the agent runtime's background/non-blocking command facility — it polls, paginates list-results, downloads every per-hit structure, 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. Sort by binding_confidence for hit discovery or optimization_score for lead optimization; these are parallel intents, not a fallback hierarchy. Report the top 5-10 hits with smiles, the chosen ranking metric, key confidence metrics, and structure path. Each result also carries a free adme block (solubility, permeability, lipophilicity) — include it for developability triage when the user cares about ADME, or when a top hit looks risky. Read references/results.md for output layout, metrics, ADME, and filtered-input accounting.# Replace placeholders with concrete absolute paths before running.
# Use a short descriptive run name, for example: sm-screen-<target>-<library>-v1
boltz-api small-molecule:library-screen estimate-cost \
--input @yaml:///absolute/path/payload.yaml
boltz-api small-molecule:library-screen 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 30
# -> /absolute/path/boltz-experiments/<run-name>/results/<pres_*>/...
Payload keys are molecules, target, molecule_filters — the API body field names, not the direct CLI flag names --molecule / --target / --molecule-filters.
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, --molecule-filters @json:///absolute/path/filters.json, or repeated --molecule @json:///absolute/path/mol-1.json entries. Piped YAML / JSON on stdin also works, but it must use API body field names. Never use @file:// or @./.molecule_filters if the user asks; mention the catalog as an option.--idempotency-key at submit and --name on download-results so re-runs resume via .boltz-run.json.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.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 molecule count: 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.estimate-cost returns the authoritative total — always use it.--poll-interval-seconds 30 is a reasonable downloader default. Wall-clock time scales roughly with the number of molecules: under 100 often finishes in a few minutes, 100-1,000 may take several minutes to tens of minutes, and larger screens can take longer or hours depending on inputs and system load. Don't quote a fixed duration, and never tell the user a 10-candidate screen will take 30 minutes or hours.boltz-api small-molecule:library-screen start --helpRead references/api.md for the molecules, target, and molecule_filters shapes, including the built-in SMARTS filters and RDKit descriptor ranges. Read references/results.md after download when ranking hits or explaining missing/filtered inputs.
Rank from results/index.jsonl after download-results; use references/results.md for the local file layout, metric meanings, and filtered-input accounting.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。