Skip to content

Heartbeat is a research project focused on classifying heartbeats using ECG (electrocardiogram) data. Within the scope of this project, both conventional and state-of-the-art models from the literature, as well as experimental deep learning architectures, will be investigated and compared through experimental analyses.

License

Notifications You must be signed in to change notification settings

bunyaminergen/Heartbeat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HeartbeatLogo

License GitHub release (latest by date) GitHub Discussions GitHub Issues

LinkedIn

Heartbeat

Heartbeat is a research project focused on classifying heartbeats using ECG (electrocardiogram) data. Within the scope of this project, both conventional and state-of-the-art models from the literature, as well as experimental deep learning architectures, will be investigated and compared through experimental analyses.

Note: This is only a v0.1.0 Initial version; many new features will be added, models will be fine-tuned or trained from scratch, and various optimization efforts will be applied. For more information, you can check out the Upcoming section.

Note: If you would like to contribute to this repository, please read the CONTRIBUTING first.


Table of Contents


Prerequisites

  • Python 3.12 (or above)
  • aws cli (for dataset download)

Features

Models
  • OneDCNN
  • AdvancedOneDCNN
  • OneDSelfONN
  • AdvancedOneDSelfONN

Reports

Metrics
OneDSelfONN

Final Test Confusion Matrix Final Train Confusion Matrix Final Validation Confusion Matrix Training Curves ROC Curve

Benchmark
Model Accuracy Precision Recall F1 Score
OneDCNN 0.59 0.36 0.59 0.45
AdvancedOneDCNN 0.59 0.35 0.59 0.44
OneDSelfONN 0.60 0.44 0.58 0.45
AdvancedOneDSelfONN 0.58 0.58 0.56 0.43

Benchmark


Installation

Linux/Ubuntu
sudo apt update -y && sudo apt upgrade -y
git clone https://github.com/bunyaminergen/Heartbeat
cd Heartbeat
conda env create -f environment.yaml
conda activate Heartbeat
Dataset Download
aws s3 sync --no-sign-request s3://physionet-open/challenge-2017/1.0.0/training .data/raw/train
aws s3 sync --no-sign-request s3://physionet-open/challenge-2017/1.0.0/validation .data/raw/validation

File Structure

.
├── config
│        └── config.yaml
├── .data
│         ├── binary
│         │         ├── labels.npy
│         │         └── signals.npy
│         └── raw
│             ├── train
│             │         ├── A00
│             │         │   ├── A00001.hea
│             │         │   ├── A00001.mat
│             │         │   ├── A00002.hea
│             │         │   ├── A00002.mat
│             │         │   ├── ...
│             │         │   ├── A00998.hea
│             │         │   ├── A00998.mat
│             │         │   ├── A00999.hea
│             │         │   └── A00999.mat
│             │         ├── A01
│             │         │   ├── A01000.hea
│             │         │   ├── A01000.mat
│             │         │   ├── A01001.hea
│             │         │   ├── A01001.mat
│             │         │   ├── ...
│             │         │   ├── A01998.hea
│             │         │   ├── A01998.mat
│             │         │   ├── A01999.hea
│             │         │   └── A01999.mat
│             │         ├── A02
│             │         │   ├── A02000.hea
│             │         │   ├── A02000.mat
│             │         │   ├── A02001.hea
│             │         │   ├── A02001.mat
│             │         │   ├── ...
│             │         │   ├── A02998.hea
│             │         │   ├── A02998.mat
│             │         │   ├── A02999.hea
│             │         │   └── A02999.mat
│             │         ├── A03
│             │         │   ├── A03000.hea
│             │         │   ├── A03000.mat
│             │         │   ├── A03001.hea
│             │         │   ├── A03001.mat
│             │         │   ├── ...
│             │         │   ├── A03998.hea
│             │   │   ├── A03998.mat
│             │   │   ├── A03999.hea
│             │   │   └── A03999.mat
│             │   ├── A04
│             │   │   ├── A04000.hea
│             │   │   ├── A04000.mat
│             │   │   ├── A04001.hea
│             │   │   ├── A04001.mat
│             │   │   ├── ...
│             │   │   ├── A04998.hea
│             │   │   ├── A04998.mat
│             │   │   ├── A04999.hea
│             │   │   └── A04999.mat
│             │   ├── A05
│             │   │   ├── A05000.hea
│             │   │   ├── A05000.mat
│             │   │   ├── A05001.hea
│             │   │   ├── A05001.mat
│             │   │   ├── ...
│             │   │   ├── A05998.hea
│             │   │   ├── A05998.mat
│             │   │   ├── A05999.hea
│             │   │   └── A05999.mat
│             │   ├── A06
│             │   │   ├── A06000.hea
│             │   │   ├── A06000.mat
│             │   │   ├── A06001.hea
│             │   │   ├── A06001.mat
│             │   │   ├── ...
│             │   │   ├── A06998.hea
│             │   │   ├── A06998.mat
│             │   │   ├── A06999.hea
│             │   │   └── A06999.mat
│             │   ├── A07
│             │   │   ├── A07000.hea
│             │   │   ├── A07000.mat
│             │   │   ├── A07001.hea
│             │   │   ├── A07001.mat
│             │   │   ├── ...
│             │   │   ├── A07998.hea
│             │   │   ├── A07998.mat
│             │   │   ├── A07999.hea
│             │   │   └── A07999.mat
│             │   ├── A08
│             │   │   ├── A08000.hea
│             │   │   ├── A08000.mat
│             │   │   ├── A08001.hea
│             │   │   ├── A08001.mat
│             │   │   ├── ...
│             │   │   ├── A08527.hea
│             │   │   ├── A08527.mat
│             │   │   ├── A08528.hea
│             │   │   └── A08528.mat
│             │   ├── MD5SUMS
│             │   ├── RECORDS
│             │   ├── RECORDS-af
│             │   ├── RECORDS-noisy
│             │   ├── RECORDS-normal
│             │   ├── RECORDS-other
│             │   ├── REFERENCE.csv
│             │   ├── REFERENCE-v0.csv
│             │   ├── REFERENCE-v1.csv
│             │   ├── REFERENCE-v2.csv
│             │   ├── REFERENCE-v3.csv
│             │   ├── SHA1SUMS
│             │   └── SHA256SUMS
│             └── validation
│                 ├── A00001.hea
│                 ├── A00001.mat
│                 ├── A00002.hea
│                 ├── A00002.mat
│                 ├── ...
│                 ├── A04735.hea
│                 ├── A04735.mat
│                 ├── A04805.hea
│                 ├── A04805.mat
│                 ├── MD5SUMS
│                 ├── RECORDS
│                 ├── RECORDS-af
│                 ├── RECORDS-noisy
│                 ├── RECORDS-normal
│                 ├── RECORDS-other
│                 ├── REFERENCE.csv
│                 ├── REFERENCE-v0.csv
│                 ├── REFERENCE-v1.csv
│                 ├── REFERENCE-v2.csv
│                 ├── REFERENCE-v3.csv
│                 ├── SHA1SUMS
│                 └── SHA256SUMS
├── .docs
│         ├── documentation
│         │         ├── CONTRIBUTING.md
│         │         └── RESOURCES.md
│         ├── img
│         │         └── HeartbeatLogo.png
│         └── report
│             └── img
│                 ├── confusion_matrix_test.png
│                 ├── confusion_matrix_train.png
│                 ├── confusion_matrix_val.png
│                 ├── roc_curve.png
│                 └── training.png
├── environment.yaml
├── .gitignore
├── LICENSE
├── .logs
│         └── heartbeat.log
├── main.py
├── notebook
│         └── eda.ipynb
├── README.md
├── requirements.txt
├── src
│         ├── model
│         │         ├── evaluation.py
│         │         ├── model.py
│         │         └── train.py
│         └── utils
│             ├── data
│             │         └── manager.py
│             ├── log
│             │         └── manager.py
│             └── visualization
│                 └── visualize.py

29 directories, 17707 files

Version Control System

Releases
Branches

Upcoming

  • Speech Emotion Recognition: Develop a model to automatically detect emotions from speech data.
Considerations
  • Transform the code structure into a pipeline for better modularity and scalability.

Documentations


Licence


Links


Team


Contact


Citation

@software{       Heartbeat,
  author       = {Bunyamin Ergen},
  title        = {{Heartbeat}},
  year         = {2025},
  month        = {01},
  url          = {https://github.com/bunyaminergen/Heartbeat},
  version      = {v0.1.0},
}

About

Heartbeat is a research project focused on classifying heartbeats using ECG (electrocardiogram) data. Within the scope of this project, both conventional and state-of-the-art models from the literature, as well as experimental deep learning architectures, will be investigated and compared through experimental analyses.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published