[Mne_analysis] Strange errors with calculating source estimates in a frequency band
Eric Larson
larson.eric.d at gmail.com
Thu Jul 31 16:31:54 EDT 2014
What are you using for `events`? It should have the same number of entries
as the number of epochs (1), I suspect it might not. (We should probably
add a check in mne-python that this is the case...)
Eric
On Thu, Jul 31, 2014 at 3:37 AM, Silfverberg Sebastian <
sebastian.silfverberg at aalto.fi> wrote:
> This next snippet is from the offline version I've been testing:
>
>
> for ii, data in enumerate(epochs.get_data()):
>
> # make the 2D epoch to 3D
>
> data = data[newaxis, ...]
>
> ep = EpochsArray(data=data, info=raw.info, events=events,
> tmin=0,event_id=event_id, reject=reject)
>
> 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)
>
> and the error comes in the last command.
>
> What is the best way to iterate over rt_epochs? rt.epochs.next()? I'm now
> doing just
>
> for ii, data in enumerate(rt_epochs):
>
>
> Sebastian
>
> ------------------------------
> *Lähettäjä:* mne_analysis-bounces at nmr.mgh.harvard.edu [
> mne_analysis-bounces at nmr.mgh.harvard.edu] käyttäjän Mainak Jas [
> mainakjas at gmail.com] puolesta
> *Lähetetty:* 31. heinäkuuta 2014 12:22
> *Vastaanottaja:* Discussion and support forum for the users of MNE
> Software
> *Aihe:* Re: [Mne_analysis] Strange errors with calculating source
> estimates in a frequency band
>
> 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.
>>
>>
>
> _______________________________________________
> 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/e7bd0ad8/attachment.html
More information about the Mne_analysis
mailing list