def test_plot_sensors_connectivity(renderer): """Test plotting of sensors connectivity.""" from mne import io, pick_types data_path = data_dir raw_fname = op.join(data_path, 'MEG', 'sample', 'sample_audvis_trunc_raw.fif') raw = io.read_raw_fif(raw_fname) picks = pick_types(raw.info, meg='grad', eeg=False, stim=False, eog=True, exclude='bads') n_channels = len(picks) con = np.random.RandomState(42).randn(n_channels, n_channels) info = raw.info with pytest.raises(TypeError, match='must be an instance of Info'): plot_sensors_connectivity(info='foo', con=con, picks=picks) with pytest.raises(ValueError, match='does not correspond to the size'): plot_sensors_connectivity(info=info, con=con[::2, ::2], picks=picks) fig = plot_sensors_connectivity(info=info, con=con, picks=picks) if renderer._get_3d_backend() == 'pyvistaqt': title = list(fig.plotter.scalar_bars.values())[0].GetTitle() else: assert renderer._get_3d_backend() == 'mayavi' # the last thing we add is the Tube, so we need to go # vtkDataSource->Stripper->Tube->ModuleManager mod_man = fig.children[-1].children[0].children[0].children[0] title = mod_man.scalar_lut_manager.scalar_bar.title assert title == 'Connectivity'
def test_plot_sensors_connectivity(renderer): """Test plotting of sensors connectivity.""" from mne import io, pick_types data_path = data_dir raw_fname = op.join(data_path, 'MEG', 'sample', 'sample_audvis_trunc_raw.fif') raw = io.read_raw_fif(raw_fname) picks = pick_types(raw.info, meg='grad', eeg=False, stim=False, eog=True, exclude='bads') n_channels = len(picks) con = np.random.RandomState(42).randn(n_channels, n_channels) info = raw.info with pytest.raises(TypeError): plot_sensors_connectivity(info='foo', con=con, picks=picks) with pytest.raises(ValueError): plot_sensors_connectivity(info=info, con=con[::2, ::2], picks=picks) plot_sensors_connectivity(info=info, con=con, picks=picks)
event_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw-eve.fif' # Setup for reading the raw data raw = io.read_raw_fif(raw_fname) events = mne.read_events(event_fname) # Add a bad channel raw.info['bads'] += ['MEG 2443'] # Pick MEG gradiometers picks = mne.pick_types(raw.info, meg='grad', eeg=False, stim=False, eog=True, exclude='bads') # Create epochs for the visual condition event_id, tmin, tmax = 3, -0.2, 1.5 # need a long enough epoch for 5 cycles epochs = mne.Epochs(raw, events, event_id, tmin, tmax, picks=picks, baseline=(None, 0), reject=dict(grad=4000e-13, eog=150e-6)) # Compute connectivity for band containing the evoked response. # We exclude the baseline period fmin, fmax = 3., 9. sfreq = raw.info['sfreq'] # the sampling frequency tmin = 0.0 # exclude the baseline period epochs.load_data().pick_types(meg='grad') # just keep MEG and no EOG now con, freqs, times, n_epochs, n_tapers = spectral_connectivity( epochs, method='pli', mode='multitaper', sfreq=sfreq, fmin=fmin, fmax=fmax, faverage=True, tmin=tmin, mt_adaptive=False, n_jobs=1) # Now, visualize the connectivity in 3D plot_sensors_connectivity(epochs.info, con[:, :, 0])