PPG Diary 1 Dataset
Table of contents
Overview
Item | Details |
---|---|
Links | Dataset, Publication |
Signals | Dual-wavelength PPG |
No. Subjs | 1 |
Protocol | PPG signal measured at the thumb from a single participant for 28 days. The participant recorded their activities of daily living, and any technical problems |
Dataset contents
The dataset is presented in Matlab format. It contains:
- ppg_diary_pilot_conv_data.mat: The main data file (containing 4 weeks of data)
- PPGdiary1_1_hour_sample.mat: A 1-hour data sample
- PPGdiary1_1_min_sample.mat: A 1-minute data sample
- PPGdiary1_1_pulse_sample.mat: A short data sample of a single PPG pulse wave
The repository also contains the following scripts to process the data:
- ppg_diary_pilot1_analysis.m: The main Matlab script, used to analyse the data.
- PulseAnalyse.m: a script called by the main script
Details of the data file
The ppg_diary_pilot_conv_data.mat data file contains two variables:
- data : a structure containing data recorded from the wearable PPG sensor
- adl_data : a structure containing participant-reported activities of daily living
The “data” variable contains:
- fs : the sampling frequency of PPG signals (100 Hz)
- pr : the pulse rate (in beats per minute) provided by the device (at 1 Hz, see t_sec_rel for associated times)
- spo2 : the arterial blood oxygen saturation (in %) provided by the device (at 1 Hz, see t_sec_rel for associated times)
- spo2_status : provided by the device (at 1 Hz, see t_sec_rel for associated times)
- ppg_red : a vector of red PPG values (at 100 Hz, see t_ms_rel for associated times)
- ppg_ir : a vector of infrared PPG values (at 100 Hz, see t_ms_rel for associated times)
- perf : perfusion parameter provided by the device (at 1 Hz, see t_sec_rel for associated times)
- t_ms_rel : time in milliseconds since the start of the study
- t_sec_rel : time in seconds since the start of the study
The adl_data variable contains a list of activities of daily living (and sensor maintenance issues) and their associated times:
- act : a list of activities and sensor maintenance issues. The suffix ‘_fin’ indicates the end of an activity.
- t_ms_rel : the time in milliseconds since the start of the study.
Replicating the analysis
Steps
The analysis reported in this publication can be replicated as follows:
- Download the ppg_diary_pilot_conv_data.mat data file from this repository.
- Download Version 1 of the scripts.
- Specify the path of the ppg_diary_pilot_conv_data.mat data file in line 111 of the ppg_diary_pilot1_analysis.m script.
- Analyse the data using the ppg_diary_pilot1_analysis.m script. This script calls the PulseAnalyse.m script, so you will need this script too (v.1.2 beta).
Output files
The following files are produced during the analysis:
- filt_data.mat: Contains filtered PPG signal
- beat_data.mat: Contains annotations of beats detected in PPG signal
- rec_periods.mat: Contains details of each ‘recording period’ (i.e. each period of data in which the participant was doing a single activity, and the device was either connected or disconnected). The file contains the rec_periods variable, which contains the following fields:
- deb: the start time of each recording period, measured in milliseconds since the start of the study.
- fin: the end time of each recording period, measured in milliseconds since the start of the study.
- act: the activity the participant was doing during each recording period (e.g. ‘desk work’).
- reason_disconnect: (only populated if the device was disconnected during a period) the reason for device disconnection (e.g. ‘connection dropped’).
- connected: whether or not the device was connected during each recording period (1 indicates that it was connected)
- durn: the duration of each recording period (in ms)
- noted_wearing: whether or not the participant noted that they were wearing the device during each recording period
- trial_outcomes.mat: contains a variable named ‘endpoints’, which is a structure containing each of the study endpoints.
- quality_data.mat: contains a variable named ‘qual’, which is a structure containing the following fields:
- no_onsets: the number of pulse wave onsets detected in each recording period.
- no_hq_onsets: the number of pulse wave onsets detected in each recording period, whose corresponding pulse waves were deemed to be of high quality (in samples, at 100 Hz).
- durn_hq_onsets: the total duration of the pulse waves which were deemed to be of high quality during each recording period (in samples, at 100 Hz).
- durn_lq_onsets: the total duration of the pulse waves which were deemed to be of low quality during each recording period (in samples, at 100 Hz).
For a greater understanding of these files, please see the ppg_diary_pilot1_analysis.m script which generates the files.