Core¶
CardIO’s core classes are EcgBatch
and EcgDataset
. They are responsible for
storing of ECGs, batch generation and applying actions to batches.
EcgBatch¶
EcgBatch
is a class that defines how to store ECG data and contains actions
that can be applied to ECG in preprocessing stage.
Attributes of EcgBatch
:
signal
, stores ECG signals in numpy arrayannotation
, array of dicts with different types of annotations, e.g. array of R-peaksmeta
, array of dicts with metadata about ECG records, e.g. signal frequencytarget
, array of labels assigned to ECG recordsunique_labels
, array of all possible target labels in dataset
Actions of EcgBatch
allow to:
- load ECG records from wfdb, DICOM, EDF, wav or blosc format
- segment, flip and resample signals
- filter signals
- detect PQ, QT, QRS segments
- dump results
To learn more about actions refer to the tutorial.
EcgDataset¶
EcgDataset
helps to conveniently create a list of ECG indices and generate batches
(small subsets of data) of default type EcgBatch
.
CardIO generates batches trought a Dataset library. To initialize this process we need to create a sequence of data item ids, e.g. using names of files in specific folder:
import cardio.dataset as ds
index = ds.FilesIndex(path="../cardio/tests/data/*.hea", no_ext=True, sort=True)
Then we specify type of batches we want to generate, e.g. EcgBatch
:
from cardio import EcgBatch
eds = ds.Dataset(index, batch_class=EcgBatch)
EcgDataset
helps to get the same result in a shorter way:
from cardio import EcgDataset
eds = EcgDataset(path="../cardio/tests/data/*.hea", no_ext=True, sort=True)
Now we can call EcgDataset.next_batch
with specified batch_size
argument to generate batches and process them using actions of EcgBatch
.