JSON 出力リファレンス¶
mlmm は、AI エージェント・スクリプト・下流ツールがプログラムから利用するための機械可読 JSON 出力を提供します。
--out-json フラグ¶
主要な MLIP 系・レポート系サブコマンド(opt, sp, tsopt, freq,
irc, scan, scan2d, scan3d, path-opt, dft, extract, trj2fig,
energy-diagram)が --out-json / --no-out-json(デフォルト: off)に
対応しています。有効にすると、正規の result.json と、同一内容の互換ミラー
summary.json が通常の出力と同じ場所に生成されます。
mlmm opt -i r_complex_layered.pdb --parm real.parm7 -q 0 -m 1 \
--max-cycles 5 --out-json --out-dir result_opt
cat result_opt/result.json | python -m json.tool
all / path-search は、集約結果を書き込む段階まで到達すると、--out-json なしで summary.json を出力します。早期の CLI 引数または入力の検証で失敗した場合は、ファイルが作られないことがあります。
summary.json ミラー¶
write_result_json は両方の名前に同じバイト列を準備し、互換ミラー
summary.json を先に、正規の result.json を最後に公開します。
正常終了時は両ファイルのバイト列が同一です。公開が中断された場合は
result.json を正規とし、処理と書き込みが正常終了したことを確認してください。
実行管理側が run_id を割り当てた場合は、その一致も検証します。
共通エンベロープ¶
共通の書き込み処理と集約結果の生成側が供給するフィールドを示します。 任意と記したフィールドは、生成側が対応するデータを渡した場合にだけ含まれます。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
エンベロープのスキーマバージョン。現在値は |
|
string |
leaf envelope はサブコマンド名(例: |
|
string |
パッケージバージョン(leaf は |
|
string |
コマンド固有。 |
|
float |
任意の実行時間(秒)。shared writer に時間を渡さない producer では省略。 |
|
object |
ハードウェア情報(下表参照) |
|
string |
任意。MCP などの orchestrator が現在の呼び出し identity を割り当てた場合に含まれる。矛盾する caller 値は拒否される。 |
MLIP/ML/MM calculator stageでは、さらに以下を記録します:
フィールド |
型 |
説明 |
|---|---|---|
|
string | null |
backend識別子( |
|
string | null |
正確なmodel/checkpoint。 |
|
string | null |
実効精度( |
|
string | null |
MM energy/Hessian backend( |
|
string | null |
link atom配置( |
|
bool | null |
CMAP項を有効にしたか。plot-onlyではnull |
実行結果と科学的妥当性¶
複数段階のワークフローと scan の出力処理は、構成要素を評価できる場合に以下のフィールドを追加します。出力されるフィールドはコマンドによって異なり、各コマンド固有の status も互換性のため維持されます。科学的に利用できるかを判断する際は、scientific_status と各 outcome を確認してください。収束を確認できない個別結果は安全側に倒して扱われ、usable にはなりません。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
通常は |
|
string |
|
|
string[] |
利用できない、または欠落した個別結果の理由。正常終了時は省略されます。集約ワークフローの従来の |
|
string[] |
集約結果の欠落を検出するための、期待された項目と観測された項目の ID。 |
|
object[] |
|
|
object[] |
|
run_id が存在する場合は、現在の呼び出しを識別します。all の集約結果では
current_output_paths と key_output_files をその呼び出しの manifest から
再構築するため、再利用した出力ディレクトリに残る既存ファイルは除外されます。
エラーエンベロープ(status == "error" のとき)¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
元の例外の |
|
string |
例外クラス名(例: |
|
list[string] |
完全な MRO クラス名(例: |
|
string |
例外クラスが定義されたモジュール |
|
string |
高レベルの CLI ステージラベル(例: |
environment:
フィールド |
型 |
例 |
|---|---|---|
|
string |
|
|
string |
|
|
float |
|
|
string |
|
|
string |
|
|
int |
|
|
float |
|
オプティマイザは "status": "stalled" を返すこともあります。これは、設定した force/step の収束基準を満たさないまま、設定ウィンドウにわたってエネルギーが減少しなくなった状態(エネルギープラトー)です。stalled は converged とは別の非収束アウトカムであり、converged として報告されることは決してありません。停滞した最適化を繰り返さないよう、以降の flatten/再試行も停止します。存在する場合は stop_reason にエネルギー範囲・ウィンドウ・満たせなかった基準が記録されます。stalled は(例えば摂動した構造やより厳しいステップ制御で)再試行し得るものであり、max_cycles 枯渇や一般的な失敗のエイリアスではありません。microiteration では、macro ステップの stall と直近の micro(MM)緩和の stall はいずれも真実に報告され、macro 収束として偽装されることはありません。
サブコマンド別スキーマ¶
sp¶
フィールド |
型 |
説明 |
|---|---|---|
|
string / string |
|
|
string |
入力構造path |
|
string |
全系Amber topology path |
|
int / int |
model領域の電荷とspin多重度 |
|
float |
ONIOM一点energy (Hartree) |
|
string |
|
|
string | null |
|
|
string |
人間可読の経過時間 |
opt¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
string |
非収束停止(stalled/stopped)時のみ出力。エネルギープラトーの範囲・ウィンドウと満たせなかった基準を記録 |
|
float |
最終 ONIOM エネルギー (Hartree) |
|
int |
最適化サイクル数 |
|
string |
|
|
int |
モデル領域電荷 |
|
int |
モデル領域スピン多重度 |
|
int |
全原子数(全レイヤー) |
|
int |
凍結原子数 |
|
string |
収束閾値プリセット名 |
|
int |
最大サイクル数 |
|
string |
入力ファイル名 |
|
float |
最終 max gradient (Hartree/Bohr) |
|
float |
最終 RMS gradient |
|
float |
最終 max 変位 (Bohr) |
|
float |
最終 RMS 変位 |
|
object |
収束閾値の数値 |
|
object|null |
|
|
object |
出力ファイルマップ |
tsopt¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
後方互換の数値 outcome。数値収束と鞍点次数は |
|
string |
数値 optimizer の結果: |
|
string |
終端 exact PHVA による |
|
bool |
|
|
string |
|
|
int|null |
downstream IRC に使う負の exact-PHVA root。root 0 fallback は明示され、反応 identity を保証しない |
|
float|null |
選択した負 root の振動数 |
|
string|null |
参照方向整合または明示 fallback による root 選択元 |
|
float |
TS エネルギー (Hartree) |
|
int|null |
虚振動数。PHVA を実行しなかった場合は |
|
float[]|null |
虚振動数 (cm$^{-1}$, 負の値)。PHVA 未実行時は |
|
string |
|
|
int |
全原子数 |
|
int |
最適化サイクル数 |
|
int / int |
model 領域の電荷/多重度 |
|
object |
Dimer/flatten/最終鞍点解析の凍結境界 TR provenance |
|
string|null |
|
|
object |
Hessian family の trial 拒否/recovery、exact saddle、target-mode 診断 |
|
object |
最終構造 + vib モードファイル |
終端exact PHVAは数値収束後だけ実行します。非収束またはstalledなら終端構造を
保持してPHVAをskipします。PHVA失敗時は構造を破棄したり振動数を捏造したりせず、hessian_status: "failed"
と理由を記録します。数値 status と鞍点次数は独立で、数値収束済み高次停留点は
optimization_status: "converged"、saddle_validation: "higher_order" のまま
保持され、一次 TS 認定にはなりません。all は有効な負 root がある場合だけ警告付き
診断 IRC に進むことがあります。数値非収束、虚振動 0 本、PHVA 失敗/skip、または
有効な負 root なしでは、TS 成果物登録後に IRC 前で停止します。明示的な
--skip-final-freq は最終構造を保持し、n_imaginary_modes: null、
imaginary_frequencies_cm: [] を記録します。
freq¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
全基準振動数 |
|
int |
虚振動数 |
|
float[] |
全振動数 (cm$^{-1}$) |
|
float[] |
負の振動数のみ |
|
object|null |
熱化学データ |
|
int / int |
model 領域の電荷/多重度 |
|
int |
原子数 |
|
int |
凍結原子数 |
|
object |
振動解析と熱化学で使った凍結境界 TR provenance |
|
object |
出力map。 |
thermochemistry (thermoanalysis 利用不可時は null):
temperature_K, pressure_atm, point_group, point_group_source, symmetry_number, symmetry_number_source, electronic_energy_ha(報告される E + G_corr = G の E), 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。point_group_source は auto または保守的なフォールバックを示す auto-fallback、symmetry_number_source はこれらに加えて YAML 上書きの config / override を取ります。
irc¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
IRC フレーム数 |
|
float |
連結経路の最初の端点。単独 IRC は反応物/生成物の化学的な同一性を割り当てない |
|
float |
TS エネルギー |
|
float |
連結経路の最後の端点。単独 IRC は反応物/生成物の化学的な同一性を割り当てない |
|
string |
|
|
float |
最初/最後の端点を表す互換エイリアス。キー名から反応物/生成物の同一性を推定しない |
|
bool|null |
各方向の収束フラグ |
|
bool |
任意指定の物理的端点停止回避モードを有効にしたか |
|
int |
実際に回避したenergy上昇・1 step energy変化量停止event数 |
|
object |
初期/更新 Hessian の凍結境界 TR provenance |
|
bool |
ファイルから初期化した Hessian の model charge・多重度を identity 検証できたか |
|
object |
最初→最後の方向の |
|
string |
結合変化がある場合は |
|
object |
軌跡と端点ファイル(XYZと、利用可能なPDB/CIF companion) |
rigid_projection provenance: 選択した処理は treatment、有効 rank は
effective_rank として、アクティブ/凍結原子数・インデックス、および各 workflow が
使った Hessian source/shape とともに記録します。処理は常に constrained で、
古い非constrained設定は明示的に拒否されます。freq --dump は同じ object を
thermoanalysis.yaml にも書き出します。最後の 2 値のキー名は生成 workflow により
hessian_source / hessian_shape または source / raw_hessian_shape です。
scan / scan2d / scan3d¶
scan は stages[] 配列にステージごとのデータと n_stages を含みます。各 stage には(追加フィールド)optimizer_status(converged/not_converged/stalled)と、そのステージの最後の optimizer が非収束停止した場合の stop_reason を含みます。scan2d/scan3d は n_grid_points と pair1/pair2(/pair3)(各 {i, j, low, high})に加えて、表面の最小エネルギー min_energy_hartree を含みます。fresh run は事前最適化行を除く試行数 n_points_attempted と、明示的に収束し有限値・構造 artifact を持つ n_points_usable、共通 calculator provenance、charge・spinを記録します。plot-only の scan3d --csv は n_points_attempted を出力せず、収束・artifact provenance が完全な CSV の場合だけ n_points_usable を出力します。また import した energy grid から calculator を特定できないため、mlip_backend、mlip_model、mlip_precision、mm_backend、link_atom_method、use_cmap、charge、spin は null です。
path-opt¶
フィールド |
型 |
説明 |
|---|---|---|
|
bool |
収束判定 |
|
string |
|
|
float[] |
全イメージエネルギー |
|
int |
イメージ数 |
|
int |
最高エネルギーイメージの index |
|
float |
前方障壁 (kcal/mol) |
|
float |
反応エネルギー (kcal/mol) |
|
object |
軌跡と HEI のファイル map |
dft¶
フィールド |
型 |
説明 |
|---|---|---|
|
bool |
SCF 収束? |
|
string |
|
|
float |
DFT エネルギー |
|
string |
汎関数 |
|
string |
基底関数 |
|
bool |
GPU 使用? |
|
int |
QM 領域の原子数 |
|
int |
YAML/CLI 解決後の DFT grid level |
|
float |
YAML/CLI 解決後の SCF 収束閾値 |
|
int |
YAML/CLI 解決後の SCF 最大反復数 |
|
string |
実際に使用した runtime engine label |
|
object |
|
|
object |
|
trj2fig¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
軌跡のフレーム数。 |
|
float |
フレームエネルギーの最小値と最大値。 |
|
string |
|
|
string | null |
再計算で確定した来歴。コメントモードではすべて null。 |
|
int | null |
再計算で解決された電荷とスピン多重度。コメントモードでは null。再計算時に省略した値は 0 と 1。 |
|
string[] |
すべての出力パスを順序どおりに保持する正規フィールド。別ディレクトリに同名ファイルがあっても保持される。 |
|
object |
後方互換用のベース名からパスへの対応表。同じベース名が重複すると一方だけが残る。 |
-q/--charge または -m/--multiplicity のいずれかを指定すると、選択した MLIP で全フレームを再計算します。これは MLIP による各フレームの直接再評価であり、トポロジーやモデル領域の入力を受け取らず、ONIOM エネルギーは計算しません。
extract¶
フィールド |
型 |
説明 |
|---|---|---|
|
int |
抽出後の原子数 |
|
float |
合計電荷 |
|
float |
タンパク質電荷 |
|
float |
リガンド電荷合計 |
|
object |
|
|
string |
基質指定(生の |
|
float |
抽出半径 (Å) |
|
string |
|
|
float |
イオン電荷合計 |
|
string[] |
入力 PDB パス |
|
int |
抽出前の生入力の原子数 |
|
int |
切断結合に付加されたリンク H 原子数 |
|
object |
出力ファイル名のマップ(入力ごとのポケット PDB 等) |
|
bool |
実行時の |
|
bool |
実行時の |
|
string |
生の |
|
array |
イオン残基の |
energy-diagram¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
エネルギーデータ点の数 |
|
object |
出力ダイアグラムのファイル名からパスへの対応表 |
summary.json (path-search / all)¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
string / string |
実行の完了度と科学的な利用可能性。従来の |
|
string[] |
不完全または利用できない科学的結果の理由。正常終了時は省略されます。 |
|
string[] |
期待された集約項目と観測された集約項目。 |
|
int |
セグメント数 |
|
object[] |
セグメントごとの障壁、反応エネルギー、結合変化 |
|
object[] |
エネルギーダイアグラム |
|
string |
バックエンド名( |
|
string | null |
バックエンドと分離して記録するモデル/checkpoint名 |
|
string | null |
実効 |
|
int |
モデル領域の電荷 |
|
int |
モデル領域のスピン多重度 |
|
object |
ハードウェア情報 |
|
object[] |
解決済みworkflowで実際に使った手法の |
all はさらに以下を含みます。
フィールド |
型 |
説明 |
|---|---|---|
|
int |
bridge 以外の反応セグメント数。 |
|
object |
互換性のため維持するキー。各段階の始状態を基準にした局所障壁が最大のセグメントと method。microkinetics に基づく律速段階の判定ではない。 |
|
float |
全体の反応エネルギー。 |
|
list |
セグメントごとの TS/IRC/freq/DFT 結果。 |
|
object |
子 freq が報告した状態別の点群・回転対称 provenance。MEP 実行では R/TS/P、TS-only 実行では E1/TS/E2 を対象とし、有効な対称数 provenance を持つ状態だけを含む。欠けた状態は省略し、どの状態にも有効な provenance が無い場合だけフィールド全体を省略する。 |
|
object |
現在の呼び出しの出力索引。ルートファイルはファイル名 → 説明、各 |
|
string[] |
|
使用例¶
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 # 自由エネルギー