Git Product home page Git Product logo

ecg-features's Introduction

ECG Features

A library for extracting a wide range of features from single-lead ECG waveforms. These feature are grouped into three main categories: (1) Template Features, (2) RR Interval Features, and (3) Full Waveform Features. This repository contains the feature extraction code we used for our submission to the 2017 Physionet Challenge.

Dataset

In the 2017 Physionet Challenge, competitors were asked to build a model to classify a single lead ECG waveform as either Normal Sinus Rhythm, Atrial Fibrillation, Other Rhythm, or Noisy. The dataset consisted of 12,186 ECG waveforms that were donated by AliveCor. Data were acquired by patients using one of three generations of AliveCor's single-channel ECG device. Waveforms were recorded for an average of 30 seconds with the shortest waveform being 9 seconds, and the longest waveform being 61 seconds. The figure below presents examples of each rhythm class and the AliveCor acquisition device.

Download Training Dataset: training2017.zip

Waveform Image Left: AliveCor hand held ECG acquisition device. Right: Examples of ECG recording for each rhythm class, Goodfellow et al. (2018).

Publications

  1. Goodfellow, S. D., A. Goodwin, R. Greer, P. C. Laussen, M. Mazwi, and D. Eytan (2018), Atrial fibrillation classification using step-by-step machine learning, Biomed. Phys. Eng. Express, 4, 045005. DOI: 10.1088/2057-1976/aabef4

  2. Goodfellow, S. D., A. Goodwin, R. Greer, P. C. Laussen, M. Mazwi, and D. Eytan, Classification of atrial fibrillation using multidisciplinary features and gradient boosting, Computing in Cardiology, Sept 24โ€“27, 2017, Rennes, France. DOI

Research Affiliations

  1. The Hospital for Sick Children
    Department of Critical Care Medicine
    Toronto, Ontario, Canada

  2. Laussen Labs
    www.laussenlabs.ca
    Toronto, Ontario, Canada

License

MIT

ecg-features's People

Contributors

seb-good avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ecg-features's Issues

Extracting RRi features

Hi seb,
I'm looking to extract data from R spikes that come from an ECG. So I found your GitHub repo which seems to do what I need.
I tried changing/adding a few lines of code to extract the RRi data but I'm not sure how accurate the extracted data is. (Here is the link to my commit in my fork to see the small changes I made)

My question is the following: Since the repo is a bit old, do you have a more efficient way to extract this data? I'm thinking for example of the more recent PhysioNet 2020 competition. Maybe you have a "simpler" way to simply extract this data?

Your repo helped me a lot to understand some concept to detect atrial fibrillation!

Code is not complete and contains errors.

I wanted to try out the code in this repository for a university project and came across some bugs.

  1. In feature_extractor.py the code for extracting the template features and RR-interval features is missing, although it was present in an earlier commit.
  2. In rri_features.py the dict rri_temporal_statistics does not exists.
  3. The file "template_features.py" is missing to extract the template features.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.