# EEG data Analysis Using MNE-Python ```python %matplotlib qt ``` ```python import mne import numpy as np data_path = '/Users/kevinhsu/Documents/D/000_course/my2020_1082_EEGBasic/opendatasets' raw = mne.io.read_raw_eeglab(data_path + '/subject2_cold_frequent_letter_left_response.set') raw.plot() ``` ```python np.unique(raw.annotations.description) ``` ```python events = mne.events_from_annotations(raw) events ``` ```python #raw_.pick_types(eeg= True, stim = True, exclude = ['VEO', 'HEO', 'M1', 'M2', 'CB1', 'CB2', 'REF']) raw.load_data() raw.filter(0.1, 30, phase= 'zero-double') event_id = {'frequent': 1, 'infrequent': 2} tmin = -0.4 # pre stimulis interval (in seconds) # tmax = 1.0 # post stimulus interval # picks = mne.pick_types(raw.info, eeg= True, stim = False, exclude = ['EXG1', 'EXG2', 'EXG3', 'EXG4']) # channels to use in epochs # baseline = (None, 0) # tmin ~ 0 , -0.4s-0s reject_ = dict(eeg=100e-6) # 1e-6 = 1 microV epochs = mne.Epochs(raw, events[0], event_id, tmin, tmax, proj = True, baseline=baseline, picks = picks, reject = reject_, preload = True) baseline = (None, 0) # create EEG montage temp_montage = mne.channels.read_montage('standard_1020') epochs.set_montage(temp_montage) ``` ```python evoked_freq = epochs['frequent'].average() evoked_infreq = epochs['infrequent'].average() ``` ```python # saving evoked objects: *-ave.fif mne.write_evokeds(data_path + '/subject2-ave.fif', [evoked_freq, evoked_infreq]) # saving an epoch object: *-epo.fif epochs.save(data_path + '/subject2-epo.fif') epochs = mne.read_epochs(data_path + '/subject2-epo.fif', preload= True) evoked_freq, evoked_infreq = mne.read_evokeds(data_path + '/subject2-ave.fif') ``` ```python tmp = [evoked_freq, evoked_infreq] colors = 'red', 'blue' mne.viz.plot_evoked_topo(tmp, color = colors) ```