NeuroKit explained
Programming Language: | Python |
Operating System: | All OS supported by Python |
Language: | English |
Genre: | Statistical software |
License: | MIT License |
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 metrics.[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]
For neurophysiological signals such as EEG, it supports microstates and frequency band analysis.
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:
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]
Notes and References
- Makowski . Dominique . Pham . Tam . Lau . Zen J. . Brammer . Jan C. . Lespinasse . François . Pham . Hung . Schölzel . Christopher . Chen . S. H. Annabel . NeuroKit2: A Python toolbox for neurophysiological signal processing . Behavior Research Methods . August 2021 . 53 . 4 . 1689–1696 . 10.3758/s13428-020-01516-y. 33528817 . free .
- Web site: neurokit2 . PyPI . 23 March 2022.
- Web site: NeuroKit2 article - Statistics . ResearchGate . 23 March 2022.
- Web site: NeuroKit2 - Popularity . GitHub . February 2021 . 23 March 2022.
- Web site: NeuroKit2 Versions . GitHub . 18 August 2022 . en.
- Web site: SIPS 2024 Awards . 20 August 2024 . 24 July 2018.
- Jaber . Dalia . Hajj . Hazem . Maalouf . Fadi . El-Hajj . Wassim . Medically-oriented design for explainable AI for stress prediction from physiological measurements . BMC Medical Informatics and Decision Making . December 2022 . 22 . 1 . 12 . 10.1186/s12911-022-01772-2. 35148762 . 8840288 . free .
- Pham . Tam . Lau . Zen Juen . Chen . S. H. Annabel . Makowski . Dominique . Heart Rate Variability in Psychology: A Review of HRV Indices and an Analysis Tutorial . Sensors . 9 June 2021 . 21 . 12 . 3998 . 10.3390/s21123998. 34207927 . 8230044 . 2021Senso..21.3998P . free .
- Frasch . Martin G. . Comprehensive HRV estimation pipeline in Python using Neurokit2: Application to sleep physiology . MethodsX . 1 January 2022 . 9 . 101782 . 10.1016/j.mex.2022.101782. 35880142 . 9307944 .
- Baraeinejad . Bardia . Fallah Shayan . Masood . Vazifeh . Amir Reza . Rashidi . Diba . Saberi Hamedani . Mohammad . Tavolinejad . Hamed . Gorji . Pouya . Razmara . Parsa . Vaziri . Kiarash . Vashaee . Daryoosh . Fakharzadeh . Mohammad . Design and Implementation of an Ultra-Low-Power ECG Patch and Smart Cloud-Based Platform . TechRxiv . December 2021 . 5 . 10.36227/techrxiv.17003401. 244360958 .
- Web site: R-peak detection benchmark . sleepecg.readthedocs.io . 31 March 2022 . en.
- Makowski . Dominique . Te . An Shu . Pham . Tam . Lau . Zen Juen . Chen . S. H. Annabel . The Structure of Chaos: An Empirical Comparison of Fractal Physiology Complexity Indices Using NeuroKit2 . Entropy . 27 July 2022 . 24 . 8 . 1036 . 10.3390/e24081036. 36010700 . 9407071 . 2022Entrp..24.1036M . free .
- Web site: Biosignal processing for automatic emotion recognition . BrainHack School . 18 May 2022 . en-us.
- Web site: NeuroKit2 - Popularity . GitHub . February 2021 . 23 March 2022.