Differentiable FRET distance distribution modeling in JAX
Project description
📏 diff-fret: Differentiable FRET Modeling in 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
vmapto average efficiency across conformational ensembles. - Hardware Acceleration: Optimized for GPU/TPU execution via XLA.
🏗️ 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
- Core Förster efficiency kernels.
- Ensemble averaging support.
- Orientation factor ($\kappa^2$) modeling (Dale–Eisinger–Blumberg bounds).
- Integration with dye rotamer libraries.
🚀 Installation
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 — Core differentiable biophysics engine.
- diff-hdx — Differentiable HDX-MS prediction.
- diff-epr — Differentiable EPR/DEER simulation.
- synth-dynamics — Protein dynamics simulation.
📖 Citation
@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
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
diff_fret-0.1.0.tar.gz
(7.5 kB
view details)
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_fret-0.1.0.tar.gz.
File metadata
- Download URL: diff_fret-0.1.0.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2aa1209902872deb1a65acf26715d4efcf30d3a730277fad597a8fa48f23cfea
|
|
| MD5 |
2c315914d8f9a29d04ce2aa7f4602af1
|
|
| BLAKE2b-256 |
42a77e6d3b36a1266ea713a87a973ed0da39565ed449a7bbb1016905ef532ec5
|
File details
Details for the file diff_fret-0.1.0-py3-none-any.whl.
File metadata
- Download URL: diff_fret-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7fb62cf6e4b8212316c6418f56bd11388a308f089e13da03f71ab890b710ccdd
|
|
| MD5 |
c28cb8f61852d9b6b5272cf60b95f977
|
|
| BLAKE2b-256 |
51a6a9782aef52a863ca718a077419d19599af888eab990652a1cb8c58d1389d
|