How pulselabteam/pulsedb works
Purpose and entry points
PulseDB is a dataset repository plus a reproducibility pipeline for cuff-less blood-pressure estimation from 10-second ECG/PPG waveform segments. Its operational entry points are MATLAB subset generation (Generate_Subsets.m) and Python model training (Model_Training/Model_Training.py).
Source data boundary
Raw PulseDB content is downloaded separately and placed beneath the data staging directories. It combines MIMIC-III waveform-derived and VitalDB-derived MATLAB data, subject to distinct licenses. Repository code assumes these files are locally available rather than fetching data at runtime.
Paths: Segment_Files/, Info_Files/, Supplementary_Info_Files/, LICENSE_PulseDB_MIMIC, LICENSE_PulseDB_Vital.
Segment representation
The dataset consists of cleaned 10-second signal segments. Version 2 adds absolute per-sample timestamps and non-normalized raw/filtered ECG and PPG records, while retaining normalized ECG_F/PPG_F fields used by the supplied subset generator. This is a compatibility boundary: changing input fields in Generate_Subsets.m is required to train on new non-normalized signals.
Paths: Generate_Subsets.m, Supplementary Materials.pdf.
Subset-construction stage
Generate_Subsets.m joins segment files with split-definition/info files and writes compact, matrix-oriented MATLAB v7.3 subset artifacts. Outputs represent training plus calibration-based and calibration-free testing partitions; supplementary subsets cover VitalDB-derived data.
Paths: Generate_Subsets.m, Segment_Files/, Info_Files/, Subset_Files/, Supplementary_Subset_Files/.
Training data contract
Training consumes generated MAT files, not individual source segments. Expected records expose waveform Signals, BP labels such as SBP/DBP, and demographics (age, gender, height, weight). MAT v7.3 requires a compatible Python loader such as mat73; MIMIC height/weight may be absent/NaN. The split files form the key evaluation boundary between calibration-based and calibration-free cohorts.
Paths: Subset_Files/, Supplementary_Subset_Files/, Model_Training/Model_Training.py.
Model and training orchestration
Model_Training.py is the executable experiment driver: its local paths select Train, CalBased-Test, and CalFree-Test subset files and its target selection chooses SBP or DBP. It builds datasets, instantiates the ResNet definition, and delegates optimization/evaluation behavior to the trainer module.
Paths: Model_Training/Model_Training.py, Model_Training/Model_Def/ResNet.py, Model_Training/Model_Def/Trainer.py.
Observability and runtimes
The pipeline spans MATLAB (data preparation) and Python deep-learning training. TensorBoard is the experiment-observability backend; committed event files preserve prior SBP and DBP runs and track training/test loss, mean error, R², and standard deviation across both test modes. No service or web runtime is present; external dependencies are dataset hosts (Box, Google Drive, OneDrive, Kaggle) and the upstream MIMIC-III/VitalDB datasets.
Paths: Model_Training/TensorBoard/, Model_Training/TensorBoard/2022_0725_170136(SBP)/, Model_Training/TensorBoard/2022_0726_221554(DBP)/.
Main entry points: Model_Training.py Training driver · Generate_Subsets.m Generate subsets · ResNet.py ResNet · Trainer.py Trainer
Components 15
Dataset artifacts
Locally staged PulseDB data and generated subsets.
- MIMIC-III + VitalDB sources · Downloaded separately under their distinct licenses.
- Segment files · Cleaned 10-second ECG/PPG waveform segments.
- Split and info files · Defines cohort splits and segment metadata.
- Supplementary info · Metadata for supplementary data.
- Dataset licenses · MIMIC and VitalDB content has distinct license terms.
LICENSE_PulseDB_MIMIC - Primary subsets · Training, calibration-based, and calibration-free partitions.
- VitalDB subsets · Supplementary VitalDB-derived partitions.
MATLAB preparation
Subset generation runtime.
- Generate subsets · Joins segments and splits into compact v7.3 MAT artifacts.
Generate_Subsets.m
Python training
Model experiment runtime.
- Training driver · Selects SBP or DBP target and Train/CalBased/CalFree files.
Model_Training/Model_Training.py - MAT training contract · Loads Signals, BP labels, and demographics from v7.3 MAT files.
Model_Training/Model_Training.py - ResNet
Model_Training/Model_Def/ResNet.py - Trainer · Runs optimization and both evaluation modes.
Model_Training/Model_Def/Trainer.py
Experiment records
Committed TensorBoard outputs.
- TensorBoard events · Records loss, mean error, R², and standard deviation.
- SBP run
- DBP run
Connections 18
- MIMIC-III + VitalDB sources → Segment files: downloaded and staged
- MIMIC-III + VitalDB sources → Split and info files: downloaded and staged
- Dataset licenses → MIMIC-III + VitalDB sources: governs use
- Segment files → Generate subsets: waveform input
- Split and info files → Generate subsets: splits and metadata
- Supplementary info → Generate subsets: supplementary metadata
- Generate subsets → Primary subsets: writes primary partitions
- Generate subsets → VitalDB subsets: writes VitalDB partitions
- Primary subsets → Training driver: Train / CalBased / CalFree MAT files
- VitalDB subsets → Training driver: supplementary MAT files
- Training driver → MAT training contract: builds datasets
- MAT training contract → ResNet: waveform batches
- Training driver → ResNet: instantiates
- Training driver → Trainer: delegates experiment
- ResNet → Trainer: model
- Trainer → TensorBoard events: metrics and losses
- TensorBoard events → SBP run: preserved SBP events
- TensorBoard events → DBP run: preserved DBP events