Giter Site home page Giter Site logo

simultaneous_eeg-nirs's Introduction

Simultaneous acquisition of EEG and NIRS during cognitive tasks for an open access dataset

Tutorial for data processing for Simultaneous acquisition of EEG and NIRS during cognitive tasks for an open access dataset

The authors would be grateful if published reports of research using this code (or a modified version, maintaining a significant portion of the original code) would cite the following article:

Shin, Jaeyoung, et al. "Simultaneous acquisition of EEG and NIRS during cognitive tasks for an open access dataset", Scientific data , February 2018.

Caution

Figures and Results may be different from those shown in Shin et al. (2017) because:

  1. some visulization options are different.
  2. EOG-rejection is not performed.

Data processing was performed using MATLAB 2013b. Please use MATLAB 2013b or older version.

Please download BBCI toolbox (https://github.com/bbci/bbci_public). The MATLAB scripts were written based on the BBCI toolbox (ver. 03 Nov. 2017). You may run into some errors if you use later version of BBCI toolbox or MATLAB. We do not guarantee that MATLAB scripts works properly in later version of MATLAB and BBCI toolbox.

  • For NIRS data conversion, please download 'proc_BeerLambert.m' here and overwrite it to the corresponding subfolder in BBCI toolbox.
  • For the use of customized values of 'CLim', please download 'visutil_getCommonRange.m' here and overwrite it to the corresponding subfolder in BBCI toolbox.
  • Please download 'plot_scalpEvolutionPlusChannel.m' here and overwrite it to the corresponding subfolder in BBCI toolbox.

Basic Data Structures

This document is from https://github.com/bbci/bbci_public/blob/master/doc/ToolboxData.markdown and partly modified. For more details, visit BBCI toolbox.

Table of Contents

  • cnt - Data structure holding the continuous signals
  • mrk - Marker structure defining certain events
  • mnt - Montage structure defining the electrode layout for scalp and grid plots

cnt - Continuous signals (EEG)

The structure holding continuous (i.e., not epoched) EEG signals is denoted by cnt.

cnt is a structure with the following fields:
.clab channel labels (CELL {1 #channels}) there may be additional information in other fields, but these are all optional
.fs sampling rate [samples per second]
.title task type: 'MI' - motor imagery / 'MA' - mental arithmetic
.T length of cnt.x
.yUnit unit of cnt.x
.x multichannel signals (DOUBLE [T #channels])

mrk - Event markers (EEG)

The structure holding marker (or event) information is denoted by mrk. Using this structure you can segment continuous EEG signals into epochs by the function proc_segmentation.

mrk is a structure with the following fields:
.time defines the time points of events in msec (DOUBLE [1 #events])
.event.desc structure of further information; each field of mrk.event provides information that is specified for each event, given in arrays that index the events in their first dimension. This is required such that functions like mrk_selectEvents can work properly on those variables.
.y class labels (DOUBLE [#classes #events])
.className class names (CELL {1 #classes})

mnt - The electrode montage (EEG)

The electrode montage structure, denoted by mnt, holds the information of the spatial arrangement of the electrodes on the scalp (for plotting scalp topographies) and the arrangement of subplot axes for multi-channel plots.

mnt is a structure with the following fields:
.x x-position of the electrode for scalp maps (DOUBLE [1 +channels])
.y y-position of the electrode for scalp maps (DOUBLE [1 +channels])
.pos_3d       3D coordinate (DOUBLE [3 #channels])
.clab channel labels (CELL {1 #channels})
            | **further optional fields are required for multichannel plots:**

.box | positions of subplot axes for multichannel plots (DOUBLE [2 #channels] or [2 #channels+1]; the first row holds the horizontal, and the second row the vertical positions. The optional last column specifies the position of the legend .box_sz | size of subplot axes for multichannel plots (DOUBLE [2 #channels] or [2 #nchannels+1]), corresponding to .box. The first row holds the width, the second row the height .scale_box | position of subplot for the scale (DOUBLE [2 1]) .scale_box_sz | size of subplot for the scale (DOUBLE [2 1])

cnt - Continuous signals (NIRS)

The structure holding continuous (i.e., not epoched) NIRS signals is denoted by cnt.

cnt is a structure with the following fields:
.fs sampling rate [samples per second]
nSources the number of sources
nDetectors the number of detectors
multiplexing the number of device used for data recording
.clab channel labels (CELL {1 #channels}) there may be additional information in other fields, but these are all optional
.x multichannel signals (DOUBLE [T #channels])
.wavelengths wavelengths of near-infrared light (Double [1 #wavelengths])
.signal type of signal
.title task type: 'MI' - motor imagery / 'MA' - mental arithmetic
.yUnit unit of cnt.x

mrk - Event markers (NIRS)

The structure holding marker (or event) information is denoted by mrk. Using this structure you can segment continuous NIRS signals into epochs by the function proc_segmentation.

The structure is same as above.

mnt - The electrode montage (NIRS)

The NIRS montage structure, denoted by mnt, holds the information of the spatial arrangement of sources, detectors, and physiological channels on the scalp (for plotting scalp topographies) and the arrangement of subplot axes for multi-channel plots.

mnt is a structure with the following fields:
.source holds the informaiton of the spatial arrangement of sources and channel labels
.detector holds the informaiton of the spatial arrangement of sources and channels labels
.x x-position of the physiological channel for scalp maps (DOUBLE [1 +channels])
.y y-position of the physiological channel for scalp maps (DOUBLE [1 +channels])
.pos_3d   3D coordinate (DOUBLE [3 #channels])
.clab channel labels (CELL {1 #channels}). e.g.) source : AF7, detector : Fp1 -> clab : AF7Fp1
sd source - detector pair (Double [#channels 2])
       | **further optional fields are required for multichannel plots:**

.box | positions of subplot axes for multichannel plots (DOUBLE [2 #channels] or [2 #channels+1]; the first row holds the horizontal, and the second row the vertical positions. The optional last column specifies the position of the legend .box_sz | size of subplot axes for multichannel plots (DOUBLE [2 #channels] or [2 #nchannels+1]), corresponding to .box. The first row holds the width, the second row the height .scale_box | position of subplot for the scale (DOUBLE [2 1]) .scale_box_sz | size of subplot for the scale (DOUBLE [2 1])

simultaneous_eeg-nirs's People

Contributors

jaeyoungshin avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.