Software:NeuroKit
| Written in | Python |
|---|---|
| Operating system | All OS supported by Python |
| Available in | English |
| Type | Statistical software |
| License | MIT License |
| Website | github |
NeuroKit ("nk") is an open source toolbox for physiological signal processing.[1] The most recent version, NeuroKit2, is written in Python and is available from the PyPI package repository.[2] As of June 2022, the software was used in 94 scientific publications.[3] NeuroKit2 is presented as one of the most popular and contributor-friendly open-source software for neurophysiology based on the number of downloads, the number of contributors, and other GitHub metricsa.[4]
History
The first version of NeuroKit was created as a PhD side-project of Dominique Makowski in 2017.[1] It was officially deprecated in 2020 and has been replaced by the current version, NeuroKit2. A few major updates have been released since:[5]
- February 08, 2021: The 0.1.0 release coincides with the first publication of the software.
- May 18, 2022: The 0.2.0 release coincides with an overhaul of the documentation.
NeuroKit has received the 2024 Commendation Award from the Society for the Improvement of Psychological Science (SIPS).[6]
Features
NeuroKit2 includes tools to work with cardiac activity from electrocardiography (ECG) and photoplethysmography (PPG), electrodermal activity (EDA), respiratory (RSP), electromyography (EMG), and electrooculography (EOG) signals.[7]
It enables the computation of Heart Rate Variability (HRV) and Respiratory Variability (RRV) metrics.[8][9]
It also implements a variety of different algorithms to detect R-peaks and other QRS waves, including an efficient in-house R-peak detector.[10][11]
It also includes a comprehensive set of functions used for fractal physiology, allowing the computation of various measures of complexity (including entropy and fractal dimensions).[12]
Design
The software was designed to be accessible to users without programming experience, with the possibility of using high-level functions to run entire preprocessing or analysis routines.[1][13]
import neurokit2 as nk
# Download example data
data = nk.data("bio_eventrelated_100hz")
# Preprocess the data (filter, find peaks, etc.)
processed_data, info = nk.bio_process(ecg=data["ECG"], rsp=data["RSP"], eda=data["EDA"], sampling_rate=100)
# Compute relevant features
results = nk.bio_analyze(processed_data, sampling_rate=100)
See also
Other open-source toolboxes for analysis of physiological signals include:
- Neurophysiological Biomarker Toolbox (MatLab)
- EEGLAB (MatLab)
- MNE-Python (Python)
Notes
- ^ As of May 18, 2022, GitHub indicates that the package has 644 stars, 47 contributors, and is used in 101 other open-source applications.[14]
References
- ↑ 1.0 1.1 1.2 Makowski, Dominique; Pham, Tam; Lau, Zen J.; Brammer, Jan C.; Lespinasse, François; Pham, Hung; Schölzel, Christopher; Chen, S. H. Annabel (August 2021). "NeuroKit2: A Python toolbox for neurophysiological signal processing". Behavior Research Methods 53 (4): 1689–1696. doi:10.3758/s13428-020-01516-y. PMID 33528817.
- ↑ "neurokit2". https://pypi.org/project/neurokit2/.
- ↑ "NeuroKit2 article - Statistics". https://www.researchgate.net/publication/348985040.
- ↑ "NeuroKit2 - Popularity". February 2021. https://github.com/neuropsychology/NeuroKit#popularity.
- ↑ "NeuroKit2 Versions" (in en). https://github.com/neuropsychology/NeuroKit/releases.
- ↑ "SIPS 2024 Awards". 24 July 2018. https://improvingpsych.org/mission/awards/.
- ↑ Jaber, Dalia; Hajj, Hazem; Maalouf, Fadi; El-Hajj, Wassim (December 2022). "Medically-oriented design for explainable AI for stress prediction from physiological measurements". BMC Medical Informatics and Decision Making 22 (1): 12. doi:10.1186/s12911-022-01772-2. PMID 35148762.
- ↑ Pham, Tam; Lau, Zen Juen; Chen, S. H. Annabel; Makowski, Dominique (9 June 2021). "Heart Rate Variability in Psychology: A Review of HRV Indices and an Analysis Tutorial". Sensors 21 (12): 3998. doi:10.3390/s21123998. PMID 34207927. Bibcode: 2021Senso..21.3998P.
- ↑ Frasch, Martin G. (1 January 2022). "Comprehensive HRV estimation pipeline in Python using Neurokit2: Application to sleep physiology". MethodsX 9. doi:10.1016/j.mex.2022.101782. PMID 35880142.
- ↑ Baraeinejad, Bardia; Fallah Shayan, Masood; Vazifeh, Amir Reza; Rashidi, Diba; Saberi Hamedani, Mohammad; Tavolinejad, Hamed; Gorji, Pouya; Razmara, Parsa et al. (December 2021). "Design and Implementation of an Ultra-Low-Power ECG Patch and Smart Cloud-Based Platform". TechRxiv: 5. doi:10.36227/techrxiv.17003401. https://figshare.com/articles/preprint/Design_and_Implementation_of_an_Ultra-Low-Power_ECG_Patch_and_Smart_Cloud-Based_Platform/17003401.
- ↑ "R-peak detection benchmark" (in en). https://sleepecg.readthedocs.io/en/stable/heartbeat_detection.html#performance-evaluation.
- ↑ Makowski, Dominique; Te, An Shu; Pham, Tam; Lau, Zen Juen; Chen, S. H. Annabel (27 July 2022). "The Structure of Chaos: An Empirical Comparison of Fractal Physiology Complexity Indices Using NeuroKit2". Entropy 24 (8): 1036. doi:10.3390/e24081036. PMID 36010700. Bibcode: 2022Entrp..24.1036M.
- ↑ "Biosignal processing for automatic emotion recognition" (in en-us). https://school.brainhackmtl.org/project/biosignalemotions/.
- ↑ "NeuroKit2 - Popularity". February 2021. https://github.com/neuropsychology/NeuroKit#popularity.
