def calc_source_band_induced_power(epochs, inverse_operator, label, bands, n_cycles): # Compute a source estimate per frequency band return source_band_induced_power(epochs, inverse_operator, bands, label=label, n_cycles=n_cycles, use_fft=False, n_jobs=1)
# picks MEG gradiometers picks = fiff.pick_types(raw.info, meg=True, eeg=False, eog=True, stim=False, include=include, exclude='bads') # Load condition 1 event_id = 1 events = events[:10] # take 10 events to keep the computation time low # Use linear detrend to reduce any edge artifacts epochs = mne.Epochs(raw, events, event_id, tmin, tmax, picks=picks, baseline=(None, 0), reject=dict(grad=4000e-13, eog=150e-6), preload=True, detrend=1) # Compute a source estimate per frequency band bands = dict(alpha=[9, 11], beta=[18, 22]) stcs = source_band_induced_power(epochs, inverse_operator, bands, n_cycles=2, use_fft=False, n_jobs=1) for b, stc in stcs.iteritems(): stc.save('induced_power_%s' % b) ############################################################################### # plot mean power import matplotlib.pyplot as plt plt.plot(stcs['alpha'].times, stcs['alpha'].data.mean(axis=0), label='Alpha') plt.plot(stcs['beta'].times, stcs['beta'].data.mean(axis=0), label='Beta') plt.xlabel('Time (ms)') plt.ylabel('Power') plt.legend() plt.title('Mean source induced power') plt.show()
events, event_id, tmin, tmax, picks=picks, baseline=(None, 0), reject=dict(grad=4000e-13, eog=150e-6), preload=True, detrend=1) # Compute a source estimate per frequency band bands = dict(alpha=[9, 11], beta=[18, 22]) stcs = source_band_induced_power(epochs, inverse_operator, bands, n_cycles=2, use_fft=False, n_jobs=1) for b, stc in stcs.iteritems(): stc.save('induced_power_%s' % b) ############################################################################### # plot mean power import matplotlib.pyplot as plt plt.plot(stcs['alpha'].times, stcs['alpha'].data.mean(axis=0), label='Alpha') plt.plot(stcs['beta'].times, stcs['beta'].data.mean(axis=0), label='Beta') plt.xlabel('Time (ms)') plt.ylabel('Power') plt.legend() plt.title('Mean source induced power')
plt.colorbar() plt.show() bands = dict(alpha=[8, 12]) BP_list = [] for j, label in enumerate([labels[9], labels[10], labels[9]+labels[10]]): for cond in epochs.event_id.keys(): stcs = source_band_induced_power(epochs[cond], inverse_operator, bands=bands, label=label, lambda2=lambda2, method="dSPM", baseline=(None, 0), baseline_mode='zscore', pca=True) if len(label.name.split()) > 2: l_name = label.name.split()[0][5:][:-3] + "_lh_rh" else: l_name = label.name[5:][:-3] + "_" + label.name[-2:] BP_list.append("BP_%s_%s" % (cond, l_name)) exec("BP_%s_%s = stcs['alpha']" % (cond, l_name))
lambda2, method='sLORETA', pick_ori="normal", return_generator=True) stcs_slow_mt = apply_inverse_epochs(slow_epo_isi, inverse_operator, lambda2, method='sLORETA', pick_ori="normal", return_generator=True) # Compute a source estimate for 10-17 Hz frequency band stcs_slow_v1_induced = source_band_induced_power(slow_epo_isi, inverse_operator, dict(alpha_beta=[10, 17]), method='sLORETA', n_cycles=2, n_jobs=1, use_fft=True, label=v1_label) stcs_slow_mt_induced = source_band_induced_power(fast_epo_isi, inverse_operator, dict(alpha_beta=[10, 17]), method='sLORETA', n_cycles=2, n_jobs=1, use_fft=True, label=mt_label) # plt.plot(stcs_slow_v1_induced['alpha_beta'].vertices[1], stcs_slow_v1_induced['alpha_beta'].data.mean(1), label='slow') # plt.plot(stcs_fast_v1_induced['alpha_beta'].vertices[1], stcs_fast_v1_induced['alpha_beta'].data.mean(1), label='fast')
subjects_dir=subjects_dir, freesurfer=True) mt_label_part = mt_label.split(parts=5, subject='Case' + subject, subjects_dir=subjects_dir, freesurfer=True) psi_slow_v1_mt_all = np.zeros([len(v1_label_part), 1]) slow_v1_pow = [] for label_num_v1 in np.arange(len(v1_label_part)): stcs_slow_v1_induced = source_band_induced_power( slow_epo_isi, inverse_operator, dict(alpha_beta=[8, 17]), method='sLORETA', n_cycles=2, label=v1_label_part[label_num_v1]) #sort array of vertices in descending order according power pow_idx_v1 = stcs_slow_v1_induced['alpha_beta'].data.mean(1).argsort() vert_descend_v1 = stcs_slow_v1_induced['alpha_beta'].vertices[1][ pow_idx_v1[::-1]] #take only 20 vertices with max power v1_label.vertices = vert_descend_v1[0] psi_slow_v1_mt = np.zeros([len(mt_label_part), 1]) for label_num_mt in np.arange(len(mt_label_part)): stcs_slow_mt_induced = source_band_induced_power(
epochs.crop(None, 1.1) epochs.resample(200) pow_ent_left = [] pow_ent_right = [] pow_ctl_left = [] for i in range(len(epochs["ent_left"])): print "Trial %d of %d" % (i + 1, len(epochs["ent_left"]) + 1) tmp_pow = source_band_induced_power(epochs["ent_left"][i], inverse_operator, bands=dict(alpha=[8, 12]), label=labels_occ[1], lambda2=lambda2, method=method, n_cycles=4, baseline=(None, 0), baseline_mode="zscore", pca=True, n_jobs=n_jobs) pow_ent_left.append(tmp_pow["alpha"]) for i in range(len(epochs["ent_right"])): print "Trial %d of %d" % (i + 1, len(epochs["ent_right"]) + 1) tmp_pow = source_band_induced_power(epochs["ent_right"][i], inverse_operator, bands=dict(alpha=[8, 12]), label=labels_occ[1], lambda2=lambda2, method=method,