spectral_connectivity.statistics.coherence_rate_adjustment#

coherence_rate_adjustment(firing_rate_condition1: float, firing_rate_condition2: float, spike_power_spectrum: ndarray[tuple[int, ...], dtype[floating]], homogeneous_poisson_noise: float = 0, dt: float = 1) ndarray[tuple[int, ...], dtype[floating]][source]#

Adjust spike-field coherence for different firing rates between conditions.

When comparing coherence between conditions with different firing rates, rate differences can cause coherence changes independent of coupling strength. This function computes adjustment factors to correct for firing rate differences.

Parameters:
  • firing_rate_condition1 (float) – Average firing rate in first condition (spikes/sec).

  • firing_rate_condition2 (float) – Average firing rate in second condition (spikes/sec).

  • spike_power_spectrum (NDArray[floating], shape (n_frequencies,)) – Power spectrum of spike train in condition 1.

  • homogeneous_poisson_noise (float, default=0) – Homogeneous Poisson noise parameter (beta in reference).

  • dt (float, default=1) – Time step size for discretization.

Returns:

rate_adjustment_factor – Multiplicative factors to adjust coherence from condition 1 to account for firing rate difference.

Return type:

NDArray[floating], shape (n_frequencies,)

Examples

>>> import numpy as np
>>> # Simulate power spectrum and firing rates
>>> freqs = np.linspace(1, 100, 50)
>>> power_spec = 1 / (1 + freqs**2)  # 1/f-like spectrum
>>> rate1, rate2 = 10.0, 15.0  # Different firing rates
>>>
>>> adjustment = coherence_rate_adjustment(rate1, rate2, power_spec)
>>> print(f"Adjustment range: {adjustment.min():.3f} to {adjustment.max():.3f}")

Notes

For spike-spike coherence comparisons, apply this adjustment twice, once for each spike train.

References

[1]

Aoi, M.C., Lepage, K.Q., Kramer, M.A., and Eden, U.T. (2015). Rate-adjusted spike-LFP coherence comparisons from spike-train statistics. Journal of Neuroscience Methods 240, 141-153.