path-opt¶
概要¶
要約: 2 つの構造(R → P)から、GSM(デフォルト)または DMF(
--mep-mode dmf)で MEP を最適化します。経路軌跡を書き出し、最高エネルギー画像(HEI)を TS 候補として出力します。
要点¶
想定場面: 反応物と生成物の 2 端点が揃っていて、まず MEP の初期推定を得たい場合に使います。
手法: 既定は GSM。
--mep-mode dmfで DMF に切り替え可能。主な出力:
final_geometries.trj(経路)とhei.xyz(HEI)。変換が有効なら.pdb/.gjfコンパニオンも生成。既定値:
--opt-mode light(LBFGS)、--climb True、--max-nodes 10、--thresh gau。次にやること: HEI は TS 候補です。
tsopt→freq(虚数振動数は 1 つ) →ircで検証します。
pdb2reaction path-opt は 2 端点間の最小エネルギー経路(MEP)を探索し、最高エネルギー画像(HEI)を報告します。HEI は 候補 に過ぎないため、freq と irc によるモード/接続性の確認が必須です。2 構造以上を入力して反応領域だけを自動で精密化したい場合は、path-search を使用してください。
UMA 計算機で各イメージのエネルギー/勾配/ヘシアンを評価します。最適化の前に剛体アライメントを行い、ストリングが不安定になりにくいようにします。freeze_atoms を指定した場合、RMSD フィットにはその原子群のみを使用します(変換自体は全原子へ適用されます)。
設定の優先順位は デフォルト → CLI → --args-yaml です(geom, calc, gs, opt, dmf, sopt.*)。--convert-files が有効(デフォルト)な場合、参照 PDB があるときは .pdb、Gaussian テンプレートがあるときは .gjf のコンパニオンが生成されます。
使用法¶
pdb2reaction path-opt -i REACTANT.{pdb|xyz} PRODUCT.{pdb|xyz} [-q CHARGE] [--ligand-charge <number|'RES:Q,...'>] [-m MULT] \
[--workers N] [--workers-per-node N] \
[--mep-mode {gsm|dmf}] [--freeze-links {True\|False}] [--max-nodes N] [--max-cycles N] \
[--climb {True\|False}] [--dump {True\|False}] [--thresh PRESET] \
[--preopt {True\|False}] [--preopt-max-cycles N] [--opt-mode light|heavy] [--fix-ends {True\|False}] \
[--out-dir DIR] [--args-yaml FILE] \
[--convert-files {True\|False}] [--ref-pdb FILE]
ワークフロー¶
事前アライメント & 凍結解決
2 番目以降のすべてのエンドポイントは、最初の構造に対して Kabsch アライメントされます。いずれかのエンドポイントで
freeze_atomsが定義されている場合、RMSD フィットにはその原子のみを使用しますが、算出された変換は全原子に適用されます。--freeze-links=True(デフォルト)のPDB 入力では、リンク水素の親原子が検出されfreeze_atomsにマージされます。
ストリング成長とHEIエクスポート
経路が成長・精密化された後、内部ノード間の局所極大のうちエネルギーが最も高いものを優先的に探索します。内部の局所極大がない場合は内部ノードの最大値に、内部ノードもない場合は全体の最大値にフォールバックします。
最高エネルギーイメージ(HEI)は
.xyzと、PDB 参照がある場合は.pdbとして書き込み、Gaussian テンプレートがある場合は.gjfも出力します(いずれも--convert-filesを尊重)。
主要な挙動¶
エンドポイント: 入力は2構造のみ。形式は
geom_loaderに準拠。PDB 入力(または--ref-pdb付きXYZ/GJF)で軌跡/HEIのPDB 出力が有効。電荷/スピン: CLI は
.gjfテンプレートのメタデータより優先されます。-q省略時に--ligand-chargeがある場合、エンドポイントは酵素–基質複合体として扱われ、PDB 入力(または--ref-pdb付き XYZ/GJF)ではextract.pyの電荷サマリーで総電荷を導出します。明示的な-qは常に優先されます。.gjf以外の入力で-qを省略すると、導出が成功しない限り中断します。.gjf入力で電荷メタデータが無く-qも無い場合は中断します。多重度は省略時1がデフォルトです。正しい状態を得るため、常に明示的に指定してください。MEPセグメント:
--max-nodesはGSM/DMFの内部ノード数を制御(GSMの総画像数はmax_nodes + 2)。--threshまたはYAMLで収束プリセット(gau_loose,gau,gau_tight,gau_vtight,baker,never)を指定。クライミングイメージ:
--climbは標準のクライミング手順とLanczos接線リファインの両方を切り替え。ダンプ:
--dump Trueで StringOptimizer のopt.dump=Trueに対応し、out_dir内に軌跡ダンプを出力します。リスタート YAML は YAML で有効化した場合のみ書き出されます。終了コード:
0成功、3最適化失敗、4軌跡書き込みエラー、5HEI 出力エラー、130キーボード割り込み、1予期せぬエラー。
CLI オプション¶
オプション |
説明 |
デフォルト |
|---|---|---|
|
反応物と生成物構造 |
必須 |
|
総電荷( |
テンプレート/導出がない限り必須 |
|
|
None |
|
UMA予測器の並列度(workers > 1 で解析ヘシアン無効; |
|
|
スピン多重度 |
テンプレート/ |
|
PDBのみ: リンクH親を凍結(YAMLとマージ) |
|
|
内部ノード数(ストリングイメージ = |
|
|
GSM(ストリングベース)またはDMF(ダイレクトフラックス)経路生成器を選択 |
|
|
オプティマイザーマクロイテレーション上限 |
|
|
クライミングイメージ精密化を有効化 |
|
|
MEP軌跡/リスタートをダンプ |
|
|
エンドポイント事前最適化用の単一構造オプティマイザー( |
|
|
PDB/Gaussian入力用のXYZ/TRJ → PDB/GJFコンパニオンをトグル |
|
|
XYZ/GJF 入力用の参照 PDB トポロジー |
None |
|
出力ディレクトリ |
|
|
GSM/ストリングオプティマイザーの収束プリセットを上書き |
|
|
YAML 上書き(セクション |
None |
|
アライメント/MEP 探索前に各エンドポイントを事前最適化(GSM/DMF) |
|
|
エンドポイント事前最適化サイクルの上限 |
|
|
GSM成長/精密化中にエンドポイント構造を固定 |
|
出力¶
out_dir/
├─ final_geometries.trj # XYZ経路(コメント行にエネルギーを保持)
├─ final_geometries.pdb # PDB 参照が利用可能で変換が有効な場合
├─ hei.xyz # 最高エネルギーイメージ
├─ hei.pdb # PDB 参照が利用可能な場合のHEI(変換有効時)
├─ hei.gjf # Gaussian テンプレートを使用して書き込まれたHEI(変換有効時)
├─ align_refine/ # 剛体アライメント/リファイン段階の中間ファイル(アライメント実行時)
└─ <オプティマイザーダンプ/リスタート>
コンソールには解決済みYAMLブロックが出力され、GSM/DMFのMEP進行状況とタイミングが報告されます。
YAML 設定(--args-yaml)¶
YAML 値はCLIを上書きし、CLIはデフォルトを上書きします。
geom¶
optと同じキー(coord_type,freeze_atomsなど)。--freeze-linksがPDB 入力でfreeze_atomsにマージされます。
calc¶
UMA 計算機の設定(
model,device, 近傍半径, ヘシアンなど)。
dmf¶
Direct Max Flux + (C)FB-ENM 補間の制御。CLIで露出している
dmfブロックと同じキー。
gs¶
Growing String表現の制御:
max_nodes,perp_thresh, 再パラメータ化(reparam_check,reparam_every,reparam_every_full,param)、max_micro_cycles, DLCリセット、climb関連、scheduler。
opt¶
StringOptimizer設定: type,
stop_in_when_full,scale_step,max_cycles, dump系、reparam_thresh,coord_diff_thresh,out_dir,print_every。
sopt.lbfgs / sopt.rfo¶
エンドポイント事前最適化の単一構造オプティマイザー設定。キーは YAML リファレンス の
lbfgs/rfoと同等で、YAML が CLI の--preopt-max-cyclesを上書きします。
YAML例(デフォルト値)¶
geom:
coord_type: cart # coordinate type: cartesian vs dlc internals
freeze_atoms: [] # 0-based frozen atoms merged with CLI/link detection
calc:
charge: 0 # total charge (CLI/template override)
spin: 1 # spin multiplicity 2S+1
model: uma-s-1p1 # UMA model tag
task_name: omol # UMA task name
device: auto # UMA device selection
max_neigh: null # maximum neighbors for graph construction
radius: null # cutoff radius for neighbor search
r_edges: false # store radial edges
out_hess_torch: true # request torch-form Hessian
freeze_atoms: null # calculator-level frozen atoms
hessian_calc_mode: FiniteDifference # Hessian mode selection
return_partial_hessian: false # full Hessian (avoids shape mismatches)
gs:
fix_first: true # keep the first endpoint fixed during optimization
fix_last: true # keep the last endpoint fixed during optimization
max_nodes: 10 # maximum string nodes
perp_thresh: 0.005 # perpendicular displacement threshold
reparam_check: rms # reparametrization check metric
reparam_every: 1 # reparametrization stride
reparam_every_full: 1 # full reparametrization stride
param: equi # parametrization scheme
max_micro_cycles: 10 # micro-iteration limit
reset_dlc: true # rebuild delocalized coordinates each step
climb: true # enable climbing image
climb_rms: 0.0005 # climbing RMS threshold
climb_lanczos: true # Lanczos refinement for climbing
climb_lanczos_rms: 0.0005 # Lanczos RMS threshold
climb_fixed: false # keep climbing image fixed
scheduler: null # optional scheduler backend
opt:
type: string # optimizer type label
stop_in_when_full: 300 # early stop threshold when string is full
scale_step: global # step scaling mode
max_cycles: 300 # maximum optimization cycles
dump: false # dump trajectory/restart data
dump_restart: false # dump restart checkpoints
reparam_thresh: 0.0 # reparametrization threshold
coord_diff_thresh: 0.0 # coordinate difference threshold
out_dir: ./result_path_opt/ # output directory
print_every: 10 # logging stride
dmf:
max_cycles: 300 # DMF/IPOPT の最大反復数
correlated: true # correlated DMF propagation
sequential: true # sequential DMF execution
fbenm_only_endpoints: false # run FB-ENM beyond endpoints
fbenm_options:
delta_scale: 0.2 # FB-ENM displacement scaling
bond_scale: 1.25 # bond cutoff scaling
fix_planes: true # enforce planar constraints
two_hop_mode: sparse # neighbor traversal strategy
cfbenm_options:
bond_scale: 1.25 # CFB-ENM bond cutoff scaling
corr0_scale: 1.1 # Correlation scale for corr0
corr1_scale: 1.5 # Correlation scale for corr1
corr2_scale: 1.6 # Correlation scale for corr2
eps: 0.05 # Correlation epsilon
pivotal: true # Pivotal residue handling
single: true # Single-atom pivots
remove_fourmembered: true # Prune four-membered rings
two_hop_mode: sparse # Neighbor traversal strategy
dmf_options:
remove_rotation_and_translation: false # Keep rigid-body motions
mass_weighted: false # Toggle mass weighting
parallel: false # Enable parallel DMF
eps_vel: 0.01 # Velocity tolerance
eps_rot: 0.01 # Rotational tolerance
beta: 10.0 # Beta parameter for DMF
update_teval: false # Update transition evaluation
k_fix: 300.0 # Harmonic constant for restraints
関連項目¶
path-search — 自動精密化を伴う再帰的MEP 探索(2+構造用)
tsopt — HEIをTS 候補として最適化(freq/IRCで検証)
extract — path-opt入力用のポケットPDBを生成
all — エンドツーエンドワークフロー(デフォルトでpath-searchを使用)
YAML リファレンス —
gs、dmf、optの完全な設定オプション用語集 — MEP、GSM、DMF、HEIの定義