Skip to content

COD polyDB 20261021 (Inorg / Full)

Choose a tag to compare

@PolyXRD PolyXRD released this 23 Oct 08:22
· 15 commits to main since this release

PolyXRD external phase database (polyDB v1). The two databases are mutually exclusive, install just one — after extraction you get a .polyDB directory of the same name; point the external database path in PolyXRD at it (local disk / external drive / NAS all work, opened read-only, no write-back).

Database Asset Phase count Peak count Site count Uncompressed zip size
COD-Inorg COD-Inorg-20261021.polyDB.zip 77,500 5,962,013 1,005,846 89,926,214 B (85.8 MiB) 48.1 MB
COD-Full COD-Full-20261021.polyDB.zip 521,361 50,328,800 36,315,927 1,107,655,264 B (1056.3 MiB) 710.3 MB
  • COD-Inorg = COD entries judged inorganic (no C, or containing C but no H); COD-Full = the full COD.
  • The 20261021 in the name is the build date; the source data manifest was built at 2026-10-20 01:52:04 (see each database's meta.json.source.manifest_built_at).

Usage

unzip COD-Inorg-20261021.polyDB.zip          # → COD-Inorg-20261021.polyDB/ directory
python tools/verify_polydb.py COD-Inorg-20261021.polyDB   # optional: 32-item self-check

Must be extracted before use; direct mmap inside the zip is not supported.

Validation

sha256sum -c SHA256SUMS.txt    # checksums for the two zips

The sha256 of each uncompressed data segment is recorded in each database's meta.json.sections, and tools/verify_polydb.py compares them segment by segment. Measured results for the two databases: 32/32 PASS, 0 WARN (all segments present / byte counts / sha256 / shapes of each segment self-consistent / sites_off monotonic with last value equal to sites.bin length / PRAGMA integrity_check / entries row count = N / row_idx is a complete unique permutation of 0..N-1 / sampled rows sorted by intensity descending with empty slots at the tail). Before distribution, a file-by-file CRC32 + byte-count comparison of zip ↔ source directory was also done; all matched.

Peak convention

λ = 1.5406 Å (Cu Kα1)|2θ 5–100.76° (equivalent to d ≥ 1.0 Å)|equivalent reflections merged by 2θ (including multiplicity)|intensity normalized to 1000|take the top K = 100 by intensity descending|no Debye-Waller temperature factor

Therefore peak positions/intensities are computed values and have systematic deviations from experimental cards (ICDD PDF) (high-angle lines too strong). Sufficient for phase identification; for quantitative analysis you must calibrate yourself.

Build information

Database Build date Time workers Manifest rows Ingested skip
Inorg 2026-10-21 531.7 s 8 79,198 77,500 1,698 (2.14%)
Full 2026-10-21 18,176 s ≈ 5.05 h 8 535,166 521,361 13,805 (2.58%)

All skips are classifiable: no_sites (no atomic sites), no_pattern (expansion/calculation error), volume_too_large (cell > 30,000 ų), no_volume (no cell volume); details in meta.build.skip_reasons.

Known gaps

  • entries.density is 100% NULL in both databases: the build_dbs.formula_mass() called by build_polydb.py does not actually exist; the exception is swallowed by try/except and writes None. It affects the density column in PolyXRD's candidate list, but does not affect peak positions, search, or refinement. Once the atomic-weight table is added, only index.sqlite needs rebuilding; no need to recompute peaks.
  • entries.tier / dup_group are all 0: no "experimentally measured / theoretically predicted" tiering, and no merging of duplicate phases, so multiple duplicates of the same phase appear together in search results.
  • Array-segment row numbers must come from entries.row_idx, must not use eid-1 (COD numbers start at 1,000,000; the two are unequal across the entire database).

The data source is Crystallography Open Database. CIF content copyright belongs to COD and the authors of the original literature; when using it please comply with COD's terms and cite COD and the corresponding literature. This repository distributes only derived indexes (peak positions/intensities/sites); it does not rewrite or replace the original CIFs. For the build code and field-level specification see the repository README and polyDB v1 format specification (Chinese).