Best public datasets for PPG foundation model pretraining
Self-supervised PPG models need hours, not labels. The biggest openly downloadable PPG sources are clinical: VitalDB (6,388 surgical cases, CC BY 4.0) and the MIMIC-III Waveform Matched Subset (10,282 ICU patients, ODbL, about 2.4 TB). MIMIC-III-Ext-PPG packages about 53,000 hours of 30 s PPG segments with quality scores but needs credentialing. For wearable-style data, MESA (NSRR) adds overnight PSG with finger PPG and wrist actigraphy, and NHANES and UK Biobank provide population-scale wrist accelerometry. The large wearable PPG corpora behind industry foundation models are private.

Top picks and when to use each
486,451 waveform and numeric tracks from 6,388 cases; PPG, ECG, ABP, capnography and more. Waveforms at 62.5 to 500 Hz and not pre-processed. Single-centre, Korean surgical population.
Access: Open (CC BY 4.0)Original host22,317 waveform records for 10,282 ICU patients at 125 Hz, linked to clinical records. About 2.4 TB in total.
Access: Open (ODbL 1.0)Original hostAbout 6.4 million 30 s segments (about 53,331 hours) with rhythm, HR, RR and BP labels for evaluation and 10 stratified folds.
Access: Credentialed (PhysioNet)Original host5.2 million cleaned 10 s segments from MIMIC-III and VitalDB. Handy for fast pretraining, though aggressive cleaning removes the noisy data a robust model must see.
Access: Open (ODbL / CC BY-NC-SA 4.0 by folder)Original hostNSRR sleep ancillary study of the Multi-Ethnic Study of Atherosclerosis, with PSG and actigraphy for over 2,000 adults.
Access: Registered (NSRR data use agreement)Original host- #6NHANES 2011-2012 Physical Activity Monitor - Raw Data 80hz (PAX80_G)Best for: Population-scale raw wrist accelerometry (US)
NHANES 2011-2012 raw 80 Hz ActiGraph GT3X+ data for 6,917 participants aged 6 and over, worn for 7 days, about 1.04 TB compressed. Public, with per-participant QC flag files.
Access: Open (CDC FTP)Original host - #7UK Biobank wrist accelerometer (Axivity AX3 / field 90001)Best for: The largest wrist accelerometer cohort
About 100,000 participants with week-long wrist accelerometry.
Access: Application (UK Biobank)Original host 151 participants, about 24 hours each (almost 4,000 hours) of Axivity AX3 data at 100 Hz with camera-derived activity labels. CC BY.
Access: Open (Oxford ORA)Original host
Comparison table
12 datasets. Swipe sideways on mobile. Values come from each dataset record; open a dataset for sources. Popularity is cached at build time: OpenAlex citations of the source paper (or the dataset DOI when no paper is linked), results on ChatPPG leaderboards, and GitHub stars or Zenodo / Hugging Face downloads where the host reports them. Hover for the source; a dash means unknown.
| Signals | Sampling | Ground truth | Licence | Access | |||
|---|---|---|---|---|---|---|---|
| VitalDB | 6,388 | PPG, ECG, resp, ABP, co2 | 100 Hz | ABP | CC BY 4.0 (PhysioNet release) | Open (CC BY 4.0) | 265 cited19 results |
| MIMIC-III Waveform MATCHED | 2,854 | PPG, ABP | 125 Hz, 42 Hz | ABP | ODbL 1.0 | Open (ODbL 1.0) | 28 cited |
| MIMIC-III-Ext-PPG | 6,189 | PPG, ECG, resp, ABP | 125 Hz | ABP, AFIB, HR, resp rate | PhysioNet Credentialed Health Data License 1.5.0 | Credentialed (PhysioNet) | 1 cited1 result |
| PulseDB v2.0 | 5,361 | PPG, ECG, ABP | 125 Hz, 40 Hz, 8 Hz | ABP | Split by folder: PulseDB_MIMIC files under ODbL 1.… | Open (ODbL / CC BY-NC-SA 4.0 by folder) | 104 cited2 results122 stars |
| MESA Sleep | 2,237 | PSG, PPG, ECG, EEG, resp | 256 Hz | sleep staging, AHI | See host | Registered (NSRR data use agreement) | 1 cited |
| NHANES 2011-2012 Physical Activity Monitor - Raw Data 80hz (PAX80_G) | — | accel | — | — | See host | Open (CDC FTP) | — |
| UK Biobank wrist accelerometer (Axivity AX3 / field 90001) | 103,568 | accel | 100 Hz | — | See host | Application (UK Biobank) | — |
| capture-24 | 151 | accel | 100Hz | activity, SQI | CC BY 4.0 | Open (Oxford ORA) | 60 cited9 results |
| Human Sleep Project (BDSP) | 90,000 | PSG, PPG | — | sleep staging | See host | See host | 17 cited |
| MIMIC-IV Waveform Database (PhysioNet preview) | 198 | PPG, ECG, resp, ABP | 125 Hz | ABP | See host | See host | — |
| Samsung Galaxy Watch PPG pretraining corpus (~32K users, ~17M 10-s segments; private) | 32,000 | PPG | 100 Hz | — | See host | See host | — |
| Sleep Heart Health Study (SHHS, NSRR) | — | PSG, ECG, EEG, resp, SPO2 | — | — | See host | See host | 3 cited |
Benchmark results
Reported results from papers in the ChatPPG hub. Protocols differ, so only compare rows on the same dataset and metric.
| Dataset | Metric | Method | Result | Protocol |
|---|---|---|---|---|
| MIMIC-III-Ext-PPG | Macro-averaged F1 ↑ | PhysioSkeptic | 0.886 | ECG–PPG multi-class rhythm; SQI-anchored LLM (GPT-5.2); not AF-only |
| PulseDB v2.0 | Mean absolute error (mmHg); cuffless BP ↓ | PPG-FusionNet | 7.46 | PPG-only; PulseDB subset (CalBased/CalFree) not stated in abstract |
| PulseDB v2.0 | Mean absolute error (mmHg); cuffless BP ↓ | GPT-PPG | 8.12 | SBP/DBP MAE, GPT-1B fine-tuned; authors' random subject-disjoint test set (not official PulseDB subsets); authors call i… |
| VitalDB | Mean absolute error (mmHg); cuffless BP ↓ | TCN–BiLSTM PPG→ABP | 3.61 | 2,226 patients; within-VitalDB split unstated; MIMIC-IV external (no abstract numbers) |
| VitalDB | Clarke error grid zone A (%) ↑ | ResNet34 (Zeynali) | 55.62 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Clarke error grid zone A (%) ↑ | MFCC + XGBoost (Prabha) | 55.1 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Clarke error grid zone A (%) ↑ | 1D-CNN (Alghlayini) | 54.19 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Clarke error grid zone A (%) ↑ | XGBoost (Gupta) | 53.88 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Clarke error grid zone A (%) ↑ | PLS (Islam) | 53.19 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | MFCC + XGBoost (Prabha) | 25.42 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | XGBoost (Gupta) | 25.77 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | ResNet34 (Zeynali) | 25.93 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | 1D-CNN (Alghlayini) | 26.05 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | PLS (Islam) | 26.14 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | MFCC + XGBoost (Prabha) | 21.56 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | 1D-CNN (Alghlayini) | 21.8 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | XGBoost (Gupta) | 21.96 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | PLS (Islam) | 22.28 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | Mean baseline | 22.52 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| capture-24 | Cohen’s κ (e.g. sleep staging) ↑ | HARNet / OxWearables SSL | 0.86 | same 4-class intensity protocol as above; RF+HMM baseline 0.800 |
| capture-24 | Cohen’s κ (e.g. sleep staging) ↑ | SSL ResNet, UK Biobank (Yuan) | 0.737 | Wrist accelerometer resampled to 30 Hz, 10 s windows; subject-wise 5-fold CV (leave-one-subject-out when fewer than 10 s… |
| capture-24 | Cohen’s κ (e.g. sleep staging) ↑ | ResNet from scratch (Yuan) | 0.703 | Wrist accelerometer resampled to 30 Hz, 10 s windows; subject-wise 5-fold CV (leave-one-subject-out when fewer than 10 s… |
| capture-24 | Cohen’s κ (e.g. sleep staging) ↑ | Random forest (Yuan) | 0.683 | Wrist accelerometer resampled to 30 Hz, 10 s windows; subject-wise 5-fold CV (leave-one-subject-out when fewer than 10 s… |
| capture-24 | Macro-F1 on HAR activities ↑ | ActiNet | 0.818 | Sleep/sedentary/light/MVPA (Walmsley), 30-s @30 Hz wrist ACC, 151 pts, nested 5-fold group CV; κ 0.860; RF+HMM 0.764. |
| capture-24 | Macro-F1 on HAR activities ↑ | SSL ResNet, UK Biobank (Yuan) | 0.726 | Wrist accelerometer resampled to 30 Hz, 10 s windows; subject-wise 5-fold CV (leave-one-subject-out when fewer than 10 s… |
| capture-24 | Macro-F1 on HAR activities ↑ | ResNet from scratch (Yuan) | 0.708 | Wrist accelerometer resampled to 30 Hz, 10 s windows; subject-wise 5-fold CV (leave-one-subject-out when fewer than 10 s… |
| capture-24 | Macro-F1 on HAR activities ↑ | Random forest (Yuan) | 0.694 | Wrist accelerometer resampled to 30 Hz, 10 s windows; subject-wise 5-fold CV (leave-one-subject-out when fewer than 10 s… |
| capture-24 | Macro-F1 on HAR activities ↑ | An open-source deep learning model for classifyi | 0.661 | Sedentary/light/MVPA (no sleep), 10-s windows, Capture-24 downsampled 100→12.5 Hz, trained on CP+HP lab + Capture-24 ("A… |
Preprocessing pitfalls
- Clinical PPG is not wrist PPG. ICU and theatre recordings are fingertip, transmissive and mostly motion-free; mix in wearable data or evaluate on wrist datasets such as PPG-DaLiA and WESAD.
- De-duplicate across derived datasets. PulseDB, MIMIC-III-Ext-PPG, UCI cuffless BP and MIMIC PERform all come from MIMIC waveforms; pretraining on one and testing on another leaks patients.
- Keep evaluation subjects out of pretraining. If your downstream test uses VitalDB or MIMIC patients, hold those subject IDs out of the pretraining corpus.
- Licences differ inside one corpus: PulseDB's VitalDB folder is non-commercial, NSRR and UK Biobank require agreements, and MIMIC-III-Ext-PPG forbids sharing the data onward.
- Resample consistently: MIMIC is 125 Hz, VitalDB tracks vary from 62.5 to 500 Hz, and NHANES accelerometry is 80 Hz.
FAQ
Which public dataset has the most PPG hours?
Among openly downloadable sources, the MIMIC-III Waveform Matched Subset (10,282 ICU patients, about 2.4 TB) and VitalDB (6,388 surgical cases) are the largest. MIMIC-III-Ext-PPG packages about 53,000 hours of 30 s segments but requires credentialing.
What data were PPG foundation models trained on?
Open models such as PaPaGei and Pulse-PPG report pretraining on clinical and wearable mixtures including VitalDB, MIMIC and MESA, while industry models (Apple, Samsung, Google) use private wearable corpora. Each model page in the ChatPPG hub lists the datasets it reports.
Can I pretrain a commercial model on VitalDB?
The VitalDB PhysioNet release is CC BY 4.0, which allows commercial use with attribution. Check the licence of every other source in your mix.
