NeuroKit

Last updated
NeuroKit
Written in Python
Operating system All OS supported by Python
Available inEnglish
Type Statistical software
License MIT License
Website github.com/neuropsychology/NeuroKit

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]

Contents

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]


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. [6]

It enables the computation of Heart Rate Variability (HRV) and Respiratory Variability (RRV) metrics. [7] [8]

It also implements a variety of different algorithms to detect R-peaks and other QRS waves, including an efficient in-house R-peak detector. [9] [10]

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). [11]

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] [12]

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)

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. [13]

Related Research Articles

<span class="mw-page-title-main">Biofeedback</span> Gaining awareness of biological processes

Biofeedback is the technique of gaining greater awareness of many physiological functions of one's own body by using electronic or other instruments, and with a goal of being able to manipulate the body's systems at will. Humans conduct biofeedback naturally all the time, at varied levels of consciousness and intentionality. Biofeedback and the biofeedback loop can also be thought of as self-regulation. Some of the processes that can be controlled include brainwaves, muscle tone, skin conductance, heart rate and pain perception.

<span class="mw-page-title-main">Heart rate variability</span> Variation in the time intervals between heartbeats

Heart rate variability (HRV) is the physiological phenomenon of variation in the time interval between heartbeats. It is measured by the variation in the beat-to-beat interval.

<span class="mw-page-title-main">Orange (software)</span>

Orange is an open-source data visualization, machine learning and data mining toolkit. It features a visual programming front-end for explorative qualitative data analysis and interactive data visualization.

The nested sampling algorithm is a computational approach to the Bayesian statistics problems of comparing models and generating samples from posterior distributions. It was developed in 2004 by physicist John Skilling.

EEGLAB is a MATLAB toolbox distributed under the free BSD license for processing data from electroencephalography (EEG), magnetoencephalography (MEG), and other electrophysiological signals. Along with all the basic processing tools, EEGLAB implements independent component analysis (ICA), time/frequency analysis, artifact rejection, and several modes of data visualization. EEGLAB allows users to import their electrophysiological data in about 20 binary file formats, preprocess the data, visualize activity in single trials, and perform ICA. Artifactual ICA components may be subtracted from the data. Alternatively, ICA components representing brain activity may be further processed and analyzed. EEGLAB also allows users to group data from several subjects, and to cluster their independent components.

PowerLab is a data acquisition system developed by ADInstruments comprising hardware and software and designed for use in life science research and teaching applications. It is commonly used in physiology, pharmacology, biomedical engineering, sports/exercise studies and psychophysiology laboratories to record and analyse physiological signals from human or animal subjects or from isolated organs. The system consists of an input device connected to a Microsoft Windows or Mac OS computer using a USB cable and LabChart software which is supplied with the PowerLab and provides the recording, display and analysis functions. The use of PowerLab and supplementary ADInstruments products have been demonstrated on the Journal of Visualised Experiments.

A Poincaré plot, named after Henri Poincaré, is a type of recurrence plot used to quantify self-similarity in processes, usually periodic functions. It is also known as a return map. Poincaré plots can be used to distinguish chaos from randomness by embedding a data set in a higher-dimensional state space.

Psychophysiological interaction (PPI) is a brain connectivity analysis method for functional brain imaging data, mainly functional magnetic resonance imaging (fMRI). It estimates context-dependent changes in effective connectivity (coupling) between brain regions. Thus, PPI analysis identifies brain regions whose activity depends on an interaction between psychological context and physiological state of the seed region.

Transfer entropy is a non-parametric statistic measuring the amount of directed (time-asymmetric) transfer of information between two random processes. Transfer entropy from a process X to another process Y is the amount of uncertainty reduced in future values of Y by knowing the past values of X given past values of Y. More specifically, if and for denote two random processes and the amount of information is measured using Shannon's entropy, the transfer entropy can be written as:

The Neurophysiological Biomarker Toolbox (NBT) is an open source MATLAB toolbox for the computation and integration of neurophysiological biomarkers. The NBT toolbox has so far been used in seven peer-reviewed research articles, and has a broad user base of more than 1000 users. The NBT toolbox provides unique features for analysis of resting-state EEG or MEG recordings. NBT offers a pipeline from data storage to statistics including artifact rejection, signal visualization, biomarker computation, statistical testing, and biomarker databasing. NBT allows for easy implementation of new biomarkers, and incorporates an online wiki that aims at facilitating collaboration among NBT users including extensive help and tutorials. The standardised way of data storage and analysis that NBT proposes allow different research projects to merge, compare, or share their data and biomarker algorithms.

Ary Louis Goldberger is a physician-educator, whose collaborative research work is at the interface of biomedicine and complexity science. He holds a BA from Harvard College and an MD from Yale Medical School. He did his clinical training in internal medicine and cardiovascular disease at Yale–New Haven Hospital and at the University of California, San Diego, respectively. He currently serves as Professor of Medicine at Harvard Medical School and was one of the Core Founding Faculty (2010-2015) of the Wyss Institute for Biologically Inspired Engineering at Harvard University.

<span class="mw-page-title-main">Feature engineering</span> Extracting features from raw data for machine learning

Feature engineering or feature extraction or feature discovery is the process of extracting features from raw data to support training a downstream statistical model.

<span class="mw-page-title-main">CONN (functional connectivity toolbox)</span>

CONN is a Matlab-based cross-platform imaging software for the computation, display, and analysis of functional connectivity in fMRI in the resting state and during task.

In Bayesian statistics, the Probability of Direction (pd) is a measure of effect existence representing the certainty with which an effect is positive or negative. This index is numerically similar to the frequentist p-value.

JData is a light-weight data annotation and exchange open-standard designed to represent general-purpose and scientific data structures using human-readable (text-based) JSON and (binary) UBJSON formats. JData specification specifically aims at simplifying exchange of hierarchical and complex data between programming languages, such as MATLAB, Python, JavaScript etc. It defines a comprehensive list of JSON-compatible "name":value constructs to store a wide range of data structures, including scalars, N-dimensional arrays, sparse/complex-valued arrays, maps, tables, hashes, linked lists, trees and graphs, and support optional data grouping and metadata for each data element. The generated data files are compatible with JSON/UBJSON specifications and can be readily processed by most existing parsers. JData-defined annotation keywords also permit storage of strongly-typed binary data streams in JSON, data compression, linking and referencing.

Fractal physiology refers to the study of physiological systems using complexity science methods, such as chaos measure, entropy, and fractal dimensions. The underlying assumption is that biological systems are complex and exhibit non-linear patterns of activity, and that characterizing that complexity is useful to understand, and make inferences and predictions about the system.

MNE-Python ("MNE") is an open source toolbox for EEG and MEG signal processing. It is written in Python and is available from the PyPI package repository.

<span class="mw-page-title-main">Easystats</span> Software package for the R language

The easystats collection of open source R packages was created in 2019 and primarily includes tools dedicated to the post-processing of statistical models. As of May 2022, the 10 packages composing the easystats ecosystem have been downloaded more than 8 million times, and have been used in more than 1000 scientific publications. The ecosystem is the topic of several statistical courses, video tutorials and books.

References

  1. 1 2 3 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.
  2. "neurokit2". PyPI. Retrieved 23 March 2022.
  3. "NeuroKit2 article - Statistics". ResearchGate. Retrieved 23 March 2022.
  4. "NeuroKit2 - Popularity". GitHub. February 2021. Retrieved 23 March 2022.
  5. "NeuroKit2 Versions". GitHub. Retrieved 18 August 2022.
  6. 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 . PMC   8840288 . PMID   35148762.
  7. 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. Bibcode:2021Senso..21.3998P. doi: 10.3390/s21123998 . PMC   8230044 . PMID   34207927.
  8. Frasch, Martin G. (1 January 2022). "Comprehensive HRV estimation pipeline in Python using Neurokit2: Application to sleep physiology". MethodsX. 9: 101782. doi:10.1016/j.mex.2022.101782. PMC   9307944 . PMID   35880142.
  9. 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 (December 2021). "Design and Implementation of an Ultra-Low-Power ECG Patch and Smart Cloud-Based Platform". TechRxiv: 5. doi:10.36227/techrxiv.17003401. S2CID   244360958.
  10. "R-peak detection benchmark". sleepecg.readthedocs.io. Retrieved 31 March 2022.
  11. 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. Bibcode:2022Entrp..24.1036M. doi: 10.3390/e24081036 . PMC   9407071 . PMID   36010700.
  12. "Biosignal processing for automatic emotion recognition". BrainHack School. Retrieved 18 May 2022.
  13. "NeuroKit2 - Popularity". GitHub. February 2021. Retrieved 23 March 2022.