Skip to content

Public repository associated with: Convolutional Neural Network and Rule-Based Algorithms for Classifying 12-lead ECGs

License

Notifications You must be signed in to change notification settings

Bsingstad/PhysioNet-CinC-Challenge2020-TeamUIO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PhysioNet-CinC-Challenge 2020 - Classification of 12-lead ECGs

image

Figure 1: This plot is made by using ecg plot1 and the ECG data is from the PTB Diagnostic DB2.

This project is based on the work we did in the PhysioNet/Computing in Cardiology Challenge 2020. This paper3 describes the Challenge and this paper discribes our contribution in this challenge.

stateoftheart

Data:

The data set in this project contains 43.101 ECGs and comes from six different sources. Table 1 show the six sources.

Table 1: The table lists the six different sources used in the data set in this project

Data set number Name
1 China Physiological Signal Challenge 2018
2 China Physiological Signal Challenge 2018 Extra
3 St.Petersburg Institute of Cardiological Technics
4 PTB Diagnostics
5 PTB-XL
6 Georgia 12-Lead ECG Challenge Database

Get access to the data:

To get access to the data used in this study you can either download it from https://physionetchallenges.github.io/2020/#data or download the same data set from Kaggle. To use the codes in this repository you should sign up for a Kaggle account and get a Kaggle API token and use this to get access to the Kaggle data set from Google Colab. Google Colab Pro was used to get sufficient GPU power and enough runtime.

How to get your Kaggle API token:

  1. Log in to your Kaggle account or sign up here
  2. On the left side of the "edit profile"-button you click on the "Account"-option.
  3. Scroll down to the API-section and click "Create New API Token"-button.
  4. You will now have a file named kaggle.json. This is your API-token
  5. You can upload the kaggle.json-file to the Google Colab notebook and then you are able to download datasets from Kaggle

Models:

10-fold cross-validated models:

Model number Model Link to Google Colab Notebook Link to Notebook on github
1 FCN

Notebook

2 Encoder Notebook
3 FCN + MLP Notebook
4 Encoder + MLP Notebook
5 & 6 Encoder + FCN (and Encoder + FCN + rule-based model) Notebook
7 & 8 Encoder + FCN + MLP + (and Endcoder + FCN + MLP + Rule-based model) Notebook

Plot the cross-validation results:

The results from the cross-validated models can be plotted with this notebook plot. The figures can be found here.

Paper:

The paper describing the work in this project can be found here:

latex-file

License:

Licensed under the Apache 2.0 License

Citation:

@inproceedings{singstad2020convolutional,
title={Convolutional neural network and rule-based algorithms for classifying 12-lead ecgs},
author={Singstad, Bj{\o}rn-Jostein and Tronstad, Christian},
booktitle={2020 Computing in Cardiology},
pages={1--4},
year={2020},
organization={IEEE}
}

References:


  1. ECG plot: https://github.com/dy1901/ecg_plot

  2. PTB Diagnostic DB: Bousseljot R, Kreiseler D, Schnabel, A. Nutzung der EKG-Signaldatenbank CARDIODAT der PTB über das Internet. Biomedizinische Technik, Band 40, Ergänzungsband 1 (1995) S 317 (https://physionet.org/content/ptbdb/1.0.0/)

  3. Perez Alday, Erick A, Annie Gu, Amit J Shah, Chad Robichaux, An-Kwok Ian Wong, Chengyu Liu, Feifei Liu, mfl. «Classification of 12-lead ECGs: the PhysioNet/Computing in Cardiology Challenge 2020». Physiological Measurement, 11. november 2020. https://doi.org/10.1088/1361-6579/abc960.