Summary

On this page we provide links to the algorithms used to: (i) create the database of arterial pulse waves; and (ii) analyse the resulting pulse waves. The algorithms have a broad range of uses. Firstly, they can be used to reproduce the work carried out in this project. Secondly, and perhaps more importantly, they can be used for further research: for pulse wave analysis studies, and to create additional pulse wave databases representative of different patient populations.

Algorithms used to create the Pulse Wave Database

The steps used to create the pulse wave database are detailed here. Briefly, they consist of:

  1. Creating model input files: The text files used as inputs to the computational model of pulse wave propagation were created in Matlab ® .
  2. Running pulse wave simulations: The Nektar1D model of pulse wave propagation was used to simulate pulse waves. This produced a set of output files for each simulation.
  3. Post-processing model output files: Data were extracted from the model output files, and processed in Matlab ® .

The Matlab ® code is available here (and can be downloaded using this link). Details of how to obtain the code for running the simulations are provided here.

Pulse Wave Analysis Algorithms

The following Matlab ® algorithms were used in this work and may be particularly useful to researchers in this field:

  1. PulseAnalyse: A script for identifying fiducial points (such as systolic and diastolic peaks) on pulse waves, and taking feature measurements (such as the augmentation index).
  2. AorticFlowWave: A script for identifying fiducial points (such as systolic and diastolic peaks) on pulse waves, and taking feature measurements (such as the augmentation index).
  3. TTalgorithm: A script for measuring the pulse transit time between two pulse waves.
  4. ConvertHistoryFiles: A script for converting "history" files produced by Nektar1D into Matlab ® format.

Further details of each of these algorithms are now provided.

PulseAnalye

PulseAnalyse is a tool for analysing arterial pulse waves, such as blood pressure and photoplethysmogram pulse waves. In this work it was used to identify points on pulse waves (such as the systolic peak and dicrotic notch), and to calculate cardiovascular indices from them (such as the augmentation index).

algorithm
PulseAnalyse: A tool for analysing a pulse wave to estimate cardiovascular properties.

PulseAnalyse can be downloaded here, and further details are available at the PulseAnalyse Project Website.

AorticFlowWave

AorticFlowWave is a tool for creating synthetic aortic flow waves with different properties, such as blood pressure and photoplethysmogram pulse waves. In this work it was used to identify points on pulse waves (such as the systolic peak and dicrotic notch), and to calculate cardiovascular indices from them (such as the augmentation index).

algorithm
AorticFlowWave: A tool for creating synthetic aortic flow waves, shown here with different left ventricular ejection times.

The source code for AorticFlowWave is available here, and it can be downloaded as part of the PWDB code. Further details are available here.

TTalgorithm

TTalgorithm is a script written by Nick Gaddum for measuring the pulse transit time between two pulse waves. It is particularly useful as it includes implementations of different methods for estimating pulse transit times, including:

  1. Foot to foot algorithm
  2. Foot to foot radius algorithm
  3. Cross correlation of the entire cycle
  4. Least Squares
The script is available to download here.

ConvertHistoryFlies

ConvertHistoryFiles is a script for converting pulse wave simulation output files (from Nektar1D) into Matlab format, ready for analysis.

The source code is available here, and it can be downloaded as part of the PWDB code. Further details are available here.