all¶
pdb2reaction all は、抽出から解析までの一連の処理を まとめて実行する最上位コマンド です。extract → scan / path-search → tsopt → irc / freq / dft を手動で連結する代わりに、構造から検証済みの機構までを 1 コマンドで得られます。1 つ以上の PDB 入力から活性部位モデル(バインディングポケット)を抽出し、(任意の)段階的スキャンを行い、MEP 探索(デフォルトで単一パス path-opt、--refine-path True で再帰的 path-search に切り替え)を実行したうえで、必要に応じて TS 最適化・IRC・振動解析・DFT 一点計算まで連結します。MLIP バックエンドはデフォルトで UMA を使用しますが、-b/--backend オプションで ORB・MACE・AIMNet2 も選択できます。
all は与える入力に応じて次の 3 つのモードのいずれかで動作します。
複数構造 MEP — 反応順に並べた 2 構造以上(PDB/GJF/XYZ)と基質定義を与え、活性部位モデル抽出 → GSM/DMF MEP 探索 → 全系テンプレートへのマージまで一括実行する場合。
単一構造 + 段階的スキャン — 1 つの構造に対して
-s/--scan-listsを 1 つ以上与え、(段階的)スキャンで得た中間体列を MEP の端点として用いる場合。TSOPT のみ — 1 つの入力構造に
--scan-listsを省略して--tsoptを指定し、MEP/マージをスキップして TS 最適化 + IRC(必要に応じて freq / DFT)だけ実行する場合。
Important
--tsopt なしの all ワークフローは TS 候補(MEP 探索の最高エネルギー画像 / HEI)を出力します。--tsopt を追加すると、これらを虚振動数チェックで検証済みの最適化 TS 構造に精密化し、続いて IRC でエンドポイントを検証します。結果(虚振動数の本数と端点の接続性)は機構解釈の前に必ず目視で確認してください。
実行例¶
examples/ ディレクトリに GPP C6-メチル基転移酵素 BezA(Tsutsumi et al., Angew. Chem. Int. Ed. 2022, 61, e202111217)の完全な all ワークフロースクリプト(MEP およびスキャンパイプライン)があります。
コマンド形式:
pdb2reaction all -i INPUT1 [INPUT2 ...] -c SUBSTRATE [-b/--backend uma|orb|mace|aimnet2] [--solvent SOLVENT] [--solvent-model alpb|cpcmx] [options]
TS 最適化・IRC・熱化学・DFT まで一括実行する複数構造 MEP:
# TS 最適化・IRC・熱化学・DFT まで一括実行する複数構造 MEP
pdb2reaction all -i 1.R.pdb 3.P.pdb -c "SAM,GPP,MG" -l "SAM:1,GPP:-3" \
--tsopt --thermo --dft --out-dir ./result_mep
単一構造 + 段階的スキャン(2 ステージ):
# 単一構造 + 段階的スキャン(2 ステージ)
pdb2reaction all -i 1.R.pdb -c "SAM,GPP,MG" -l "SAM:1,GPP:-3" \
-s '[("CS1 SAM 320","GPP 321 C7",1.60)]' '[("GPP 321 H11","GLU 186 OE2",0.90)]' \
--tsopt --thermo --out-dir ./result_scan
TSOPT のみワークフロー(経路探索なし):
# TSOPT のみワークフロー(経路探索なし)
pdb2reaction all -i TS_candidate.pdb -c 'SAM,GPP,MG' \
-l 'SAM:1,GPP:-3' --tsopt --thermo --dft
テンプレートがある場合の XYZ/TRJ → PDB/GJF 変換(付随ファイルの生成)は、全ステージ共通の --convert-files/--no-convert-files(デフォルト: True)で制御できます。
ヘルプ出力は pdb2reaction all --help で主要オプションを、pdb2reaction all --help-advanced で全オプションを確認できます。
処理の流れ¶
全系入力 (PDB/XYZ/GJF)
│
├─ (任意) 活性部位モデル抽出 [`extract`](extract.md) ← --center/-c を使う場合は PDB が必要
│ ↓
│ 活性部位モデル/クラスターモデル (PDB)
│ │
│ ├─ (任意) 段階的スキャン [`scan`](scan.md) ← 単一構造ワークフロー
│ │ ↓
│ │ 順序付けられた中間体
│ │ ↓
│ └─ MEP 探索 [`path-opt`](path-opt.md) または [`path-search`](path-search.md)
│ ↓
│ MEP 経路 (mep_trj.xyz) + エネルギーダイアグラム
│ ↓
└─ (任意) TS 最適化 + IRC [`tsopt`](tsopt.md) → [`irc`](irc.md)
└─ (任意) 熱化学 [`freq`](freq.md)
└─ (任意) DFT 一点計算 [`dft`](dft.md)
all は次のステージを順に実行します。各ステージはサブコマンドとして単独でも実行できます。
事前チェック(自動)
allは他の処理の前にadd-elem-infoとfix-altlocを自動実行します。add-elem-infoは元素記号が欠落している PDB 入力(列 77–78 の元素欄が空)に対してのみ実行され、欠落した元素記号を補完します。fix-altlocは代替配座(altLoc)を含む PDB 入力に対してのみ実行され、代替配座を解消します。個別のサブコマンド(extract、optなど)を使用する場合は、必要に応じてこれらを手動で実行してください。
活性部位モデル抽出(
-c/--centerが指定された場合)
基質は PDB パス、残基 ID(
123,124またはA:123,B:456)、または残基名(GPP,SAM)で指定可能抽出オプション:
--radius、--radius-het2het、--include-h2o、--exclude-backbone、--add-linkh、--selected-resn、--verbose入力ごとの活性部位モデル PDB は
<out-dir>/_work/models/に保存。複数構造が提供された場合、活性部位モデルは残基選択ごとに統合最初の活性部位モデルの総電荷がスキャン/MEP/TSOPT に伝播
オプションの段階的スキャン(単一入力のみ)
各
--scan-lists引数は MLIP スキャンステージを記述する(i,j,target_Å)タプルの Python ライクなリスト。原子インデックスは元の入力順序(1 始まり)を参照し、活性部位モデル順序に自動変換されます。PDB 入力の場合、i/jは整数インデックスまたは'TYR,285,CA'のようなセレクタ文字列を使用可能です。セレクタはスペース/カンマ/スラッシュ/バッククォート/バックスラッシュ(,/`\)を区切り文字として受け付け、トークン順序は任意です(フォールバックは resname, resseq, atom と仮定)。単一リテラルは 1 ステージスキャンを実行し、複数リテラルは順次実行されるため、ステージ 2 はステージ 1 の結果から開始されます。複数リテラルは 1 つの
-s/--scan-listsに並べて指定します(例:-s '[(…)]' '[(…)]')。ステージエンドポイント(
stage_XX/result.pdb)が、後続 MEP ステップへ渡される順序付き中間体となる
活性部位モデルでの MEP 探索(デフォルトで単一パス
path-opt、--refine-path Trueで再帰的path-search)
デフォルトでは、単一パス
path-opt(GSM/DMF)を実行します。エンジン生出力は<out-dir>/_work/path_opt/に書かれ、マージ済み成果物(mep.pdb、mep_trj.xyz、energy_diagram_MEP.png)はルート直下へ配置します。--refine-path Trueを指定すると、再帰的path-searchに切り替わり、多段階反応を自動検出して各素反応の詳細な MEP を構築します(エンジン生出力は<out-dir>/_work/path_search/)。複雑な多段階反応では手動での試行錯誤が必要な場合があります。複数入力 PDB の場合、参照マージ用の全系テンプレートが MEP エンジン(デフォルトは
path-opt、--refine-path True時はpath-search)に自動的に渡されます(全系マージ自体は--refine-path True時のみ実行)。単一構造スキャンの場合は、元の全系 PDB テンプレートが全ステージで再利用されます。
活性部位モデルを全系にマージ(
--refine-path True使用時のみ)
--refine-path Trueを指定し、かつ参照 PDB テンプレートがある場合、マージ済みのmep_w_ref.pdbが<out-dir>/直下へ配置し、セグメントごとのmep_w_ref_seg_NN.pdbは<out-dir>/_work/path_search/に残ります。デフォルトのpath-optモードでは全系マージは行われません。
オプションのセグメントごとの後処理(反応セグメントのみ — 結合変化のあるセグメント。ブリッジセグメントはスキップ)
--tsopt: 各 HEI 活性部位モデルで TS 最適化を実行し、EulerPC IRC で追跡した後、IRC エンドポイントを--thresh-post(デフォルトbaker)で再最適化します。エンドポイント最適化の作業ディレクトリは完了後に自動削除されます。--thermo: (R, TS, P) でfreqを呼び出し、振動/熱化学データと MLIP Gibbs ダイアグラムを取得--dft: (R, TS, P) で DFT 一点計算を実行し、DFT ダイアグラムを構築。--thermoと組み合わせると DFT//MLIP Gibbs ダイアグラムも生成共有の上書きオプション:
--opt-mode、--opt-mode-post(TSOPT/IRC 後最適化のプリセット上書き)、--flatten/--no-flatten、--hessian-calc-mode、--tsopt-max-cycles、--tsopt-out-dir、--freq-*、--dft-*、--dft-engine(GPU 優先)などHessian評価モードの詳細は Hessian評価モード を参照してください。
TSOPT のみモード(単一入力、
--tsopt、--scan-listsなし)
MEP/マージステージをスキップし、活性部位モデル(または抽出がスキップされた場合は全入力構造)で
tsopt→ EulerPC IRC を実行し、高エネルギー側の IRC 終端を反応物 (R) として識別したうえで、エネルギーダイアグラム一式とオプションの freq/DFT 出力を生成します。
出力¶
ツリーは 3 つのゾーンで構成されます: ルート直下の成果物、segments/seg_NN/ 配下のセグメント別成果物、_work/ 配下のパイプライン作業領域(必要な結果を取り出したあとは rm -rf で削除して構いません)。
out_dir/ (デフォルト:./result_all/)
├─ summary.log # 結果要約(ルート直下に生成)
├─ summary.json # JSON 結果
├─ mep.pdb # マージ済み MEP 経路(エンジンから配置)
├─ mep_w_ref.pdb # 全系テンプレートへマージした MEP(複数入力時)
├─ mep_trj.xyz # MEP 全体軌道
├─ energy_diagram_MEP.png # 全セグメントの MEP 障壁
├─ energy_diagram_*.png # 集約後処理ダイアグラム(UMA / Gibbs / DFT、--tsopt 等で生成)
├─ segments/ # 反応セグメント別の成果物(ブリッジセグメントはスキップ)
│ └─ seg_NN/ # 2 桁インデックス、例: seg_01, seg_02
│ ├─ reactant.{pdb,xyz,gjf} # 正規 R/TS/P(出力形式は入力形式と一致)
│ ├─ ts.{pdb,xyz,gjf}
│ ├─ product.{pdb,xyz,gjf}
│ ├─ ts/ # TS 最適化出力と振動解析(--tsopt)
│ ├─ irc/ # IRC 軌道とプロット(--tsopt)
│ ├─ freq/{R,TS,P}/ # frequencies_cm-1.txt + thermoanalysis.yaml(--thermo)
│ └─ dft/ # DFT 一点計算結果(--dft)
└─ _work/ # パイプライン作業領域(削除可)
├─ models/ # 抽出実行時の活性部位モデル PDB(model_<input_stem>.pdb)
├─ scan/ # 段階的スキャン結果(--scan-lists 提供時)
├─ add_elem_info/ # 前処理: 元素記号補完
├─ fix_altloc/ # 前処理: altLoc 解決
└─ path_opt/ # MEP エンジン生出力(--refine-path True 時は path_search/)
TSOPT のみモード(単一入力 + --tsopt、--scan-lists なし)では MEP ステージが無く、最適化済み R/TS/P と ts/・irc/・freq/・dft/ は segments/seg_01/ 直下に生成され、MEP 作業ディレクトリ(_work/path_opt/)は存在しません。
Note
正規構造は segments/seg_NN/reactant.*・ts.*・product.* です — 機構を報告する際はこれらを引用してください。同じ seg_NN/ 内の ts/・irc/・freq/・dft/ サブディレクトリは各ステージの作業ファイル(例: ts/vib/imag_*_trj.xyz、irc/*_trj.xyz)を保持し、特定ステージのデバッグに使います。_work/path_opt/ 配下の MEP エンジン生出力は作業領域であり、必要な成果物(mep.pdb、mep_trj.xyz、energy_diagram_MEP.png)は既にルートへ配置済みです。
-v 2 ではコンソールに活性部位モデルの電荷解決結果、YAML 設定、スキャンステージ、MEP(GSM/DMF)の進行状況、各ステージの所要時間が出力されます。詳細は ログ詳細度 (verbosity) を参照してください。
プロットファイルの命名規則¶
エネルギーダイアグラムファイルは手法とスコープに基づいて命名されます:
ファイル名 |
生成タイミング |
内容 |
|---|---|---|
|
path-opt/path-search 完了時 |
全セグメント MEP 障壁(生の GSM/DMF 値) |
|
セグメントごとの tsopt+IRC 完了時 |
R→TS→P(MLIP エネルギー) |
|
セグメントごとの thermo 完了時 |
R→TS→P(MLIP ギブズ自由エネルギー) |
|
セグメントごとの DFT 完了時 |
R→TS→P(DFT エネルギー) |
|
セグメントごとの DFT+thermo 完了時 |
R→TS→P(DFT エネルギー + MLIP 熱補正) |
|
全セグメント集約時 |
全セグメント統合(MLIP) |
|
全セグメント + thermo |
全セグメント統合(MLIP ギブズ) |
|
全セグメント + DFT |
全セグメント統合(DFT) |
|
全セグメント + DFT + thermo |
全セグメント統合(DFT//MLIP ギブズ) |
|
セグメント IRC 完了 |
セグメントごとの IRC プロファイル(MLIP エネルギー) |
|
全セグメント集約 |
全セグメントの IRC プロファイル連結 |
summary.log の読み方¶
ログは番号付きセクションで構成されます:
[1] グローバル MEP 概要 – イメージ/セグメント数、MEP 軌跡プロットのパス、MEP 全体のエネルギーダイアグラム。
[2] セグメント別 MEP サマリー(MLIP パス) – セグメントごとの障壁(
ΔE‡)、反応エネルギー(ΔE)、結合変化サマリー。[3] セグメント別後処理(TSOPT / Thermo / DFT) – TS 虚振動数チェック、IRC 出力、MLIP/熱化学/DFT のエネルギーテーブル。
[4] エネルギーダイアグラム(概要) – MEP/MLIP/Gibbs/DFT 系の図表と、任意の横断サマリー表。
[5] 出力ディレクトリ構造 – 生成ファイルを注釈付きでまとめたツリー。
summary.json の読み方¶
JSON 結果の代表的なトップレベルキーは以下のとおりです。
out_dir,n_images,n_segments– 実行メタデータと総数。segments–index,tag,kind,barrier_kcal,delta_kcal,bond_changesを含むセグメント配列。energy_diagrams(任意) –labels,energies_kcal,energies_au,ylabel,imageなどを含む図表データ。
summary.json には summary.log にある整形テーブルやファイルツリーは含まれません。
CLI オプション¶
入力の要件:
抽出有効(
-c/--center): 残基同定のため入力は PDB が必須。抽出なし: PDB/XYZ/GJF を使用可能。
複数構造実行は 2 つ以上の構造が必要。完全な入力ファイル要件(水素、元素列、原子順序の一致)は CLI 規約 を参照してください。
電荷の解決順序の詳細は CLI 規約: 電荷の指定 を参照してください。all コマンドでは、活性部位モデル抽出(-c 指定時)による電荷導出が追加の優先度レイヤーとして機能します。スピンの解決順序は --multiplicity(CLI)→ .gjf テンプレート → デフォルト(1)。非標準の基質には --ligand-charge/-l を必ず指定し、scan/MEP/TSOPT/DFT へ正しい総電荷を伝播させてください。
入出力オプション¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
反応順序の 2 つ以上の完全構造( |
必須 |
|
|
None |
|
トップレベル出力ディレクトリ |
|
|
XYZ/TRJ → 対応する PDB/GJF の全体切替 |
|
|
MEP(GSM/DMF)軌跡を出力。 |
|
|
先に適用するベース YAML |
None |
|
実行前に解決済み設定を表示 |
|
|
実行せず検証と計画表示のみ行う |
|
電荷・スピンオプション¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
総電荷または残基別マッピング( |
None |
|
総電荷を強制上書き( |
None |
|
全下流ステップへ転送されるスピン多重度 |
|
活性部位モデル抽出オプション¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
基質指定: PDB パス、残基 ID( |
抽出に必須 |
|
活性部位モデル包含カットオフ(Å) |
|
|
ヘテロ–ヘテロカットオフ(Å)。 |
|
|
水分子を含める(HOH/WAT/TIP3/SOL) |
|
|
非基質アミノ酸の主鎖原子を除去 |
|
|
切断結合にキャップ水素を付加 |
|
|
強制包含残基。名前とは裏腹にこのフラグは残基 ID(コロン区切り整数、オプションでチェーン/挿入コード付き、例 |
|
|
修飾アミノ酸残基名をカンマ区切りで指定(任意で電荷付き)。主鎖切断と電荷計算にアミノ酸として扱う。例: |
|
|
活性部位モデル PDB でキャップ H の親を凍結 |
|
MEP 探索オプション¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
MEP 探索アルゴリズム: GSM(Growing String Method)または DMF(Direct Max Flux) |
|
|
MEP 内部ノード数。GSM: 総イメージ数 = |
|
|
MEP 最大最適化サイクル |
|
|
標準 GSM セグメントでクライミングイメージを有効化(ブリッジセグメントは常に無効) |
|
|
ワークフロープリセット( |
hess |
|
収束プリセット( |
|
|
MEP 前に活性部位モデル端点を事前最適化。単体の |
|
|
|
|
MLIP 計算機オプション¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
MLIP 予測器の並列度(workers > 1 で解析Hessian無効; UMA バックエンドのみ)。診断上の注意は workers > 1 は解析Hessianを無効化する(UMA バックエンド) を参照 |
|
|
共有 MLIP Hessianエンジン |
|
|
MLIP バックエンド |
|
|
xTB 補正用の暗黙溶媒名(例: |
|
|
xTB 溶媒モデル |
|
後処理オプション¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
セグメントごとの TS 最適化+ IRC を実行 |
|
|
R/TS/P で振動解析を実行 |
|
|
R/TS/P で DFT 一点計算を実行 |
|
|
TSOPT/IRC 後最適化のプリセット上書き( |
|
|
IRC 後エンドポイント最適化の収束プリセット( |
|
|
余分な虚振動モードのフラット化 |
|
Warning
--dft による DFT 一点計算(PySCF/GPU4PySCF)は、約 300 原子を超えるモデルでは計算コストが非常に大きくなります。そのような系では、A100 や H200 等の高性能 GPU を搭載した HPC クラスタの利用が必要になる場合があります。
TSOPT の最適化モードは、--opt-mode-post(指定時)→ --opt-mode(明示指定時のみ)→ TSOPT のデフォルト(hess → rsirfo)の順で決まります。
例: --opt-mode grad --opt-mode-post hess は、経路最適化に L-BFGS、TS 精密化に RS-I-RFO を使用します。
TSOPT 上書き¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
|
|
|
tsopt 出力サブディレクトリ |
None |
Freq 上書き¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
freq 出力ディレクトリ上書き |
None |
|
最大モード出力数 |
|
|
モードアニメーション振幅(Å) |
|
|
モードアニメーションフレーム数 |
|
|
モードソート方法 |
|
|
熱化学温度(K) |
|
|
熱化学圧力(atm) |
|
DFT 上書き¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
DFT バックエンド: gpu (GPU4PySCF) または cpu (PySCF)。 |
|
|
DFT 出力ディレクトリ上書き |
None |
|
汎関数/基底関数ペア |
|
|
最大 SCF サイクル |
|
|
SCF 収束閾値 |
|
|
PySCF グリッドレベル |
|
スキャンオプション(単一入力)¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
段階的スキャン: |
None |
|
scan 出力ディレクトリ上書き |
None |
|
1 始まり/0 始まりインデックス |
None |
|
最大ステップサイズ(Å) |
|
|
調和バイアス強度(eV·Å⁻²) |
|
|
緩和サイクル上限 |
|
|
scan の事前最適化トグルを上書き |
None |
|
scan のステージ終端最適化トグルを上書き |
None |
YAML 設定¶
all は YAML の多層指定をサポートします:
--config FILE: ベース設定。
適用順序:
defaults < config < CLI
解決後の YAML は呼び出されるすべてのサブコマンドに転送されます。各ツールが読み取るセクションは以下のとおりです:
サブコマンド |
YAML セクション |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
最小例:
calc:
model: uma-s-1p1 # uma-s-1p1 | uma-m-1p1
hessian_calc_mode: Analytical # VRAM に余裕がある場合推奨
gs:
max_nodes: 12
climb: true
dft:
grid_level: 6
すべての YAML オプションの完全なリファレンスについては、YAML 設定リファレンス を参照してください。
注記¶
Tip
大規模な活性部位モデルでは、単一構造スキャンワークフロー(--scan-lists)の方が、複数構造 MEP ワークフローよりも信頼性の高い反応障壁を得やすい傾向があります。複数の PDB を入力すると、反応座標と無関係な領域の構造差異が蓄積し、障壁を過大評価する可能性があります。スキャンワークフローは単一構造から出発して関連する座標のみを駆動するため、無関係な構造ノイズを最小化できます。この影響はモデルサイズが大きくなるほど顕著になります。
症状起点で切り分ける場合は 典型エラー別レシピ を先に参照し、詳細は トラブルシューティング を確認してください。
形式電荷を推定できない場合は
--ligand-charge(数値または残基別マッピング)を必ず指定し、scan/MEP/TSOPT/DFT へ正しい総電荷を伝播させてください。マージ用の参照 PDB テンプレートは元の入力から自動的に導出されます。
path-searchの--ref-full-pdbはこのラッパーでは意図的に非公開です。収束プリセット:
--threshのデフォルトはgau、--thresh-postのデフォルトはbaker。抽出半径:
--radiusまたは--radius-het2hetに0を渡すと、内部で0.001 Åにクランプされます。エネルギーダイアグラムは反応物(最初の状態)基準の kcal/mol で表示されます。
-c/--centerを省略すると抽出をスキップし、全構造をそのまま MEP/tsopt/freq/DFT に渡します。ただし単一構造実行では--scan-listsか--tsoptが必要です。
関連項目¶
インストール — セットアップと依存関係
はじめに — 初回実行、ワークフロー概要、主要概念
extract — 単独の活性部位モデル抽出(
allが内部で呼び出し)scan — 単独の段階的距離スキャン
path-opt — 単一パス MEP 最適化(GSM/DMF)
path-search — 再帰的 MEP 探索(
allが内部で呼び出し)tsopt — 単独の TS 最適化
irc — 単独の IRC 計算
freq — 単独の振動解析
dft — 単独の DFT 計算
典型エラー別レシピ — 症状起点の切り分け
トラブルシューティング — よくあるエラーと対処法
YAML リファレンス — 全 YAML 設定オプション
用語集 — MEP、TS、IRC、GSM、DMF の定義