Code Monkey home page Code Monkey logo

icg_ostoolbox's Introduction

Open Source Toolbox for ICG Analysis

  1. Introduction
  2. Instructions
  3. Guide to output

If you are using this software, please cite:

S. A. Sheikh, A. Shah, O. Levantsevych, M. Soudan, J. Alkhalaf, A. B. Rad, O. T. Inan, and G. D. Clifford.
“An open-source automated algorithm for removal of noisy beats for accurate impedance cardiogram analysis”, 
2020, Physiological Measurement. 41 075002 .

1. Introduction

The impedance cardiogram (ICG) signal is sensitive to artifactual influences of respiration, speaking, motion, and electrode displacement. Electrocardiogram (ECG) synchronized ensemble averaging of ICG (conventional ensemble averaging method) partially mitigates these artifacts but still suffers from intrasubject variability of ICG morphology and event latency. An open-source toolbox has been developed to remove noisy beats from the ICG signal for further suppressing artifacts in ensemble-averaged (EA) ICG beats. The toolbox also contains the "ICG manual annotation application" (ICMAA) to manually / automatically annotate fiducial points on EA ICG beats for further analysis. The toolbox will enable other researchers to readily reproduce and improve upon this work.

2. Instructions:

I. System requirements:

  1. Download and install Matlab 2017b (v9.3) https://www.mathworks.com

  2. Add the Physionet Cardiovascular Signal toolbox to your Matlab path: run startup.m

II. Quick Start

  1. Noise_removal.m can be used to obtain noise free three-stage EA ICG signal for futher analysis. Input data must be in .mat format with equal length vectors of synchronized ECG and ICG raw signals (physical units, mV and Ohm/sec respectively). Demo input data is available here.

  2. Impedance cardiogram manual annotation application, ICMAA.m, can be used to visualize and annotate the three-stage EA ICG. Demo input data for ICMAA is available here.

  3. Data for demonstrating different functions of the toolbox is available here.

3. Guide to Output

I. Artifact free Ensemble-Averaged ICG Signal

Noise free three-stage EA ICG signal are obtained using Noise_removal.m. Demo output data is available here.

II. Beat Contribution Factor

A new parameter, Beat Contribution Factor (BCF), has been defined for each three-stage EA ICG beat to ascertain its validity for further analysis. Using Noise_removal.m, BCF is calculated as the ratio of the number of clean beats (output of the third stage of the noise removal algorithm) to the total number of beats in an analysis window (input to the noise removal algorithm). Demo BCF data is available here.

III. Annotation Files

Using ICMAA.m fiducial points can be annotated on EA ECG and ICG, and the annotation files are returned for following:

ECG : *Rpeak.txt    (for R peak locations)
ICG : *Bpoint.txt   (for B point locations)
      *Feature.txt  (for type of B point feature shapes in RC interval)
      *Cpoint.txt   (for C point locations)
      *CShape.txt   (for type of C point shapes)
      *Xpoint.txt   (for X point locations)
      *XShape.txt   (for type of X point shapes)

Demo annotaion files are available here. To read these files use the toolbox functions available in ICG_param_extract: R peak locations = RBCX_read('ann_folder', '*Rpeak.txt','ID') B point locations = RBCX_read('ann_folder', '*Bpoint.txt','ID') C point locations = RBCX_read('ann_folder', '*Cpoint.txt','ID') X point locations = RBCX_read('ann_folder', '*Xpoint.txt','ID') RC feature types = feature_extract and feature_read(feature_num) C Shape types = Cshape_extract and Cshape_read(Cshape_num) X Shape types = Xshape_extract and Xshape_read(Cshape_num)

IV. Hemodynamic Parameters

The following metrics can be obtained for EA ICG beats/records using param_extract.m. Demo parameters extracted from EA ICG beats/records are available here.

RB          : (ms)    Pre-ejection period
RC          : (ms)    Intersystolic time interval
LVET        : (ms)    Left ventricular ejection time
C-amplitude : (Ohm/s) Ejection velocity index

icg_ostoolbox's People

Contributors

sali77 avatar gariclifford 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.