def future(self, i): #到底需不需要考虑拓扑顺序呢??? if type(self.node_list[i]) != Varnode or self.node_list[i].I == None: return #第一次future是提前做的,因此现在I还可能是空呢 for item in self.node_list[i].next_dashed_list: if self.node_list[item].lval != None: #lval != -inf #e.g. 原来是[j_3, a),现在有[, 99] #把lval换成-inf,变成[-inf, a),然后把这个字符串代入Interval进行初始化 tmp = copy.deepcopy(self.node_list[item]) tmp.lval = str(self.node_list[i].I.lower) s = str(tmp).replace('-inf', '').replace('inf', '') if tmp._type == 'int': e = IntInterval.from_string(s) else: e = FloatInterval.from_string(s) else: #rval != inf #e.g. 原来是(a,j_3),现在有[, 99] #把rval=j_3换成99,变成(a, 99),然后把这个字符串代入Interval进行初始化 tmp = copy.deepcopy(self.node_list[item]) tmp.rval = str(self.node_list[i].I.upper) s = str(tmp).replace('-inf', '').replace('inf', '') #用字符串来初始化不能有inf,而要留空 if tmp._type == 'int': e = IntInterval.from_string(s) else: e = FloatInterval.from_string(s) self.node_list[item].I = e
def load_last_dependency_segment(self): viewport = self._view.dependencies_segment_choose_scrolled_win.get_child() main_box = viewport.get_child() boxes = main_box.get_children() last_box = boxes[-1] last_combobox = last_box.get_children()[1] segment_activated = last_combobox.get_active() model = last_combobox.get_model() _iter = model.get_iter_from_string('{}'.format(segment_activated)) segment_str = model.get_value(_iter, 0) last_segment = FloatInterval.from_string(segment_str) return last_segment
def load_chosen_dependency_segment(self, dependency_id): viewport = self._view.dependencies_segment_choose_scrolled_win.get_child() main_box = viewport.get_child() boxes = main_box.get_children() for box in boxes: children = box.get_children() label = children[0] depend = int(label.get_text()) if dependency_id == depend: combobox = children[1] segment_activated = combobox.get_active() model = combobox.get_model() _iter = model.get_iter_from_string('{}'.format(segment_activated)) segment_str = model.get_value(_iter, 0) segment = FloatInterval.from_string(segment_str) return segment
def load_focus_depend(self): dependencies_segment_choose_scrolled_win = self._view.dependencies_segment_choose_scrolled_win viewport = dependencies_segment_choose_scrolled_win.get_child() main_box = viewport.get_child() focus_box = main_box.get_focus_child() focus_box_children = focus_box.get_children() focus_label = focus_box_children[0] focus_depend_id = int(focus_label.get_text()) focus_combobox = focus_box_children[1] segment_activated = focus_combobox.get_active() model = focus_combobox.get_model() _iter = model.get_iter_from_string('{}'.format(segment_activated)) segment_str = model.get_value(_iter, 0) focus_segment = FloatInterval.from_string(segment_str) return focus_depend_id, focus_segment
def load_parameter_node_path(self): viewport = self._view.dependencies_segment_choose_scrolled_win.get_child() main_box = viewport.get_child() boxes = main_box.get_children() calibrate_parameter = self.load_chosen_calibrate_parameter() parameter_path = [[calibrate_parameter, None]] for box in boxes: children = box.get_children() label = children[0] depend_id = int(label.get_text()) combobox = children[1] segment_activated = combobox.get_active() model = combobox.get_model() _iter = model.get_iter_from_string('{}'.format(segment_activated)) segment_str = model.get_value(_iter, 0) focus_segment = FloatInterval.from_string(segment_str) parameter_path.append([depend_id, focus_segment]) return parameter_path
def spectrogram_by_eeg_bandwidth(sig, sample_rate=125, timeIntervalSec=30): slow = FloatInterval.from_string('[0.5, 2.0)') delta = FloatInterval.from_string('[2, 4.0)') theta = FloatInterval.from_string('[4.0, 8.0)') alpha = FloatInterval.from_string('[8.0, 16.0)') beta = FloatInterval.from_string('[16.0, 32.0)') gamma = FloatInterval.from_string('[32.0, 100.0)') ##above100Hz = FloatInterval.from_string('[100.0,)') # no signal above100Hz nperseg = int(sample_rate * timeIntervalSec) noverlap = None #will take default value freqs, times, spec = signal.spectrogram(sig, fs=sample_rate, window='hann', nperseg=sample_rate*timeIntervalSec, noverlap=noverlap, detrend=False) #Edelta, Etheta, Ealpha, Ebeta, Egamma, Eabove100Hz = np.zeros(6) result = pd.DataFrame(np.zeros(spec.shape[1]*6).reshape((6, spec.shape[1])), index=['Slow', 'Delta', 'Theta', 'Alpha', 'Beta', 'Gamma']) # for i in range(0, spec.shape[0]): for j in range(0, spec.shape[1]): if freqs[i] in slow: result.loc["Slow", j]= result.loc["Slow", j] + spec[i, j] if freqs[i] in delta: result.loc["Delta", j]= result.loc["Delta", j] + spec[i, j] elif freqs[i] in theta: result.loc["Theta", j]= result.loc["Theta", j] + spec[i, j] elif freqs[i] in alpha: result.loc["Alpha", j]= result.loc["Alpha", j] + spec[i, j] elif freqs[i] in beta: result.loc["Beta", j]= result.loc["Beta", j] + spec[i, j] elif freqs[i] in gamma: result.loc["Gamma", j]= result.loc["Gamma", j] + spec[i, j] # else: we are filtering out frequencies lower than 0.5 Hz # print("error at cell " + str((i, j))) return result
def spectrogram_by_eeg_bandwidth(sig, sample_rate=125, timeIntervalSec=2): delta = FloatInterval.from_string('[0, 4.0)') theta = FloatInterval.from_string('[4.0, 8.0)') alpha = FloatInterval.from_string('[8.0, 16.0)') beta = FloatInterval.from_string('[16.0, 32.0)') gamma = FloatInterval.from_string('[32.0, 100.0)') above100Hz = FloatInterval.from_string('[100.0,)') # nperseg = int(sample_rate * timeIntervalSec) noverlap = 0 freqs, times, spec = signal.spectrogram(sig, fs=sample_rate, window='hann', nperseg=sample_rate*timeIntervalSec, noverlap=noverlap, detrend=False) #Edelta, Etheta, Ealpha, Ebeta, Egamma, Eabove100Hz = np.zeros(6) result = pd.DataFrame(np.zeros(spec.shape[1]*6).reshape((6, spec.shape[1])), index=['Delta', 'Theta', 'Alpha', 'Beta', 'Gamma', 'Above100Hz']) # for i in range(0, spec.shape[0]): for j in range(0, spec.shape[1]): if freqs[i] in delta: result.loc["Delta", j]= result.loc["Delta", j] + spec[i, j] elif freqs[i] in theta: result.loc["Theta", j]= result.loc["Theta", j] + spec[i, j] elif freqs[i] in alpha: result.loc["Alpha", j]= result.loc["Alpha", j] + spec[i, j] elif freqs[i] in beta: result.loc["Beta", j]= result.loc["Beta", j] + spec[i, j] elif freqs[i] in gamma: result.loc["Gamma", j]= result.loc["Gamma", j] + spec[i, j] elif freqs[i] in above100Hz: print(str((i, j)) + "added tp above100Hz") result.loc["Above100Hz", j]= result.loc["Above100Hz", j] + spec[i, j] else: print("error at cell " + str((i, j))) return result