forked from mne-tools/mne-bids-pipeline
-
Notifications
You must be signed in to change notification settings - Fork 11
/
07-make_evoked.py
51 lines (38 loc) · 1.4 KB
/
07-make_evoked.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""
===============
06. Evoked data
===============
The evoked data sets are created by averaging different conditions.
"""
import os.path as op
import mne
from mne.parallel import parallel_func
import config
def run_evoked(subject):
print("Processing subject: %s" % subject)
meg_subject_dir = op.join(config.meg_dir, subject)
if config.use_ica or config.use_ssp:
extension = '_cleaned-epo'
else:
extension = '-epo'
fname_in = op.join(meg_subject_dir,
config.base_fname.format(**locals()))
extension = '-ave'
fname_out = op.join(meg_subject_dir,
config.base_fname.format(**locals()))
print("Input: ", fname_in)
print("Output: ", fname_out)
print(' Creating evoked datasets')
epochs = mne.read_epochs(fname_in, preload=True)
evokeds = []
for condition in config.conditions:
evokeds.append(epochs[condition].average())
mne.evoked.write_evokeds(fname_out, evokeds)
if config.plot:
ts_args = dict(gfp=True, time_unit='s')
topomap_args = dict(time_unit='s')
for condition, evoked in zip(config.conditions, evokeds):
evoked.plot_joint(title=condition, ts_args=ts_args,
topomap_args=topomap_args)
parallel, run_func, _ = parallel_func(run_evoked, n_jobs=config.N_JOBS)
parallel(run_func(subject) for subject in config.subjects_list)