![]() | |
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:
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.
A dynamic Bayesian network (DBN) is a Bayesian network (BN) which relates variables to each other over adjacent time steps.
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.
Orange is an open-source data visualization, machine learning and data mining toolkit. It features a visual programming front-end for exploratory 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.
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.
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.
FastAPI is a web framework for building HTTP-based service APIs in Python 3.8+. It uses Pydantic and type hints to validate, serialize and deserialize data. It also automatically generates OpenAPI documentation for APIs built with it. It was first released in 2018.
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.
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.