forked from mne-tools/mne-bids-pipeline
-
Notifications
You must be signed in to change notification settings - Fork 11
/
06b-apply_ssp.py
52 lines (36 loc) · 1.33 KB
/
06b-apply_ssp.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
52
"""
===============
06b. Apply SSP
===============
Blinks and ECG artifacts are automatically detected and the corresponding SSP
projections components are removed from the data.
"""
import os.path as op
import mne
from mne.parallel import parallel_func
import config
def apply_ssp(subject):
print("Processing subject: %s" % subject)
meg_subject_dir = op.join(config.meg_dir, subject)
# load epochs to reject ICA components
extension = '-epo'
fname_in = op.join(meg_subject_dir,
config.base_fname.format(**locals()))
epochs = mne.read_epochs(fname_in, preload=True)
extension = '_cleaned-epo'
fname_out = op.join(meg_subject_dir,
config.base_fname.format(**locals()))
print("Input: ", fname_in)
print("Output: ", fname_out)
run = config.runs[0]
extension = run + '_ssp-proj'
proj_fname_in = op.join(meg_subject_dir,
config.base_fname.format(**locals()))
print("Reading SSP projections from : %s" % proj_fname_in)
projs = mne.read_proj(proj_fname_in)
epochs.add_proj(projs).apply_proj()
print('Saving epochs')
epochs.save(fname_out)
if config.use_ssp:
parallel, run_func, _ = parallel_func(apply_ssp, n_jobs=config.N_JOBS)
parallel(run_func(subject) for subject in config.subjects_list)