出力ディレクトリのレイアウト¶
このページでは、各 mlmm サブコマンドが出力ディレクトリに書き込むファイルと、エージェントや後段スクリプトが従うべき規約を説明します。
ファイル名の規約¶
ファイル名 |
書き込み元 |
用途 |
|---|---|---|
|
|
正規の JSON エンベロープ(JSON 出力リファレンス を参照)。まずこれを読んでください。 |
|
ステージ別サブコマンド( |
別名ファイル — ペイロードは |
|
|
人が読むための実行ログ(セグメント / ステージごとに 1 行)。 |
|
|
最適化された構造(XYZ、フル精度)。 |
|
|
反応経路のフレーム(PDB / XYZ)。単独実行の |
|
|
生の MEP エネルギープロファイル(PNG)。 |
|
|
IRC 軌跡(XYZ)。対応する |
|
|
振動数の一覧(cm⁻¹)。 |
|
各種( |
Gaussian 形式の構造ファイル。 |
デフォルトの --out-dir¶
サブコマンド |
デフォルトの |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--out-dir <path>(または -o)で上書きできます。明示的に指定したパスは、ステージ別デフォルトと YAML の両方に優先します。
単独実行と all¶
サブコマンドを単独で実行すると、フラットな結果ディレクトリが書き込まれます。同じライターでも all によってオーケストレーションされると、構造化されたツリーにネストされます。
単独サブコマンド → 上記のファイルを含むフラットな
result_<subcmd>/。segments/も_work/もありません。これらはallが 1 回の実行で複数のライターを協調させるときのみ現れます。allの内部では、リーフライターはそのままネストされます。segments/seg_NN/<subcmd>/のセグメント別リーフ出力は、単独のresult_<subcmd>/と構造的に同一です。allはライターの出力先を別のディレクトリに向けているだけです。path-search/path-optはエンジン側の例外です。 単独実行ではpath-search自体が成果物となります(result_path_search/に独自のsummary.log、mep.pdb、mep_trj.xyz、mep_plot.png、energy_diagram_MEP.pngを持ちます)。allの内部では、その生の出力は_work/path_opt/以下のエンジン用スクラッチであり(--refine-path指定時のみ_work/path_search/)、マージされた成果物(mep.pdb、mep_trj.xyz、mep_plot.png、energy_diagram_MEP.png)はパイプラインのルートに移動され、summary.{json,log}がそこにコピーされます。この非対称性は意図的なものです。
したがって all のツリーには 3 つのゾーンがあります。
result_all/
├─ summary.log · summary.json # copied to the root
├─ mep.pdb · mep_trj.xyz · mep_plot.png · energy_diagram_MEP.png # MEP products moved from the engine
├─ energy_diagram_*_all.png · irc_plot_all.png
├─ ml_region.pdb # ML-region definition (reusable as --model-pdb)
├─ mm_parm/ # MM topology <input>.parm7 / .rst7 (reusable as --parm)
├─ layered/ # layered full-system PDBs (B-factor annotated; reusable inputs)
├─ segments/
│ └─ seg_NN/ # 2-digit per-reactive-segment deliverables
│ ├─ reactant.pdb · ts.pdb · product.pdb # canonical R/TS/P
│ └─ ts/ · irc/ · freq/ · dft/ · structures/ # per-stage working files (--tsopt / --thermo / --dft)
└─ _work/ # pipeline scratch (safe to remove)
├─ pockets/ · scan/
└─ path_opt/ # raw MEP-engine output (path_search/ with --refine-path)
TSOPT のみのモードでは MEP ステージがないため、_work/path_opt/ は存在せず、成果物は segments/seg_01/ 以下に置かれます。モードごとの完全な内訳は all を参照してください。
エージェント向けレシピ¶
# Read whichever subcommand's output, single filename across the board.
import json
from pathlib import Path
summary = json.loads((Path(out_dir) / "summary.json").read_text())
if summary["status"] == "error":
chain = summary.get("error_class_chain", [])
if "OptimizationError" in chain:
# retry with looser convergence threshold
...
else:
raise RuntimeError(summary["error"])
summary.json / result.json は all と path-search、およびステージ別サブコマンド(--out-json 指定時のみ、デフォルト --no-out-json)で書き込まれます。成功パスで書かれる場合、エンベロープはスキーマバージョンとステータスを保持します。ステージ別の summary.json がデフォルトで存在すると仮定しないでください(失敗パスでは失敗エンベロープがスキーマバージョンとエラークラスチェーンを保持します)。