TM-Spec——每个实验一个可读文件(没错,又一个标准)

有一则 xkcd 正好说这件事:“已有 14 个相互竞争的标准 → 那就再做第 15 个吧。” 我们还是做了 TM-Spec——下面说说为什么它不是那种情况。

动笔之前,我们先做了文献综述。诚实的结论:并不存在通用的”物理/化学语言”。 存在的是一摞优秀的领域语言——NOMAD Metainfo、OPTIMADE、QCSchema、AiiDA、ASE、PHREEQC、Antimony、CALPHAD、AFLOW 原型、magCIF。TM-Spec 不试图取代其中任何一个。

它是什么。 一个人类可读的 YAML 文件,描述整个原子尺度计算:结构、缺陷、磁态、环境、DFT/MLIP/MD 方法、工作流(NEB、伞形采样、元动力学、MD、MLIP 基准、单点、弛豫)、结果、事后的 sanity 门控、可选的预测性 pre-flight 区块,以及溯源信息。

这里有一个真实的小例子——从 NOMAD 导入的黄铁矿单点计算:

spec: tm-spec/0.2
kind: SinglePointCalculation
id: tm.nomad.pyrite_sp_0001.2026-05-10

structure:
  formula: Fe32S64                      # FeS2 — pyrite
  space_group: { number: 205, symbol: Pa-3 }
magnetic: { state: NM, collinear: true }

calculation:
  method: DFT
  level: { xc: GGA, xc_libxc: [GGA_X_PBE, GGA_C_PBE], spin: none }
  code:  { name: QuantumESPRESSO, version: "7.3.1" }

results: { status: PRELIMINARY, scf_converged: true, band_gap_eV: 0.8 }

sanity:
  - { id: G05_scf_converged, observed: true, pass: true }

provenance:
  import_source: { archive: nomad, entry_id: pyrite_sp_0001 }

在 GitHub 上查看完整文件 →

它填补的空白——”缺失的中间层”。 如今论文的补充材料通常要么是与代码绑定的输入转储(pwscf.in),要么是需要专用运行时才能打开的工作流归档。TM-Spec 是介于两者之间的快照:审稿人可在任意文本编辑器中零运行时阅读,校验器可依据 JSON Schema 检查,工具也能摄取它——从现有的 ASE/QE/CP2K 脚本抽取草稿,从 NOMAD / OPTIMADE / Materials Project / MAGNDATA 导入,或导出为 NOMAD 上传包。同一个文件可以同等详尽地描述 Quantum ESPRESSO、CP2K、ABACUS、GPAW、MACE 或 CHGNet。

互补而非竞争:它不是 AiiDA 或 atomate2 的替代品——后者掌管工作进行中的溯源图;TM-Spec 掌管论文级的快照,并有意对齐到上述标准之上。

而我们自己最感兴趣的一点是:TM-Spec 正在成为我们着手构建的基石——一层生产和消费这些文档、推动真实工作的工具。详情留待日后的一篇新闻。

开放且自由:MIT(代码)+ CC-BY-4.0(规范)。pip install tm-spec

在 GitHub 上查看 TM-Spec → · 规范主页 →