Skip to content

elkins-lab/diff-fret

Repository files navigation

📏 diff-fret: Differentiable FRET Modeling in JAX

Tests License: MIT 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:

  • Open In Colab 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

  • 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:


📖 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

About

Differentiable FRET distance distribution modeling in JAX

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors