JSON 出力リファレンス¶
pdb2reaction は AI エージェント、スクリプト、下流ツールからの利用に向けた機械可読 JSON 出力を提供します。
--out-json フラグ¶
MLIP を使用するすべてのサブコマンドが --out-json / --no-out-json(デフォルト: off)に対応しています。
有効にすると、出力ディレクトリに result.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 は常に summary.json を出力します(--out-json 不要)。
共通エンベロープ¶
すべての result.json に自動付与されるフィールド:
フィールド |
型 |
説明 |
|---|---|---|
|
string |
サブコマンド名(例: |
|
string |
パッケージバージョン |
|
float |
実行時間(秒) |
|
object |
ハードウェア情報(下表参照) |
environment:
フィールド |
型 |
例 |
|---|---|---|
|
string |
|
|
string |
|
|
float |
|
|
string |
|
|
string |
|
|
int |
|
|
float |
|
エラー処理¶
ジョブが失敗した場合(クラッシュ、OOM、収束失敗による sys.exit など)、可能な限り "status": "error" と失敗種別を表す "error_type" を含む result.json が書き出されます。詳細なトレースバックは .out ログファイルを参照してください。失敗判定には result.json の不在ではなく status == "error" を使用してください。
収束しなかったが完了したジョブでは、"status": "not_converged" と最終 force/step 値を含む result.json が書き出されます。
サブコマンド別スキーマ¶
opt¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
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 |
出力ファイルマップ |
tsopt¶
opt と同じフィールドに加え:
フィールド |
型 |
説明 |
|---|---|---|
|
int |
虚振動数 |
|
float[] |
虚振動数 (cm⁻¹, 負の値) |
|
string |
|
files には imaginary_mode_files(vib ファイルリスト)を含む場合があります。
収束詳細 (force/step) は rsirfo モードで利用可能です。dimer モードでは n_opt_cycles のみ提供されます。
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 |
|
thermochemistry (thermoanalysis 利用不可時は null):
フィールド |
型 |
単位 |
|---|---|---|
|
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 |
反応物エネルギー |
|
float |
TS エネルギー |
|
float |
生成物エネルギー |
|
bool |
前方 IRC 収束? |
|
bool |
後方 IRC 収束? |
|
string |
MLIP バックエンド |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
string |
MLIP モデル名 |
|
int |
凍結原子数 |
|
string |
暗黙溶媒 or |
|
object |
|
|
float |
IRC ステップ長 (Bohr) |
|
int |
最大 IRC ステップ数 |
|
string |
入力ファイル名 |
|
object |
軌跡ファイル (xyz + pdb) |
scan¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
スキャンステージ数 |
|
object[] |
ステージごとのデータ(下記参照) |
|
string |
MLIP バックエンド |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
object |
出力ファイル |
stages[]:
フィールド |
型 |
説明 |
|---|---|---|
|
int |
ステップ数 |
|
bool |
拘束最適化の収束? |
|
list |
原子ペア (1-based) |
|
list |
初期距離 |
|
list |
目標距離 |
|
float |
最終エネルギー |
|
float[] |
ステップごとのエネルギー |
|
object |
検出された結合変化 |
scan2d / scan3d¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
グリッド点数 |
|
int[] |
グリッド次元 |
|
object |
|
|
float |
表面最小エネルギー |
|
string |
MLIP バックエンド |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
object |
CSV + プロットファイル |
path-opt¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
bool |
収束判定 |
|
string |
|
|
string |
MLIP バックエンド |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
string |
MLIP モデル名 |
|
float[] |
全イメージエネルギー |
|
int |
イメージ数 |
|
int |
最高エネルギー画像のインデックス |
|
float |
HEI エネルギー |
|
float |
前方障壁 (kcal/mol) |
|
float |
反応エネルギー (kcal/mol) |
|
object |
軌跡 + HEI ファイル |
path-search¶
path-search は --out-json による result.json を出力せず、代わりに 常に summary.json を出力ディレクトリに書き出します。共通エンベロープ(command, pdb2reaction_version, elapsed_seconds, environment)に加え、以下を含みます:
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
再帰 MEP のセグメント数 |
|
object[] |
セグメントごとの |
|
object[] |
セグメントごとのラベル付きエネルギープロファイル (kcal/mol) |
|
string |
バックエンド / モデル名 |
|
int |
系の電荷 |
|
int |
スピン多重度 |
all がさらに追加するフィールドは下の summary.json セクション を参照してください。
dft¶
フィールド |
型 |
説明 |
|---|---|---|
|
bool |
SCF 収束? |
|
float |
DFT エネルギー |
|
string |
汎関数 |
|
string |
基底関数 |
|
bool |
GPU 使用? |
|
object |
|
|
object |
|
|
int |
原子数 |
|
int |
DFT グリッドレベル |
|
float |
SCF 収束閾値 |
|
string |
入力ファイル名 |
|
object |
|
extract¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
入力 PDB の原子数 |
|
int |
抽出後の原子数 |
|
float |
合計電荷 |
|
float |
タンパク質電荷 |
|
float |
リガンド電荷合計 |
|
float |
イオン電荷合計 |
|
list |
|
|
object |
|
|
string |
中心残基 |
|
float |
抽出半径 (angstrom) |
|
string[] |
入力 PDB パス |
trj2fig¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
軌跡フレーム数 |
|
float |
フレーム中の最小エネルギー |
|
float |
フレーム中の最大エネルギー |
|
string |
MLIP バックエンド |
|
object |
出力プロットファイル |
energy-diagram¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
|
|
int |
エネルギーデータ点数 |
|
object |
出力ダイアグラムファイル |
bond-summary¶
--out-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 |
|
|
int |
セグメント数 |
|
object[] |
セグメントごとの障壁、反応エネルギー、結合変化 |
|
object[] |
エネルギーダイアグラム(ラベル + kcal/mol) |
|
string |
モデル名 |
|
int |
系の電荷 |
|
int |
スピン多重度 |
|
object |
ハードウェア情報 |
all はさらに以下を含みます:
フィールド |
型 |
説明 |
|---|---|---|
|
object |
律速段階のセグメント番号と障壁 |
|
float |
全体反応エネルギー |
|
list |
セグメントごとの TS/IRC/freq/DFT 結果 |
|
object |
主要出力ファイル一覧 |
使用例¶
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")
print(f"Max force: {result['final_max_force']:.6f}")
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