NMR-Solver: Automated Structure Elucidation via Large-Scale Spectral Matching and Physics-Guided Fragment Optimization
This project integrates large-scale spectral matching with physics-guided fragment optimization, providing a powerful framework for automated molecular structure elucidation from 1H and 13C NMR spectra.
NMR-Solver has been formally published in Nature Communications:
- [2026-04] NMR-Solver: automated structure elucidation via large-scale spectral matching and physics-guided fragment optimization
A practical and interpretable framework for automated small-molecule structure elucidation from 1H and 13C NMR spectra.
Related team work:
- [2026-01] NMRNet++. From Human Labels to Literature: Semi-Supervised Learning of NMR Chemical Shifts at Scale
A chemical shift prediction model trained with large-scale unassigned NMR data, solvent information, and support for multiple heteroatoms. - [2025-12] NMRexp: A database of 3.3 million experimental NMR spectra
A large-scale literature-derived experimental NMR database covering 3.3 million spectra across multiple nuclei. - [2025-03] NMRNet. Toward a unified benchmark and framework for deep learning-based prediction of nuclear magnetic resonance chemical shifts
A unified benchmark and NMRNet framework for deep learning-based chemical shift prediction.
For the most seamless experience, try our web-based application directly without any installation:
Hosted on the Bohrium platform, NMR-Toolbox offers an intuitive interface for:
- NMR Database Search
- Structure Elucidation from NMR
- Chemical Shift Prediction & Spectral Matching
The processed dataset (373 GB) and database index (128 GB) for the SimNMR-PubChem Database are available on Hugging Face. Please place them in the database directory.
Pre-trained model weights and evaluation datasets can be downloaded on Zenodo. Please place them in the model and data directories respectively.
Two installation options are available: source install and Docker.
conda create -n nmr-solver -y python=3.10
conda activate nmr-solver
pip install torch==2.5.1 --index-url https://download.pytorch.org/whl/cu121
pip install --no-build-isolation -r requirements.txt# Pull the latest Docker image
docker pull yqjin/nmr_solver:0.0.1
# Run the container interactively
docker run -it --rm yqjin/nmr_solver:0.0.1
# Or run with volume mounting for your data
docker run -it --rm -v /path/to/your/data:/workspace/data yqjin/nmr_solver:0.0.1This Docker image includes all necessary dependencies and a pre-configured environment for running NMR-Solver.
To deploy the SimNMR-PubChem Database, run the following command:
python src/faiss_server/server.pyThen update the server configuration in config.yaml to point to your server address.
Modify the configuration file config/demo.yaml as needed.
To run the algorithm, use the following command:
sh scripts/run.sh demoFor evaluation, use:
sh scripts/eval.sh demo-
GitHub Issues
For bug reports, feature requests, or technical questions, please open an issue on our GitHub repository. -
E-mail
For collaboration inquiries, commercial licensing, or in-depth communication with our development team, please contact us at: jinyongqi@dp.tech
Please kindly cite our paper if you use this codebase:
@article{jin2026nmrsolver,
title={NMR-Solver: Automated Structure Elucidation via Large-Scale Spectral Matching and Physics-Guided Fragment Optimization},
author={Jin, Yongqi and Wang, Jun-Jie and Xu, Fanjie and Ji, Xiaohong and Gao, Zhifeng and Zhang, Linfeng and Ke, Guolin and Zhu, Rong and E, weinan},
journal={Nature Communications},
year={2026},
doi={10.1038/s41467-026-71315-0},
url={https://doi.org/10.1038/s41467-026-71315-0}
}This project is licensed under the MIT License. See LICENSE for additional details.

