functional_connectivity#
- class braintools.metric.functional_connectivity(activities)#
Compute functional connectivity matrix from time series data.
Calculates the pairwise Pearson correlation coefficients between all pairs of signals to create a functional connectivity matrix. This is commonly used in neuroscience to assess statistical dependencies between different brain regions or neurons.
- Parameters:
activities (brainstate.typing.ArrayLike) – Time series data with shape
(num_time, num_signals)where each column represents a different signal/neuron/region.- Returns:
Functional connectivity matrix with shape
(num_signals, num_signals). Element (i,j) represents the correlation between signals i and j. Diagonal elements are 1.0. NaN values are replaced with 0.0.- Return type:
brainstate.typing.ArrayLike
Examples
>>> import jax.numpy as jnp >>> import braintools as braintools >>> # Generate correlated time series >>> t = jnp.linspace(0, 10, 100) >>> sig1 = jnp.sin(t) + 0.1 * jnp.random.normal(size=100) >>> sig2 = jnp.sin(t + 0.2) + 0.1 * jnp.random.normal(size=100) >>> activities = jnp.column_stack([sig1, sig2]) >>> fc_matrix = braintools.metric.functional_connectivity(activities) >>> print(f"Connectivity shape: {fc_matrix.shape}") >>> print(f"Correlation: {fc_matrix[0, 1]:.3f}")
Notes
The function uses
jnp.corrcoefinternally and handles NaN values by replacing them with 0.0 usingjnp.nan_to_num.For very short time series, correlations may be unreliable due to insufficient data points. Consider using longer recordings or smoothing techniques for more stable estimates.
See also
functional_connectivity_dynamicsTime-varying connectivity analysis
matrix_correlationCorrelation between connectivity matrices