Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HR calculation for the MIT-BIH records #122

Open
MishalJasmine opened this issue Dec 18, 2019 · 2 comments
Open

HR calculation for the MIT-BIH records #122

MishalJasmine opened this issue Dec 18, 2019 · 2 comments

Comments

@MishalJasmine
Copy link

MishalJasmine commented Dec 18, 2019

I am working on the MIT-BIH records. The aim is to calculate the Heart Rate and find the maximum, minimum and the mean of the Heart rates. I extracted the ECG signal from the record, calculated the QRS peaks and calculated the Heart Rates using the compute_hr function from the wfdb package. Similarly extracted the QRS peaks from the annotation file and calculated the Heart Rates using the compute_hr function from the wfdb package. For the 101 record, the maximum Heart Rate from the annotations is 900.00bpm while the calculated qrs indices gave a maximum Heart rate of 111.3402bpm. I have this issue with many other records.

Python code:

record = wfdb.rdrecord(record_path, channels=[0])                                                                                                                                                                 
ann_ref = wfdb.rdann(record_path,'atr')
qrs_inds = processing.gqrs_detect(sig=record.p_signal[:,0], fs=record.fs)

heart_rate_wfdb = processing.compute_hr(sig_len=record.p_signal.shape[0], qrs_inds=qrs_inds, fs=record.fs)
heart_rate_wfdb = heart_rate_wfdb[np.logical_not(np.isnan(heart_rate_wfdb))]
heart_rate_min = "{0:.4f}".format(np.amin(heart_rate_wfdb))
heart_rate_max = "{0:.4f}".format(np.amax(heart_rate_wfdb))
heart_rate_mean = "{0:.4f}".format(np.mean(heart_rate_wfdb))

ref_heart_rate_wfdb = processing.compute_hr(sig_len=record.p_signal.shape[0], qrs_inds=ann_ref.sample[1:], fs=record.fs)
ref_heart_rate_wfdb = ref_heart_rate_wfdb[np.logical_not(np.isnan(ref_heart_rate_wfdb))]
ref_heart_rate_min = "{0:.4f}".format(np.amin(ref_heart_rate_wfdb))
ref_heart_rate_max = "{0:.4f}".format(np.amax(ref_heart_rate_wfdb))
ref_heart_rate_mean = "{0:.4f}".format(np.mean(ref_heart_rate_wfdb))`

Could you please point out what is it that I am doing wrong?

@Sk-Laila-Ayesha
Copy link

Hi, could you resolve the issue? I am doing something similar and wanted to match my results for calculated bpm for each record.

@tompollard
Copy link
Member

I would suggest raising an issue on the WFDB Python repository:
https://github.com/MIT-LCP/wfdb-python

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants