JSON 出力リファレンス¶
mlmm は AI エージェント、スクリプト、下流ツールからの利用に向けた機械可読 JSON 出力を提供します。
--out-json フラグ¶
MLIP を使用するすべてのサブコマンドが --out-json / --no-out-json(デフォルト: off)に対応しています。
有効にすると、出力ディレクトリに result.json が生成されます。
mlmm opt -i r_complex_layered.pdb --max-cycles 5 --out-json --out-dir result_opt
cat result_opt/result.json | python -m json.tool
all / path-search は常に summary.json を出力します(--out-json 不要)。
共通エンベロープ¶
すべての result.json に自動付与されるフィールド:
フィールド |
型 |
説明 |
|---|---|---|
|
string |
サブコマンド名(例: |
|
string |
パッケージバージョン |
|
float |
実行時間(秒) |
|
object |
ハードウェア情報(下表参照) |
environment:
フィールド |
型 |
例 |
|---|---|---|
|
string |
|
|
string |
|
|
float |
|
|
string |
|
|
string |
|
|
int |
|
|
float |
|
サブコマンド別スキーマ¶
opt¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
float |
最終 ONIOM エネルギー (Hartree) |
|
int |
最適化サイクル数 |
|
string |
|
|
string |
ML バックエンド |
|
int |
モデル領域電荷 |
|
int |
モデル領域スピン多重度 |
|
int |
全原子数(全レイヤー) |
|
int |
凍結原子数 |
|
string |
収束閾値プリセット名 |
|
int |
最大サイクル数 |
|
string |
入力ファイル名 |
|
float |
最終 max gradient (Hartree/Bohr) |
|
float |
最終 RMS gradient |
|
float |
最終 max 変位 (Bohr) |
|
float |
最終 RMS 変位 |
|
object |
収束閾値の数値 |
|
object |
出力ファイルマップ |
tsopt¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
float |
TS エネルギー (Hartree) |
|
int |
虚振動数 |
|
float[] |
虚振動数 (cm$^{-1}$, 負の値) |
|
string |
|
|
int |
全原子数 |
|
int |
最適化サイクル数 |
|
string |
ML バックエンド |
|
object |
最終構造 + vib モードファイル |
freq¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
全基準振動数 |
|
int |
虚振動数 |
|
float[] |
全振動数 (cm$^{-1}$) |
|
float[] |
負の振動数のみ |
|
object|null |
熱化学データ |
|
string |
ML バックエンド |
|
int |
原子数 |
|
object |
|
thermochemistry (thermoanalysis 利用不可時は null):
temperature_K, pressure_atm, zpe_ha, thermal_correction_energy_ha, thermal_correction_enthalpy_ha, thermal_correction_free_energy_ha, sum_EE_and_ZPE_ha, sum_EE_and_thermal_energy_ha, sum_EE_and_thermal_free_energy_ha, E_thermal_cal_per_mol, Cv_cal_per_mol_K, S_cal_per_mol_K
irc¶
フィールド |
型 |
説明 |
|---|---|---|
|
int |
IRC フレーム数 |
|
float |
反応物エネルギー |
|
float |
TS エネルギー |
|
float |
生成物エネルギー |
|
bool |
IRC 収束判定 |
|
string |
ML バックエンド |
|
object |
|
scan / scan2d / scan3d¶
scan は stages[] 配列にステージごとのデータ、scan2d/scan3d は pair1/pair2(/pair3) と grid_shape を含みます。すべて backend, charge, spin, min_energy_hartree を持ちます。
path-opt¶
フィールド |
型 |
説明 |
|---|---|---|
|
bool |
収束判定 |
|
string |
|
|
float[] |
全イメージエネルギー |
|
float |
前方障壁 (kcal/mol) |
|
float |
反応エネルギー (kcal/mol) |
|
string |
ML バックエンド |
dft¶
フィールド |
型 |
説明 |
|---|---|---|
|
bool |
SCF 収束? |
|
float |
DFT エネルギー |
|
string |
汎関数 |
|
string |
基底関数 |
|
bool |
GPU 使用? |
|
string |
ONIOM 高レベル領域の ML バックエンド |
|
object |
|
extract¶
フィールド |
型 |
説明 |
|---|---|---|
|
int |
抽出後の原子数 |
|
float |
合計電荷 |
|
float |
タンパク質電荷 |
|
float |
リガンド電荷合計 |
|
object |
|
|
string |
中心残基 |
|
float |
抽出半径 (angstrom) |
summary.json (path-search / all)¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
object[] |
セグメントごとの障壁、反応エネルギー、結合変化 |
|
object[] |
エネルギーダイアグラム |
|
string |
モデル名 |
|
object |
ハードウェア情報 |
all はさらに rate_limiting_step, overall_reaction_energy_kcal, post_segments を含みます。
使用例¶
Python¶
import json
with open("result_opt/result.json") as f:
result = json.load(f)
if result["status"] == "converged":
print(f"Energy: {result['energy_hartree']:.6f} Hartree")
else:
print(f"Not converged after {result['n_opt_cycles']} cycles")
jq¶
jq '.status' result.json # 収束確認
jq '.barrier_kcal' result.json # 障壁エネルギー
jq '.imaginary_frequencies_cm' result.json # 虚振動数
jq '.thermochemistry.sum_EE_and_thermal_free_energy_ha' result.json # 自由エネルギー