Metadata-Version: 2.4
Name: synth-nmr
Version: 0.11.2
Summary: NMR spectroscopy calculations for protein structures
Author: George Elkins
License: MIT
Project-URL: Homepage, https://github.com/elkins/synth-nmr
Project-URL: Repository, https://github.com/elkins/synth-nmr
Project-URL: Documentation, https://elkins.github.io/synth-nmr/
Keywords: nmr,spectroscopy,protein,structural biology,computational chemistry
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Chemistry
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20
Requires-Dist: biotite>=0.35.0
Provides-Extra: performance
Requires-Dist: numba>=0.55.0; extra == "performance"
Provides-Extra: trajectory
Requires-Dist: mdtraj>=1.9.0; extra == "trajectory"
Provides-Extra: ml
Requires-Dist: torch>=2.0.0; extra == "ml"
Requires-Dist: torch-geometric>=2.3.0; extra == "ml"
Requires-Dist: scikit-learn>=1.0.0; extra == "ml"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Dynamic: license-file

# 🧬 synth-nmr: NMR Spectroscopy Simulation

[![PyPI version](https://img.shields.io/pypi/v/synth-nmr.svg)](https://pypi.org/project/synth-nmr/)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/synth-nmr.svg)](https://pypi.org/project/synth-nmr/)
[![Tests](https://github.com/elkins/synth-nmr/actions/workflows/test.yml/badge.svg)](https://github.com/elkins/synth-nmr/actions/workflows/test.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

`synth-nmr` provides high-performance biophysical kernels for simulating NMR spectroscopy observables from 3D protein structures.

---

### 🧪 For Structural Biologists
*   **Full Observables Suite:** Calculate Chemical Shifts, RDCs (Residual Dipolar Couplings), NOEs, and J-Couplings from any PDB or MD trajectory.
*   **Scientific Accuracy:** Validated against experimental data and reference suites like SHIFTX2 and PALES.

### 🤖 For Machine Learning Geeks
*   **Fast Forward Kernels:** Highly optimized NumPy/Numba implementation for large-scale data processing.
*   **Differentiable Support:** Designed for seamless integration with `diff-biophys` for gradient-based structural refinement.

---

## 🚀 Supported Observables

*   **Chemical Shifts:** Random coil, secondary structure effects, and ring currents.
*   **RDCs:** Alignment tensor fitting and Q-factor calculation.
*   **Relaxation:** $R_1$, $R_2$, and NOE rates using Model-Free formalism.

## 📦 Installation

```bash
pip install synth-nmr
```

## 📜 License

Distributed under the MIT License. See `LICENSE` for more information.
