[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
Search archives:

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