Skip to content

Releases

XinMatch xinDB MP-20261031 (Materials Project external database)

Choose a tag to compare

@PolyXRD PolyXRD released this 04 Nov 02:45

XinMatch xinDB MP-20261031 (Materials Project external database)

Data source: Materials Project summary (D:\Project\MP-summary, CIF download date 2026-10-31)
Format: .xinDB v3; meta.library_kind = MP, meta.data_date = 20261031.
This is XinMatch's external (plug-in) database: a single file, mounted on demand, not bundled with the application.

Database overview

Item Value
CIF source 155,204 (flat directory, file names are chemical formulae)
Ingested phases 155,201 (3 CIFs have no # mp-id: header, skipped by convention)
Reflections / chunks 20,900,193 / 38 chunks
Elements 91 kinds
Space groups / crystal systems 225 real space groups (taken from CIF header comments) / 7 crystal systems, no empty values
Uncompressed 251,633,664 B (240.0 MiB), journal_mode=DELETE, integrity_check=ok
zip 197,925,329 B
SHA-256 (zip) d20c4a61112bcc2efe094cf11929f1020f58642c2e108328b9edb042580cc6bc
SHA-256 (.xinDB) 26D7A9BED83A57C0AC63AF422330210A075C03660B96AD7D4358778F5289EE20

Differences from the COD/PCOD/TCOD databases

  • entry_id uses MP native ids: mp-<number> (e.g. mp-862690), not the 96-XXX-XXXX pattern;
    number range [0, 20,000,000) (current maximum 3,347,425). accept_xindb's BANDS["MP"] records this convention.
  • Real space groups come from CIF comments: structures exported by pymatgen are written as P 1 (_symmetry_space_group_name_H-M 'P 1'),
    and the real group appears only in the first-line comment # mp-id: ... | spacegroup: P6_3/mmc | ...; the builder uses that comment to override
    entries.space_group and derives crystal_system from the H-M symbol (225 symbols / 7 crystal systems, fully checked against the archive).
  • tier = 2 (DFT computed structures); journal/author = "Materials Project", quality = "DFT", year = 2025.
  • Intensities are computed values (no experimental broadening), for phase identification; quantitative analysis needs your own calibration.

Build and acceptance

cd D:\Project\XRD\XinMatch-DataBase
python -m tools.build_mp_xindb --data-date 20261031 --workers 14 -v
  • Build: 537.7 s (9.0 min), 17,318 phases/min (14 workers), errors=0.
  • validate_xindb --all-chunks: 0 FAIL / 1 WARN / 29 items (all 38 chunks decoded;
    C7 min=8 max=150 mean=134.7; the WARN is 5,660 semi-collapsed boundary phases).
  • accept_xindb --mp-root: 0 FAIL / 1 WARN / 19 items:
    • R1.id_band: all 155,201 mp-<n> ids are well-formed, numeric range [2, 3,347,425];
    • A1.ownership: id set exactly equal to the archived 155,201 mp-ids (missing=0, extra=0);
    • B1.single_peak: bad_phase_ids=[], n_peaks≤1 phases 0;
    • 91 elements, element_inv fully consistent, payload norm-1000 / zero padding / top⊆all passed.
  • Self-recall of 20 phases: Top-1 20/20, Top-5 20/20, median 0.52 s.

Installation / mounting

unzip MP-20261031.xinDB.zip          # get MP-20261031.xinDB
# Method 1: mount the external database via CLI
python -m xinmatch.cli.main libraries --add D:\path\to\MP-20261031.xinDB --label "Materials Project"
# Method 2: GUI "Settings → Reference Database → Add External Database", select the file
  • Keep the file name MP-20261031.xinDB (validate_xindb's M3.identity checks it);
  • Requires XinMatch v3.0.0+ (.xinDB v3);
  • Can be mounted simultaneously with COD/PCOD/TCOD (Inorg/Full) databases.

Validation

sha256sum -c SHA256SUMS.txt
certutil -hashfile MP-20261031.xinDB.zip SHA256   # Windows

Known WARN (not blocking)

  • 5,660 semi-collapsed boundary phases: the strongest reflection falls exactly at d≈λ/2 (2θ→180°) but other peaks still exist; same kind as the COD family, a peak-convention edge phenomenon (real reflections, not spurious peaks), rebuilding will not eliminate them.
  • 3 CIFs (Al(CuO2)3.cif, Ca2YAgO5.cif, ZnCoF5.cif) have no # mp-id: header, so no stable id can be assigned; they are skipped by convention.

Code and acceptance records

  • Added xinmatch/core/db/mp_scan.py (MP archive scan / id / space-group comments / crystal system),
    tools/build_mp_xindb.py (MP build entry point), MP number-range and full-set ownership checks in tools/accept_xindb.py,
    tests/test_mp_scan.py (regression).
  • For the full acceptance see the repository's MP database build and acceptance (Chinese); the release notes and code commits are in the same repository history.

XinMatch xinDB 20261020 rebuild (3 Inorg + 2 Full)

Choose a tag to compare

@PolyXRD PolyXRD released this 03 Nov 22:02

XinMatch reference phase database 20261020 rebuild (built 2026-11-01/04)

The data snapshot is still 20261020 (meta.data_date unchanged); this Release is a
rebuild after the peak-engine fix, replacing the three Inorg databases in the 20261020
Release. The old 20261020 Release and its three Inorg zips containing bad phases were deleted
on 2026-11-04
; the remote keeps only this rebuilt version.

Fixes in this release

  1. 2θ=180° boundary spurious peak: the reflection at d=λ/2=0.7703 Å entered the peak table due to floating-point rounding, and the LP factor diverged, collapsing the whole pattern into 1 spurious peak after normalization. That boundary reflection is now removed and a floor is applied to the LP trigonometric factor.
  2. gemmi placeholder-cell spurious peak: when the cell cannot be read, it no longer computes d=1.0 from the default (1,1,1,90,90,90); instead the cell is recovered from the CIF text; phases genuinely without a cell are skipped during the build.
  3. Build-engine optimization (single CIF parsed once, structure-factor chunking adaptive to the atom count, output bit-for-bit unchanged), whole-database throughput about +10–15%.

The five databases

Database entry_id range Phase count Reflection count Elements Uncompressed zip SHA-256
COD-Inorg 96-100-* … 96-901-* 78,035 9,395,681 96 118,640,640 B (113.1 MiB) 92,590,746 B 3da3bcbd88ff322126ce011bb40f30b3196f4bd817126de8dcc8f6ffb4232a56
TCOD-Inorg 96-110-* … 46,846 5,874,790 91 71,352,320 B (68.0 MiB) 57,326,743 B 3cf0111500cb814332502aadc1751ccf742920a5f3d08c7c891525c92bf42e53
PCOD-Inorg 96-210-* … 96-295-* 1,061,953 159,275,318 19 1,777,357,376 B (1694.1 MiB) 1,458,071,868 B 024e46a2c4298e878661fdd69d566e261540a5992868ef486cbaa606c7910193
TCOD-Full 96-110-* … 361,701 53,099,238 91 623,173,632 B (594.3 MiB) 505,902,529 B a14d41bc946d94d20f0563ec3188d0b516f2ab111a8bf5206b9c4e650d9164c8
COD-Full 96-100-* … 96-901-* 532,038 77,458,154 96 922,120,192 B (879.4 MiB) 738,273,981 B b8d0a425ffa1c3ee5035be80ea11e80b13d9fb740e8364788373637f6c842768
  • Databases are mutually exclusive, install as needed: use COD-Inorg for everyday interactive search; when nothing is found, fall back to PCOD/TCOD-Inorg; the Full databases cover all COD/TCOD archives (including organics / theoretical structures).
  • PCOD-Full is not provided: the 1,061,962 CIFs in the PCOD archive are all inorganic (is_inorg=1 100%), essentially equivalent to PCOD-Inorg (the original archive differs by only 2 CIFs not ingested); building it separately is pointless.
  • SHA256SUMS.txt is attached (SHA-256 of the 5 zips).

Acceptance summary (all 0 FAIL)

Database validate_xindb --all-chunks accept_xindb Comparison with old database / Inorg Self-recall
COD-Inorg 0 FAIL / 1 WARN (30 items) 0 FAIL / 1 WARN (19 items), bad phases 0 only 7 bad phases changed + 96-210-4629 (no cell) removed; 78,028/78,035 byte-for-byte identical Top-1 20/20, Top-5 20/20
TCOD-Inorg 0 FAIL / 1 WARN (29 items) 0 FAIL / 1 WARN (19 items), bad phases 0 46,846/46,846 byte-for-byte identical to the old database Top-1 20/20, Top-5 20/20
PCOD-Inorg 0 FAIL / 1 WARN (29 items) 0 FAIL / 1 WARN (19 items), bad phases 0 1,061,936/1,061,953 byte-for-byte identical; 17 boundary phases changed (7 registered bad phases + 10 boundary reflections removed/padded) Top-1 10/10, Top-5 10/10
TCOD-Full 0 FAIL / 2 WARN (29 items) 0 FAIL / 1 WARN (19 items), bad phases 0 46,846/46,846 phases common with TCOD-Inorg byte-for-byte identical Top-1 10/10, Top-5 10/10
COD-Full 0 FAIL / 2 WARN (30 items) 0 FAIL / 2 WARN (20 items), bad phases 0 78,035/78,035 phases common with COD-Inorg byte-for-byte identical Top-1 10/10, Top-5 10/10

Bad phases cleared to zero: the 8 in the old COD database (7 recovered real peaks, 96-210-4629 without a cell removed, phase count 78,036→78,035) and the 7 in the old PCOD database (including 96-254-30089 double-peak collapse) were all recovered; n_peaks≤1 is 0 in all three Inorg databases.

Known WARNs (not blocking, rebuilding will not eliminate them)

  • Semi-collapsed boundary phases: real patterns whose strongest reflection falls exactly at d≈λ/2 (2θ→180°) but with other peaks present — COD-Inorg 2,251 / PCOD-Inorg 5,598 / TCOD-Inorg 1,670 / TCOD-Full 3,008 / COD-Full 2,368 entries. A peak-convention edge phenomenon (LP diverges at 180°), not a spurious peak.
  • 2 ordinary single-peak phases in COD-Full (96-200-1543 d=12.15 Å, 96-200-2110 d=11.23 Å): the only reflection is a real low-angle line, not a boundary spurious peak.
  • 1 TCOD-Full source cell with alpha=1°: the anomalous value from the source CIF is ingested as-is and does not affect peak positions.
  • Element mask: in TCOD-Full 48,732 phases and COD-Full 81,284 phases have elements exceeding the 63-bit elem_mask; the full element list is kept in entries.elements / element_inv, so element-based search is unaffected (widening the mask is a schema v4 decision).
  • COD 126 / COD-Full 135 entries have no space group (magnetic / superspace-group source data); this only affects filtering by space group.

Installation

unzip COD-Inorg-20261020.xinDB.zip        # get COD-Inorg-20261020.xinDB
  • Just replace the old database of the same name under data/; the file name must remain <kind>-<date>.xinDB, otherwise validate_xindb's M3.identity will report FAIL.
  • All use journal_mode=DELETE, with no -wal/-shm sidecars, so they can be placed directly on NAS read-only shares / disc images.
  • Requires XinMatch v3.0.0+ (.xinDB v3 format); multiple databases can be mounted simultaneously (Inorg + Full coexisting).
  • Self-check: python -m tools.validate_xindb COD-Inorg-20261020.xinDB --all-chunks.

Validation

sha256sum -c SHA256SUMS.txt        # Linux/macOS/Git Bash
certutil -hashfile COD-Full-20261020.xinDB.zip SHA256   # Windows

Build and acceptance records

  • Build/acceptance code: XinMatch-DataBase repository 80a7c25 (six-database unified entry point + single-pass parse + adaptive chunking + E5/E6 validator).
  • Acceptance report: XinMatch-DataBase/docs/ACCEPTANCE-20261101-rebuild.md (per-database commands, bad-phase list, entry-by-entry comparison and WARN notes).
  • Documentation commits: 8679bf0 (COD/TCOD-Inorg), 1bb9c63 (PCOD-Inorg), a4b36f0 (TCOD-Full), 13e85b9 (COD-Full).
  • Data snapshot: sync-COD (20261020); meta.build_time records each database's build time.