-
Notifications
You must be signed in to change notification settings - Fork 0
/
raw_test.py
92 lines (74 loc) · 2.32 KB
/
raw_test.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import mne
import numpy as np
import pandas as pd
raw_path = "/cubric/scratch/c1557187/act_mis/MEG/0002/new_v1/80-000-raw.fif"
events_path = "/cubric/scratch/c1557187/act_mis/MEG/0002/new_v1/events-000-eve.fif"
beh_path = "/cubric/scratch/c1557187/act_mis/BEH/0002/ses1_0002_1558538484.csv"
raw = mne.io.read_raw_fif(raw_path)
events = mne.read_events(events_path)
beh = pd.read_csv(beh_path)
beh = beh.loc[(beh.obs_dir_mod != 0)]
onsets = mne.pick_events(events, include=[30, 40])
ends = mne.pick_events(events, include=[60, 70])
duration = ends[:,0] - onsets[:,0]
all_epochs = []
for ix, event in enumerate(onsets):
print(ix, event[2], beh.obs_dir_mod.values[ix])
epoch = mne.Epochs(
raw,
events=[event],
baseline=None,
preload=True,
tmin=-0.5,
tmax=duration[ix] / raw.info["sfreq"] + 1.1,
detrend=1
)
data = epoch.get_data()[0]
del_ints = np.arange(500, duration[ix] + 100)
data = np.delete(data, del_ints, axis=1)
data = data[:,:776]
info =epoch.info
epoch = mne.EpochsArray(
np.array([data]),
info,
events=np.array([event]),
tmin=-0.5,
baseline=None
)
all_epochs.append(epoch)
epochs = mne.concatenate_epochs(all_epochs, add_offset=False)
print(np.average(onsets == epochs.events))
# tr_start = np.where((events[:,2] < 50))[0]
# tr_end = np.where((events[:,2] > 50) & (events[:,2] < 80))[0]
# tr_onsets, tr_ends = events[tr_start][:,0], events[tr_end][:,0]
# tr_durations = tr_ends - tr_onsets
# tr_cutouts = np.int_(tr_durations - 1.5*250)
# sel_evts = events[(events[:,2] == 30) | (events[:,2] == 40)]
# # TF epochs
# epochs_array = []
# for ix, i in enumerate(tr_durations):
# epochs = mne.Epochs(
# raw,
# events=sel_evts[ix:ix+1],
# baseline=None,
# preload=True,
# tmin=-0.5,
# tmax=i/250 + 1.11,
# detrend=1
# )
# info_save = epochs.info
# data = epochs.get_data()[0]
# del_ints = np.arange(500, 500 + tr_cutouts[ix])
# data = np.delete(data, del_ints, axis=1)
# data = data[:,:776]
# epochs_array.append(data)
# epochs = mne.EpochsArray(
# np.array(epochs_array),
# epochs.info,
# events=events[tr_start],
# tmin=-0.5,
# baseline=None
# )
# print(epochs)
# epochs.save(epochs_TF)
# del epochs