logger
Pythonlogger = helia.utils.setup_logger(__name__)loggerattributePpgSyntheticParamsclassPPG Synthetic signal generator parametersPpgSyntheticDatasetclasslogger = helia.utils.setup_logger(__name__)PPG Synthetic signal generator parameters
PpgSyntheticParams()PPG Synthetic signal generator parameters
sample_rate: float = Field(500, description='Signal sample rate (Hz)')duration: int = Field(10, description='Signal duration in sec')heart_rate: tuple[float, float] = Field((40, 120), description='Heart rate range')frequency_modulation: tuple[float, float] = Field((0.2, 0.4), description='Frequency modulation strength [0,1]')ibi_randomness: tuple[float, float] = Field((0.05, 0.15), description='IBI randomness in range [0,1]')noise_multiplier: tuple[float, float] = Field((0, 0), description='Noise multiplier range')PpgSyntheticDataset( num_pts: int = 250, params: dict | None = None, path: str = Path(tempfile.gettempdir()) / 'ppg-synthetic', **kwargs={},) -> NonePPG 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 noiseds = 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 WITHParameters
| Name | Type | Default | Description |
|---|---|---|---|
num_pts | int | 250 | Number of patients. Defaults to 250. |
params | dict | None | None | PPG synthetic parameters (PpgSyntheticParams). Defaults to None. |
path | str | Path(tempfile.gettempdir()) / 'ppg-synthetic' | Path to dataset. Defaults to Path(tempfile.gettempdir()) / "ppg-synthetic". |
params = PpgSyntheticParams(**params or {})Dataset name
name: strDataset name
Sampling rate in Hz
sampling_rate: intSampling rate in Hz
Dataset mean
mean: floatDataset mean
Dataset st dev
std: floatDataset st dev
Get dataset patient IDs
patient_ids: npt.NDArrayGet dataset patient IDs
Get dataset training patient IDs
get_train_patient_ids() -> npt.NDArrayGet dataset training patient IDs
Returns
| Type | Description |
|---|---|
npt.NDArray | npt.NDArray: patient IDs |
Get dataset patient IDs reserved for testing only
get_test_patient_ids() -> npt.NDArrayGet dataset patient IDs reserved for testing only
Returns
| Type | Description |
|---|---|
npt.NDArray | npt.NDArray: patient IDs |
Get patient key
pt_key(patient_id: int)Get patient key
load_patient_data(patient_id: int)Build cache
build_cache()Build cache
Get patient data
patient_data(patient_id: int) -> Generator[PatientData, None, None]Get patient data
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
patient_id | int | Required | Patient ID |
Returns
| Type | Description |
|---|---|
None | Generator[PatientData, None, None]: Patient data |
Generate frames using patient generator.
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
| Name | Type | Default | Description |
|---|---|---|---|
patient_generator | PatientGenerator | Required | Generator that yields patient data. |
frame_size | int | Required | Frame size |
samples_per_patient | int | 1 | Samples per patient. Defaults to 1. |
target_rate | int | None | None | Target rate. Defaults to None. |
Returns
| Value | Type | Description |
|---|---|---|
SampleGenerator | None | Generator of input data of shape (frame_size, 1) |
Download dataset
download(num_workers: int | None = None, force: bool = False)Download dataset
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
num_workers | int | None | None | # parallel workers. Defaults to None. |
force | bool | False | Force redownload. Defaults to False. |
Close dataset
close()Close dataset
Add noise to PPG signal.
add_noise(ppg: npt.NDArray)Add noise to PPG signal.