paulvangentcom / heartrate_analysis_python

Python Heart Rate Analysis Package, for both PPG and ECG signals
MIT License
959 stars 322 forks source link

Multiple channels? #36

Closed sknepal closed 4 years ago

sknepal commented 5 years ago

Hi,

Thank you for this awesome library.

I was wondering if there's a way to analyze multiple channels. I've seen some papers where linear combinations, averages of different channels are taken to reduce noises or motion artifacts. For instance when recording raw ppg from smartwatches, or arm bands such as Polar OH, we get values from 3 channels. Is there anything in the library that handles such multi-channel inputs?

I'd appreciate if you could please suggest what's currently the go-to approach for handling raw ppg signals from different channels? Visualizing the signals and only using the less noisy one or averaging all or something else altogether. Any insight into this would really be helpful.

Thank you!

paulvangentcom commented 5 years ago

Hi Sknepal,

Can you share a few of the papers? I have some ideas on how to approach this but it may be good to look at the literature first.

paulvangentcom commented 4 years ago

Also, is it possible to share a data file with the three-channel recording you mention? I'd like to try a few things.

Paul

signekb commented 4 years ago

Hi Paul, We are working on some ECG data with three channels and were wondering the same as sknepal. Is there a way to analyse multiple ECG channels using your toolkit?

Thank you for in advance! and for a great package :-) /SigneKB

paulvangentcom commented 4 years ago

Thanks!

Can you share some data with me SigneKB? I'd like to test a few things and see if I can implement preliminary functionality for this.

Cheers

signekb commented 4 years ago

We cannot share the data, unfortunately, since we are using data from the MAHNOB HCI tagging database (https://mahnob-db.eu/hci-tagging/) which you'll need to sign an EULA to get access to. However, if you sign the EULA and send it to them, you can get access. /SigneKB

paulvangentcom commented 4 years ago

Is the data tagged with which channel corresponds to which electrode? Usually V4, V5 or V6 works well in analysis.

I'll have a look over the weekend for multi-channel integration and whether it makes sense to put in

signekb commented 4 years ago

The channels are called: EXG1 - position: ECG1 (upper right corner of chest, under clavicle bone) EXG2 - position: ECG2 (upper left corner of chest, under clavicle bone) EXG3 - position: ECG3 (left side of abdomen)

Source is their data manual: https://mahnob-db.eu/hci-tagging/media/uploads/manual.pdf

Thanks!

paulvangentcom commented 4 years ago

Ok, that is the standard three-lead setup. Plot a short 10 sec segment for each channel. You'll likely see something like: (source)

image

For now I suggest you take the channel displaying the clearest QRS complex (top row in example image) and use that for the analysis.

I will update you if I manage to implement mutli-channel capability.