OxiGen: Oxidation-State-Aware Crystal Generation
Organizations: Department of Chemistry, Imperial College London · Department of Electrical and Electronic Engineering, Imperial College London
Abstract
Generative models have the potential to accelerate inorganic materials discovery by enabling inverse design, but generating experimentally realisable crystals remains challenging. Oxidation states are widely used to assess the compositional validity of crystals and guide inorganic materials discovery. While existing generative models for crystals can generate materials with charge-neutral oxidation-state assignments, they poorly reproduce the distributions of oxidation states observed in synthesised materials. To address this limitation, we propose OxiGen, an oxidation-state-aware crystal diffusion model that explicitly represents oxidation states during generation. OxiGen enforces global charge neutrality by construction using a structured output layer with exact inference over a finite-state automaton. Empirically, OxiGen substantially improves oxidation-state fidelity, generates the highest rate of stable, unique, and novel crystals among evaluated methods, and maintains high compositional validity even under property conditioning.
Figures & tables
| Method | Decoding | Charge Neutrality (%) | Site Accuracy (%) | Crystal Accuracy (%) |
|---|---|---|---|---|
| BVAnalyzer | – | 88.19 | 86.02 | |
| BERTOS | Argmax | 92.83\mbox{\pm 0.22} | 97.81\mbox{\pm 0.17} | 90.93\mbox{\pm 0.24} |
| Ours | Argmax | \underline{94.37}\mbox{\pm 0.26} | \underline{98.47}\mbox{\pm 0.10} | \underline{92.79}\mbox{\pm 0.18} |
| Viterbi | \mathbf{100.00}\mbox{\pm 0.00} | \mathbf{98.74}\mbox{\pm 0.09} | \mathbf{96.00}\mbox{\pm 0.25} |
| Method | Oxidation-State Fidelity | Stability & Relaxation | ||||
|---|---|---|---|---|---|---|
| Comp. Val. | S.U.N. | RMSD | ||||
| (%) | (%) | (%) | (eV/atom) | (Å) | ||
| MP-20-OS | 91.73 | 53.78 | – | – | – | – |
| DiffCSP | 78.47\mbox{\pm 2.55} | 35.67\mbox{\pm 1.05} | 0.1566\mbox{\pm 0.0037} | 18.24\mbox{\pm 1.38} | 0.2007\mbox{\pm 0.0101} | 0.3555\mbox{\pm 0.0427} |
| MatterGen | 81.18\mbox{\pm 0.94} | 37.89\mbox{\pm 1.02} | 0.1537\mbox{\pm 0.0039} | \underline{24.54}\mbox{\pm 0.91} | 0.1799\mbox{\pm 0.0085} | \underline{0.1747}\mbox{\pm 0.0203} |
| FlowMM | 79.87\mbox{\pm 0.20} | 37.34\mbox{\pm 0.65} | 0.1626\mbox{\pm 0.0037} | 13.85\mbox{\pm 0.39} | 0.2481\mbox{\pm 0.0104} | 0.6704\mbox{\pm 0.0347} |
| Representation | Structured Output Layer | Charge Neutrality | Comp. Val. | |||
|---|---|---|---|---|---|---|
| Training | Sampling | (%) | (%) | (%) | ||
| Element | ✗ | ✗ | – | 81.12\mbox{\pm 0.46} | 37.78\mbox{\pm 1.16} | 0.1589\mbox{\pm 0.0050} |
| Species | ✗ | ✗ | \underline{39.08}\mbox{\pm 2.60} | 82.31\mbox{\pm 0.77} | 40.54\mbox{\pm 1.29} | 0.1368\mbox{\pm 0.0047} |
| Species | ✗ | ✓ | \mathbf{100.00}\mbox{\pm 0.00} | \underline{90.65}\mbox{\pm 0.94} | \mathbf{53.01}\mbox{\pm 0.96} | \underline{0.0911}\mbox{\pm 0.0028} |
| Species | ✓ | ✓ | \mathbf{100.00}\mbox{\pm 0.00} | \mathbf{90.70}\mbox{\pm 0.67} | \underline{52.65}\mbox{\pm 0.76} | \mathbf{0.0874}\mbox{\pm 0.0029} |
Appendix figures & tables12 assets
Supplementary material from the paper’s appendix.
Appendix
| Stage | Train | Val. | Test | Total |
|---|---|---|---|---|
| MP-20 | 27,136 | 9,047 | 9,046 | 45,229 |
| Removed | ||||
| Outside vocabulary | 289 | 90 | 83 | 462 |
| Elemental non-metal | 55 | 20 | 10 | 85 |
| No feasible charge-neutral assignment | 1,003 | 359 | 327 | 1,689 |
| Chemically implausible assignment | 253 | 83 | 81 | 417 |
| (a) Architecture | ||
|---|---|---|
| Setting | BERTOS | CrystaliteOS |
| Hidden dimension | 120 | 128 |
| Transformer layers | 12 | 12 |
| Attention heads | 4 | 4 |
| MLP hidden dimension | 512 | 256 |
| Dropout | 0.1 | 0.1 |
| Structured Output Layer | Training Time | Sampling Time |
|---|---|---|
| (s/epoch) | (s/batch) | |
| ✗ | 78.797\mbox{\pm 0.101} | 309.527\mbox{\pm 4.923} |
| ✓ | 98.906\mbox{\pm 0.057} | 329.716\mbox{\pm 4.809} |
| Change (%) |
| Setting | Value |
|---|---|
| Hidden / atom / edge dimension | 512 / 512 / 512 |
| Interaction blocks | 4 |
| Cutoff | Å |
| Maximum neighbours | 50 |
| Optimiser | Adam |
| Learning rate |
| Setting | Value |
|---|---|
| Property embedding dimension | 512 |
| Null condition | Learned embedding |
| Fine-tuning mode | Full-model |
| Initialisation | Unconditional last epoch |
| Optimiser | Adam |
| Learning rate |
| Method | Stable | Unique | Novel | S.U.N. | RMSD | |
|---|---|---|---|---|---|---|
| (%) | (%) | (%) | (%) | (eV/atom) | (Å) | |
| DiffCSP | 43.34\mbox{\pm 1.29} | 95.80\mbox{\pm 0.58} | 71.58\mbox{\pm 1.57} | 18.24\mbox{\pm 1.38} | 0.2007\mbox{\pm 0.0101} | 0.3555\mbox{\pm 0.0427} |
| MatterGen | 46.11\mbox{\pm 3.17} | \underline{97.74}\mbox{\pm 0.49} | \mathbf{75.32}\mbox{\pm 2.72} | \underline{24.54}\mbox{\pm 0.91} | 0.1799\mbox{\pm 0.0085} | \underline{0.1747}\mbox{\pm 0.0203} |
| FlowMM | 36.04\mbox{\pm 0.83} | \mathbf{97.99}\mbox{\pm 0.21} | \underline{74.07}\mbox{\pm 1.01} | 13.85\mbox{\pm 0.39} | 0.2481\mbox{\pm 0.0104} | 0.6704\mbox{\pm 0.0347} |
| OMatG | 49.12\mbox{\pm 0.39} | 95.12\mbox{\pm 0.33} | 65.42\mbox{\pm 0.87} | 19.03\mbox{\pm 0.78} | 0.1831\mbox{\pm 0.0030} | 0.5244\mbox{\pm 0.0278} |
| Crystalite | \mathbf{67.17}\mbox{\pm 2.18} | 93.03\mbox{\pm 0.91} | 52.25\mbox{\pm 2.61} | 22.83\mbox{\pm 0.76} | \mathbf{0.1437}\mbox{\pm 0.0083} | 0.2496\mbox{\pm 0.0198} |
| Method | Validity | Coverage | Distribution | |||
|---|---|---|---|---|---|---|
| Comp. (%) | Struct. (%) | Cov-R (%) | Cov-P (%) | wdist | wdist | |
| DiffCSP | 87.29\mbox{\pm 1.97} | 99.89\mbox{\pm 0.05} | 99.58\mbox{\pm 0.05} | 99.70\mbox{\pm 0.10} | 0.2514\mbox{\pm 0.1340} | 0.5052\mbox{\pm 0.0557} |
| MatterGen | 88.71\mbox{\pm 0.64} | \underline{99.97}\mbox{\pm 0.04} | \mathbf{99.71}\mbox{\pm 0.08} | 99.69\mbox{\pm 0.07} | \mathbf{0.1416}\mbox{\pm 0.0576} | 0.2398\mbox{\pm 0.0791} |
| FlowMM | 87.58\mbox{\pm 0.17} | 91.80\mbox{\pm 0.86} | 99.27\mbox{\pm 0.11} | 98.83\mbox{\pm 0.18} | 1.3027\mbox{\pm 0.4222} | 0.1200\mbox{\pm 0.0125} |
| OMatG | 89.06\mbox{\pm 0.37} | 99.11\mbox{\pm 0.19} | 99.59\mbox{\pm 0.09} | \underline{99.83}\mbox{\pm 0.03} | 0.2672\mbox{\pm 0.0152} | \mathbf{0.0549}\mbox{\pm 0.0097} |
| Crystalite | \underline{89.12}\mbox{\pm 0.41} | 99.68\mbox{\pm 0.06} | \underline{99.67}\mbox{\pm 0.09} | \mathbf{99.87}\mbox{\pm 0.04} | \underline{0.1541}\mbox{\pm 0.0266} | \underline{0.1151}\mbox{\pm 0.0190} |
| Model | Valid | Unique | Novel | Stable | Metastable | S.U.N. | M.S.U.N. | |
|---|---|---|---|---|---|---|---|---|
| (%) | (%) | (%) | (%) | (%) | (%) | (%) | (eV/atom) | |
| Pre-Relaxed Structures | ||||||||
| WyFormer | 93.4 | 93.0 | 66.4 | 0.5 | 15.7 | 0.1 | 1.9 | 0.4988 |
| PLaID++ | 96.0 | 77.8 | 24.2 | 12.4 | 60.7 | 1.0 | 7.6 | 0.0854 |
| WyFormer-DFT | 95.2 | 95.0 | 66.4 | 3.7 | 24.8 | 0.4 | 7.8 | 0.2708 |
| OMatG-FC | 97.2 | 92.8 | 28.9 | 18.4 | 57.9 | 1.7 | 12.0 | 0.0694 |
| Method | Stable | Unique | Novel | S.U.N. | RMSD | |
|---|---|---|---|---|---|---|
| (%) | (%) | (%) | (%) | (eV/atom) | (Å) | |
| Element ✗/✗ | 47.47\mbox{\pm 2.65} | \mathbf{97.48}\mbox{\pm 0.36} | \mathbf{74.68}\mbox{\pm 2.03} | 25.21\mbox{\pm 0.60} | 0.1709\mbox{\pm 0.0103} | 0.1728\mbox{\pm 0.0098} |
| Species ✗/✗ | 49.72\mbox{\pm 2.53} | \underline{97.28}\mbox{\pm 0.35} | \underline{73.20}\mbox{\pm 1.80} | \underline{26.08}\mbox{\pm 0.92} | \underline{0.1646}\mbox{\pm 0.0035} | \mathbf{0.1616}\mbox{\pm 0.0102} |
| Species ✗/✓ | \mathbf{52.59}\mbox{\pm 2.25} | 96.45\mbox{\pm 0.64} | 70.68\mbox{\pm 2.31} | \mathbf{26.38}\mbox{\pm 1.01} | \mathbf{0.1575}\mbox{\pm 0.0080} | \underline{0.1679}\mbox{\pm 0.0117} |
| Species ✓/✓ | \underline{50.35}\mbox{\pm 2.39} | 96.80\mbox{\pm 0.70} | 72.04\mbox{\pm 2.03} | 25.62\mbox{\pm 0.69} | 0.1696\mbox{\pm 0.0075} | 0.1853\mbox{\pm 0.0175} |
| Method | Charge Neutrality (%) | Site Agreement (%) | Crystal Agreement (%) |
|---|---|---|---|
| Element ✗/✗ | – | – | – |
| Species ✗/✗ | \underline{39.08}\mbox{\pm 2.60} | 74.45\mbox{\pm 1.84} | 33.57\mbox{\pm 2.29} |
| Species ✗/✓ | \mathbf{100.00}\mbox{\pm 0.00} | \mathbf{90.69}\mbox{\pm 0.81} | \mathbf{72.47}\mbox{\pm 1.40} |
| Species ✓/✓ | \mathbf{100.00}\mbox{\pm 0.00} | \underline{90.45}\mbox{\pm 0.39} | \underline{71.49}\mbox{\pm 1.32} |
| Method | Target | RMSE | Stable | Unique | Novel | S.U.N. | RMSD | |
|---|---|---|---|---|---|---|---|---|
| (eV) | (eV) | (%) | (%) | (%) | (%) | (eV/atom) | (Å) | |
| MatterGen | 1 | 1.116 | 49.32 | 99.02 | 82.42 | 33.59 | 0.1847 | 0.1961 |
| 3 | 1.724 | 45.90 | 98.93 | 83.98 | 31.05 | 0.1530 | 0.2684 | |
| 5 | 2.185 | 49.51 | 94.82 | 82.32 | 31.54 | 0.1513 | 0.3016 | |
| 7 | 2.622 | 55.37 | 86.82 | 84.18 | 35.16 | 0.1456 | 0.3338 | |
| OxiGen | 1 | 1.138 | 60.55 | 96.48 | 73.63 | 35.84 | 0.1489 | 0.1813 |