美文网首页
手把手教你用 Homer 处理 fNIRS 数据

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

作者: 茗创科技 | 来源:发表于2021-12-15 10:08 被阅读0次

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


    一、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 数据

          本文链接:https://www.haomeiwen.com/subject/whwufrtx.html