[Mne_analysis] Index errors with PySurfer real-time source estimate visualization

Silfverberg Sebastian sebastian.silfverberg at aalto.fi
Wed Jul 23 01:32:48 EDT 2014
Search archives:

I have version 0.5 which I think is the newest version.
Lähettäjä: mne_analysis-bounces at nmr.mgh.harvard.edu [mne_analysis-bounces at nmr.mgh.harvard.edu] käyttäjän Denis-Alexander Engemann [denis.engemann at gmail.com] puolesta
Lähetetty: 22. heinäkuuta 2014 15:00
Vastaanottaja: Discussion and support forum for the users of MNE Software
Aihe: Re: [Mne_analysis] Index errors with PySurfer real-time source estimate visualization

Hi Sebastian,

before digging deeper,
which version of PySurfer are you using.
In my experience usually many problems dissolve with the latest PySurfer code.


On Tue, Jul 22, 2014 at 1:44 PM, Silfverberg Sebastian <sebastian.silfverberg at aalto.fi<mailto:sebastian.silfverberg at aalto.fi>> wrote:
Hi everyone!

I have been trying to code a program that would enable to plot trigger spesific source estimates in real time with FieldTrip Buffer. I have managed to do that, but I want to optimize it a little more. I would like the program to be able to plot the initial brain surface with PySurfer and then just add and remove estimates from the cortex when the buffer has received a next epoch. I'm using PySurfers Brain()-class and brain.add_data -method. But the brain.add_data -method doesn't work:

It always complains about index errors. I've noticed that the index error happens to be in vertices which have to be given in add_data method. Error is for example this:

IndexError                                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/yks_off.py in <module>()
    122                                  stc.tmin + stc.data.shape[1] * stc.tstep,
    123                                  stc.data.shape[1])
--> 124 brain.add_data(stc.data, colormap='hot', vertices = stc.vertno, smoothing_steps=20, time=time, time_label='Time 100.0 ms', hemi=hemi, remove_existing=True)
    126 # for ii, ev in enumerate(epochs.iter_evoked()):

/home/silfves1/.local/lib/python2.7/site-packages/pysurfer-0.5-py2.7.egg/surfer/viz.pyc in add_data(self, array, min, max, thresh, colormap, alpha, vertices, smoothing_steps, time, time_label, colorbar, hemi, remove_existing)
    835             adj_mat = utils.mesh_edges(self.geo[hemi].faces)
    836             smooth_mat = utils.smoothing_matrix(vertices, adj_mat,
--> 837                                                 smoothing_steps)
    838         else:
    839             smooth_mat = None

/home/silfves1/.local/lib/python2.7/site-packages/pysurfer-0.5-py2.7.egg/surfer/utils.pyc in dec(*args, **kwargs)
    337             return ret
    338         else:
--> 339             return function(*args, **kwargs)
    341     # set __wrapped__ attribute so ?? in IPython gets the right source

/home/silfves1/.local/lib/python2.7/site-packages/pysurfer-0.5-py2.7.egg/surfer/utils.pyc in smoothing_matrix(vertices, adj_mat, smoothing_steps, verbose)
    512     n_iter = smoothing_steps if smoothing_steps is not None else 1000
    513     for k in range(n_iter):
--> 514         e_use = e[:, idx_use]
    516         data1 = e_use * np.ones(len(idx_use))

/usr/lib/python2.7/dist-packages/scipy/sparse/csr.pyc in __getitem__(self, key)
    218                     return self._get_submatrix(row, col)      #[1:2,j]
    219                 else:
--> 220                     P = extractor(col,self.shape[1]).T        #[1:2,[1,2]]
    221                     return self[row,:]*P

/usr/lib/python2.7/dist-packages/scipy/sparse/csr.pyc in extractor(indices, N)
    186             indices = asindices(indices)
--> 188             (min_indx,max_indx) = check_bounds(indices,N)
    190             if min_indx < 0:

/usr/lib/python2.7/dist-packages/scipy/sparse/csr.pyc in check_bounds(indices, N)
    172             max_indx = indices.max()
    173             if max_indx >= N:
--> 174                 raise IndexError('index (%d) out of range' % max_indx)
    176             min_indx = indices.min()

IndexError: index (215242) out of range

I don't know how to fix this. Is the stc.vertno same thing as vertices? I've also tried to remove some indexes from stc.vertno, but it always complains about the ranks not being 1. Do you have any ideas to help me?

Best regards

Sebastian Silfveberg

Mne_analysis mailing list
Mne_analysis at nmr.mgh.harvard.edu<mailto:Mne_analysis at nmr.mgh.harvard.edu>

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/20140723/d2d856e5/attachment.html 

More information about the Mne_analysis mailing list