Differentiable EPR distance distribution modeling in JAX
Project description
📻 diff-epr: Differentiable EPR/DEER Simulation in JAX
diff-epr provides differentiable kernels for simulating EPR distance distributions (DEER/PELDOR) from structural ensembles and spin-label rotamers.
🎯 Features
- Spin-Label Modeling: Differentiable distance calculations between paramagnetic centers.
- Orientation Selection: Support for the Polyhach 5-angle formula (Polyhach et al., 2007) to model relative domain orientations.
- Time-Domain Simulation: Simulate DEER modulation traces $V(t)$ with parameterizable background decay and modulation depth.
- Rotamer Library Integration: Support for weighted rotamer averages in distance distribution calculations.
- Hardware Acceleration: GPU-optimized distance kernels via JAX.
📚 Tutorials
Experience diff-epr directly in your browser:
DEER Spectroscopy Simulation — Learn how to simulate time-domain traces from distance distributions and rotamer clouds.
🏗️ Technical Architecture
- Backend: JAX (XLA-compiled).
- Physics: Dipolar coupling frequency ($\omega$) based kernels.
- Performance: $O(N)$ scaling for distance distribution integration.
🚀 Roadmap
- Core DEER trace simulation kernels.
- Background decay and modulation depth parameters.
- Integration with MMM (Multi-Scale Modeling of Macromolecules) rotamer libraries.
- Full orientation-dependence support.
🚀 Installation
pip install diff-epr
🧪 Scientific Validation
- Dipolar Frequency Parity: Coupling frequencies verified against the Pake pattern $1/r^3$ dependence.
- Time-Domain Accuracy: DEER traces validated for parity against standard simulation tools (e.g., DeerAnalysis/MMM).
- Auto-Diff Gradients: Differentiable distance-to-signal kernels verified with JAX
grad.
🔗 Related Projects
diff-epr is part of the differentiable biophysics ecosystem:
- diff-biophys — Core differentiable biophysics engine.
- diff-hdx — Differentiable HDX-MS prediction.
- diff-fret — Differentiable FRET modeling.
- synth-nmr — NMR observable simulation.
📖 Citation
@software{diff_epr,
author = {Elkins, George},
title = {diff-epr: Differentiable EPR/DEER simulation in JAX},
year = {2026},
url = {https://github.com/elkins-lab/diff-epr},
version = {0.1.2}
}
⚖️ License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file diff_epr-0.1.2.tar.gz.
File metadata
- Download URL: diff_epr-0.1.2.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
991f78efcd93466edd5363f90f76a3f8247c069173833fee2a168bb1f1306f48
|
|
| MD5 |
fe79893ccd88d4dce75115d5a58a3a0f
|
|
| BLAKE2b-256 |
22185d456d48b6a049113c1079cbd05ac8a72b7385d69bb8f1d4488683ce6f0b
|
Provenance
The following attestation bundles were made for diff_epr-0.1.2.tar.gz:
Publisher:
publish.yml on elkins-lab/diff-epr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
diff_epr-0.1.2.tar.gz -
Subject digest:
991f78efcd93466edd5363f90f76a3f8247c069173833fee2a168bb1f1306f48 - Sigstore transparency entry: 2029161687
- Sigstore integration time:
-
Permalink:
elkins-lab/diff-epr@977629208a1d9f92fdebd0cf5452b6157e3ae540 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/elkins-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@977629208a1d9f92fdebd0cf5452b6157e3ae540 -
Trigger Event:
push
-
Statement type:
File details
Details for the file diff_epr-0.1.2-py3-none-any.whl.
File metadata
- Download URL: diff_epr-0.1.2-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f691db685eb36cfa94aa89a425509e4c5692ba80c92ced6c95ebc7f92a85ebc5
|
|
| MD5 |
1fe648657c815744014b01cc77709307
|
|
| BLAKE2b-256 |
78cdc3d096bd138b9ac3406e92e001cc7ee557a4a06297e82fafce2bc85ad896
|
Provenance
The following attestation bundles were made for diff_epr-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on elkins-lab/diff-epr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
diff_epr-0.1.2-py3-none-any.whl -
Subject digest:
f691db685eb36cfa94aa89a425509e4c5692ba80c92ced6c95ebc7f92a85ebc5 - Sigstore transparency entry: 2029161794
- Sigstore integration time:
-
Permalink:
elkins-lab/diff-epr@977629208a1d9f92fdebd0cf5452b6157e3ae540 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/elkins-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@977629208a1d9f92fdebd0cf5452b6157e3ae540 -
Trigger Event:
push
-
Statement type: