functional_connectivity_dynamics

functional_connectivity_dynamics#

class braintools.metric.functional_connectivity_dynamics(activities, window_size=30, step_size=5)#

Compute functional connectivity dynamics (FCD) matrix.

Functional Connectivity Dynamics (FCD) captures the temporal evolution of functional connectivity by computing connectivity matrices over sliding windows and then measuring correlations between these matrices. This provides insights into how network connectivity patterns change over time.

Parameters:
  • activities (brainstate.typing.ArrayLike) – Time series data with shape (num_time, num_signals).

  • window_size (int, default=30) – Size of each sliding window in time steps. Larger windows provide more stable connectivity estimates but lower temporal resolution.

  • step_size (int, default=5) – Step size between consecutive windows. Smaller steps provide higher temporal resolution but more computational cost.

Returns:

FCD matrix of shape (num_windows, num_windows) measuring correlations between connectivity patterns across different time windows.

Return type:

brainstate.typing.ArrayLike

Notes

FCD computation steps:

  1. Compute FC matrices for sliding windows (Pearson correlations)

  2. Vectorize upper triangular elements of each FC matrix (exclude diagonal)

  3. Compute Pearson correlations between these vectors across windows

Examples

>>> import jax.numpy as jnp
>>> import braintools as braintools
>>> import brainstate as brainstate
>>> activities = brainstate.random.rand(200, 10)
>>> fcd = braintools.metric.functional_connectivity_dynamics(activities)