Skip to content

About

XinMatch 参考物相库(.xinDB v3)构建代码与产物:COD/PCOD/TCOD 的 Inorg/Full 五库(78,035 / 1,061,953 / 46,846 / 361,701 / 532,038 相)+ Materials Project MP-20261031(155,201 相)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

19 Commits

Folders and files

Repository files navigation

XinMatch-DataBase

XinMatch 参考物相库(.xinDB v3 格式)的构建代码、格式规范与发布产物。

本仓库只放代码与文档;数据库本体以 Releases 里的压缩包分发 (单库 68 MB / 87 MB / 1.3 GB,不入 git 历史)。数据源为 Crystallography Open Database (COD) 及其预测/理论子库 PCOD / TCOD,本仓库不做结构精修、不改写原始 CIF,只做反射计算与索引打包。

姊妹仓库 PolyXRD-DataBase 发布的是同源数据的 polyDB 格式(PolyXRD 用)。两种格式口径不同,不可互换(见 §2)。


0. 构建位置约定(2026-10-24 起,必读)

项 约定
数据库在哪里构建 本仓库 XinMatch-DataBase(不再散落在其它 checkout)。
构建所需 CIF 在哪里 上级目录的 sync-COD:D:\Project\XRD\sync-COD(可用 XRD_DATA_ROOT 覆盖)。本仓库不携带原始 CIF。
产物默认位置 <本仓库>/data/<Kind>-<YYYYMMDD>.xinDB;--out 最高优先,XINMATCH_XINDB_DIR 仅显式覆盖。
支持范围 6 个库:COD / PCOD / TCOD × Inorg(无机子集)/ Full(全库)。
完整操作手册 docs/构建与验收手册.md(构建矩阵、验收命令、发布检查清单、故障排查)。

一条链:sync-COD(CIF)→ ①scan_inorg(仅 Inorg 需要)→ ②build(本仓库 data/)→ ③validate → ④accept/专项复核。


1. 发布产物(Release 20261020)

本仓库现在支持 6 个库(COD/PCOD/TCOD × Inorg/Full)。20261020 这次 Release 实际发布的是 三个 Inorg 库(下表的 COD/PCOD/TCOD-Inorg);三个 *-Full 库已可用同一套命令构建 (见 §3.3 与构建手册),但体量与耗时是小时级,尚未纳入本次 Release。

库 entry_id 段 相数 反射数 块数 元素 解压后 zip
COD-Inorg 96-100-* 78,036 9,394,774 20 96 种 118,710,272 B(113.2 MiB) 87.2 MiB(91,484,834 B)
PCOD-Inorg 96-210-* 1,061,953 159,274,265 260 19 种 1,776,353,280 B(1694.1 MiB) 1.35 GiB(1,447,251,707 B)
TCOD-Inorg 96-110-* 46,846 5,874,790 12 91 种 71,352,320 B(68.0 MiB) 54.1 MiB(56,694,762 B)
合计 — 1,186,835 174,543,829 292 — 1.83 GiB ≈1.52 GiB
  • 三个库互不包含,按需装(XinMatch 支持多库挂载)。COD 实验库是日常交互检索的主力; PCOD(GRINSP 预测)与 TCOD(理论)用于"实验库查不到时兜底"。
  • 命名里的 20261020 是源数据快照日(meta.data_date),不是构建日; 构建时刻见 meta.build_time(COD 2026-10-21 17:25、TCOD 2026-10-22 23:29、PCOD 2026-10-22 23:46)。
  • 分发版全部 journal_mode=DELETE,无 -wal/-shm 侧车,可直接放只读介质 (NAS 只读共享、光盘镜像)而不必担心"读也要写权限"。
  • 校验值见 Release 附带的 SHA256SUMS.txt。
unzip COD-Inorg-20261020.xinDB.zip                    # 得到 COD-Inorg-20261020.xinDB
python -m tools.validate_xindb COD-Inorg-20261020.xinDB   # 可选:自检 25 项

本机已把三个库放在仓库的 data/ 下(data/COD-Inorg-20261020.xinDB 等,不入 git), XinMatch 的库注册表 ~/.xinmatch/libraries.json 已指向该目录。

⚠️ 文件名必须是 <library_kind>-<data_date>.xinDB,否则 validate_xindb 的 M3.identity 会判 FAIL(它拿文件名和 meta 对账)。改名后重新建库即可,不必修 meta。

1.1 2026-11-01 重建(峰引擎修复后,data/ 内本地产物)

2026-10 修复了两类「假峰相」:2θ=180° 边界(d=λ/2)反射被浮点舍入放进峰表 + LP 发散导致整谱塌缩; gemmi 读不到晶胞时用默认占位晶胞算出 d=1.0 假峰。用修复后的引擎重建三个 Inorg 库, 源快照仍为 20261020(meta.data_date 不变)。重建前的旧库曾放在 data/_prev/ 做逐条目对比, 验收完成后已于 2026-11-04 删除(对比结果保留在验收报告中):

库 相数 反射数 体积(字节) SHA-256(前 16) 验收
COD-Inorg(重建) 78,035 9,395,681 118,640,640(113.1 MiB) 7C08B34DCACA9BAC… validate 0F/1W(30 项);accept 0F/1W;7 条坏相修复、1 条无晶胞相剔除
TCOD-Inorg(重建) 46,846 5,874,790 71,352,320(68.0 MiB) 8F2A25D583B577A7… validate 0F/1W(29 项);accept 0F/1W;与旧库逐条目 (d,i) 完全相同
PCOD-Inorg(重建) 1,061,953 159,275,318 1,777,357,376(1694.1 MiB) ABB7EC8C1E68CD6F… validate 0F/1W(29 项);accept 0F/1W;7 条坏相修复;17/1,061,953 条载荷变化
TCOD-Full(新库) 361,701 53,099,238 623,173,632(594.3 MiB) 36838FBE1F18EDBF… validate 0F/2W(29 项);accept 0F/1W;与 TCOD-Inorg 公共相 46,846/46,846 逐字节相同;自重召回 10/10
COD-Full(新库) 532,038 77,458,154 922,120,192(879.4 MiB) E217F28FA03755A1… validate 0F/2W(30 项);accept 0F/2W(20 项);与 COD-Inorg 公共相 78,035/78,035 逐字节相同;自重召回 10/10
MP(外部库) 155,201 20,900,193 251,633,664(240.0 MiB) 26D7A9BED83A57C0… validate 0F/1W(29 项);accept 0F/1W(19 项);id 集合与归档 155,201 个 mp-id 完全相等;自重召回 Top-1/Top-5 20/20

PCOD-Full 不构建:PCOD 归档 1,061,962 条 CIF 全部为无机(manifest is_inorg=1 100%), 与 PCOD-Inorg 实质等价(原始归档仅差 2 个未入库 CIF),按决定跳过。

  • MP 外部库:data/MP-20261031.xinDB(Materials Project,155,201 相,id 为原生 mp-<n>, tier=2 计算结构);XinMatch 通过「添加外部库」挂载。构建/验收见 docs/MP-库构建与验收.md, 发布版 20261031-mp(zip + SHA256SUMS.txt)。

  • 验收细节、坏相逐条清单与前后对比见 docs/ACCEPTANCE-20261101-rebuild.md。

  • Release 已发布:20261020-rebuild(2026-11-04)含 5 个库的 zip + SHA256SUMS.txt;发布说明 docs/release-notes-20261104.md。打包命令:python -m tools.package_release --out _release\<date>(手册 §5)。

  • 重建前的 data/_prev/ 旧库(COD 113 MB + TCOD 68 MB + PCOD 1.7 GB)已于 2026-11-04 删除;旧 20261020 Release(含三个含坏相的 Inorg zip)也已删除,仅保留本重建版 Release。


2. .xinDB 是什么

单文件 SQLite,把"预筛矩阵"和"全反射表"分开存,反射数据只存一份:

COD-Inorg-20261020.xinDB
├── meta          自描述 key/value(峰口径、建库参数、追溯)
├── entries       每相一行(化学式/空间群/晶胞/密度/元素 + CSR 偏移)
├── peak_chunks   列式反射块(每 4096 相一块)
└── element_inv   元素倒排(element → 0 起相序号,uint32 数组)
段 形状 类型 用途
top_d/top_i n × 32 <f4 预筛:与测量峰窗口做 NumPy 交叠,只剪枝不排序
all_d/all_i Σpeak_n(CSR) <f4 打分:候选相的全部反射
element_inv.eids 变长 <u4 升序去重、0 起相序号

寻址铁律:entries.rowid 显式从 0 写入 = 0 起相序号;element_inv.eids 与 peak_chunks 块号都基于它,不能用 entry_id 反推。 完整字段级规范见 docs/xinDB格式规范-v3.md。

峰口径(写死进 meta.peak_convention)

CuKa1-1.5406-d0.7703-30.0-merge-mult-DW-norm1000

λ=1.5406 Å(Cu Kα1)|d 0.7703–30.0 Å|等价反射按 2θ 合并(含多重性)| 含 Debye-Waller(B = 8π²U_iso,逐位点)|强度归一 1000|每相最多 150 条反射|预筛宽 32

xinDB(本仓库) polyDB(PolyXRD-DataBase)
容器 单文件 SQLite 目录(8 个段文件 + mmap)
d 范围 0.7703–30 Å 1.0–26 Å(2θ 5–100.76°)
温度因子 有(Debye-Waller) 无
每相峰数 150 100(按强度取前 K)
定位 检索 + 精修一体化 GUI 交互检索

同一份 CIF 在两个库里算出的绝对强度体系不同。混用会得到系统性偏差, 不要拿 xinDB 的强度去校验 polyDB,反之亦然。

实测峰表:peak_origin = observed

上面那条口径描述的是由 CIF 算峰的库(COD / PCOD / TCOD / MP),它们的 meta.peak_origin 缺省为 computed。ICDD PDF-2 这类实测卡片库不是算出来的, 落库时刻意不套这条口径:

meta 计算库 实测库(PDF-2)
peak_origin computed(缺省) observed
peak_convention CuKa1-1.5406-…-norm1000 observed-ICDD-PDF2-2004-norm1000
强度尺度 norm-1000 同样是 norm-1000(否则两类库的打分权重不可比)
NULL 晶胞 / 峰数 >150 构建缺陷 数据事实

读取侧不需要第二个 reader:reader_v3 只认 schema_version == 3。建库工具 tools/build_pdf2_xindb.py,ICDD 商品数据不进本仓库、不进 Release, 详见 docs/PDF2-库构建与验收.md。


3. 从零构建

3.1 环境

依赖 要求 说明
Python 3.10+ 实测 3.10.11
numpy 必需 反射计算与列式打包
gemmi 必需 CIF 解析(peak_compute 硬依赖)
磁盘 ≈ 2× 库体积 PCOD 库 1.7 GB,构建峰值约 4 GB
内存 8 GB 级 分块写入,不吃满反射表
pip install numpy gemmi

3.2 CIF 归档与无机子集

代码不下载数据。链路是:原始归档 → 无机子集 → .xinDB。

源数据不在本仓库,2026-10-23 起统一放在 D:/Project/XRD/sync-COD(与 PolyXRD-DataBase 共用, 数据侧工具与布局说明见 PolyXRD/sync-COD):

D:/Project/XRD/sync-COD/       ← 数据根,可用环境变量 XRD_DATA_ROOT 覆盖
├── COD/        535,166 个 CIF  # 全库原始归档(层级 3)
├── PCOD/     1,061,964 个 CIF  # GRINSP 预测(层级 2)
├── TCOD/       362,294 个 CIF  # 理论(层级 3,8 位 id)
├── inorg_cif/COD|PCOD|TCOD/    # ← 第 ① 步产物:判为无机的 CIF 副本(79,198 / 1,061,962 / 46,943)
└── inorg_manifest.sqlite       # ← 第 ① 步产物:每文件一行清单(1,959,421 行,id_clash=0)

第 ① 步(无机判定 = "不含 C,或含 C 但不含 H" + 复制 + 清单):

python tools/scan_inorg.py --workers 6          # 缺省就地读写上面的数据根
XRD_DATA_ROOT=/other/root python tools/scan_inorg.py --workers 6   # 换盘时覆盖
  • 判据、id 偏移(PCOD +2e7 / TCOD +1e8)与本仓库已发布的三库逐条一致(脚本原样沿用)。
  • 已发布库用的 inorg_cif/ 现状就在 D:\Project\XRD\sync-COD\inorg_cif\(1,188,103 个 CIF, 与 polyDB 共用)。本仓库不带这批数据,也不必带 —— 只读引用即可。
  • 建库时 --cif-root 缺省指向 xinmatch/core/db/cif_scan.py 的 DEFAULT_INORG_*_ROOT, 后者由 XRD_DATA_ROOT 推导(缺省即 D:\Project\XRD\sync-COD\inorg_cif\*)。 换机器用环境变量或 --cif-root 指过去,不必改代码。

3.3 建库(六个库,统一入口)

python -m tools.build_cod_xindb 是唯一构建入口:--source {COD,PCOD,TCOD} × --set {inorg,full}, CIF 根 / library_kind / id 偏移自动推导;tools/build_cod_inorg_xindb.py 是它的薄兼容包装。

# 三个无机库(交互检索默认库,体积小、构建快)
python -m tools.build_cod_xindb --source COD  --set inorg --data-date 20261020 --workers 14 -v
python -m tools.build_cod_xindb --source PCOD --set inorg --data-date 20261020 --workers 14 -v
python -m tools.build_cod_xindb --source TCOD --set inorg --data-date 20261020 --workers 14 -v

# 三个全库(exhaustive reference;耗时小时级,见手册 §3.6)
python -m tools.build_cod_xindb --source COD  --set full --data-date 20261020 --workers 14 -v
python -m tools.build_cod_xindb --source PCOD --set full --data-date 20261020 --workers 14 -v
python -m tools.build_cod_xindb --source TCOD --set full --data-date 20261020 --workers 14 -v
  • 输出默认 <repo>/data/<kind>-<data_date>.xinDB;--out 指定任意路径,XINMATCH_XINDB_DIR 仅显式覆盖。
  • --limit N 先试产(永远先跑切片并 validate 全绿再跑全量);--resume 断点续跑(== 一次跑完,已验证); --start 从指定号段起;--workers 与输出无关(1 vs 2 逐字节一致,有回归)。
  • --workers 用 14(本机 8C/16T 真实全库实测最优):TCOD 46,846 相 15.2 min(旧实现 14 workers 为 16.9 min); COD 用 8 workers 跑 61.6 min,反而略慢于历史 14 workers 的 58 min —— 500 相切片基准会低估多 worker 的收益, 不要据此把 workers 降到 8。
  • 构建热路径用 build_pipeline.compute_phase(),每个 CIF 只解析一次(旧实现 3 次解析 + 2 次结构构建); 结构因子分块按原子数自适应(256–8192 行),两项优化输出逐位不变,整库吞吐约 +10–15%(详见手册 §3.7)。
  • 源码默认 max_peaks=150、dmin=0.7703(= λ/2),要改峰口径请同时改 peak_compute.PEAK_CONVENTION,否则 meta 与实际不符、校验器会拦。
  • --kind full|inorg 仅为 COD 的向后兼容别名(与 --set 同给会报错)。

3.4 实测规模(2026-11-01 重建后)

库 相数 反射数 平均峰/相 文件 构建耗时(14 workers 基准)
COD-Inorg 78,035 9,395,681 120.4(min 2 / max 150) 113.1 MiB 61.6 min(--workers 8;14 workers 应更快)
PCOD-Inorg 1,061,953 159,275,318 150.0(min 20 / max 150) 1694.1 MiB 13.3 h(旧实现 12.7 h;期间有外部任务抢占)
TCOD-Inorg 46,846 5,874,790 125.4(min 3 / max 150) 68.0 MiB 15.2 min(旧实现 16.9 min)
TCOD-Full 361,701 53,099,238 146.8(min 3 / max 150) 594.3 MiB 12.1 h(499.3 相/分钟,14 workers)
COD-Full 532,038 77,458,154 145.6(min 1 / max 150) 879.4 MiB 36.4 h(243.7 相/分钟,14 workers)
MP(外部库) 155,201 20,900,193 134.7(min 8 / max 150) 240.0 MiB 9.0 min(17,318 相/分钟,14 workers)

旧实现单进程约 1,590 相/分钟(COD 切片);2026-10 的单次解析 + 自适应分块优化后整库吞吐约 +10–15%, 详见 docs/构建与验收手册.md §3.7。


4. 校验

python -m tools.validate_xindb data/COD-Inorg-20261020.xinDB --json tmp/validate.json
python -m tools.validate_xindb data/PCOD-Inorg-20261020.xinDB --json tmp/validate-pcod.json
python -m tools.validate_xindb data/COD-Inorg-20261020.xinDB --all-chunks   # 发布前全块解码

只读、只用公开 schema,判据组:S 表/索引齐全,M meta 完整且与文件名一致, C 块记账(Σpeak_n = Σn_peaks = entry_count、块数 = ceil(N/4096)、peak_off 连续), E 晶胞物理量 / 元素非空 / n_peaks ≤ 150 / E5 单峰坏相(180° 边界、占位晶胞) / E6 空相, P 抽样或全块解码 + norm-1000 + 零填充 + top⊆all,X 元素倒排值域/升序/自洽。

发布前另跑 tools/accept_xindb.py(6 库通用的来源/载荷/坏相验收)与两份专项复核:

python -m tools.accept_xindb data/COD-Inorg-20261020.xinDB \
    --manifest D:/Project/XRD/sync-COD/inorg_manifest.sqlite --json tmp/accept.json
python -m tools._compare_xindb_peaks.py <旧库> <新库>          # 只改元数据没动物理
python -m tools._verify_resume_equivalence                     # --resume 等价于一次跑完

✅ 2026-11-01/02 已用修复后的引擎重建三个 Inorg 库: COD 8 条坏相全部清除(7 恢复真峰、1 条无晶胞相剔除,相数 78,036→78,035,9,395,681 反射); PCOD 7 条坏相全部清除(159,275,318 反射,仅 17/1,061,953 条载荷变化); TCOD 无坏相且峰载荷逐字节不变。三库 validate_xindb --all-chunks 与 accept_xindb 均 0 FAIL。 TCOD-Full 与 COD-Full 均已建成并验收:TCOD-Full 361,701 相 / 53,099,238 反射; COD-Full 532,038 相 / 77,458,154 反射(36.4 h);两者与对应 Inorg 库的公共相逐字节相同。 更早的 20261020 Release(COD 8 / PCOD 7 条坏相)已于 2026-11-04 删除,仅保留重建版 20261020-rebuild。 若手头仍有旧的 Inorg zip,请勿使用,改用重建版。 详见 docs/ACCEPTANCE-20261101-rebuild.md。


5. 目录结构

.
├── _atomic_scattering_params.json Cromer-Mann 系数(fastxrd 按 tools/../ 找它)
├── data/                          **本地产物目录**(不入仓):重建后 5 库(3 Inorg + 2 Full)+ 构建日志
├── pytest.ini  tests/             工具链回归测试(合成 CIF/归档,不依赖 1.8 GiB 真实库)
├── tmp/                           本地试产/bench/验收 JSON(不入仓,.gitignore)
├── xinmatch/                      **构库子集**(完整程序见 PolyXRD/XinMatch)
│   ├── __init__.py                空壳,避免把 scipy/GUI 拖进构建链路
│   └── core/db/
│       ├── cif_meta.py            CIF 元数据提取(化学式/空间群/晶胞/密度/元素)
│       ├── cif_scan.py            CIF 归档扫描 + 六库源注册表(SOURCE/SUBSET/id 偏移)
│       ├── peak_compute.py        反射计算 + 峰口径常量(含 Debye-Waller / 边界与占位胞修复)
│       ├── build_pipeline.py      构建热路径:compute_phase() 单次解析(meta+峰表)
│       ├── schema_v3.py           v3 DDL / 必需表 / 必需 meta 键
│       ├── writer_v3.py           分块列式写入器 + element_inv 重建
│       └── data/atomic_scattering_params.json   Cromer-Mann 系数(99 元素)
├── tools/                         四步链路,索引见 tools/README.md
│   ├── scan_inorg.py              ① 无机分类 + 副本 + 清单(XRD_DATA_ROOT 决定根目录)
│   ├── cif_common.py              ① 的判据实现(parse_elements / is_inorganic / formula_mass)
│   ├── fastcif.py  fastxrd.py     ① 依赖的 CIF 解析 / 反射计算
│   ├── build_cod_xindb.py         ② **唯一构建入口**:--source × --set(6 库)+ resume
│   ├── build_cod_inorg_xindb.py   ② 薄兼容包装(默认 inorg)
│   ├── _bench_build.py            ② 构建吞吐基准(旧两步 vs 单次解析、workers/chunksize)
│   ├── validate_xindb.py          ③ 只读结构验收器(S/M/C/E/P/X,含 E5/E6)
│   ├── accept_xindb.py            ④ 6 库通用验收(id 号段/来源/元素/载荷/坏相)
│   ├── _compare_xindb_peaks.py    ④ 峰载荷逐块比对(证明只改元数据没动物理)
│   └── _verify_resume_equivalence.py ④ 证明 --resume 等价于一次跑完
└── docs/
    ├── 构建与验收手册.md           **构建/验收/发布检查清单(权威入口)**
    └── xinDB格式规范-v3.md        字段级规范(容器/寻址/各段/meta/校验)

xinmatch/ 是裁剪子集:只保留构库用到的模块,__init__.py 换成空壳 (完整版会 import scipy 等,构库不需要)。其余检索/精修/GUI 模块见完整版仓库。

不入仓(.gitignore):data/ *.xinDB *.db *.sqlite tmp/ _release/ __pycache__/。 本机 data/ 当前放着重建后的 5 个库(COD-Inorg 113.1 MB / TCOD-Inorg 68.0 MB / PCOD-Inorg 1694.1 MB / TCOD-Full 594.3 MB / COD-Full 879.4 MB)与 data/_build-*.log;data/_prev/ 旧库已于 2026-11-04 删除。


6. 已知缺口

项 现状 影响
重建前旧库的坏相 旧 20261020 Release:COD 8 条、PCOD 7 条、TCOD 0 条 用旧峰引擎构建;2026-11-01/02 重建后三个 Inorg 库均已 0 条。旧 Release 及其 Inorg zip 已于 2026-11-04 删除,仅保留重建版
半塌缩边界相(WARN) COD 2,251 / PCOD 5,598(重建后)/ TCOD 1,670 条:最强线落在 d≈λ/2(2θ→180°),其余峰存在(强度和 ≥5/1000) 真实反射 + LP 在 180° 发散导致的峰口径边缘现象,不是假峰,重建也不会消除;根治需改峰口径(DEFAULT_DMIN 抬到 0.78–0.79 Å 或剔除 2θ>179°,属 v4 决策)。当前仅 WARN,不阻塞发布
退化晶胞 重建后 COD 库已无(96-210-4629 源 CIF 无晶胞 → 建库时剔除) —
无空间群 COD 库 126 条(重建前 127,96-210-4629 已剔除;E3 仅提示) 不影响峰位;按空间群过滤时这类相会被排除
全库发布 TCOD-Full 与 COD-Full 均已建成并验收(TCOD 361,701 相 / 53,099,238 反射 / 594.3 MiB;COD 532,038 相 / 77,458,154 反射 / 879.4 MiB;均 validate/accept 0 FAIL,与对应 Inorg 公共相逐字节相同);PCOD-Full 与 PCOD-Inorg 等价(PCOD 全无机),不构建 建好后 XinMatch 会通过内置 xindb_tcod_full / xindb_cod_full 行自动发现;TCOD-Full 48,732 相、COD-Full 81,284 相的元素超出 63 位 elem_mask(element_inv 仍完整)
全库发布 构建已支持 6 库(--source × --set);20261020 release 只发布了 Inorg 三库 有机/全库检索需先构建 *-Full 库(耗时小时级,见构建手册 §3.6)
PCOD 元素面窄 只有 19 种元素(O/Si/P/Al/V/S/B/F…) GRINSP 预测集的客观构成,不是建库丢数据
top_i 为 float32 强度用 <f4 而非量化整数 体积换精度;norm-1000 下有效位足够

7. 数据来源与许可

  • 代码:沿 XinMatch 的双许可(学术非商业 / 商业另议),见 LICENSE、LICENSE-CN。
  • 数据:CIF 内容版权归 COD 及各原始文献作者。使用本仓库产物请遵守 COD 的使用条款 并引用 COD 与相应原始文献; PCOD(GRINSP 预测)、TCOD(理论)条目另有其原始出处。本仓库只分发派生索引 (反射位置/强度/元数据),不改写也不替代原始 CIF。
  • 强度为计算值,含 Debye-Waller 但无仪器/样品展宽,与实验卡片(ICDD PDF)仍有偏差; 用于物相识别足够,用于定量须自行标定。

8. 版本

日期 事件
2026-10-21 / 22 COD-Inorg、TCOD-Inorg、PCOD-Inorg 三库建成(xinDB v3)
2026-10-23 本仓库建立并发布 20261020 release(代码 + 三个 zip);COD 库 journal_mode 由 WAL 归一为 DELETE,integrity_check 复核通过
2026-10-23 三个库从 PolyXRD-DataBase/xindb/ 迁到本仓库 data/;补入无机分类(①)与两份专项复核(④)工具,链路自足
2026-10-23 源数据迁出 → D:/Project/XRD/sync-COD(两库共用),XRD_DATA_ROOT 缺省改为该路径;build_dbs.py 剥成纯函数模块 cif_common.py(旧 3COD sqlite 打包器删除)
2026-10-23 数据侧工具独立成公开仓库 PolyXRD/sync-COD(数据仍不入库)
2026-10-24 构库/验收工具重建:统一六库构建入口(--source × --set,含 PCOD/TCOD Full);新增 build_pipeline.compute_phase() 单次解析;新增 accept_xindb.py 通用验收与 E5/E6 坏相检查;建立 tests/ 回归(合成 CIF,不依赖真实库);新增 docs/构建与验收手册.md 并记录「库在本仓库构建、CIF 源在 sync-COD」约定
2026-11-01 用修复后的峰引擎重建三个 Inorg 库(源快照仍 20261020):COD 78,036→78,035 相 / 9,395,681 反射(8 条坏相清除);TCOD 46,846 相、峰载荷与旧库逐字节相同;PCOD 1,061,953 相 / 159,275,318 反射(7 条坏相清除);三库均 validate/accept 0 FAIL。见 docs/ACCEPTANCE-20261101-rebuild.md
2026-11-02 开始构建 TCOD-Full(362,294 源 CIF)与 COD-Full(535,166 源 CIF);PCOD-Full 因 PCOD 全为无机、与 PCOD-Inorg 等价而跳过
2026-11-02 TCOD-Full 建成并验收:361,701 相 / 53,099,238 反射 / 623,173,632 B / 12.1 h;validate 0F/2W、accept 0F/1W;与 TCOD-Inorg 公共相 46,846/46,846 逐字节相同;自重召回 10/10。COD-Full 构建中
2026-11-04 COD-Full 建成并验收:532,038 相 / 77,458,154 反射 / 922,120,192 B / 36.4 h;validate 0F/2W、accept 0F/2W(bad_phase_ids=0);与 COD-Inorg 公共相 78,035/78,035 逐字节相同;自重召回 10/10。5 库(3 Inorg + 2 Full)全部完成,PCOD-Full 等价跳过
2026-11-04 MP-20261031 外部库建成并验收(Materials Project,155,204 CIF):155,201 相 / 20,900,193 反射 / 251,633,664 B / 9.0 min;mp-<n> id,validate 0F/1W、accept 0F/1W(id 集合与归档完全一致);自重召回 20/20。见 docs/MP-库构建与验收.md

About

XinMatch 参考物相库(.xinDB v3)构建代码与产物:COD/PCOD/TCOD 的 Inorg/Full 五库(78,035 / 1,061,953 / 46,846 / 361,701 / 532,038 相)+ Materials Project MP-20261031(155,201 相)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages