# # Our electrodes are shown after being morphed to fsaverage brain so we'll use # this fsaverage brain to plot the locations of our electrodes. We'll use # :func:`~mne.viz.snapshot_brain_montage` to save the plot as image data # (along with xy positions of each electrode in the image), so that later # we can plot frequency band power on top of it. fig = plot_alignment(raw.info, subject='fsaverage', subjects_dir=subjects_dir, surfaces=['pial'], coord_frame='mri') az, el, focalpoint = 160, -70, [0.067, -0.040, 0.018] mne.viz.set_3d_view(fig, azimuth=az, elevation=el, focalpoint=focalpoint) xy, im = snapshot_brain_montage(fig, raw.info) ############################################################################### # Compute frequency features of the data # -------------------------------------- # # Next, we'll compute the signal power in the gamma (30-90 Hz) band, # downsampling the result to 10 Hz (to save time). sfreq = 10 gamma_power_t = evoked.copy().filter( 30, 90).apply_hilbert(envelope=True).resample(sfreq) gamma_info = gamma_power_t.info ############################################################################### # Visualize the time-evolution of the gamma power on the brain
# subjects_dir = '/home/gauthv/PycharmProjects/ecogAnalysis/' mlab_fig = get_mayavi_fig('../ecb43e/both_lowres.stl', trodes_mat) # path_data = mne.datasets.misc.data_path() + '/ecog/sample_ecog.mat' mat = loadmat(trodes_mat) ch_names = [x for x in epoch_arr[0].ch_names if 'GRID' in x] # elec = mat['elec'][:len(ch_names)] elec = mat['Grid'] ch_names = [x for x in epoch_arr[0].ch_names if 'GRID' in x] dig_ch_pos = dict(zip(ch_names, elec)) mon = mne.channels.DigMontage(dig_ch_pos=dig_ch_pos) info = mne.create_info(ch_names, 1000., 'ecog', montage=mon) # fig = plot_alignment(info, subject='sample', subjects_dir=subjects_dir, # surfaces=['pial'], meg=False) # info = epoch_arr[0].info # fig = plot_alignment(info, subject='sample', subjects_dir=subjects_dir, surfaces=['pial']) # fig = plot_alignment(info, subject='ecb43e', subjects_dir=subjects_dir, surfaces=['pial']) mlab.view(210, 90) xy, im = snapshot_brain_montage(mlab_fig, epoch_arr.info) # Convert from a dictionary to array to plot xy_pts = np.stack(xy[ch] for ch in epoch_arr.info['ch_names'] if ch in ch_names) activity = np.zeros((xy_pts.shape[0], )) create_animation(epoch_arr, xy_pts, im)
subjects_dir = mne.datasets.sample.data_path() + '/subjects' fig = plot_alignment(info, subject='sample', subjects_dir=subjects_dir, surfaces=['pial']) mlab.view(200, 70) ############################################################################### # Sometimes it is useful to make a scatterplot for the current figure view. # This is best accomplished with matplotlib. We can capture an image of the # current mayavi view, along with the xy position of each electrode, with the # `snapshot_brain_montage` function. # We'll once again plot the surface, then take a snapshot. fig = plot_alignment(info, subject='sample', subjects_dir=subjects_dir, surfaces='pial') mlab.view(200, 70) xy, im = snapshot_brain_montage(fig, mon) # Convert from a dictionary to array to plot xy_pts = np.vstack(xy[ch] for ch in info['ch_names']) # Define an arbitrary "activity" pattern for viz activity = np.linspace(100, 200, xy_pts.shape[0]) # This allows us to use matplotlib to create arbitrary 2d scatterplots _, ax = plt.subplots(figsize=(10, 10)) ax.imshow(im) ax.scatter(*xy_pts.T, c=activity, s=200, cmap='coolwarm') ax.set_axis_off() plt.show()
subjects_dir=subjects_dir, surfaces=['pial']) mlab.view(200, 70) ############################################################################### # Sometimes it is useful to make a scatterplot for the current figure view. # This is best accomplished with matplotlib. We can capture an image of the # current mayavi view, along with the xy position of each electrode, with the # `snapshot_brain_montage` function. # We'll once again plot the surface, then take a snapshot. fig = plot_alignment(info, subject='sample', subjects_dir=subjects_dir, surfaces='pial') mlab.view(200, 70) xy, im = snapshot_brain_montage(fig, mon) # Convert from a dictionary to array to plot xy_pts = np.vstack(xy[ch] for ch in info['ch_names']) # Define an arbitrary "activity" pattern for viz activity = np.linspace(100, 200, xy_pts.shape[0]) # This allows us to use matplotlib to create arbitrary 2d scatterplots _, ax = plt.subplots(figsize=(10, 10)) ax.imshow(im) ax.scatter(*xy_pts.T, c=activity, s=200, cmap='coolwarm') ax.set_axis_off() plt.show()
subjects_dir=subjects_dir, surfaces=['pial']) mne.viz.set_3d_view(fig, 200, 70) ############################################################################### # Sometimes it is useful to make a scatterplot for the current figure view. # This is best accomplished with matplotlib. We can capture an image of the # current mayavi view, along with the xy position of each electrode, with the # `snapshot_brain_montage` function. # We'll once again plot the surface, then take a snapshot. fig_scatter = plot_alignment(info, subject='sample', subjects_dir=subjects_dir, surfaces='pial') mne.viz.set_3d_view(fig_scatter, 200, 70) xy, im = snapshot_brain_montage(fig_scatter, montage) # Convert from a dictionary to array to plot xy_pts = np.vstack([xy[ch] for ch in info['ch_names']]) # Define an arbitrary "activity" pattern for viz activity = np.linspace(100, 200, xy_pts.shape[0]) # This allows us to use matplotlib to create arbitrary 2d scatterplots _, ax = plt.subplots(figsize=(10, 10)) ax.imshow(im) ax.scatter(*xy_pts.T, c=activity, s=200, cmap='coolwarm') ax.set_axis_off() plt.show()
subjects_dir = mne.datasets.sample.data_path() + '/subjects' fig = plot_alignment(info, subject='sample', subjects_dir=subjects_dir, surfaces=['pial']) mlab.view(200, 70) ############################################################################### # Sometimes it is useful to make a scatterplot for the current figure view. # This is best accomplished with matplotlib. We can capture an image of the # current mayavi view, along with the xy position of each electrode, with the # `snapshot_brain_montage` function. # We'll once again plot the surface, then take a snapshot. fig_scatter = plot_alignment(info, subject='sample', subjects_dir=subjects_dir, surfaces='pial') mlab.view(200, 70) xy, im = snapshot_brain_montage(fig_scatter, mon) # Convert from a dictionary to array to plot xy_pts = np.vstack([xy[ch] for ch in info['ch_names']]) # Define an arbitrary "activity" pattern for viz activity = np.linspace(100, 200, xy_pts.shape[0]) # This allows us to use matplotlib to create arbitrary 2d scatterplots _, ax = plt.subplots(figsize=(10, 10)) ax.imshow(im) ax.scatter(*xy_pts.T, c=activity, s=200, cmap='coolwarm') ax.set_axis_off() plt.show()