JSON 出力リファレンス¶
pdb2reaction は、AI エージェント・スクリプト・下流ツールがプログラムから扱える機械可読の JSON 出力を提供します。
--out-json フラグ¶
MLIP を使用する主なサブコマンドとレポート系サブコマンド(opt、sp、
tsopt、freq、irc、scan 系、path-opt、dft、extract、
trj2fig、energy-diagram)は --out-json / --no-out-json(デフォルト:
off)に対応しています。有効にすると、正規の result.json と、同一内容の
互換ミラー summary.json が通常の出力と同じ場所に生成されます。
pdb2reaction opt -i r.pdb -q -1 --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 を最後にアトミックに公開
します。正常終了時は両ファイルのバイト列が同一です。I/O エラーによって公開が
中断された場合、書き込み処理はミラーの不一致を隠さず例外を送出します。
MCP の利用側は、割り当てられている場合には現在の run_id も検証してください。
共通エンベロープ¶
共通の書き込み処理が供給するフィールドを示します。「任意」と明記した行は、 生成側が対応するデータを渡した場合にだけ存在します。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
エンベロープのスキーマバージョン。現在値は |
|
string |
leaf envelope はサブコマンド名(例: |
|
string |
パッケージバージョン |
|
string |
commandごとに異なります(下記参照)。 |
|
string |
任意。現在の MCP 呼び出し UUID。プロダクト固有の実行環境が有効な場合のみ注入され、producer 側の値と衝突する場合は拒否されます。 |
|
float |
任意の実行時間(秒)。shared writerへ時間を渡さないproducerでは省略 |
|
object |
ハードウェア情報(下表参照) |
|
string | null |
任意のMLIP backend識別子。plot-only commandがcalculatorを評価していない場合はnull |
|
string | null |
任意。backendと分離した正確なmodel/checkpoint名 |
|
string | null |
任意。正確な識別子から導出した論文表記用のmodel名 |
|
string | null |
任意。multi-domain modelで使用したbackend task。正確な識別子は |
|
string | null |
実効精度の共通token( |
各leaf schemaのbackend / modelも維持されますが、command横断の処理では
mlip_backend / mlip_model / mlip_precisionを使用してください。
実行結果と科学的妥当性¶
複数段階のワークフローと scan の出力処理は、構成要素を評価できる場合に以下のフィールドを追加します。出力されるフィールドはコマンドによって異なり、各コマンド固有の status も互換性のため維持されます。結果を利用できるか判断する際は、scientific_status と各 outcome を確認してください。収束を確認できない個別結果は安全側に倒して扱われ、usable にはなりません。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
通常は |
|
string |
|
|
string[] |
利用できない、または欠落した個別結果の理由。正常終了時は省略されます。集約ワークフローの従来の |
|
string[] |
集約結果の欠落を検出するための、期待された項目と観測された項目の ID。 |
|
object[] |
|
|
object[] |
|
run_id が存在する場合は、現在の呼び出しを識別します。all の集約
summary.json では、current_output_paths と key_output_files も、その
呼び出しが記録した成果物だけを示します。再利用した出力ディレクトリに残る
既存ファイルは現在の結果に含まれません。
Rigid projection provenance¶
freq、irc、tsoptのresultはrigid_projection objectを含み、optでは--flatten実行時に含みます。freq --dumpは同じobjectをthermoanalysis.yamlにも書きます。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
固定の剛体モード処理: |
|
string |
射影kernelの識別子 |
|
int |
active Hessian から除去した剛体方向の数 |
|
int |
凍結anchor拘束前の全系剛体basisのrank |
|
int |
凍結anchor拘束によって除かれたrank |
|
float |
rank 判定に用いる相対 SVD 許容値 |
|
int |
active/frozen原子数 |
|
int[] |
射影kernelが使用した0始まり原子index |
|
string |
入力 Hessian 空間: |
|
string |
Hessian provenance。 |
|
int[2] |
入力 Hessian shape。 |
constrainedは凍結anchorを動かさない全系剛体運動だけを除去します。詳細は凍結原子を参照してください。
environment:
フィールド |
型 |
例 |
|---|---|---|
|
string |
|
|
string |
|
|
float |
|
|
string |
|
|
string |
|
|
int |
|
|
float |
|
エラーエンベロープ(status == "error" のとき)¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
元の例外の |
|
string |
例外クラス名 |
|
list[string] |
MRO 全体のクラス名。エージェントがテキストを解析せずに階層を照合できます |
|
string |
例外クラスが定義されたモジュール |
|
string |
高レベルの CLI ステージラベル |
エラー処理¶
捕捉された実行時例外では、"status": "error" と "error_type" を含む
result.json を可能な範囲で書き出します。使用法・入力検証による終了や出力先の
確定前に失敗した場合は JSON が作られないことがあるため、0 以外の終了コードや
期待した JSON の欠落も失敗のシグナルです。標準エラー出力またはジョブログを確認してください。
制御された非収束結果の writer まで到達した job は、"status": "not_converged" の result.json を書きます。optimizer family は該当する最終 force/step または cycle field を含みますが、DFT と Dimer は所有しない field を出力しません。再試行の判断前に command-specific schema を確認してください。
オプティマイザは "status": "stalled" を返すこともあります。これは、設定した force/step の収束基準を満たさないまま、設定ウィンドウにわたってエネルギーが減少しなくなった状態(エネルギープラトー)です。stalled は converged とは別の非収束アウトカムであり、converged として報告されることは決してありません。tsopt では、停滞した探索を繰り返さないよう flatten/再試行ループも停止します。opt --flatten の flatten ループは停止しません — このループは残った虚振動方向へ変位してプラトーから脱出するためのものだからです。存在する場合は stop_reason にエネルギー範囲・ウィンドウ・満たせなかった基準が記録されます。stalled は(例えば摂動した構造やより厳しいステップ制御で)再試行し得るものであり、max_cycles 枯渇や一般的な失敗のエイリアスではありません。
サブコマンド別スキーマ¶
sp¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
string |
|
|
string |
準備後の公開入力path |
|
string / string | null |
local MLIP provenance(共通の |
|
string | null |
|
|
int / int |
総電荷とspin多重度 |
|
int |
原子数 |
|
float |
一点energy (Hartree) |
|
string |
|
|
string | null |
|
|
string |
人間可読の経過時間 |
opt¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
string |
非収束停止(stalled/stopped)時のみ出力。エネルギープラトーの範囲・ウィンドウと満たせなかった基準を記録 |
|
float |
最終エネルギー (Hartree) |
|
int |
最適化サイクル数 |
|
string |
|
|
string |
MLIP バックエンド ( |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
string |
MLIP モデル名 |
|
int |
原子数 |
|
int |
凍結原子数 |
|
string |
暗黙溶媒 or |
|
string |
収束閾値プリセット名 |
|
int |
最大サイクル数 |
|
string |
入力ファイル名 |
|
float |
最終 max gradient (Hartree/Bohr) |
|
float |
最終 RMS gradient |
|
float |
最終 max 変位 (Bohr) |
|
float |
最終 RMS 変位 |
|
object |
|
|
object |
出力ファイルマップ |
|
object |
任意。 |
tsopt¶
opt と同じフィールドに加え:
フィールド |
型 |
説明 |
|---|---|---|
|
string |
数値optimizerの結果: |
|
string |
終端exact PHVAによる |
|
string |
|
|
int|null |
downstream IRCに使う負のexact-PHVA root。root 0 fallbackは明示され、反応identityを保証しない |
|
int|null |
虚振動の数。PHVA を実行しなかった場合は |
|
float[]|null |
虚振動数 (cm⁻¹, 負の値)。PHVA 未実行時は |
|
string |
|
|
string|null |
|
|
object |
exact saddle check、最終目的modeのindex/overlap、停止理由、および明示的に有効化した場合のmode-loss/recovery診断。これらの回復経路はデフォルト無効 |
|
object |
剛体モードとexact Hessian のprovenance。projection provenanceを参照 |
files には imaginary_mode_files(vib ファイルリスト)を含む場合があります。
終端PHVAは数値収束後だけ実行します。非収束またはstalledなら終端構造を保持して
PHVAをskipします。PHVA計算が失敗した場合は構造を破棄したり振動数を捏造したりせず、
hessian_status: "failed" と理由を記録します。status / optimization_status
は数値最適化、saddle_validation はexact PHVAの鞍点次数を表します。数値収束
済み高次停留点はoptimization_status: "converged"かつ
saddle_validation: "higher_order"であり、一次TS認定ではありません。allは
有効な負rootがあれば警告付き診断IRCへ進むことがあります。数値非収束、虚振動
0本、PHVA未実施/失敗、または有効な負rootなしでは、TS成果物登録後にIRC前で
停止します。Dimerも同じ追加fieldを出力しますが、Hessian familyのcycleごとの
force/step収束詳細とsafeguardsは省略します。
freq¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
基準振動モードの総数 |
|
int |
虚モード数 |
|
float[] |
全振動数 (cm⁻¹) |
|
float[] |
負の振動数のみ |
|
object|null |
熱化学データ(下表参照) |
|
string |
MLIP バックエンド |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
string |
MLIP モデル名 |
|
int |
原子数 |
|
int |
凍結原子数 |
|
string |
暗黙溶媒 or |
|
float |
温度 (K) |
|
float |
圧力 (atm) |
|
string |
入力ファイル名 |
|
object |
|
|
object |
剛体モードと Hessian provenance。 |
thermochemistry (thermoanalysis 利用不可時は null):
フィールド |
型 |
単位 |
|---|---|---|
|
string |
自動判定した分子点群 |
|
string |
|
|
int |
外部回転対称数 |
|
string |
|
|
float |
Hartree |
|
float |
Hartree |
|
float |
Hartree |
|
float |
Hartree |
|
float |
Hartree |
|
float |
Hartree |
|
float |
Hartree |
|
float |
Hartree |
|
float |
Hartree |
|
float |
cal/mol |
|
float |
cal/(mol K) |
|
float |
cal/(mol K) |
irc¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
前方 IRC フレーム数 |
|
int |
後方 IRC フレーム数 |
|
int |
全フレーム数 |
|
float |
stitched path の最初の端点エネルギー。standalone IRC は化学的identityを割り当てない |
|
float |
TS エネルギー |
|
float |
stitched path の最後の端点エネルギー。standalone IRC は化学的identityを割り当てない |
|
string |
|
|
float |
first / last の旧alias。key名から化学的R/P identityを推定しないこと |
|
bool | null |
前方 IRC 収束? インテグレータがフラグを公開しない場合は |
|
bool | null |
後方 IRC 収束? インテグレータがフラグを公開しない場合は |
|
bool | null |
前方の最終stepで |
|
bool | null |
後方の最終stepで |
|
string |
MLIP バックエンド |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
string |
MLIP モデル名 |
|
bool |
opt-inの物理的端点停止bypass modeを有効にしたか |
|
int |
実際にbypassしたenergy上昇/1 step energy変化量停止event数 |
|
int |
凍結原子数 |
|
string |
暗黙溶媒 or |
|
object |
first→last 方向の |
|
string |
|
|
float |
IRC ステップ長 (Bohr) |
|
int |
最大 IRC ステップ数 |
|
string |
入力ファイル名 |
|
object |
軌跡ファイル(XYZと、利用可能なPDB/CIF companion) |
|
object |
剛体モードと初期 Hessian のprovenance。projection provenanceを参照 |
scan¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
string |
MLIPバックエンド |
|
string |
MLIPモデル名 |
|
string |
暗黙溶媒または |
|
bool |
事前最適化を実行したか |
|
float |
1 ステップ当たりの最大結合長変位 (Å) |
|
int |
スキャンステージ数 |
|
object[] |
ステージごとのデータ(下記参照) |
|
object |
出力ファイル |
stages[]:
フィールド |
型 |
説明 |
|---|---|---|
|
int |
1-based ステージインデックス |
|
int |
ステップ数 |
|
bool |
拘束最適化の収束? |
|
list |
原子ペア (1-based) |
|
list |
初期距離 |
|
list |
目標距離 |
|
float |
最終エネルギー |
|
float[] |
ステップごとのエネルギー |
|
object |
|
scan2d / scan3d¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int | null |
系の電荷。plot-onlyの |
|
int | null |
スピン多重度。plot-onlyの |
|
string | null |
MLIPバックエンド。plot-onlyの |
|
string | null |
MLIPモデル名。plot-onlyの |
|
string | null |
暗黙溶媒または |
|
float |
1 ステップ当たりの最大結合長変位 (Å, |
|
int |
|
|
string |
実行レベルの完了状態 |
|
int |
fresh run の試行グリッド点数(事前最適化を除く) |
|
int |
科学計算上再利用可能な fresh-run 点数 |
|
object[] |
各点の収束・energy・artifact・eligibility |
|
int[] |
グリッド次元 ( |
|
object |
|
|
float |
表面最小エネルギー |
|
object |
CSV + プロットファイル |
outcome count は fresh scan で出力します。plot-only scan3d --csv は
試行数を出力せず、入力 CSV の provenance が不完全なら usable count も
省略する場合があります。
path-opt¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
bool |
収束判定 |
|
string |
|
|
string |
MLIP バックエンド |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
string |
MLIP モデル名 |
|
string |
暗黙溶媒 or |
|
bool |
端点pre-optimizationを有効にしたか |
|
float |
最初のimage energy (Hartree) |
|
float |
最後のimage energy (Hartree) |
|
float[] |
全イメージエネルギー |
|
int |
イメージ数 |
|
int |
最高エネルギーイメージのインデックス |
|
float |
HEI エネルギー |
|
float |
前方障壁 (kcal/mol) |
|
float |
反応エネルギー (kcal/mol) |
|
object |
軌跡 + HEI ファイル |
path-search¶
path-search は --out-json フラグを持ちません。summary writerまで到達すれば
共通エンベロープ(command, pdb2reaction_version, environment)を持つ
summary.json を書き出しますが、早期のCLI/input検証ではfileが作られない場合があります。
追加fieldは以下です:
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
再帰 MEP のセグメント数 |
|
object[] |
セグメントごとの |
|
object[] |
セグメントごとのラベル付きエネルギープロファイル (kcal/mol) |
|
string |
バックエンド名 |
|
string | null |
バックエンドと分離して記録するモデル名 |
|
string | null |
論文表記用のモデル名 |
|
string | null |
multi-domain modelのbackend task |
|
string | null |
実効 |
|
int |
系の電荷 |
|
int |
スピン多重度 |
all がさらに追加するフィールドは下の summary.json セクション を参照してください。
dft¶
注:
dftは SCF 収束・非収束の両方でresult.jsonとsummary.jsonを書きます。非収束時はstatus: "not_converged"、converged: falseを記録して exit code 3 で終了します。未処理 exception では標準 error envelope を書きます。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
bool |
SCF 収束? |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
int |
原子数 |
|
int |
DFT グリッドレベル |
|
float |
SCF 収束閾値 |
|
int |
最大 SCF サイクル数 |
|
string |
入力ファイル名 |
|
float |
DFT エネルギー |
|
float |
DFT エネルギー (kcal/mol) |
|
string |
汎関数 |
|
string |
基底関数 |
|
string |
実効エンジンラベル ( |
|
bool |
GPU 使用? |
|
bool |
|
|
object |
|
|
object |
|
|
object |
|
extract¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
選択残基に含まれるbackbone/truncation filter前の原子数(入力全体ではない) |
|
int |
truncation後に保持した原子数(cap-H追加前) |
|
float |
合計電荷 |
|
float |
タンパク質電荷 |
|
float |
リガンド電荷合計 |
|
float |
イオン電荷合計 |
|
list |
|
|
object |
|
|
int |
炭素原子側に残る切断結合へ追加されたキャップ水素数 |
|
bool |
バックボーンを除外したか |
|
bool |
結晶水を含めたか |
|
string または null |
ユーザー指定 |
|
string |
中心残基 |
|
float |
抽出半径 (angstrom) |
|
string[] |
入力 PDB / mmCIF パス |
|
object |
出力 PDB / クラスターファイル |
trj2fig¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
軌跡フレーム数 |
|
float |
フレーム中の最小エネルギー |
|
float |
フレーム中の最大エネルギー |
|
string |
|
|
string[] |
frame ごとの energy source provenance |
|
string |
保存 energy unit( |
|
string または null |
フレームを再計算した場合のみ MLIP backend。comment energy mode では null |
|
int または null |
再計算時の解決済み電子状態。それ以外は null |
|
string または null |
再計算 calculator の溶媒設定。それ以外は null |
|
string[] |
すべての出力パスを順序どおりに保持する正規フィールド。別ディレクトリに同名ファイルがあっても保持される |
|
object |
後方互換用のベース名からパスへの対応表。同じベース名が重複すると一方だけが残る |
energy-diagram¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
エネルギーデータ点数 |
|
object |
出力ダイアグラムファイル |
bond-summary¶
--json 有効時、bond-summary は JSON を標準出力に出力します(result.json ファイルは書き出しません。永続化したい場合は stdout をリダイレクトしてください)。上の MLIP 系サブコマンドが out_dir に result.json を書き出すのとは異なる挙動です:
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
object[] |
ペアごとの比較( |
summary.json (path-search / all)¶
all / path-search は、より構造化された summary.json を出力します:
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
string / string |
実行の完了度と科学的な利用可能性。従来の |
|
string[] |
不完全または利用できない科学的結果の理由。正常終了時は省略されます。 |
|
string[] |
期待された集約項目と観測された集約項目。 |
|
int |
セグメント数 |
|
object[] |
セグメントごとの |
|
object[] |
エネルギーダイアグラム(ラベル + kcal/mol) |
|
string |
バックエンド名 |
|
string | null |
バックエンドと分離して記録するモデル名 |
|
string | null |
論文表記用のモデル名 |
|
string | null |
multi-domain modelのbackend task |
|
string | null |
実効 |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
object |
ハードウェア情報 |
|
object[] |
解決済みworkflowで実際に使った手法の |
all はさらに以下を含みます:
フィールド |
型 |
説明 |
|---|---|---|
|
object |
互換性のため維持するキー。全 reactive segment を完全に覆う最高 method( |
|
float |
全体反応エネルギー |
|
string |
全体反応energyのmethod ( |
|
list |
セグメントごとの TS/IRC/freq/DFT 結果 |
|
object |
子 freq が報告した状態別の点群・回転対称 provenance。有効な対称数 provenance を持つ R/TS/P 状態だけを含み、欠けた状態は省略する。どの状態にも有効な provenance が無い場合だけフィールド全体を省略する。 |
|
string[] |
|
|
object |
現在の呼び出しの出力索引。ルートファイルはファイル名 → 説明、各 |
使用例¶
Python¶
import json
with open("result_opt/result.json") as f:
result = json.load(f)
status = result["status"]
if status == "error":
raise RuntimeError(f"{result['error_type']}: {result['error']}")
elif status == "converged":
print(f"Energy: {result['energy_hartree']:.6f} Hartree")
elif status in {"not_converged", "stalled"}:
print(f"Not converged after {result['n_opt_cycles']} cycles")
print(f"Max force: {result['final_max_force']:.6f}")
else:
print(f"Status: {status}")
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