def run_ica(name, save_dir, lowpass, overwrite): ica_name = name + filter_string(lowpass) + '-ica.fif' ica_path = join(save_dir, ica_name) if overwrite or not isfile(ica_path): raw = io.read_filtered(name, save_dir, lowpass) epochs = io.read_epochs(name, save_dir, lowpass) ica = mne.preprocessing.ICA(n_components=0.95, method='fastica') ica.fit(epochs) eog_epochs = mne.preprocessing.create_eog_epochs(raw) ecg_epochs = mne.preprocessing.create_ecg_epochs(raw) eog_indices, eog_scores = ica.find_bads_eog(eog_epochs) ecg_indices, ecg_scores = ica.find_bads_ecg(ecg_epochs) ica.exclude += eog_indices ica.exclude += ecg_indices ica.save(ica_path) else: print('ica file: ' + ica_path + ' already exists')
def epoch_raw(name, save_dir, lowpass, event_id, tmin, tmax, baseline, reject, bad_channels, decim, overwrite): epochs_name = name + filter_string(lowpass) + '-epo.fif' epochs_path = join(save_dir, epochs_name) if overwrite or not isfile(epochs_path): events = io.read_events(name, save_dir) raw = io.read_filtered( name, save_dir, lowpass, ) raw.info['bads'] = bad_channels picks = mne.pick_types(raw.info, meg=True, eog=True, ecg=True, exclude='bads') epochs = mne.Epochs(raw, events, event_id, tmin, tmax, baseline, reject=reject, preload=True, picks=picks, decim=decim) epochs.save(epochs_path) else: print('epochs file: ' + epochs_path + ' already exists')
def plot_power_spectra(name, save_dir, lowpass, subject, save_plots, figures_path): raw = io.read_filtered(name, save_dir, lowpass) psd_figure = raw.plot_psd(fmax=lowpass, n_jobs=1, show=False) # n_jobs=-1) if save_plots: save_path = join(figures_path, subject, 'power_spectra_raw', name + \ filter_string(lowpass) + '.jpg') psd_figure.savefig(save_path, dpi=600) print 'figure: ' + save_path + ' has been saved' else: print 'Not saving plots; set "save_plots" to "True" to save'
def find_events(name, save_dir, stim_channel, min_duration, adjust_timeline_by_msec, lowpass, overwrite): events_name = name + '-eve.fif' events_path = join(save_dir, events_name) if overwrite or not isfile(events_path): raw = io.read_filtered(name, save_dir, lowpass) events = mne.find_events(raw, stim_channel, min_duration=min_duration) events[:, 0] = [ts + np.round(adjust_timeline_by_msec * 10**-3 * \ raw.info['sfreq']) for ts in events[:, 0]] mne.event.write_events(events_path, events) else: print('event file: ' + events_path + ' already exists')
def plot_filtered(name, save_dir, lowpass): raw = io.read_filtered(name, save_dir, lowpass) raw.plot()