fNIRS Data Preprocessing使用步骤
本文是近红外数据分析步骤,适用于joint Simon task
,使用 宏程序fNIRS Data Preprocessing
以及其他宏程序完成,ETG7100
型号设备数据格式为编号_HBA_Probe1_Oxy.csv
,编号自定义,最好写成sub001_run1
这种形式,命名最好采用单数,即第1对被试为sub01
,第2对为sub03
,方便后续分割两个被试的数据。
fNIRS Data Preprocessing 宏程序介绍
程序界面包括三部分,步骤选择、设置、文件列表查看,如下图。
主要使用步骤为首先选择源数据路径,粘贴进对话框后点击File List
查看是否正确,然后在 Type of calculation
选择程序,点击Set
设置,设置无误后点击 Start
开始。
脑内激活(Intra-brain activation)
前面步骤使用 fNIRS Data Preprocessing
程序完成,十三步后可使用自定义宏程序。
Step01. Hitachi
使用 Excel
程序Hitachi
更新数据格式
- 输入目标文件的路径保存
Oxy
数据,按File List
按钮 - 从
Type of Calculation
中选择Hitachi
,按Set
按钮 - 按
Start
开始程序 - 结束后程序不会输出新的文件
Step02. Trigger Check
- 输入目标文件路径,按
File List
按钮 - 输入结果文件
Trigger.xlsx
的保存路径 - 从
Type of Calculation
中选择Trigger Check
,按Set
按钮 - 按
Start
开始程序,对话框中输入1
- 结束后程序会输出新的文件
Trigger.xlsx
Step03. 格式转换 xlsx to mat
- 打开
Matlab
,路径选择到Hitachi
后的文件路径,左侧出现文件后即成功 - 输入下列代码转换格式
|
|
- 上述代码可以修改 01-09编号的被试数据,如果要修改10以后的数据,可以将第4 、6行代码中
sub0
改为sub1
- 回车键执行代码,被试超过10需要多次执行
Step04. 带通滤波(bandpass-filter)
使用 Matlab
代码进行带通滤波(通常设置0.01-0.1Hz)(作用是降噪),将 matlab
代码文件和转换格式后的文件放到一个文件夹下
- 将
bandpass-filter
设置为当前路径 - 打开 M 文件
data_bpfilt.m
,将fs
修改为正确采样率(默认设置为fs=10)并保存 - 打开
filt_all.m
,设置正确的文件路径,该路径需包含data_bpfilt.m
文件,文件路径后记得加“\” - 按
Run
按钮运行filt_all.m
代码
Step05. 将 txt
格式转为 xlsx
文件
- 将
Eprime
数据txt
格式文件整理到一起 - 使用
Make xls files
程序读取 - 需要输入源文件路径和保存路径
- 保存后会输出新的
xlsx
文件
Step06. 提取行为数据
- 输入源文件路径
- 选择
BehavData_gather
程序 - 结束后不会生成新的文件,会在原有文件生成新的工作表
Step07. 整合行为数据
- 输入目标文件
Eprime (.xls)
的路径,按File List
按钮 - 输入行为数据的目标保存路径
- 输入行为数据的文件名(保留“EprimeData.xlsx”)
- 输入包含行为数据的表格编号,这里为
2
- 选择
Gather the files
,并开始程序
Step08. 添加 Mark
打开第 7 步后生成的文件
EprimeData.xlsx
输入包含带通滤波后的Oxy的目标文件的路径(第4步)
输入“Sheet number of the data”,这里为 1
选择
Mark Add
,Set
并Start
结束后可再执行一次
Trigger Check
程序,步骤与Step02
一致,Step02第4步对话框选择时输入2
前八步都是进行mark补充的功能,如果Eprime编实验程序时,设置刺激出现前打一个mark,刺激刚出现时打一个mark,刺激出现结束后两秒打一个mark。Mark在设计程序时就已经打好的话,那么前八步就不用操作了。
Step09. 基线校正和Z分数转换
- 使用添加
mark
后的oxy
文件,如果文件少mark
会报错 - 使用程序
Baseline correction
- 结束后不会生成新的文件
Step10. 分离条件
- 输入基线校正和Z分数转换后的数据路径
- 选择程序
Data Cut (mode1)
- 结束后不会生成新的文件
Step11. 计算平均脑激活
- 输入分离条件后的数据文件夹为源文件夹
- 选择程序
Average Calculation
计算平均脑激活 - 结束后不会生成新的文件
Step12. 将所有被试数据按条件整合
- 输入包含平均脑激活的目标文件的路径
- 输入保存文件的目标路径
- 输入文件名保存不同实验条件的平均脑激活数据,Condition1/2/3/4,并选择相应的Sheet number,第1个条件在
Sheet1
,以此类推 - 选择程序
Gather the files
,按Set
并Start
Step13. 将所有被试数据集中到一个 Sheet
- 输入包含Condition文件目标文件的路径
- 选择程序
Data Gather(mode1)
- 按
Set
并Start
Step14. 整合条件
- 接下来步骤需要自己新建宏程序
- 在个人宏工作簿中点击
开发工具-Visual Basic
- 点击
插入-模块
- 输入下列代码:
|
|
- 保存后运行,输入
Step13
后的文件路径后点击确定开始
**注意:**这里程序会将
Probe1 & 2
的数据 和Probe3 & 4
的数据分开,将Probe3 & 4
的数据编号加1,如果被试编号不是单数命名则不能使用此程序
同时程序会将被试对中第2个被试的 condition1 和 condition2的数据交换,condition3 和 condition4的数据交换。原因如下:
Eprime 程序中 Mark 设置为 condition1 为
左侧-红色
刺激,condition2为右侧-绿色
刺激,condition3为右侧-红色
刺激,condition2为左侧-绿色
刺激,因此交换后被试对中两名对应的一致性和反应性相符。
Step15. 切分通道
- 新建一个宏程序,粘贴下面代码
|
|
- 选择
Step14
后的文件路径后执行
Step16. 平均 run
- 新建一个宏程序保存下面代码:
|
|
- 将需要处理的文件放到一个文件夹内,并打开第一个文件的第一个工作表
- 运行程序,输入run的次数
程序运行结束后可将16步的结果文件导入到 SPSS 进行重复测量方差分析。
脑间同步(Inter-brain neural synchronization )
Step01 - Step09
与脑内激活处理步骤相同,可直接使用脑内 Step 09
结果进行脑间 Step10
操作
Step10. 分离条件
- 输入基线校正和Z分数转换后的数据路径
- 选择程序
Data Cut (mode2)
- 结束后不会生成新的文件
Step11. 将所有被试数据按条件整合
- 输入包含
Data Cut(mode2)
目标文件的路径 - 输入保存文件的目标路径
- 输入文件名保存不同实验条件的平均脑激活数据,Condition1/2/3/4,并选择相应的Sheet number,第1个条件在
Sheet1
,以此类推 - 选择程序
Gather the files
,按Set
并Start
Step12. 将所有被试数据集中到一个 Sheet
- 输入包含Condition文件目标文件的路径
- 选择程序
Data Gather(mode2)
- 按
Set
并Start
Step13. 计算基于 INS 的相关矩阵
此步骤会计算出被试对中两名被试的激活值之间的相关,包括同对伪时间序列的相关矩阵
- 输入
Step12
后的文件路径 - 选择程序
Correlation Cal
,按Set
并Start
Step14. 提取相关数据
此步骤后需要自定义宏程序
- 在个人宏工作簿新建一个宏程序,输入如下代码:
|
|
- 运行宏程序,选择上一步结果的路径
Step15. 平均 run
- 与脑内步骤一致,将需要处理的文件放到一个文件夹内
- 打开第1个文件第1个工作表,运行宏程序
Step16. 配对样本 t 检验
对所有通道的脑间相关数据与伪随机数据进行配对样本T检验,这里使用 R
进行
- 将
Step15
后的数据放到一个文件夹 - 建立一个文本文件,输入如下代码保存,并将文件后缀改为
.r
|
|
- 打开
R
,点击文件---运行 r 脚本文件
,选择刚才的代码文件运行
Step17. 切分通道
- 选择
Step15
运行后的结果文件路径,注意是第15步 - 新建一个宏程序,粘贴如下代码,并运行:
|
|
程序运行结束后可将17步的结果文件导入到 SPSS 进行重复测量方差分析。