Note
Go to the end to download the full example code.
Förster resonance energy transfer: the inverse-sixth-power distance law#
Förster (1948) showed that an excited donor can hand its energy to a
nearby acceptor through dipole-dipole coupling at a rate
\(k_T=\tau_D^{-1}(R_0/r)^6\), so the transfer efficiency
\(E=1/(1+(r/R_0)^6)\) falls from nearly 1 to nearly 0 over a narrow
range around the Förster distance \(R_0\)
(forster_radius(),
forster_efficiency()). That steepness is
why FRET works as a “spectroscopic ruler” for distances of 1-10 nm.
import matplotlib.pyplot as plt
import numpy as np
from chemistrykit.photochem import forster_efficiency, forster_radius, forster_rate
R0 = forster_radius(kappa2=2 / 3, n=1.4, quantum_yield_donor=0.5, overlap_J=2.0e15) / 10.0 # nm
tau_D = 4.0e-9
print(f"Forster distance R0 = {R0:.2f} nm")
r = np.linspace(1.0, 12.0, 400)
E = forster_efficiency(r, R0)
fig, ax = plt.subplots()
ax.plot(r, E)
ax.axvline(R0, color="k", ls=":", label=rf"$R_0$ = {R0:.1f} nm, $E$ = 0.5")
ax.axvspan(0.5 * R0, 1.5 * R0, color="0.92", label=r"useful ruler range $0.5$-$1.5\,R_0$")
ax.set_xlabel("Donor-acceptor distance $r$ (nm)")
ax.set_ylabel("Transfer efficiency $E$")
ax.set_title(r"FRET efficiency $1/(1+(r/R_0)^6)$")
ax.legend()
fig.tight_layout()

Forster distance R0 = 4.98 nm
The donor lifetime shortens with transfer: tau_DA = 1/(1/tau_D + k_T), and 1 - tau_DA/tau_D reproduces E exactly.
r = 2.49 nm: E = 0.985, 1 - tau_DA/tau_D = 0.985
r = 4.98 nm: E = 0.500, 1 - tau_DA/tau_D = 0.500
r = 7.47 nm: E = 0.081, 1 - tau_DA/tau_D = 0.081
Total running time of the script: (0 minutes 0.041 seconds)