freq(振動解析・熱化学計算)¶
freq サブコマンドは、構造の調和振動数と、ZPE・エンタルピー・ギブズ自由エネルギーなどの熱化学補正量を計算します。
主な用途¶
停留点の検証: 虚振動の数(n_imag)を数え、極小点(n_imag = 0)か遷移状態(TS、n_imag = 1)かを確かめる
熱化学量の算出: QRRHO(準剛体ローター・調和振動子)モデルに基づき、自由エネルギーなどの熱力学諸量を求める
振動モードの可視化: 虚振動や特定モードの原子変位アニメーションを書き出す
デフォルトの計算バックエンドは、Meta が公開した学習済みの機械学習原子間ポテンシャル(MLIP)の UMA です。-b/--backend で ORB、MACE、AIMNet2、DFT も選べます。
基本的な実行例¶
1. 最小構成での実行(電荷と多重度を明示)¶
pdb2reaction freq -i ts_or_min.pdb -q 0 -m 1 --out-dir ./result_freq
端末の Number of Imaginary Freq = N の行に n_imag が出ます。
2. 熱化学の詳細ファイルの出力¶
--dump を付けると、熱化学解析の詳細ファイル thermoanalysis.yaml も出力します。
pdb2reaction freq -i ts_or_min.pdb -q 0 -m 1 --dump --out-dir ./result_freq_dump
3. 解析的 Hessian(Analytical)の指定¶
有限差分の変位幅による誤差を避けたい場合に指定します。
pdb2reaction freq -i ts_or_min.pdb -q 0 -m 1 \
--hessian-calc-mode Analytical --out-dir ./result_freq_analytical
処理の仕組みと計算仕様¶
構造読み込みと固定境界(PHVA):
--freeze-links(デフォルト有効)では、extractが付けた残基LKHの原子HL(キャップ水素)を探し、その親原子を固定します。固定原子があるときは、可動原子だけで部分 Hessian 振動解析(PHVA)を行います。Hessian 評価モード:
--hessian-calc-modeでFiniteDifference(有限差分、デフォルト)またはAnalytical(解析的)を選択します。熱化学(QRRHO): 振動数に、低振動数のエントロピーを補正する QRRHO 法をローター閾値 100 cm⁻¹ で適用し、ギブズ自由エネルギー補正
G_corrを求めます。ギブズエネルギー G は E +G_corr(E は電子エネルギー)で、正の振動数による振動の項のほか、構造全体の並進と回転の項を常に含めます。端末の熱化学の要約のGibbs Free Energy Correction (G_corr)とGibbs Free Energy (G = E + G_corr)の行に、G_corrと G が Hartree 単位で出ます。--dumpではthermoanalysis.yamlに、--out-jsonではresult.jsonのthermochemistryにも書き出し、G の欄はsum_EE_and_thermal_free_energy_haです。点群と回転対称数は構造から自動で判定し、回転対称数は YAML のthermo.symmetry_numberで上書きできます。振動モードの書き出し: 虚振動側または低振動数側から順に、
--max-writeの本数まで原子振動アニメーションを出力します。
固定境界での剛体モード¶
固定原子が無いときは、振動ではない剛体運動(並進 3 つと回転 3 つ)の 6 つを取り除いてから振動数を出します。固定原子があるときは、すべての固定原子をその場に残す剛体運動だけを取り除きます。ふつうのクラスターモデルのように、一直線に並ばない固定原子が 3 つ以上あれば、取り除く剛体運動は 0 で、可動原子の振動モードはすべて残ります。固定原子が 1 つなら 3 つ(その原子のまわりの回転)、2 つなら 1 つ(2 原子を通る軸まわりの回転)を取り除きます。
irc、tsopt の TS の振動数の確認と Dimer の向きの計算、opt・tsopt の --flatten(余分な虚振動を消す処理)も、剛体運動を同じように扱います。--out-json を付けると、取り除いた剛体運動の数と使った Hessian が result.json の rigid_projection に記録されます(JSON 出力の一覧)。
振動数の出力と判定基準¶
frequencies_cm-1.txt と JSON の記録での扱いは次のとおりです。
項目 / パラメータ |
基準値・挙動 |
説明 |
|---|---|---|
虚振動の表示 |
負の値(ν < 0 cm⁻¹) |
虚振動モードは負の振動数として表記されます。 |
虚振動の判定閾値 |
ν < −5.00 cm⁻¹ |
このモードを虚振動(n_imag。JSON の欄は |
微小な負のモード |
−5.00 ≤ ν < 0 cm⁻¹ |
数値誤差による微小な負モードは n_imag に数えません。 |
熱化学計算での扱い |
反転・底上げなし |
虚振動数の反転や微小正振動数の底上げ(floor)は行いません。QRRHO は正の振動数のモードだけを使うので、虚振動モードは ZPE と G に入りません。 |
主な出力ファイル¶
実行が終わると、--out-dir に次のファイルができます。
result_freq/
├─ frequencies_cm-1.txt # 全振動数のリスト(cm⁻¹)
├─ mode_0001_-385.20cm-1_trj.xyz # 振動モードごとの変位アニメーション(XYZ)
├─ mode_0001_-385.20cm-1.pdb # PDB 形式の変位アニメーション(PDB・mmCIF 入力のとき)
├─ mode_0001_-385.20cm-1.cif # mmCIF 形式の変位アニメーション(mmCIF 入力または大きな PDB 入力のとき)
├─ thermoanalysis.yaml # 詳細熱化学ログ(--dump 指定時)
└─ result.json # 結果の要約(--out-json)
極小か TS か: 端末の熱化学の要約の
Number of Imaginary Freq = Nの行に n_imag が出ます。freqはこの値を判定しないので、result.jsonのscientific_statusは n_imag によらずsuccessです。TS 最適化が成功すると、反応モードの虚振動が 1 つ出ます。frequencies_cm-1.txtの先頭に明確な負の値が1 つだけあり、2 番目以降が正の値か許容誤差内であれば TS で、次はircに進みます。極小のはずの構造に虚振動が出たらoptの--flattenで最適化し直し、TS に虚振動が無いか 2 つ以上あるときは TS が取れないとき を見てください。可視化: 生成された
mode_*_trj.xyzや.pdbを PyMOL や VMD、OVITO などの分子ビューアで開くと、原子が振動するアニメーションを確認できます。
主な CLI オプション¶
オプション |
引数の型 |
デフォルト |
説明 |
|---|---|---|---|
|
パス |
(必須) |
入力構造ファイル( |
|
整数 |
|
系全体の総電荷。 |
|
整数 |
|
スピン多重度(2S+1) |
|
文字列 |
|
リガンドの総電荷(例: |
|
パス |
|
|
|
パス |
|
出力先ディレクトリ |
|
文字列 |
|
計算バックエンド( |
|
|
|
Hessian の計算法(有限差分 / 解析的) |
|
パス |
|
Hessian を計算せず、 |
|
パス |
|
Hessian を |
|
フラグ |
|
クラスター境界のキャップ水素の親原子を自動固定 |
|
文字列 |
|
固定する原子インデックス(1 始まり、カンマ区切り: 例 |
|
整数 |
|
アニメーション出力する振動モードの最大数 |
|
|
|
モードの並び順(値順 / 絶対値順) |
|
浮動小数点数 |
|
熱化学計算の温度(K) |
|
浮動小数点数 |
|
熱化学計算の圧力(atm) |
|
フラグ |
|
詳細熱化学ファイル( |
|
フラグ |
|
結果要約を |
全オプションは 自動生成のオプションの一覧(英語のみ) を参照してください。
使用上の注意点¶
tsoptとの使い分け:tsoptも最後に虚振動の数を確かめます。freqを単独で実行するのは、詳しい熱化学量やモードのアニメーションが要るときです。動ける原子が必要: すべての原子を固定すると解析する振動が無くなり、エラーで止まります。
解析的 Hessian と
--uma-workers: UMA で--uma-workersを 2 以上にすると、--hessian-calc-mode Analyticalは使えずエラーで停止します。解析的 Hessian には--uma-workers 1を指定してください。GPU メモリを多く使うので、先に対象の系で試してください。all --thermoの熱化学ファイル:allはthermoanalysis.yamlから熱化学量を読むので、--thermoで実行すると--no-dumpを指定してもこのファイルを書き出します。--read-hess・--dump-hessのファイル:numpy.saveで書いた配列 1 つで、中身は質量重み付けなしの Cartesian の Hessian(Hartree/bohr²)です。原子は入力の順で、全原子の 3N×3N か、固定原子があるときは動ける原子の分だけを持ちます。--read-hessは行列の大きさ・有限性・対称性しか確かめないので、同じ構造・電荷・多重度・計算設定で求めた Hessian を渡してください。
関連ドキュメント¶
opt — 極小点への構造最適化
tsopt — 遷移状態(TS)の構造最適化
irc — 遷移状態からの固有反応座標(IRC)追跡
dft — 構造に対する高精度な DFT 一点エネルギー計算
all — 抽出・経路探索・TS最適化・振動解析の一気通貫ワークフロー
YAML 設定の一覧 — 設定ファイルの記法
トラブルシューティング — 異常終了時の原因切り分けと対処法
終了コード — 終了コードの意味