手把手教你用 Homer 处理 fNIRS 数据

文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注。


一、Homer2软件介绍

Homer2的下载:https://www.nitrc.org/frs/?group_id=619&release_id=3661

Homer2官网:https://homer-fnirs.org/

Homer2安装:使用matlab的set path即可安装;有可能每次打开matlab都要重新安装一下。

Homer2使用中的一些常见问题:https://homer-fnirs.org/faq/

除了这里面提及的问题,有一点要注意的是在使用参数检验时,没有default掉Homer2很有可能导致程序报错。

二、Homer2可识别的NIRS文件格式

Probe source-detector 探头排布:.sd files

fNIRS experimental 数据格式:.nirs files

Data processing stream处理过程:.cfg files

Processed data files结果文件:groupResults.mat

2.1 .SD file format排布文件格式:描述 2D 源/探测器几何结构

Matlab .sd 文件包含结构体变量 SD,其中包含以下域:

域定义维度例子

Lambda用于数据采集的波长1×n(数据采集的波长)[690 830]

nSrcs光源数1×11

nDets探测器数1×12

SrcPos源坐标阵列nSrcs×3[0 0 0]

DetPos探测器坐标阵列nDets×3[30 0 0;0 30 0]

MeasList测量通道列表

[源idx探测器idx使用情况 波长idx]

通道数量*2×4[1 1 1 1;1 2 1 1;

1 1 1 2;1 2 1 2]

注意:SD 结构也包含在 .nirs 文件格式中

编辑SD文件的界面,可通过SDgui启动

2.2 .NIRS file format数据格式:包含近红外数据信息。

Matlab .nirs 文件包含以下变量:

域定义维度

SD探针几何排布,与.sd文件相同结构体变量

t数据时间点数组时间点数×1

d时间序列的原始光强时间点数×通道数

s刺激onset信息时间点数×条件数

aux每个时间点下每个辅助通道的数据时间点数×Aux数

注1:除了上述参数外,在 Homer2 数据处理过程中,.nirs 文件也会出现其他参数。

注2:其他一些数据格式(Hitachi、NIRx、Shimadzu 等)转换成.nirs,可参阅 http://homer-fnirs.org/faq

2.3 .cfg file format进程文件:包含了数据分析的步骤,一系列Homer2 函

最简单的处理流:光密度->血氧浓度->叠加平均->血液动力学响应函数(HRF),也可以在处理流中添加多个更高级的功能:修剪数据,回归短SD,删除坏段,识别运动伪迹,带通滤波,删除或校正运动伪迹象。

创建处理过程:

MATLAB 版本:运行MATLAB,运行“setpaths”函数,然后从命令窗口调用 Homer2_UI。当界面要求您加载流程选项时点击取消,然后将目录更改为存储.nirs数据的文件夹。接下来可以通多‘tools->Process Stream GUI’创建处理流,下图是创建处理流的界面简介。

三、Homer2数据处理流程

一个简单的处理包括,光密度->光强度->血氧浓度->叠加平均->血液动力学响应函数(HRF),下面以该流程为例子演示Homer2提取HRF。

3.1 创建数据流

在procStreamGUI定义好处理流函数后保存为当前处理,接下数据的处理以当前的数据处理流为准,若选择Config file,则将该处理流程流程另存为.cfg文件。调用已保存的处理流文件可以通过load process option(*.cfg)

回到Homer2_UI界面,点击主界面的Options选项可以查阅当前的数据处理流程,并可对相应参数进行修改。

参数数值修改完毕后,需要回车。否则修改无效。

3.2 数据预览

在SD光极排布窗口中,字母表示sources;数字表示 detector;左键点击某个 source 或 detector 附近会显示与该 source 或 detector 关联的所有 channel 的数据,按住 shift 键,左键每个通道即可预览所有通道的时间序列。右键单击 SD 光极排布窗口某个 channel 的连线,该连线会变为虚线,同时左侧数据预览窗口波形消失。再次右键单击连线,连线变为实线、波形出现。在显示设置栏里,Zoom 按钮可以放大数据:选中该按钮后,鼠标在数据预览窗口拖动选择感兴趣的时间段即可放大;Pan 按钮可以平移数据:选中该按钮后,左击鼠标平移数据;数据预览完后可点击 Zoom Reset 或在 Data window 右键单击选择 Reset to Original View 恢复至原始绘图窗口。

3.3 标记坏段与坏通道

Exclude Time按钮可以手动删除(噪音较大)数据:选中该按钮后,鼠标在数据预览界面选中待删除时间段的数据;这些片段段会标记为紫色;如果发现某个时间段错误地被标记为需要删除时,可以用鼠标左键或者右键单击这个紫色区域,会弹出一个对话框:Remove this Excluded Region? 选择 Yes 即可

•如果 Show Excluded前面打勾,那么被删除的时间段标记为红色

•如果 Show Excluded前面不打勾,那么被删除的时间段无波形

手动删除数据后,不会对计算 OD和血氧浓度时造成影响(这部分数据不被删除),但是在计算HRF时这些时间段包括的刺激 mark将不再考虑。

对于噪音很大的通道,鼠标左键单击该通道的连线,该连线变为虚线,即表示标记坏通道成功;再次鼠标左键单击该通道,恢复为实线,则取消标记该通道。

3.4 mark信息的编辑

选中显示设置面板上的 Stim Reject按钮后,在数据窗口中框选某个 mark 的线,这个线会变为黑色粗线的,并弹出一个窗口弹窗提示语是 Action for these stim marks,并要求选择两个选项之一:Toggle active on/off 和 Cancel。选择前者,mark 的线会变为蓝色的虚线,选择后者,mark 的线会恢复为原来的蓝色实线。变为蓝色虚线后,重新选择这个线,并选择前者,会变为蓝色实线(这个 mark 又可使用)。变为虚线后,后续的数据处理则不考虑该 mark。当要永久性的删除或者编辑某个 mark 时,可打开Tools下拉菜单的 StimGUI;在 StimGUI 界面选中某个 mark,会出现下方窗口。通过此窗口可修改mark,也可以选中 New condition 指定新的 mark;也可以选中 Toggle active on/off 将该 mark 后续分析不考虑(与 Stim Reject 相同);也可以选中 Delete 将该 mark 直接永久性删除掉。

3.5数据处理结果预览与导出

定义好处理流并调整好参数以及标记完坏段/通道/试次之后,才可以计算HRF。通过 Calculate HRF下方的下拉菜单选择对某个被试单个 run 的数据处理(Run **)、某个被试所有run的数据处理(Session **)和对所有被试的所有 run 的数据处理(Group **)。

处理后的数据可以预览每个数据的不同波长的原始数据、不同波长的 OD 以及血氧浓度(HbO、HbR、 HbT),按住 shift 可查看多通道/条件/波长的数据。也可以查看每个数据的 HRF(show Run HRF)、每个被试的 HRF(show Sess HRF)以及组平均水平的 HRF(show Grp HRF)。

尽管 Homer2 提供了数据导出选项,但是在做后续统计分析并不方便。由于 Homer2 每次处理完数据会在原始数据基础上生成新的变量,因此,可以在 matlab 加载 nirs 文件:load MCKJ.nirs -mat 加载 nirs 文件(.nirs格式只是将 mat 的文件后缀改成.nirs),下图是数据所包含的域以及其代表的意义。后续可通过代码提取感兴趣的变量做后续分析。

你可能感兴趣的:(手把手教你用 Homer 处理 fNIRS 数据)