bond-summary

連続する分子構造(R → TS → P や多段中間体列)の間の共有結合変化を、元素固有の共有結合半径によって検出・報告します。入力 N 構造に対し N − 1 個のペア比較ブロック(A→B, B→C, …)を生成して標準出力へ表示します。ファイルは作成されません。反応経路上の連続構造でどの共有結合が形成・切断されたかを確認するときに使用します。例えば、IRC 端点ペアの妥当性検証、多段機構のスクリーニング、all の post-processing 結果の手動での検算などです。対応フォーマットは XYZPDBGJF(拡張子から自動検出)で、距離はオングストローム(Å)で報告されます。

実行例

2 構造の比較(R → P):

pdb2reaction bond-summary -i 1.R.xyz 3.P.xyz

多構造列 — R→IM1, IM1→IM2, IM2→P の 3 つの比較ブロックが出力されます:

pdb2reaction bond-summary -i 1.R.xyz 3.IM1.xyz 5.IM2.xyz 7.P.xyz

出力

bond-summary はファイルを書き出しません。標準出力に、形成・切断された結合とその距離(Å)を含むテキストレポート(連続ペアごとに 1 比較ブロック)を表示します。--json 指定時は機械可読 JSON を標準出力へ出力します。各ブロックは連続ペアの比較結果を示します:

============================================================
  1.R.xyz  →  3.P.xyz
============================================================
Bond formed (2):
  - O14-H106 : 1.502 Å --> 1.011 Å
  - P95-O107 : 3.477 Å --> 1.523 Å
Bond broken (2):
  - P95-O97 : 1.585 Å --> 3.270 Å
  - H106-O107 : 1.034 Å --> 1.673 Å

Python API

結合変化検出関数は Python から直接利用できます:

from pdb2reaction.domain.bond_changes import compare_structures, has_bond_change, summarize_changes

Function

Description

compare_structures(geom1, geom2, device="cuda", bond_factor=1.20)

Detect covalent bonds formed or broken between two pysisyphus geometries. Returns a BondChangeResult with formed_covalent and broken_covalent (sets of 0-based index pairs).

has_bond_change(geom_start, geom_end, bond_cfg)

Convenience wrapper: returns (has_changes: bool, summary_text: str). bond_cfg accepts keys: device, bond_factor, margin_fraction, delta_fraction.

summarize_changes(geom, result, one_based=True)

Format bond changes as a text report with distances in Angstrom.

from pysisyphus.helpers import geom_loader
from pdb2reaction.domain.bond_changes import has_bond_change

geom_r = geom_loader("R.xyz")
geom_p = geom_loader("P.xyz")

changed, summary = has_bond_change(geom_r, geom_p, {"device": "cpu", "bond_factor": 1.20})
if changed:
    print(summary)

CLI オプション

オプション

説明

デフォルト

-i, --input FILE

入力構造ファイル(XYZ, PDB, GJF 形式、拡張子から自動検出。各ファイルごとに -i を繰り返す、2 つ以上必須)

--device TEXT

計算デバイス(cpu, cuda

cpu

--bond-factor FLOAT

共有結合半径の和に対するスケーリングファクター

1.20

--one-based / --zero-based

出力の原子インデックス規約

--one-based

--json / --no-json

機械可読な JSON を標準出力へ出力(テキストレポートの代わり)。このサブコマンドは result.json ファイルを書き出しません(永続化したい場合は stdout をリダイレクトしてください)。スキーマは JSON 出力スキーマ → bond-summary を参照

False

すべてのフラグ一覧は生成されたコマンドリファレンスを参照してください。

注意事項

  • すべての入力構造は同一の原子数と元素順序である必要があります。

  • 結合検出は all ワークフローの IRC 端点検証で使用される内部 bond_changes モジュールと同じアルゴリズムを使用します。

  • 境界領域にあり判定が微妙な結合(例: 金属配位 2.0–2.4 Å)の感度を調整するには、--bond-factor を大きくしてください(例: 1.30)。

関連項目