Upload structure (.xyz, .extxyz, .cell, .scf.out, .cif, POSCAR)

*requires relaxed geometries

Applies to uploaded structures. The examples below always run ShiftML4.

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.

Disclaimer: as with all machine-learning models, ShiftML models should be used within their domain of applicability and in a cautious manner. Watch the uncertainty estimates — this app warns you when they exceed our internal threshold for an environment.
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.

Tip — get identical shielding predictions: Average the predictions over all magnetically equivalent atoms.

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?

  1. 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.
  2. 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
Developed at École polytechnique fédérale de Lausanne (EPFL)

Grant IDs

  • SNSF logo Swiss National Science Foundation (SNSF) 200020_212046
  • NCCR MARVEL logo NCCR MARVEL (SNSF) 182892
  • ERC logo ERC Horizon 2020 101001890 (FIAMMA)

Searching for the old ShiftML-app?: https://shiftml-old.materialscloud.io/