BrainStorm溯源流程以及批处理代码尝试
思路
EEG信号源重建是脑电信号分析中相当重要的一环,这步可以将脑电信号从电极水平转为脑区ROI,重建后的数据分析思路大概如下图所示,在我看来,源空间的数据分析会比电极空间更有意思:
参考文献:Electroencephalography Source Connectivity (IEEE SIGNAL PROCESSING MAGAZINE| May 2018 |)
对于源重建,在此我选择BrainStorm作为工具,此前已有大佬在博客上分享过,在此粘贴一个连接:
【脑电绘图教程 2】使用Brainstorm进行脑电处理及源定位
这篇文章是从下载暗转到预处理到源定位都做了,比较详细,我的工具基础也是从这儿学习到的,在此感谢!
但是在实际数据处理中,可能数据量都会比较大,至少一个一个点的话会比较废时间,同时我并没有在网上找到批处理教程。因此这里主要从批处理角度出发的详细处理流程,仅供参考,希望思路有所帮助。
同时我的预处理在EEGLAB中进行了批处理,在这儿只是做了溯源的操作。
对于一些操作流程因为有详细文章在前,在此就不做赘述。
同时给出brainstorm的官方文档连接,非常详细,对于后面写批处理文档相当有用,文中的一些经验性的操作均来自此文档:
BrainStorm Tutorials
准备工作
ST.1:新建protocol
Default anatomy:涉及的是MRI结构,这里用default
Default channel file:涉及的是在什么水平下用同一个电极定位和头模,以及噪声/数据 协方差矩阵,
这里我的所有数据的电极定位都一样,所以直接选择了一个global
按照我的理解,更简单来说,Default channel file决定这个common files是全部都一样,还是每个人不同trial一样,还是每个人每个trial都不一样
ST.2:新建subject
自己总共有多少个人就新建多少个subject(干活第一步,先建立文件夹)
common files
根据之前的文章方法,添加电极定位,计算头模。
注意:噪声协方差和数据协方差矩阵根据后续选择的算法进行计算。
Data covariance
在官方文档中对数据协方差的解释,
应该是对一个subject中选择所有trial进行Data covariance计算 ,因此后面代码写的时候注意更新Data covariance。
Noise Covariance
1,如果单独录制过两三分钟的空白噪音信号片段,可以通过这个噪音片段计算Noise Covariance。在源估计那里就推荐使用MN imaging算法,同时也是推荐算法
2,如果没有单独录制也可以,可以在头模那里点击计算无噪声矩阵(其实无噪声矩阵虽然没啥用,但是不能没有),但是在源估计那里就推荐使用LCMV波束形成算法,因为在官方文档提及其算法不需要Noise Covariance。
我这里用的LCMV算法,因此算了一个无噪声矩阵
关于两个协方差矩阵,一些官方文档建议:
批处理以及代码提取
上面说了些必须的共用的一些参数需要自己点点点,现在可以搞属于自己的批处理了,我们先完整导入一个数据,在我这里对一个人数据进行示例:
批处理的重点在于自带的pipeline editor,先对一个人的数据处理进行操作,操作完exoprt to m file就可以获得操作的代码,一个操作就生成一个代码,之后根据数据格式改代码。
演示批处理:导入trial数据
1,统一的将文件导入批处理操作的就是File->Process:
2,在下面就能看到将要批处理的文件夹或者被选数据
3,点击run,选择导入数据或者其他想要做的操作
4,每选择一个操作就可以在这里进行生成m文件,会了这一步就跟eeglab一样,所有操作都是透明的,接下来你可以根据自己的数据进行高效批处理操作了,让电脑自己跑起来的感觉还是很不错的。
示例:计算协方差矩阵
我这里已经导入两个不同的marker的trial数据,一个marker包含10个trial,然后选择所有trial
点击run
计算协方差矩阵
选好自己的参数后,就可以导出sript了
可以查看脚本,脚本上很清楚写出,导入的file,和要做的process。
常用流程
经过前面数据导入和协方差矩阵计算后,
接下来就剩源估计和提取ROI序列:
源估计:
选取trial数据进入批处理
记得点击edit选择源估计方法
提取ROI序列:
选取算好的源空间数据进入批处理,选择导出时间序列数据
选好模板 select scouts
就可以导出时间序列的源空间数据
结束语
基本来讲,溯源就是这么多,Brainstorm能做的可多,之后的功能连接计算以及其他的也能做,并且在保持更新,因此是一个比较好用的开源工具。写这个文档希望能帮你快速了解入门Brainstorm,本文章主要讲方法,关于生成的代码不做过多解释,看函数文档也能看懂。若文章本身出现问题或者想要讨论脑电信号的问题,欢迎私信交流,或者邮件联系:DCWMIN@outlook.com