def check_qrs_detection(): from wfdbtools import rdsamp, rdann import subprocess test_record = '../samples/format212/100' qrslead = 2 data, info = rdsamp(test_record) qrsdetector = QRSDetector(data, info['samp_freq']) qrspeaks = qrsdetector.qrs_detect(qrslead) print 'Found %s QRS complexes' %(len(qrspeaks)) qrsdetector.write_ann(os.path.abspath(test_record) + '.test') ref_qrs = rdann(os.path.abspath(test_record), 'atr') print ref_qrs.shape print qrspeaks[:10] print ref_qrs[:10, :1] pylab.plot(data[:, qrslead]) for r in qrspeaks: pylab.plot(r, 1.5, 'xr') for r in ref_qrs[:, 1]: pylab.plot(r, 1.8, 'ob') pylab.show() print subprocess.check_output(['bxb','-r', os.path.abspath(test_record), '-a', 'atr', 'test'])
def check_qrs_detection(): from wfdbtools import rdsamp, rdann import subprocess test_record = '../samples/format212/100' qrslead = 2 data, info = rdsamp(test_record) qrsdetector = QRSDetector(data, info['samp_freq']) qrspeaks = qrsdetector.qrs_detect(qrslead) print 'Found %s QRS complexes' % (len(qrspeaks)) qrsdetector.write_ann(os.path.abspath(test_record) + '.test') ref_qrs = rdann(os.path.abspath(test_record), 'atr') print ref_qrs.shape print qrspeaks[:10] print ref_qrs[:10, :1] pylab.plot(data[:, qrslead]) for r in qrspeaks: pylab.plot(r, 1.5, 'xr') for r in ref_qrs[:, 1]: pylab.plot(r, 1.8, 'ob') pylab.show() print subprocess.check_output( ['bxb', '-r', os.path.abspath(test_record), '-a', 'atr', 'test'])
''' Created on Jan 27, 2012 @author: sergio ''' #!/usr/bin/env python from wfdbtools import rdsamp, rdann, plot_data from pprint import pprint import pylab from scipy import signal import numpy ###Senal record = '104' data, info = rdsamp(record, 0, 6) ann = rdann(record, 'atr', 0, 6) time = data[:, 1] #in seconds. sig1 = data[:, 2] sig2 = data[:, 3] ann1 = ann[:, 0] ann2 = ann[:, 1] Fs = info['samp_freq'] ###################### # FILTER # a[0]*y[n] = b[0]*x[n] + b[1]*x[n-1] + ... + b[nb]*x[n-nb] # - a[1]*y[n-1] - ... - a[na]*y[n-na]
class CustReader: """ Reader for the custom ecg format """ def __init__(self): self.data = None self.info = None def read(filename): infofile = os.path.splitext(filename)[0] + '.inf' data = scipy.load(filename) info = yaml.load(open(infofile)) if __name__ == '__main__': from wfdbtools import rdsamp, rdann app = wx.App(False) controller = Controller(app) testrec = '../samples/format212/100' data, info = rdsamp(testrec, 0, 60) data = data[:, [2, 3]] # remove first 2 cols ann = rdann(testrec, 'atr', 0, 60) ann = ann[:, [0, 2]] # remove second col controller.load(data, info, ann) app.MainLoop()
@author: sergio ''' from wfdbtools import rdsamp, rdann import numpy from buffer import buffer as cola from pylab import plot, show, subplot, stem, axis import hrvarray import time as timer ### Senal record = '104' start = 210 stop = 320 data, info = rdsamp(record, start, stop) ann = rdann(record, 'atr', start, stop) time = data[:, 1] #in seconds. signal1 = data[:, 2] signal2 = data[:, 3] ann1 = ann[:, 0] ann2 = ann[:, 1] Fs = info['samp_freq'] ### Parametros Nwindow = int(0.15 * Fs) # 150ms ###
def rdann_test(): """test wfdbtools.rdann""" ann = rdann(testrecord, 'atr') assert len(ann) == 2274 assert ann[0, :].tolist() == [18., 0.05, 28] assert ann[-1, 0] == 649991.
#subplot(212) #plot(time,umbral,'r') #plot(time, signal_integrated, 'k') #axis([178, 188, 0, 66000000]) # show() return qrs if __name__ == '__main__': ### Parametros record = '104' start = 0 #0#175 stop = 1000 #40#190 ### Senal data, info = rdsamp(record, start, stop) ann = rdann(record, 'atr', start, stop) time = data[:, 1] #in seconds.110358 signal1 = data[:, 2] signal2 = data[:, 3] ann1 = ann[:, 0] ann2 = ann[:, 1] Fs = info['samp_freq'] print "Fs: " + str(Fs) print "Tiempo total de la captura: " + str(info['samp_count'] / float(Fs)) qrs = detector(signal1, Fs, ann1, time, start, stop) coincidencias = 0 k = 0
''' Created on Feb 15, 2012 @author: sergio ''' from wfdbtools import rdsamp, rdann, plot_data import numpy from buffer import buffer as cola from pylab import plot, show, subplot, stem ### Senal record = '104' data, info = rdsamp(record, 201, 520) ann = rdann(record, 'atr', 201, 520) time = data[:, 1] #in seconds. signal1 = data[:, 2] signal2 = data[:, 3] plot(time, signal1) show()
def rdann_test(): """test wfdbtools.rdann""" ann = rdann(testrecord, 'atr') assert len(ann) == 2274 assert ann[0, :].tolist() == [18., 0.05, 28 ] assert ann[-1, 0] == 649991.
# plot(time,umbral,'r') # plot(time, signal_integrated, 'k') # axis([178, 188, 0, 66000000]) # show() return qrs if __name__ == "__main__": ### Parametros record = "104" start = 0 # 0#175 stop = 1000 # 40#190 ### Senal data, info = rdsamp(record, start, stop) ann = rdann(record, "atr", start, stop) time = data[:, 1] # in seconds.110358 signal1 = data[:, 2] signal2 = data[:, 3] ann1 = ann[:, 0] ann2 = ann[:, 1] Fs = info["samp_freq"] print "Fs: " + str(Fs) print "Tiempo total de la captura: " + str(info["samp_count"] / float(Fs)) qrs = detector(signal1, Fs, ann1, time, start, stop) coincidencias = 0 k = 0
self.data = None self.info = None def read(filename): infofile = os.path.splitext(filename)[0] + '.inf' data = scipy.load(filename) info = yaml.load(open(infofile)) if __name__ == '__main__': from wfdbtools import rdsamp, rdann app = wx.App(False) controller = Controller(app) testrec = '../samples/format212/100' data, info = rdsamp(testrec, 0, 60) data = data[:, [2,3]] # remove first 2 cols ann = rdann(testrec, 'atr', 0, 60) ann = ann[:, [0,2]] # remove second col controller.load(data, info, ann) app.MainLoop()
''' Created on Feb 15, 2012 @author: sergio ''' from wfdbtools import rdsamp, rdann, plot_data import numpy from buffer import buffer as cola from pylab import plot, show, subplot, stem ### Senal record = '104' data, info = rdsamp(record, 201, 520) ann = rdann(record, 'atr', 201, 520) time = data[:, 1] #in seconds. signal1 = data[:, 2] signal2 = data[:, 3] plot(time,signal1) show()