[Mne_analysis] Strange errors with calculating source estimates in a frequency band

Silfverberg Sebastian sebastian.silfverberg at aalto.fi
Thu Jul 31 02:14:38 EDT 2014
Search archives:

Hi everyone!

I have been trying to code a program that would enable to plot user selectable time windows of averaged source estimates in a certain frequency band in real time with FieldTrip Buffer. I'm now trying to simulate that in offline mode with looping through the epochs.get_data() and then building an Epoch from a single epoch with EpochsArray (because that's the way the real time sytem works). I  end up with a couple of odd errors using compute_source_psd_epochs depending on how long my time window is. If my time window is shorter than 10 seconds, my error is this:

/usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
    173             else:
    174                 filename = fname
--> 175             __builtin__.execfile(filename, *where)

/home/silfves1/mne-python/examples/omatfunktiot/jatk_off.py in <module>()
    380
    381
--> 382         stc = compute_source_psd_epochs(epochs=ep, inverse_operator=inverse_operator, lambda2=lambda2, method=method, fmin=15.0, fmax=25.0, pick_ori=None, pca=True, bandwidth=bandwidth, n_jobs=10, return_generator=False)
    383
    384

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/minimum_norm/time_frequency.pyc in compute_source_psd_epochs(epochs, inverse_operator, lambda2, method, fmin, fmax, pick_ori, label, nave, pca, inv_split, bandwidth, adaptive, low_bias, return_generator, n_jobs, verbose, pick_normal)

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/utils.pyc in verbose(function, *args, **kwargs)
    549         return ret
    550     else:
--> 551         ret = function(*args, **kwargs)
    552         return ret
    553

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/minimum_norm/time_frequency.pyc in compute_source_psd_epochs(epochs, inverse_operator, lambda2, method, fmin, fmax, pick_ori, label, nave, pca, inv_split, bandwidth, adaptive, low_bias, return_generator, n_jobs, verbose, pick_normal)
    669         # return a list

    670         stcs = list()
--> 671         for stc in stcs_gen:
    672             stcs.append(stc)
    673

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/minimum_norm/time_frequency.pyc in _compute_source_psd_epochs(epochs, inverse_operator, lambda2, method, fmin, fmax, pick_ori, label, nave, pca, inv_split, bandwidth, adaptive, low_bias, n_jobs, verbose)
    519
    520     dpss, eigvals = dpss_windows(n_times, half_nbw, n_tapers_max,
--> 521                                  low_bias=low_bias)
    522     n_tapers = len(dpss)
    523

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/time_frequency/multitaper.pyc in dpss_windows(N, half_nbw, Kmax, low_bias, interp_from, interp_kind)
    202         # only calculate the highest Kmax eigenvalues

    203         w = linalg.eigvals_banded(ab, select='i',
--> 204                                   select_range=(N - Kmax, N - 1))
    205         w = w[::-1]
    206

/usr/lib/python2.7/dist-packages/scipy/linalg/decomp.pyc in eigvals_banded(a_band, lower, overwrite_a_band, select, select_range)
    698     return eig_banded(a_band, lower=lower, eigvals_only=1,
    699                       overwrite_a_band=overwrite_a_band, select=select,
--> 700                       select_range=select_range)
    701
    702 _double_precision = ['i','l','d']

/usr/lib/python2.7/dist-packages/scipy/linalg/decomp.pyc in eig_banded(a_band, lower, eigvals_only, overwrite_a_band, select, select_range, max_ev)
    490             vl, vu, il, iu = 0.0, 0.0, min(select_range), max(select_range)
    491             if min(il, iu) < 0 or max(il, iu) >= a1.shape[1]:
--> 492                 raise ValueError('select_range out of bounds')
    493             max_ev = iu - il + 1
    494         else:  # 1, 'v', 'value'

ValueError: select_range out of bounds


However, if my time window is 10 seconds, here's the error then:

error                                     Traceback (most recent call last)
/usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
    173             else:
    174                 filename = fname
--> 175             __builtin__.execfile(filename, *where)

/home/silfves1/mne-python/examples/omatfunktiot/jatk_off.py in <module>()
    380
    381
--> 382         stc = compute_source_psd_epochs(epochs=ep, inverse_operator=inverse_operator, lambda2=lambda2, method=method, fmin=15.0, fmax=25.0, pick_ori=None, pca=True, bandwidth=bandwidth, n_jobs=10, return_generator=False)
    383
    384

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/minimum_norm/time_frequency.pyc in compute_source_psd_epochs(epochs, inverse_operator, lambda2, method, fmin, fmax, pick_ori, label, nave, pca, inv_split, bandwidth, adaptive, low_bias, return_generator, n_jobs, verbose, pick_normal)

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/utils.pyc in verbose(function, *args, **kwargs)
    549         return ret
    550     else:
--> 551         ret = function(*args, **kwargs)
    552         return ret
    553

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/minimum_norm/time_frequency.pyc in compute_source_psd_epochs(epochs, inverse_operator, lambda2, method, fmin, fmax, pick_ori, label, nave, pca, inv_split, bandwidth, adaptive, low_bias, return_generator, n_jobs, verbose, pick_normal)
    669         # return a list

    670         stcs = list()
--> 671         for stc in stcs_gen:
    672             stcs.append(stc)
    673

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/minimum_norm/time_frequency.pyc in _compute_source_psd_epochs(epochs, inverse_operator, lambda2, method, fmin, fmax, pick_ori, label, nave, pca, inv_split, bandwidth, adaptive, low_bias, n_jobs, verbose)
    545
    546         # compute tapered spectra in sensor space

--> 547         x_mt, freqs = _mt_spectra(data, dpss, sfreq)
    548
    549         if k == 0:

/home/silfves1/.local/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/time_frequency/multitaper.pyc in _mt_spectra(x, dpss, sfreq, n_fft)
    439     # remove mean (do not use in-place subtraction as it may modify input x)

    440     x = x - np.mean(x, axis=-1)[:, np.newaxis]
--> 441     x_mt = fftpack.fft(x[:, np.newaxis, :] * dpss, n=n_fft)
    442
    443     # only keep positive frequencies


/usr/lib/python2.7/dist-packages/scipy/fftpack/basic.pyc in fft(x, n, axis, overwrite_x)
    213
    214     if axis == -1 or axis == len(tmp.shape) - 1:
--> 215         return work_function(tmp,n,1,0,overwrite_x)
    216
    217     tmp = swapaxes(tmp, axis, -1)

error: failed in converting 1st argument `x' of _fftpack.zrfft to C/Fortran array

I don't know, why these error come up. Do some of you have any ideas to help? Thank you so much!

Best regards

Sebastian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20140731/55d6286b/attachment.html 


More information about the Mne_analysis mailing list