NeuroKit

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
NeuroKit
Repositorygithub.com/neuropsychology/NeuroKit
Written inPython
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemAll OS supported by Python
    Available inEnglish
    TypeStatistical software
    LicenseMIT 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 metricsa.[4]

    History

    [edit | edit source]

    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

    [edit | edit source]

    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]

    Design

    [edit | edit source]

    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

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal'). Other open-source toolboxes for analysis of physiological signals include:

    Notes

    [edit | edit source]
    ^ 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

    [edit | edit source]
    1. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).