Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NMR-Solver: Automated Structure Elucidation via Large-Scale Spectral Matching and Physics-Guided Fragment Optimization

arXiv Nature Communications Hugging Face Zenodo Bohrium

Overview

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.

framework

FB-MO

Publication & Related Work

NMR-Solver has been formally published in Nature Communications:

Related team work:

Online App

For the most seamless experience, try our web-based application directly without any installation:

🚀 Try NMR-Toolbox on Bohrium

Hosted on the Bohrium platform, NMR-Toolbox offers an intuitive interface for:

  • NMR Database Search
  • Structure Elucidation from NMR
  • Chemical Shift Prediction & Spectral Matching

Setup

SimNMR-PubChem Database

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.

Models & Datasets

Pre-trained model weights and evaluation datasets can be downloaded on Zenodo. Please place them in the model and data directories respectively.

Environment

Two installation options are available: source install and Docker.

1. Source Install

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

2. Docker

# 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.1

This Docker image includes all necessary dependencies and a pre-configured environment for running NMR-Solver.

Usage

Deploy Database

To deploy the SimNMR-PubChem Database, run the following command:

python src/faiss_server/server.py

Then update the server configuration in config.yaml to point to your server address.

Run Demo

Modify the configuration file config/demo.yaml as needed.

To run the algorithm, use the following command:

sh scripts/run.sh demo

For evaluation, use:

sh scripts/eval.sh demo

Contact Us

  1. GitHub Issues
    For bug reports, feature requests, or technical questions, please open an issue on our GitHub repository.

  2. E-mail
    For collaboration inquiries, commercial licensing, or in-depth communication with our development team, please contact us at: jinyongqi@dp.tech

Citation

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}
}

License

This project is licensed under the MIT License. See LICENSE for additional details.

About

No description, website, or topics provided.

Resources

Stars

30 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages