Coder Social home page Coder Social logo

jianghengbing / cuff_less_bp_prediction Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jeya-maria-jose/cuff_less_bp_prediction

0.0 0.0 0.0 142.62 MB

Prediction of Blood Pressure from ECG and PPG signals using regression methods.

License: MIT License

MATLAB 10.55% Python 89.45%

cuff_less_bp_prediction's Introduction

Cuff less Blood Pressure Prediction

This repository hosts the code for Prediction of Blood Pressure from ECG and PPG signals using two methods.

  1. Feature Extraction and Regression using Machine Learning Methods. Paper

  2. Deep learning based regression.

Getting Started:

  • Clone this repo:
git clone https://github.com/jeya-maria-jose/Cuff_less_BP_Prediction
cd Cuff_less_BP_Prediction

Dataset:

Dataset : Link

This database consist of a cell array of matrices, each cell is one record part.

In each matrix each row corresponds to one signal channel:

1: PPG signal, FS=125Hz; photoplethysmograph from fingertip

2: ABP signal, FS=125Hz; invasive arterial blood pressure (mmHg)

3: ECG signal, FS=125Hz; electrocardiogram from channel II

Processed version of the data from UCI repository used for our experiments: Link

  1. Cleaned folder contains BP records after thresholding them according to Kauchee et al. 2017

  2. GT contains the ground truth SBP, DBP, MAP and class number (depending on the threshold). Ignore the class column as it has not been used for any experiments reported in the papers.

  3. data folder is the whole data as taken from UCI repository.

Feature Extraction and Machine Learning based method:

Prerequisites:

  • MATLAB
  • Python 3
  • Scikit-learn

Feature Extraction

The features taken are explained here

seven_features.m - Code to extract the features : (WN,PIR,PTT,HR,IH,IL,Meu)

ppg_features.m - Code to extract the PPG features

PTT_final.m - Code to extract the PTT

The extracted features are saved in a CSV file from MATLAB.

The CSV file : Link The columns denote the features and BP GT in the same order as extracted.

Machine Learning models

cd models_ML
python rf.py

Using the DL Code:

Prerequisites:

  • Linux
  • Python 3
  • Pytorch

Training

cd models_DL/cnn_lstm_concat
python cnn_multitask.py

Testing

cd models_DL/cnn_lstm_concat
python cnn_test.py

Disclaimer

The code is not completely clean as the data directories are initialized manually. Please make sure the directories are changed according to the remote server where the code is run.

Citation

If you use this , please cite our paper Investigation on the effect of Womersley number, ECG and PPG features for cuff less blood pressure estimation using machine learning:

ML Experiments and Womersley number Paper -

@article{thambiraj2020investigation,
  title={Investigation on the effect of Womersley number, ECG and PPG features for cuff less blood pressure estimation using machine learning},
  author={Thambiraj, Geerthy and Gandhi, Uma and Mangalanathan, Umapathy and Jose, V Jeya Maria and Anand, M},
  journal={Biomedical Signal Processing and Control},
  volume={60},
  pages={101942},
  year={2020},
  publisher={Elsevier}
}
}

Results for DL Experiments - Coming Soon

This work was done while at National Institute of Technology, Tiruchirapalli; India

cuff_less_bp_prediction's People

Contributors

jeya-maria-jose avatar siddarth-m avatar anandnitt avatar

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.