v0.2.0 - October 2021
v0.2.0 (October 2021)
Highlights
This is a major release that introduces a new plotting backend using Bokeh instead of Plotly, several API changes and performance improvement (Numba).
The plots submodule now includes the following functions:
- :func:
systole.plots.plot_circular - :func:
systole.plots.plot_ectopic - :func:
systole.plots.plot_events - :func:
systole.plots.plot_evoked - :func:
systole.plots.plot_frequency - :func:
systole.plots.plot_pointcare - :func:
systole.plots.plot_raw - :func:
systole.plots.plot_rr - :func:
systole.plots.plot_shortlong - :func:
systole.plots.plot_subspaces
These functions can be called using Bokeh or Matplotlib as backend (plot_circular only accepts Matplotlib for now).
All the methods available in :func:systole.detection.ecg_peaks are now accelerated with Numba.
- |Enhancement| Add Numba support for :func:
systole.detector.pan_tompkins()(~7x faster) - |Enhancement| Add Numba support for :func:
systole.detector.hamilton()(~10x faster) - |Enhancement| Add Numba support for :func:
systole.detector.christov()(~30x faster) - |Enhancement| Add Numba support for :func:
systole.detector.engelse_zeelenberg()(~20x faster)
This also drops py-ecg-detectors dependency, and the refactored code is now included in Systole.
This release also includes some API changes and renaming for consistency (oxi_peaks -> ppg_peaks).
Changes
-
|Api| Remove support for Plotly. Add support for Bokeh. Merge interactive and non-interactive modules into a unique :func:
plotsmodule. -
|Docs| Use PyData Sphinx theme.
-
|Docs| Several additions to the tutorials pages, now divided into 5 Chapters:
- Physiological signal analysis
- Detecting cycles
- Detecting and correcting artefacts
- Heart rate variability
- Instantaneous heart rate and evoked heart rate
-
|Docs| Add examples for :func:
systole.correction.correct_peaks()and :func:systole.correction.correct_rr()in the gallery. -
|Enhancement| |Feature| |API| Most of the functions now accept inputs as
peaks(boolean vector),peaks_idx(int indexes vector),rr_ms(floats RR intervals in miliseconds) orrr_s(floats RR intervals in seconds). :func:systole.utils.to_rr()has been renamed to :py:func:systole.utils.input_conversion()and support the conversion between data types. -
|Fix| |Enhancement| :func:
systole.detection.ppg_peaks()now handles negative values/ low sampling rate. -
|Enhancement| :func:
systole.correction.correct_peaks()and :func:systole.correction.correct_rr()have been improved for performances, allowsniterations and print results. -
|Enhancement| utils.to_epochs() now accept multiple condition (as list) and returns rejection vectors for each one. The code has also been simplified and runs faster.
-
|Fix| Remove use of
outdated.
Contributors
- Gidon Levakov (gidonlevakov@gmail.com)
- Peter Doggart (peter.doggart@pulseai.io)