- MNE version: 1.0.2
- MNE-connectivity version: 0.3
- Python version: 3.9
- Operating system: Windows 10
I wanted to use spectral_connectivity_time of mne-connectivity on my one-minute long intracerebral EEG data to compute coherence. However, I receive the following error message:
100%|██████████| : 78/78 [00:05<00:00, 13.11it/s]
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2.2\plugins\python-ce\helpers\pydev\pydevd.py", line 1483, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/user1/Documents/ccn/intracerebral/coherence_analysis/codes/main.py", line 50, in <module>
cohs = mne_connectivity.spectral_connectivity_time(epochs_onemin, names=None, method='coh', indices=None,
File "C:\Users\user1\Documents\ccn\intracerebral\coherence_analysis\codes\venv\lib\site-packages\mne_connectivity\spectral\time.py", line 223, in spectral_connectivity_time
conn = EpochSpectroTemporalConnectivity(
File "C:\Users\user1\Documents\ccn\intracerebral\coherence_analysis\codes\venv\lib\site-packages\mne_connectivity\base.py", line 1036, in __init__
super(EpochSpectroTemporalConnectivity, self).__init__(
File "C:\Users\user1\Documents\ccn\intracerebral\coherence_analysis\codes\venv\lib\site-packages\mne_connectivity\base.py", line 943, in __init__
super(SpectroTemporalConnectivity, self).__init__(
File "C:\Users\user1\Documents\ccn\intracerebral\coherence_analysis\codes\venv\lib\site-packages\mne_connectivity\base.py", line 414, in __init__
self._prepare_xarray(data, names=names, indices=indices,
File "C:\Users\user1\Documents\ccn\intracerebral\coherence_analysis\codes\venv\lib\site-packages\mne_connectivity\base.py", line 495, in _prepare_xarray
xarray_obj = xr.DataArray(
File "C:\Users\user1\Documents\ccn\intracerebral\coherence_analysis\codes\venv\lib\site-packages\xarray\core\dataarray.py", line 402, in __init__
coords, dims = _infer_coords_and_dims(data.shape, coords, dims)
File "C:\Users\user1\Documents\ccn\intracerebral\coherence_analysis\codes\venv\lib\site-packages\xarray\core\dataarray.py", line 152, in _infer_coords_and_dims
raise ValueError(
ValueError: conflicting sizes for dimension 'freqs': length 7 on the data but length 63 on coordinate 'freqs'
Here is my minimal code:
import mne
import numpy as np
import mne_connectivity
# read the edf file as a raw type
raw_edf = mne.io.read_raw_edf(input_fname='mydata-edf.edf')
# To obtain Epochs class without actually dividing my time-series data, I will create an Epochs
# object of size 60 seconds
epochs_onemin = mne.make_fixed_length_epochs(raw_edf, duration=60, preload=True)
# sampling rate of my data
fs = 200
# frequency bands of interest
fois = np.array([[0.5, 1], [1, 2], [2, 4], [4, 8], [8, 12], [12, 16], [16, 32]])
# frequencies of Continuous Morlet Wavelet Transform
freqs = np.arange(0.5, 32., 0.5)
# compute coherence
cohs = mne_connectivity.spectral_connectivity_time(epochs_onemin, names=None, method='coh', indices=None,
sfreq=fs, foi=fois, sm_times=0.5, sm_freqs=1, sm_kernel='hanning',
mode='cwt_morlet', mt_bandwidth=None, freqs=freqs, n_cycles=5)
I tried to debug to see the problem. As far as I understand, in “time.py” line 202, variable “conn” is initialized as a zeros numpy array of size n_epochs x n_pairs x n_freqs x len(times). Here, n_freqs is defined as the frequencies of interest. In my case, its length is equal to 7. But, later on, at line 223, to create “EpochSpectroTemporalConnectivity” class object, “freq” parameter given is equal to the frequencies of the time-frequency decomposition. In my case, the length of it is equal to 63. I suppose, the reason for this error is the incompetence between the size of frequencies defined while initializing variable “conn” and while creating the “EpochSpectroTemporalConnectivity” object from “conn”.
How can I fix this problem?