What’s new#

v0.4.6#

Bug fixes#

  • Fix frites.conn.conn_spec() in multitaper mode : the cross- and auto-spectra are now averaged over tapers (the complex coefficients used to be averaged before, cancelling most of the signal). Coherence and PLV values change for every multitaper user (brainets/frites#69)

  • Fix the hanning smoothing kernel of frites.conn.conn_spec() (sm_times of 2 samples gave a NaN output, 3 samples no smoothing) (brainets/frites#69)

  • The cross-spectrum (metric='sxy') of frites.conn.conn_spec() is now complex (the imaginary part used to be silently dropped) (brainets/frites#69)

  • frites.conn.conn_spec() sets zero_mean=False explicitly in the time-frequency decomposition : mne changed its default to True, which silently changed the results between mne versions (brainets/frites#70)

  • frites.set_mpl_style() no longer depends on pkg_resources (absent from Python >= 3.12 environments) (brainets/frites#70)

  • Remove the np.in1d compatibility shim added in v0.4.5 : no supported mne release uses np.in1d and the shim modified the NumPy namespace globally

  • frites.stats.trial_swap_surrogates() ignored its random_state (the trials were shuffled with the global random generator) ; surrogates are now reproducible

  • New random_state parameter for frites.simulations.sim_local_ccd_ms() (the conditions were drawn from the global random generator)

  • The copula normalization (frites.core.copnorm_nd() and the GCMI estimators built on it) now raises a ValueError on NaN values instead of silently ranking them and returning a finite, meaningless mutual information

  • frites.workflow.WfMi and frites.workflow.WfConnComod raise an explicit ValueError when n_perm=0 is combined with a permutation-based correction (used to fail with a bare AssertionError) ; use mcp='noperm' to only compute the mutual information

  • frites.conn.conn_reshape_undirected() and frites.conn.conn_reshape_directed() no longer rely on deprecated xarray behaviours (xr.concat default coords and implicit pandas.MultiIndex promotion) that were about to change their results

  • frites.conn.conn_spec() no longer parallelizes both the time-frequency decomposition and the loop over pairs (nested parallelism oversubscribed the CPU with the default n_jobs=-1)

  • frites.plot.plot_conn_circle() uses Colormap.with_extremes (set_bad is pending deprecation in matplotlib)

Dependencies#

  • Python >= 3.10 is now required (python_requires) ; the continuous integration matrix moved from Python 3.8/3.9 to 3.10/3.11/3.12

  • Tested against mne 1.5 up to 1.13 (mne >= 1.13 requires Python >= 3.11) and NumPy 2.x up to 2.5

  • Documentation build : sphinxcontrib-bibtex >= 2.6 and sphinx >= 7.4 (brainets/frites#70)

  • xarray >= 2023.8 (xarray.Coordinates.from_pandas_multiindex)

v0.4.5#

Bug fixes#

v0.4.4#

New Features#

Bug fixes#

v0.4.3#

New Features#

Bug fixes#

v0.4.2#

New Features#

Internal changes#

  • Do not allow anymore to add new keys to the CONFIG dict (brainets/frites)

v0.4.1#

New Features#

Bug fixes#

v0.4.0#

New Features#

Bug fixes#

v0.3.9#

New Features#

Internal Changes#

Bug fixes#

v0.3.8#

New Features#

Internal Changes#

Breaking changes#

Bug fixes#

v0.3.6#

New Features#

Internal Changes#

v0.3.5#

New Features#

Internal Changes#

  • DataArray now contain a name such as a type to make it clear what is it (brainets/frites)

  • sigma parameter when performing the t-test can be changed though the CONFIG file (brainets/frites)

Bug fixes#

  • Fix ttested attribute when saving (brainets/frites)

  • Fix computing the sigma across all ROI since it uses the maximum over every axes (brainets/frites)

  • Fix high RAM consumption when computing the pop_mean_surr (brainets/frites)


v0.3.4#

Bug fixes#

Breaking changes#

New Features#

Internal Changes#


v0.3.3#

Internal Changes#

New Features#

Bug fixes#


v0.3.2#

Breaking changes#

Internal Changes#

New Features#

Documentation#


v0.3.1#

Breaking changes#

New Features#

Bug fixes#

Internal Changes#

Documentation#