https://github.com/elkins-lab/diff-fret
Differentiable FRET distance distribution modeling in JAX
https://github.com/elkins-lab/diff-fret
biophysics differentiable-programming fret jax structural-biology
Last synced: 16 days ago
JSON representation
Differentiable FRET distance distribution modeling in JAX
- Host: GitHub
- URL: https://github.com/elkins-lab/diff-fret
- Owner: elkins-lab
- License: mit
- Created: 2026-06-04T23:00:57.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-12T17:58:02.000Z (about 1 month ago)
- Last Synced: 2026-06-12T21:32:41.631Z (about 1 month ago)
- Topics: biophysics, differentiable-programming, fret, jax, structural-biology
- Language: Python
- Homepage: https://elkins.github.io/diff-fret/
- Size: 615 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# 📏 diff-fret: Differentiable FRET Modeling in JAX
[](https://github.com/elkins/diff-fret/actions/workflows/test.yml)
[](https://opensource.org/licenses/MIT)
[](https://github.com/google/jax)
**diff-fret** provides high-performance, auto-differentiable kernels for modeling Fluorescence Resonance Energy Transfer (FRET) observables from structural ensembles.
---
## 🎯 Features
- **Differentiable Distance Distributions:** Compute donor-acceptor distance distributions ($P(r)$) from atomic coordinates.
- **Förster Theory Integration:** Map distances to FRET efficiency ($E$) using parameterizable Förster distances ($R_0$).
- **Orientation Uncertainty:** Calculate bounds for the orientation factor $\kappa^2$ using fluorescence anisotropy (Dale, Eisinger, & Blumberg, 1979).
- **Ensemble Averaging:** Native support for JAX `vmap` to average efficiency across conformational ensembles.
- **Hardware Acceleration:** Optimized for GPU/TPU execution via XLA.
---
## 📚 Tutorials
Experience **diff-fret** directly in your browser:
- [](https://colab.research.google.com/github/elkins/diff-fret/blob/main/examples/interactive_tutorials/fret_efficiency_tutorial.ipynb) **FRET Efficiency & Accessible Volumes** — Learn how to simulate Förster curves and perform AV simulations for flexible dyes.
---
## 🏗️ Technical Architecture
- **Backend:** JAX (XLA-compiled).
- **Kernels:** Vectorized distance and efficiency functions.
- **Differentiability:** Support for gradient descent refinement of probe positions or protein conformations.
---
## 🚀 Roadmap
- [x] Core Förster efficiency kernels.
- [x] Ensemble averaging support.
- [x] Orientation factor ($\kappa^2$) modeling (Dale–Eisinger–Blumberg bounds).
- [ ] Integration with dye rotamer libraries.
---
## 🚀 Installation
```bash
pip install diff-fret
```
## đź§Ş Scientific Validation
- **Förster Limit:** Efficiency kernels are verified to match the $1/(1 + (r/R_0)^6)$ analytical solution.
- **Auto-Diff Stability:** Reverse-mode gradients are tested for stability in the $r \approx R_0$ region.
- **Ensemble Benchmarks:** Average efficiency calculation validated against Monte Carlo simulations.
---
## đź”— Related Projects
diff-fret is part of the **differentiable biophysics** ecosystem:
- [diff-biophys](https://github.com/elkins/diff-biophys) — Core differentiable biophysics engine.
- [diff-hdx](https://github.com/elkins/diff-hdx) — Differentiable HDX-MS prediction.
- [diff-epr](https://github.com/elkins/diff-epr) — Differentiable EPR/DEER simulation.
- [synth-dynamics](https://github.com/elkins/synth-dynamics) — Protein dynamics simulation.
---
## đź“– Citation
```bibtex
@software{diff_fret,
author = {Elkins, George},
title = {diff-fret: Differentiable FRET modeling in JAX},
year = {2026},
url = {https://github.com/elkins/diff-fret},
version = {0.1.0}
}
```
## ⚖️ License
MIT