# 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)
```