Upload structure (.xyz, .extxyz, .cell, .scf.out, .cif, POSCAR)
*requires relaxed geometries
About ShiftML
ShiftML is an umbrella term for fast and accurate machine-learning models that predict chemical shieldings in organic solids. ShiftML has been developed jointly between the COSMO and Laboratory of Magnetic Resonance (LRM) laboratories at EPFL.
This web app is a browser front-end for the open-source
shiftml
Python package — the same models, run on our servers. If you want to
predict shieldings for many structures, or script around them, install
the package instead: pip install shiftml.
Two models are currently available; choose between them in the Model dropdown above. Both are committees (ensembles) of point–edge–transformer (PET) deep-learning models, both predict full chemical shielding tensors as well as isotropic chemical shieldings, and both cover the same 12 elements:
- H
- C
- N
- O
- S
- F
- P
- Cl
- Na
- Ca
- Mg
- K
What differs is the reference level of theory they were trained to reproduce, and therefore the level your predictions should be compared against:
| ShiftML4 default | ShiftML3 | |
|---|---|---|
| Reference data | PBE0 molecularly corrected GIPAW-PBE | GIPAW-PBE |
| Training set | 1.2 million shieldings / 12 600 crystals | 1.4 million shieldings / 14 000 crystals |
| DFT RMSE 1H | 0.40 ppm | 0.43 ppm |
| DFT RMSE 13C | 2.22 ppm | 2.32 ppm |
| Exp. RMSE* 1H | 0.51 ppm | 0.53 ppm |
| Exp. RMSE* 13C | 1.67 ppm | 2.44 ppm |
| Reference | preprint [2] | preprint, publication [1] |
* on PBE-D geometries.
The two DFT RMSE columns are each measured against that model's own hold-out set and reference level, so they are not a like-for-like comparison. On one and the same hold-out set evaluated against GIPAW-PBE data, ShiftML4 reaches 0.40 ppm (1H) and 2.22 ppm (13C) versus 0.42 ppm and 2.24 ppm for ShiftML3.
How to cite ShiftML
If you use ShiftML3 through the ShiftML web app, please cite the ShiftML3 model paper:
[1] Kellner, M., Holmes, J. B., Rodriguez-Madrid, R., Viscosi, F., Zhang, Y., Emsley, L., & Ceriotti, M. (2025). A deep learning model for chemical shieldings in molecular organic solids including anisotropy. The Journal of Physical Chemistry Letters, 16, 8714–8722.
If you use ShiftML4 through the ShiftML web app, please cite the ShiftML4 model preprint:
[2] Kellner, M., Rodriguez-Madrid, R., Holmes, J. B., Unzueta, P. A., Beran, G. J. O., Emsley, L., & Ceriotti, M. (2026). Machine-learned NMR shieldings in molecular solids with built-in hybrid-functional molecular corrections. arXiv:2608.21313.
Please consider also citing the reference in which the training data for ShiftML3 was generated:
[3] Cordova, M., Engel, E. A., Stefaniuk, A., Paruzzo, F., Hofstetter, A., Ceriotti, M., & Emsley, L. (2022). A machine learning model of chemical shifts for chemically and structurally diverse molecular solids. The Journal of Physical Chemistry C, 126(39), 16710–16720.
If you are feeling generous, consider also citing the following references that trace the history of ShiftML:
[4] Engel, E. A., Anelli, A., Hofstetter, A., Paruzzo, F., Emsley, L., & Ceriotti, M. (2019). A Bayesian approach to NMR crystal structure determination. Physical Chemistry Chemical Physics, 21(42), 23385–23400.
[5] Paruzzo, F. M., Hofstetter, A., Musil, F., De, S., Ceriotti, M., & Emsley, L. (2018). Chemical shifts in molecular solids by machine learning. Nature Communications, 9(1), 4501.
ShiftML – FAQ
Which model should I pick, ShiftML4 or ShiftML3?
If you are comparing against experiment, use ShiftML4 — the default here. Both models cover the same 12 elements and predict the same quantities, but they were trained to reproduce different levels of theory: ShiftML4 targets PBE0 molecularly corrected GIPAW-PBE data, ShiftML3 targets GIPAW-PBE data. That hybrid-functional correction shows up directly in the agreement with experimental shifts, where ShiftML4 reaches an RMSE of 1.67 ppm on 13C against 2.44 ppm for ShiftML3 (0.51 vs 0.53 ppm on 1H), on PBE-D geometries.
Pick ShiftML3 if you are benchmarking against your own GIPAW-PBE calculations, or reproducing earlier ShiftML3 results. See About ShiftML above for the full comparison.
Predictions aren’t identical for magnetically equivalent atoms. Why?
ShiftML3 and ShiftML4 are built on the Point Edge Transformer (PET) model, which is not perfectly rotationally invariant. This can introduce tiny, random differences for atoms that are magnetically equivalent. We have verified that these fluctuations are minor and do not harm overall accuracy.
The model shows large errors versus my GIPAW-DFT shieldings. What’s going on?
Chemical-shielding calculations are very sensitive to the code and convergence parameters used. Only compare the model to GIPAW-DFT data generated with exactly the same settings as its training set — and make sure you are comparing against the right level of theory for the model you selected (see the first question).
Reference inputs for Quantum Espresso with the correct parameters are available in this Zenodo data repository.
I used identical GIPAW-DFT parameters but still see big errors. What now?
Check the model’s uncertainty estimates, obtained from the spread of the model committee. If the uncertainty is several × the element’s test-set RMSE, the prediction is probably unreliable for your structure. If the predicted model uncertainties exceed our internal threshold you will receive a warning on the results page.
My calculated shieldings don’t correlate with experiment at all. Why?
- Validate the baseline. Make sure reliable GIPAW/PBE results exist (or recompute them) and confirm they correlate with experiment. Inaccurate DFT—often the exchange–correlation functional—can be blamed.
- Check your structures. If candidate geometries don’t reflect experimental conditions or the inter-atomic potential used to generate structures is poor, both DFT and ML predictions will stray from reality.
What is the difference between shieldings (σ) and shifts (δ)?
The models predict absolute isotropic shieldings σ. Experimental shifts δ follow from a linear rescaling δ = a · σ + b, with per-nucleus constants that depend on the model and on how the reference structures were generated. Selecting Shifts (δ) above fills in our default regression constants, which you are free to overwrite with your own. Nuclei without a published regression default to a = 1, b = 0, i.e. no rescaling.
Can I run this myself, on many structures, or reproduce these numbers later?
Yes — this app is a front-end for the shiftml Python package (Python 3.10–3.13), which runs the identical models locally and has no structure-size limit:
pip install shiftml
from ase.io import read
from shiftml.ase import ShiftML
frame = read("my_structure.xyz")
calculator = ShiftML("ShiftML4")
cs_iso = calculator.get_cs_iso(frame)
Shielding predictions are tied to the package version, so record it
(pip freeze | grep shiftml) if you want to reproduce
results later. This app currently runs
shiftml 0.2.0.
My structure is too large, or contains an element the model doesn’t know. What can I do?
The web app accepts structures of up to 500 atoms built from the 12 supported elements. For larger systems, install the Python package and run it locally. If you are missing chemical elements, or have systems for which the model does not work well, please tell us — open an issue on the ShiftML GitHub repository so we can consider them for future models.
Funding
Grant IDs
-
Swiss National Science Foundation (SNSF)
200020_212046 -
NCCR MARVEL (SNSF)
182892 -
ERC Horizon 2020
101001890 (FIAMMA)
Searching for the old ShiftML-app?: https://shiftml-old.materialscloud.io/