def get_epochs_and_cov(X, y, window=500): """return epochs from array.""" raw_train = toMNE(X, y) picks = range(len(getChannelNames())) events = list() events_id = dict() for j, eid in enumerate(getEventNames()): tmp = find_events(raw_train, stim_channel=eid, verbose=False) tmp[:, -1] = j + 1 events.append(tmp) events_id[eid] = j + 1 # concatenate and sort events events = np.concatenate(events, axis=0) order_ev = np.argsort(events[:, 0]) events = events[order_ev] epochs = Epochs(raw_train, events, events_id, tmin=-(window / 500.0) + 1 / 500.0 + 0.150, tmax=0.150, proj=False, picks=picks, baseline=None, preload=True, add_eeg_ref=False, verbose=False) cov_signal = compute_raw_data_covariance(raw_train, verbose=False) return epochs, cov_signal
def get_epochs_and_cov(X, y, window=500): """return epochs from array.""" raw_train = toMNE(X, y) picks = range(len(getChannelNames())) events = list() events_id = dict() for j, eid in enumerate(getEventNames()): tmp = find_events(raw_train, stim_channel=eid, verbose=False) tmp[:, -1] = j + 1 events.append(tmp) events_id[eid] = j + 1 # concatenate and sort events events = np.concatenate(events, axis=0) order_ev = np.argsort(events[:, 0]) events = events[order_ev] epochs = Epochs(raw_train, events, events_id, tmin=-(window / 500.0) + 1 / 500.0 + 0.150, tmax=0.150, proj=False, picks=picks, baseline=None, preload=True, add_eeg_ref=False, verbose=False) cov_signal = compute_raw_data_covariance(raw_train, verbose=False) return epochs, cov_signal
def _fit(self, X, y): """fit and return epochs.""" epochs, cov_signal = get_epochs_and_cov(X, y, self.window) xd = Xdawn(n_components=self.nfilters, signal_cov=cov_signal, correct_overlap=False) xd.fit(epochs) P = [] for eid in getEventNames(): P.append(np.dot(xd.filters_[eid][:, 0:self.nfilters].T, xd.evokeds_[eid].data)) self.P = np.concatenate(P, axis=0) self.labels_train = epochs.events[:, -1] return epochs
def _fit(self, X, y): """fit and return epochs.""" epochs, cov_signal = get_epochs_and_cov(X, y, self.window) xd = Xdawn(n_components=self.nfilters, signal_cov=cov_signal, correct_overlap=False) xd.fit(epochs) P = [] for eid in getEventNames(): P.append( np.dot(xd.filters_[eid][:, 0:self.nfilters].T, xd.evokeds_[eid].data)) self.P = np.concatenate(P, axis=0) self.labels_train = epochs.events[:, -1] return epochs
def toMNE(X, y=None): """Tranform array into MNE for epoching.""" ch_names = deepcopy(getChannelNames()) montage = read_montage('standard_1005', ch_names) ch_type = ['eeg']*len(ch_names) data = X.T if y is not None: y = y.transpose() ch_type.extend(['stim']*N_EVENTS) event_names = getEventNames() ch_names.extend(event_names) # concatenate event file and data data = np.concatenate((data, y)) info = create_info(ch_names, sfreq=128.0, ch_types=ch_type, montage=montage) raw = RawArray(data, info, verbose=False) return raw
def toMNE(X, y=None): """Tranform array into MNE for epoching.""" ch_names = getChannelNames() montage = read_montage('standard_1005', ch_names) ch_type = ['eeg']*len(ch_names) data = X.T if y is not None: y = y.transpose() ch_type.extend(['stim']*6) event_names = getEventNames() ch_names.extend(event_names) # concatenate event file and data data = np.concatenate((data, y)) info = create_info(ch_names, sfreq=500.0, ch_types=ch_type, montage=montage) raw = RawArray(data, info, verbose=False) return raw
def _fit(self, X, y): """fit and return epochs.""" epochs, cov_signal = get_epochs_and_cov(X, y, self.window) # pdb.set_trace() # TODO: Try to understand what is Xdawn (something that improve SSRN by spatial information?) xd = Xdawn(n_components=self.nfilters, signal_cov=cov_signal, correct_overlap=False) xd.fit(epochs) P = [] for eid in getEventNames(): # set_breakpoint('xd info in getEVetnNames for-lop'); # pdb.set_trace() P.append(np.dot(xd.filters_[eid][:, 0:self.nfilters].T, xd.evokeds_[eid].data)) self.P = np.concatenate(P, axis=0) self.labels_train = epochs.events[:, -1] # pdb.set_trace() return epochs
from sklearn.metrics import roc_auc_score from preprocessing.aux import getEventNames, load_raw_data from multiprocessing import Pool from read_adapter import subjects_path_list from eeg_config import subjects import argparse parser = argparse.ArgumentParser() parser.add_argument('--n_subjects', type=int, action='store', default=2) args, unknown = parser.parse_known_args() subjects = range(1, args.n_subjects + 1) cols = getEventNames() def _from_yaml_to_func(method, params): """go from yaml to method. Need to be here for accesing local variables. """ prm = dict() if params is not None: for key, val in params.iteritems(): prm[key] = eval(str(val)) return eval(method)(**prm) def doCols(col):
ensemble = yml['Model'][modelName]['ensemble'] addSubjectID = True if 'addSubjectID' in yml.keys() else False mode = sys.argv[2] if mode == 'val': test = False elif mode == 'test': test = True else: raise('Invalid mode. Please specify either val or test') print('Running %s in mode %s, will be saved in %s' % (modelName,mode,fileName)) ###### cols = getEventNames() ids = np.load('../infos_test.npy') subjects_test = ids[:, 1] series_test = ids[:, 2] ids = ids[:, 0] labels = np.load('../infos_val.npy') subjects = labels[:, -2] series = labels[:, -1] labels = labels[:, :-2] allCols = range(len(cols)) # ## loading prediction ### files = getLvl1ModelList()