[Mne_analysis] Strange errors with calculating source estimates in a frequency band
Mainak Jas
mainakjas at gmail.com
Thu Jul 31 05:22:58 EDT 2014
Hi Sebastian,
It seems to me that you are somehow iterating over the epochs and stc
objects incorrectly. You do not need to use EpochsArray because you can
iterate over the Epochs object directly (same with RtEpochs I think). For
stc, if you have a single epoch, can you check if your iterations are
correct?
A small code snippet / gist that reproduces this issue would be great.
Mainak
On Thu, Jul 31, 2014 at 9:14 AM, Silfverberg Sebastian <
sebastian.silfverberg at aalto.fi> wrote:
> 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
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>
>
> The information in this e-mail is intended only for the person to whom it
> is
> addressed. If you believe this e-mail was sent to you in error and the
> e-mail
> contains patient information, please contact the Partners Compliance
> HelpLine at
> http://www.partners.org/complianceline . If the e-mail was sent to you in
> error
> but does not contain patient information, please contact the sender and
> properly
> dispose of the e-mail.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20140731/6a3e4a79/attachment.html
More information about the Mne_analysis
mailing list