def load_data(len_packet=25): # LABELED DATASET dataset = np.load('./data/morfology.npy', allow_pickle=True).item() list_ecg = dataset['signal'] list_peaks = dataset['peaks'] list_labels = dataset['label'] list_of_packets = [] for (sig, peak, label) in zip(list_ecg, list_peaks, list_labels): sig = np.subtract(sig, np.mean(sig)) if label == 2: label = 'qRs_4' if label == 14: label = 'QS_5' if label == 10: label = 'rRs_8' if label == 5: label = 'RS_9' if label not in [12, 11, 1, 18, 6, 15, -1]: list_of_packets.append(fb.LabeledPacket(np.array(sig), peak, label)) real_m_model = fb.ECG.build_from_packets(list_of_packets) list_ecg = real_m_model.build_packets(len_packet) list_ecg = real_m_model.packets labels = [] for packet in list_ecg: labels.append(packet.label) return list_ecg, labels
def main(): dataset = np.load('./data/morfology.npy').item() n = 600 list_ecg = dataset['signal'][:n] list_peaks = dataset['peaks'][:n] list_labels = dataset['label'][:n] list_of_packets = [] for (sig, peak, label) in zip(list_ecg, list_peaks, list_labels): sig == np.subtract(sig, np.mean(sig)) list_of_packets.append(fb.LabeledPacket(np.array(sig), peak, label)) my_ecg = fb.ECG.build_from_packets(list_of_packets) len_packet = 35 list_ecg = my_ecg.build_packets(len_packet) list_ecg = my_ecg.packets return list_ecg
def load_new_data(len_packet=25): # LABELED DATASET dataset = loadmat('data/morfologies_2019.mat') list_ecg = dataset['cell_data']['beats'] list_peaks = dataset['cell_data']['peaks'] list_labels = dataset['cell_data']['morfology'] list_of_packets = [] for (sig, peak, label) in zip(list_ecg, list_peaks, list_labels): sig = np.subtract(sig, np.mean(sig)) list_of_packets.append(fb.LabeledPacket(np.array(sig), peak, label)) real_m_model = fb.ECG.build_from_packets(list_of_packets) list_ecg = real_m_model.build_packets(len_packet) list_ecg = real_m_model.packets return list_ecg, list_labels
b, a = butter_bandpass(lowcut, highcut, fs, order=order, analog=analog) y = lfilter(b, a, data) return y dataset = np.load('./data/morfology.npy').item() n = 600 fs = 360 list_ecg = dataset['signal'][:n] list_peaks = dataset['peaks'][:n] list_labels = dataset['label'][:n] list_labels, b = pd.factorize(list_labels) list_of_packets = [] for (sig, peak, label) in zip(list_ecg, list_peaks, list_labels): sig == np.subtract(sig, np.mean(sig)) list_of_packets.append(fb.LabeledPacket(np.array(sig), peak, label)) my_ecg = fb.ECG.build_from_packets(list_of_packets) len_packet = 35 list_ecg = my_ecg.build_packets(len_packet) list_ecg = [x.input_signal for x in my_ecg.packets] df = pd.DataFrame(list_ecg).values df = df.T #filters = dict() #filters['T'] = (.1, .20) #filters['P'] = (.15, .30) #filters['QRS'] = (.3, .5) #filters['ALL'] = (.70, .9) # #analog_filters = dict()
def main(): dataset = np.load('./data/morfology.npy').item() n = 60 list_ecg = dataset['signal'][:n] list_peaks = dataset['peaks'][:n] list_labels = dataset['label'][:n] # # Wavelet Transform delineation # for s in list_ecg: # s = np.array(s) # sig = signal.resample(s, 1000) # Pwav, QRS, Twav = wav.signalDelineation(sig,1000) # if(len(QRS)>0): # QRS=QRS[0] # plt.plot(sig[QRS[0]:QRS[-1]]) # plt.show() # plt.close() list_of_packets = [] for (sig, peak, label) in zip(list_ecg, list_peaks, list_labels): sig == np.subtract(sig, np.mean(sig)) list_of_packets.append(fb.LabeledPacket(np.array(sig), peak, label)) my_ecg = fb.ECG.build_from_packets(list_of_packets) len_packet = 35 list_ecg = my_ecg.build_packets(len_packet) list_ecg = my_ecg.packets # ecg_signal = electrocardiogram() ## ecg_signal = ecg_signal - np.mean(ecg_signal) (ts, filtered, rpeaks, templates_ts, templates, heart_rate_ts, heart_rate) = ecg.ecg(signal=a, sampling_rate=960, show=False) # my_ecg = fb.ECG(input_signal=filtered, indicators=rpeaks, # is_filtered=False) # list_ecg = my_ecg.build_packets(25, fb.DefaultPacket) # # pbounds = {'a': (3, 10), 'b': (30, 100), # 'c': (3, 10), 'd': (30, 100), # 'e': (10, 60),'f': (10, 60)} # # norm_pbounds = {'a': (0.1, 0.3), 'b': (30, 100), # 'c': (0.1, 0.3), 'd': (30, 100), # 'e': (1, 50),'f': (1, 50)} # parameter = dict() # parameter['values'] = list(zip(np.linspace(1, 10, 15), # np.linspace(1, 10, 15))) # parameter['lenght'] = list(zip(np.linspace(len_packet*0.6, len_packet*6, 10), # np.linspace(len_packet*0.6, len_packet*6, 10))) # parameter['cut'] = list(zip(np.linspace(0, 60, 7), # np.linspace(0, 60, 7))) # # # # l = [] # for i in np.linspace(1, 10, 10): # for j in np.linspace(1, 10, 10): # l.append((i, j)) # # r_parameter = dict() # r_parameter['values'] = l # r_parameter['lenght'] = list(zip(np.linspace(len_packet*0.6, len_packet*6, 5), # np.linspace(len_packet*0.6, len_packet*6, 5))) # r_parameter['cut'] = list(zip(np.linspace(0, 60, 7), # np.linspace(0, 60, 7))) # # template_gaussian = fb.Gaussian(parameter) # template_mexican = fb.MexicanHat(parameter) # template_rayleigh = fb.Rayleigh(r_parameter) # template_left_rayleigh = fb.LeftInverseRayleigh(parameter) # template_right_rayleigh = fb.RightInverseRayleigh(parameter) # # list_of_templates = [template_gaussian, template_mexican, # template_rayleigh, template_left_rayleigh, # template_right_rayleigh] list_of_templates = utils.get_default_templates(len_packet) # list_of_templates = [template_rayleigh] lst_of_packets = utils.mp_signal_apply(utils.consume_packet_helper, list_ecg, list_of_templates) # lst_of_packets = utils.serial_signal_apply(utils.consume_packet, # list_ecg, list_of_templates) my_ecg.packets = lst_of_packets return my_ecg