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 metrics a . [4]
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]
NeuroKit has received the 2024 Commendation Award from the Society for the Improvement of Psychological Science (SIPS). [6]
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.[ citation needed ]
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]
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]
importneurokit2asnk# Download example datadata=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 featuresresults=nk.bio_analyze(processed_data,sampling_rate=100)
Other open-source toolboxes for analysis of physiological signals include: