BrainStorm简介

Brainstorm 是一个开源应用程序,支持MEG、EEG、fNIRS、ECoG、深度电极和其他电生理学的数据分析,尤其用于MEG、EEG的源定位。

Brainstorm的主要优点是其简单直观的图形界面,不需要进行任何编程,即可上手MEG、EEG分析,此外,它还支持多种数据类型(基本上EEGLab支持的,它都支持),并且具有数据批量处理功能,可以很方便的分析自己的数据。

Brainstorm是使用Matlab(和Java)开发的独立程序,并不要求用户实际下载安装Matlab,只需要安装Matlab Runtime环境即可运行,支持Windows,MacOS,Linux平台。Brainstorm的具体使用教程可以参考官网教程Tutorials - Brainstorm

本教程是学习官网教程Tutorials/Epilepsy - Brainstorm (usc.edu)后编写的,官方教程提供了癫痫示例数据,但本教程使用的数据是自己采集的bdf格式EEG数据。若读者手上没有合适的数据,且英语基础不错,建议直接使用官方教程进行学习。

1. 安装Brainstorm

Brainstorm是使用Matlab(和Java)开发的独立程序,其依赖于Matlab Runtime R2022b,因此使用者需要先从MATLAB Runtime - MATLAB Compiler - MATLAB (mathworks.com)安装Matlab Runtime R2022b,选择下载如下图所示

之后直接从Brainstorm官网Introduction - Brainstorm (usc.edu)下载Brainstorm软件,选择Download。这里需要先注册一个Brainstorm账号,登陆后才能下载。简单注册登陆后,界面如下,下载最新版本的Brainstorm,选择binary版(解压就能用,不需要安装)。

将下载好的压缩包解压,双击“brainstorm3"即可打开软件。

软件界面如下图所示,至此安装完毕。

2. Brainstorm界面介绍

Brainstorm核心功能是实现方便的源分析,因此它主要需要两种数据,一种是结构数据(Anatomy),如MRI,一种是功能数据(Functional data),如EEG、MEG、fNIRS。在界面上体现如下:

左边存放结构数据,右边存放功能数据,必须具备这两种数据才可以进行源分析。理想情况下,每个被试有自己的结构数据,可以进行个体化的源分析。但通常情况下,很多实验仅采集了功能数据(作者便是如此),如果需要进行源分析,则需要利用Brainstorm提供的标准结构模板,这个留到后续进行源定位的时候再详细说明。

Brainstorm还具备数据批处理的功能,将数据拖入process方框,设置参数可进行处理,后续遇到再具体说明。

3. 新建Protocol

Brainstorm中,Protocol类似于project的存在,是一个实验数据的总和。其中Protocol的数据以Subject为单位,包含每个被试的结构数据和功能数据。至少需要有一个Protocol后,才能使用Brainstorm,接下来我们新建一个Protocol:

1. 点击 File->New protocol

2. 创建新的Protocol,这里我命名为CSDN_Demo,由于没有采集结构数据,因此选择默认的结构数据(Brainstorm的模板),设置每个设备用一个通道文件(有利于使用ICA),选择第二项(use one channel file per subject)可能会在ICA时报错。

3.  点击 Create,创建Protocol,此时界面增加了一些结构数据

4. 双击绿色的“MRI”即可打开,其他的可以自行尝试。后续我们源分析也主要是用标绿的这些文件作为结构数据。

4. 新建Subject,导入EEG数据

Subject即被试,一个Protocol由多个Subject组成。每个Subject可能含有多个数据如EEG、fNIRS等。本次教程主要以EEG为例,有其他信号分析需求的读者,可以自行找官网教程,或者等待后续更新(也许)。

接下来我们新建一个Subject并导入EEG数据。

1. 右键点击新建的Protocol,选择 New subject

2. 新建Subject,设置被试名为 Subject01,后面的选择与建立Protocol时一致。

3.  点击 Save,则可以在界面上看到 Subject01。切换到结构数据栏,可以看到Subject01使用了默认结构数据(Default anatomy)。再切换到功能数据栏,发现Subject01空空如也。接下来我们开始给Subject01添加EEG数据。

4. 右键Subject01,选择 Review raw file。(作者这里有四个文件夹,是因为在我的实验中,每个被试进行了四次不同的任务,对应不同状态。)导入目标BDF文件。

补充:原始数据一共有两种导入方式,Review raw file 和 Import MEG/EEG。前者是记录原始数据的文件地址,直接使用原始数据文件进行处理,后者是将原始数据文件拷贝到Brainstorm里面,然后再进行处理。后者的数据不可以进行ICA等操作,因此在预处理阶段一般选择前者。

导入完毕后,功能数据栏如图所示(可能每个人的不一样)

5. 点击查看原始数据。双击 Link to raw file 则可查看原始数据曲线。后续对数据进行预处理。

5. EEG数据预处理(滤波、工频陷波、ICA、基线校正)

接下来对我们导入的EEG数据进行预处理操作,一般EEG的预处理流程包括:滤波、工频陷波、重参考、ICA。我们依次进行这些操作。

5.1 滤波+工频陷波

EEG常用的滤波方式为 1Hz~80Hz的带通滤波+50Hz的工频陷波

1. 我们使用Brainstorm的批处理功能进行滤波,首先将需要进行处理的文件拖入Process1窗口。我这里直接将Subject01拖进去了。然后点击 RUN

2. 弹出窗口如下,点击设置,选择 Pre-process->Band-pass filter,参数设置如下:

 

3. 再次点击设置,选择 Pre-process->Notch filter,设置如下:

 4. 点击Run开始运行。运行结束后会每个数据会新增两个Raw文件夹(因为有两步预处理,每一步都会留存)

 双击Raw查看数据

5.2 ICA 

之后进行ICA,将处理后的Raw数据拖入process1框

双击需要处理的数据段,直到右边的Artifacts亮起

选择 Artifacts,点击ICA components

设置如下,四个ICA算法均可,具体选哪个可查询相关资料抉择。

点击Run后,等待一段实际时间,处理完毕后将弹出窗口 Select active projectors:

 

全选(ctrl+A)右边的Component,点击 显示地形图

每个Component的地形图如下:

按照经验去除IC2、IC3、IC4、IC5,这里ICA去除分量很有讲究,读者可以自行搜索资料研究,作者后续也会出一期关于ICA手动去除伪迹的教程。

6. 源估计

Brainstorm使用模板进行源分析的标准流程为:脑电电极定位->计算头模->源估计->源分析

6.1 脑电电极定位

右键选择 BDF channels (根据导入数据的不同,该名字可能不同),选择如下图所示。作者用的脑电电极协议是10-20的32导联,所以选择10-20(94),它会根据导联名称自动填充。

再右键,选择如下,可以显示出电极分布。 

6.2  计算头模

再次右键,选择 Compute head model,计算用于源估计的头模。

弹出窗口如下,使用默认值即可

之后点击OK,第一次运行可能需要下载OpenMEEG,直接同意下载安装,等待一段时间(10-20min的样子),之后会出现OpenMEEG BEM的文件。

此时再计算噪声协方差矩阵,这里我们选择无噪声矩阵,No noise modeling。

之后就可以进行源估计了。

6.3 源估计 

右键选择处理后的Raw文件,选择Compute sources

设置如下:

点击OK即可。 之后会在Raw下方出现如下文件

双击该文件即可弹出 皮层模型

 再右键点击选择 EEG Recordings即可弹出曲线

源模型是显示某一个时间点或(某段时间的平均值)的神经活动,拖动曲线下方的红色控件,即可查看不同时间点的时间活动情况。

 

至此,我们已经完成EEG的源定位,并且获得了一张皮层脑电图,后续作者将会具体讲述如何进行手动ICA去伪迹、以及如何进行源分析。 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐