Skip to content
heartKIT
Reference
HELIA

ppg_synthetic

Machine-readable model

class

PPG Synthetic signal generator parameters

heartkit/datasets/ppg_synthetic.py:21

PpgSyntheticParams()

PPG Synthetic signal generator parameters

class

heartkit/datasets/ppg_synthetic.py:32

PpgSyntheticDataset(
num_pts: int = 250,
params: dict | None = None,
path: str = Path(tempfile.gettempdir()) / 'ppg-synthetic',
**kwargs={},
) -> None

PPG synthetic dataset creates 1-lead PPG signal using physioKIT.

Example:

import heartkit as hk
# Create synthetic PPG dataset:
# - 10 patients
# - 500 Hz sample rate
# - 10 sec duration
# - heart rate between 40 and 120 bpm
# - frequency modulation between 0.2 and 0.4
# - IBI randomness between 0.05 and 0.15
# - no noise
ds = hk.datasets.PpgSyntheticDataset(
num_pts=10,
params=dict(
sample_rate=500,
duration=10,
heart_rate=(40, 120),
frequency_modulation=(0.2, 0.4),
ibi_randomness=(0.05, 0.15),
noise_multiplier=(0, 0),
)
)
with ds.patient_data[ds.patient_ids[0]] as pt:
ppg = pt["data"][:]
segs = pt["segmentations"][:]
fids = pt["fiducials"][:]
# END WITH
Parameters of PpgSyntheticDataset
NameTypeDefaultDescription
num_ptsint250Number of patients. Defaults to 250.
paramsdict | NoneNonePPG synthetic parameters (PpgSyntheticParams). Defaults to None.
pathstrPath(tempfile.gettempdir()) / 'ppg-synthetic'Path to dataset. Defaults to Path(tempfile.gettempdir()) / "ppg-synthetic".
method

Get dataset patient IDs reserved for testing only

heartkit/datasets/ppg_synthetic.py:122

get_test_patient_ids() -> npt.NDArray

Get dataset patient IDs reserved for testing only

Returns of get_test_patient_ids
TypeDescription
npt.NDArraynpt.NDArray: patient IDs
method

Get patient data

heartkit/datasets/ppg_synthetic.py:152

patient_data(patient_id: int) -> Generator[PatientData, None, None]

Get patient data

Parameters of patient_data
NameTypeDefaultDescription
patient_idintRequiredPatient ID
Returns of patient_data
TypeDescription
NoneGenerator[PatientData, None, None]: Patient data
method

Generate frames using patient generator.

heartkit/datasets/ppg_synthetic.py:172

signal_generator(
patient_generator: PatientGenerator,
frame_size: int,
samples_per_patient: int = 1,
target_rate: int | None = None,
) -> Generator[npt.NDArray, None, None]

Generate frames using patient generator.

Parameters of signal_generator
NameTypeDefaultDescription
patient_generatorPatientGeneratorRequiredGenerator that yields patient data.
frame_sizeintRequiredFrame size
samples_per_patientint1Samples per patient. Defaults to 1.
target_rateint | NoneNoneTarget rate. Defaults to None.
Returns of signal_generator
ValueTypeDescription
SampleGeneratorNoneGenerator of input data of shape (frame_size, 1)
method

download

Python

Download dataset

heartkit/datasets/ppg_synthetic.py:212

download(num_workers: int | None = None, force: bool = False)

Download dataset

Parameters of download
NameTypeDefaultDescription
num_workersint | NoneNone# parallel workers. Defaults to None.
forceboolFalseForce redownload. Defaults to False.