Repository navigation
Releases
XinMatch xinDB MP-20261031 (Materials Project external database)
XinMatch xinDB MP-20261031 (Materials Project external database)
Data source: Materials Project summary (
D:\Project\MP-summary, CIF download date 2026-10-31)
Format:.xinDBv3;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 the96-XXX-XXXXpattern;
number range[0, 20,000,000)(current maximum 3,347,425).accept_xindb'sBANDS["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_groupand derivescrystal_systemfrom 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;
C7min=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,201mp-<n>ids are well-formed, numeric range[2, 3,347,425];A1.ownership: id set exactly equal to the archived 155,201mp-ids (missing=0,extra=0);B1.single_peak:bad_phase_ids=[],n_peaks≤1phases 0;- 91 elements,
element_invfully consistent, payload norm-1000 / zero padding /top⊆allpassed.
- 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'sM3.identitychecks it); - Requires XinMatch v3.0.0+ (
.xinDBv3); - Can be mounted simultaneously with COD/PCOD/TCOD (Inorg/Full) databases.
Validation
sha256sum -c SHA256SUMS.txt
certutil -hashfile MP-20261031.xinDB.zip SHA256 # WindowsKnown 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 intools/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)
XinMatch reference phase database 20261020 rebuild (built 2026-11-01/04)
The data snapshot is still
20261020(meta.data_dateunchanged); this Release is a
rebuild after the peak-engine fix, replacing the three Inorg databases in the20261020
Release. The old20261020Release 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
- 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. - gemmi placeholder-cell spurious peak: when the cell cannot be read, it no longer computes
d=1.0from 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. - 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=1100%), essentially equivalent to PCOD-Inorg (the original archive differs by only 2 CIFs not ingested); building it separately is pointless. SHA256SUMS.txtis 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-1543d=12.15 Å,96-200-2110d=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 inentries.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, otherwisevalidate_xindb'sM3.identitywill report FAIL. - All use
journal_mode=DELETE, with no-wal/-shmsidecars, so they can be placed directly on NAS read-only shares / disc images. - Requires XinMatch v3.0.0+ (
.xinDBv3 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 # WindowsBuild and acceptance records
- Build/acceptance code:
XinMatch-DataBaserepository80a7c25(six-database unified entry point + single-pass parse + adaptive chunking +E5/E6validator). - 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_timerecords each database's build time.