sp(一点計算)¶
sp サブコマンドは、1 つの構造の ML/MM ONIOM エネルギーと原子に働く力を計算し、--hess を付けると動ける原子の Hessian も計算します。ML 領域は選んだバックエンドで、酵素の残りは --parm7 の Amber 力場で計算します。構造最適化は行わず、入力の構造のまま評価します。
主な用途¶
最適化の前の確認: ML 領域・電荷・多重度が受け付けられ、バックエンドが有限のエネルギーと力を返すかを確かめる
バックエンドの比較: 同じ構造と ML 領域を UMA・ORB・MACE・AIMNet2・DFT(
-b dft)で評価する参照値の作成: 力と Hessian を
.npyファイルとして、エネルギーを端末かresult.jsonから得て、自分の解析に使う
基本的な実行例¶
1. エネルギーと力¶
デフォルトのバックエンド(UMA)で、中性の一重項の ML 領域を評価します。enzyme.pdb は全系、real.parm7 はその Amber トポロジー、ml_region.pdb は ML 領域の原子です。-q と -m は ML 領域の電荷と多重度です。
mlmm sp -i enzyme.pdb --parm7 real.parm7 --model-pdb ml_region.pdb -q 0 -m 1 --out-json
端末に [sp] energy = … a.u. |force|_max = … a.u./bohr が出て、result_sp/ に forces.npy と、energy_au を持つ result.json があれば成功です。
2. Hessian も計算する¶
--hess を付けると、動ける原子の Hessian も計算します。
mlmm sp -i enzyme.pdb --parm7 real.parm7 --model-pdb ml_region.pdb -q 0 -m 1 --hess
処理の仕組みと計算仕様¶
ML/MM の系を組む:
-iから全系を、--parm7から Amber トポロジーを、--model-pdb・--model-indices・入力の B-factor のどれかから ML 領域を読みます。電荷は-q、または PDB/mmCIF 入力での-lから決まります。固定 MM 層と--freeze-atomsで指定した原子を固定します。エネルギーと力: 入力の構造で、ML 領域をバックエンドで、MM 原子を力場で 1 回ずつ計算し、ONIOM のエネルギーと力に組み合わせます。エネルギーと力の最大成分を端末に表示し、力を
forces.npyに保存します。固定原子に働く力は 0 です。Hessian(
--hess指定時): Hessian に入るのは ML 領域と可動 MM 原子で、固定原子は入りません。--hessian-calc-mode FiniteDifference(デフォルト)は力を数値微分し、Analyticalは ML 領域に UMA・ORB・MACE・AIMNet2 の解析 Hessian を使います。Analyticalは--uma-workers(MLIP の並列ワーカー数)を 2 以上にすると使えません。MM の部分はデフォルトで有限差分で、YAML のcalc.mm_fd: falseでhessian_ffの解析 Hessian になります。
主な出力ファイル¶
--out-dir に以下のファイルを書き出します。
ファイル |
内容 |
書き出す条件 |
|---|---|---|
|
全系の全原子についての ONIOM の力の |
常に |
|
質量重み付けなしの ONIOM Hessian(Hartree/bohr²)。Hessian に入る M 原子(入力の順)の |
|
|
エネルギー( |
|
|
|
|
主な CLI オプション¶
ML/MM の計算コマンドに共通のオプションは ML/MM の共通オプション に 1 か所でまとめてあります。下の表は sp に固有のものだけです。
オプション |
引数の型 |
デフォルト |
説明 |
|---|---|---|---|
|
パス |
(必須) |
全系の入力構造ファイル( |
|
整数 |
|
ML 領域の電荷。 |
|
整数 |
|
ML 領域のスピン多重度(2S+1) |
|
文字列 |
|
残基ごとの形式電荷(例: |
|
文字列 |
|
ML 領域のバックエンド( |
|
フラグ |
|
Hessian も計算して |
|
|
|
Hessian の計算法(有限差分 / 解析的)。 |
|
浮動小数点数 |
|
ML 領域からこの距離(Å)以内の可動 MM 原子だけを Hessian に入れる。デフォルトでは可動 MM 原子すべて |
|
文字列 |
|
固定する原子インデックス(1 始まり、カンマ区切り: 例 |
|
フラグ |
|
MM の点電荷による静電埋め込み(MLIP では xTB の補正、 |
|
パス |
|
出力先ディレクトリ |
|
フラグ |
|
|
全オプションは 自動生成のオプションの一覧(英語のみ) を参照してください。
補足: YAML(
--config)では、calcでバックエンドを設定し、geom.freeze_atoms(1 始まり)で固定原子を追加できます。geom.freeze_atomsは--freeze-atomsと合わせて使われます。
使用上の注意点¶
失敗したとき:
ML region electron count inconsistentのような 1 行のError: …か、トレースバック付きのUnhandled error during single-point:が出て、0 以外の終了コードで終わります。エネルギーがおかしいとき: 有限の値でもおかしいときは、ML 領域とその 電荷・多重度 を見直してください。
固定原子: インデックスは 1 始まりで、固定原子に働く力は 0 になります。固定 MM 層も固定されます。
原子電荷:
sp -b dftが出すのは ML(DFT)/MM のエネルギーと力だけです。ML 領域の Mulliken・meta-Löwdin・IAO の電荷が必要なときはdftを使ってください。終了コード: 終了コードを参照してください。
関連ドキュメント¶
opt — 構造最適化
tsopt — 遷移状態(TS)候補の構造最適化
freq — 振動解析と熱化学
dft — 原子電荷も出す ML 領域の DFT 一点計算
MLIP の TS を DFT で確かめる —
-b dftの設定(--func-basis・--dft-engine)と GPU メモリMLIP バックエンド — バックエンド・精度・ワーカーの選び方
トラブルシューティング — 実行に失敗したときの対処