letswave教程:脑电数据图形绘制、批处理以及脚本生成

letswave教程:脑电数据图形绘制、批处理以及脚本生成

  • 1 单主题图形生成
    • 1.1 打开图形模块
    • 1.2 创建子图
    • 1.3 添加内容
    • 1.4 设置轴参数
    • 1.5 导出图形
  • 2 多主题图形生成
    • 2.1 打开图形模块
    • 2.2 创建子图
    • 2.3 添加内容
    • 2.4 设置轴参数
  • 3 批处理
    • 3.1 数据导入
    • 3.2 删除无用的通道
    • 3.3 过滤
    • 3.4 坏电极插值替换
    • 3.5 计算ICA矩阵
    • 3.6 人工识别成分
    • 3.7 分段
    • 3.8 重新参考
    • 3.9 基线校正
    • 3.10 平均
    • 3.11 运行批处理
    • 3.12 批处理操作的输入/输出
    • 3.13 中间数据集和前缀
  • 4 脚本生成
    • 4.1 批处理脚本
    • 4.2 单步操作脚本
    • 4.3 轻松访问数据
    • 4.4 数据导入和图形生成脚本

img
img
Hello,这里是行上行下,我是喵君姐姐~

第一期我们学习了如何用Letswave进行数据的预处理和ERP分析,包括letswave7的安装、数据集导入、预处理中常见的几种降噪方法、ICA分解、ERP分析。

第二期我们学习了如何用letswave对单个主题进行时频分析以及对多个主题进行平均和统计分析

这一期,我们就来教大家学习如何用letswave绘制图形,以及对数据进行 批处理,并介绍其中的 脚本生成功能

1 单主题图形生成

在对单个主题和多个主题进行分析之后,我们将在本部分中介绍ERP、时频图和topography图形生成。

在本章中,我们将显示下图的生成过程。此图显示了Pz通道上P300的ERP,其topography在332 ms上,TargetNontarget条件下的相应时频图显示在底部面板中。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第1张图片

1.1 打开图形模块

首先,rawdata1文件夹中,选择数据集:

  • Sub093 P300 Nontarget

  • Sub093 P300 Target

  • bl avg cwt bl reref ep_S 9 sp_filter ica chan _interp butt sel_chan sub093

  • bl avg cwt bl reref ep_S 10 sp_filter ica chan _interp butt sel_chan sub093

单击“ Figure-> General Figure creator ”,打开图形模块空白画布。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第2张图片

1.2 创建子图

1.2.1 在画布中添加一条Curve,两个Image和一个Topograph。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第3张图片
1.2.2 对于第二张Image和topograph,启用****colorbar

首先,单击Content工具栏中的按钮,选择Image3中的子图并启用colorbar
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第4张图片
然后,在“Subfigure”中选择topograph4并启用 colorbar
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第5张图片
1.2.3 调整每个子图的位置

首先,单击工具栏中的Image按钮,选择“ Curve1”。将 “Title” 设置为“ P300 ”,字体大小设置为12,位置设置为x = 50y = 340w = 600h = 250
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第6张图片
其次,选择Image2。将 “Title” 设置为 “ Target ”,将字体大小设置为12,并将位置设置为x = 70y = 50w = 250h = 250
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第7张图片
接着,选择Image3。将 “Title” 设置为“ Nontarget ”,将字体大小设置为12,并将位置设置为x = 360y = 50w = 250h = 250
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第8张图片
最后,选择 “ topograph4”。将 “Title” 设置为“ 332 ms ”,将字体大小设置为12,并将位置设置为x = 480y = 470w = 120h = 120
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第9张图片
步骤2之后,图形将如下图所示,
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第10张图片

1.3 添加内容

首先,单击工具栏中的 “Content” 按钮,然后在子图中选择P300。添加一条curve,其数据源为“ Sub093 P300 target ”,通道为Pz
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第11张图片
其次,添加一条curve,其颜色为蓝色 [0,0.45,0.74],数据源为“ Sub093 P300 nontarget ”,通道为Pz
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第12张图片
然后,添加一个line,位置 X1 = 0.332Y1 = -5X2 = 0.332Y2 = 10.8619
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第13张图片
接着,在子图中选择Target。将数据源设置为“ bl avg cwt bl reref ep_S 9 sp_filter ica chan_interp butt sel_chan sub093 ”,通道设置为Pz,范围从 -99,启用width,并将宽度设置为0.5,范围从00开始。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第14张图片
接下来,在子图中选择Nonarget。将数据源设置为“ bl avg cwt bl reref ep_S 10 sp_filter ica chan_interp butt sel_chan sub093 ”,通道设置为Pz,范围从 -99,启用width,并将宽度设置为0.5,范围从 00 开始。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第15张图片
最后,在子图中选择332 ms。将数据源设置为“ Sub093 P300 Target ”,x从0.3320.332head radius0.5shrink0.95,范围从 -510.8619, 以使其与P300曲线的范围相同。对于电极,将size设置为8,并标记通道 Pz。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第16张图片
步骤3之后,该图将如下图所示,
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第17张图片

1.4 设置轴参数

首先,单击工具栏中的axis按钮,然后在子图中选择P300。并启用figure。在内容的列表框中选择curve1,在figure中将其名称更改为Target。在内容的列表框中选择curve2,在figure中将其名称更改为NonTarget

对于x轴,将x-lim设置为 -0.51.5秒,将位置更改为origin。启用标签,并将其设置为“ Time [sec] ”。对于y轴,将位置更改为origin。启用label,并将其设置为“ Amp [\ muV] ”。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第18张图片
其次,在子图中选择target。对于x轴,将x-lim设置为 -0.51.5秒,并将label设置为“ Time [sec] ”。对于y轴,将标签设置为“ Freq [Hz] ”。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第19张图片
然后,在子图中选择Nontarget。对于x轴,将x-lim设置为 -0.51.5秒,并将label设置为“ Time [sec] ”。对于y轴,将标签设置为“ \ muV ^ 2 / Hz ”。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第20张图片
步骤4之后,该图将如下图所示,
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第21张图片

1.5 导出图形

到目前为止,我们已经完成了Letswave中图形的编辑。接下来,我们需要导出图形,以便在其他软件中进行进一步的编辑。

单击工具箱中的 “export the figure ” 按钮,将图形导出为epspdf格式。单击第二个按钮,将图形另存为“ Figure1.lw_figure ”,将文件保存在工具栏中。我们可以保存该图以便下次编辑。此外,date management可以通过更改数据源以生成新图形。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第22张图片

2 多主题图形生成

在本章中,我们将显示多主题分析的图形生成。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第23张图片

2.1 打开图形模块

首先,在rawdata1文件夹中,选择数据集

  • avg merge_epoch Sub001 P300 Nontarget

  • avg merge_epoch Sub001 P300 Target

单击“ Figure-> General Figure creator ”,以打开图形模块空白画布。

2.2 创建子图

首先,将图形的宽度和高度设置为1000400

其次,添加标题为P300,字体大小为12,位置x = 80y = 70w = 870h = 300curve
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第24张图片
然后,添加标题为0 ms,字体大小为12,位置x = 100y = 180w = 120h = 120topograph
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第25张图片
接着,添加标题为332 ms,字体大小为12,位置x = 230y = 180w = 120h = 120topograph
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第26张图片
最后,添加标题为500 ms,字体大小为12topograph,在content面板中启用colorbar,并将位置x = 630y = 180w = 120h = 120定位。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第27张图片
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第28张图片

2.3 添加内容

首先,单击工具栏中的content按钮,然后在子图中选择P300。添加一条width3curve,数据源为“ avg merge_epoch Sub001 P300目标 ”,通道为Pz
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第29张图片
其次,添加一条curve,其颜色为蓝色 [0,0.45,0.74]width3topographDshed,数据源为“ Sub093 P300 nontarget ”,通道为Pz
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第30张图片
然后,添加一个face opacity0.25edge opacity0,位置x = 0.196y = -2w = 0.516h = 14rect。并在curve1curve2上方对rect进行排序。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第31张图片
接着,添加一个line,width1line styledshed,位置X1 = 0Y 1 = -2X 2 = 0Y2 = 1.2
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第32张图片
接下来,添加一个line,width1line styledshed,位置X1 = 0.332Y 1 = -2X 2 = 0.332Y2 = 11.3
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第33张图片
然后,添加一个line,width1line styledshed,位置X1 = 0.5Y1 = -2X 2 = 0.5Y2 = 2.8
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第34张图片
紧接着,在子图中选择0 ms。将数据源设置为“ avg merge_epoch Sub001 P300 Target ”,x从00head radius0.5shrink0.95,范围从 -212, 以使其与P300曲线的范围相同。对于电极,将大小设置为 8, 并标记通道 Pz
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第35张图片
再然后,在子图中选择332 ms。将数据源设置为“ avg merge_epoch Sub001 P300 Target ”,x从0.3320.332head radius0.5shrink0.95,范围从 -212,以使其与P300曲线的范围相同。对于电极,将大小设置为 8 ,并标记通道 Pz
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第36张图片
最后,在子图中选择500ms。将数据源设置为“ avg merge_epoch Sub001 P300 Target ”,将x设置为0.50.5head radius设置为0.5shrink0.95,范围从 -212 以使其与P300曲线的范围相同。对于电极,将大小设置为8,并标记通道Pz
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第37张图片
步骤3之后,该图将如下图所示,
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第38张图片

2.4 设置轴参数

首先,单击工具栏中的axis按钮,然后在子图中选择P300。并启用BoxLegend

其次,在内容的列表框中选择curve1,在figure中将其名称更改为Target。在内容的列表框中选择curve2,在figure中将其名称更改为NonTarget

接着,对于x轴,将x-lim设置为 -0.51.5 秒。启用 gridlabel,将label设置为“ Time [sec] ”。

最后,对于y轴,启用gridlabel,将label设置为“ Amp [\ muV] ”。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第39张图片
步骤4之后,该图将如下图所示。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第40张图片

3 批处理

在这一部分中,我们将对单个主题重新做时域分析。与上一教程中的逐步操作不同,本部分将使用批处理对数据进行分析。

注意: 在每步操作中,不需要点击 “Run”,需在所有操作处理完毕后,再点击 “Run” 运行。

3.1 数据导入

下载教程数据集,解压缩rawdata1.zip文件,共有三个文件,分别是sub093.eegsub093.vhdrsub093.vmrk

打开Matlab,在Matlab的命令窗口中输入“ letswave7 ”以打开Letswave7。将letwave的路径设置为数据集的文件夹。

在管理器模块的菜单中选择 “file->import->import EEG / MEG datafiles” ,然后将弹出导入数据对话框。按下add files按钮以添加文件sub093.eeg

3.2 删除无用的通道

在管理器模块的数据列表中选择数据集“ sub093 ”,然后单击 “ edit”->“arrange signals”->“rearrange or delete epochs,channels,indexes”。在批处理模块中,按add all按钮以将所有通道添加到左侧列表框中。然后选择通道IO,然后按 “ delete” 按钮删除通道IO
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第41张图片

3.3 过滤

单击左侧的selection,然后在菜单中选择 “process- >frequency analysis and filters-> Butterworth filters”,并将low cutoff frequency(Hz) 设置为0.05Hz

注意: 从此步骤开始,批处理中的操作将有所不同。我们从批处理模块而不是管理器模块中调用Butterworth过滤器。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第42张图片
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第43张图片

3.4 坏电极插值替换

单击左侧 Butterworth filters,然后选择 “edit->electrodes->interpolate channel using neighbouring electrodes”。在 “ channel to interpolate:channels for” 列表框中选择通道P1,然后单击 “ find closest electrodes ” 按钮。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第44张图片

3.5 计算ICA矩阵

单击左侧chan interp, 然后选择 “ process”->“spatial filters(ICA / PCA)->compute ICA matrix ”。选择decide by user,并将组件编号设置为40
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第45张图片

3.6 人工识别成分

首先,单击左侧ICA,然后在批处理模块中选择 “ process”->“spatial filters(ICA / PCA)->apply ICA / PCA spatial filters”。左侧显示两个选项,即 loadapply filter

其次,单击load,然后单击add并添加数据集“ ica chan_interp butt sel_chan sub093 ”。点击标签apply filter,无需在此处设置任何选项。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第46张图片

3.7 分段

首先,单击 apply filter,然后在批处理模块中选择 “process->epoch segmentation->segment relative to events(one file per code)”。左侧又出现了两个选项,分别是loadsegmentation

其次,单击load,然后单击add并添加数据集“ sp_filter ica chan_interp butt sel_chan sub093 ”。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第47张图片
接着,单击segmentation,选择事件代码S 9S 10,并将epoch开始时间和持续时间设置为 -13
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第48张图片

3.8 重新参考

首先,单击segmentation,在批处理模块中选择 “process”- >“reference signals”->“reference ”。左侧又出现了两个选项卡,即loadreference

其次,单击load,然后单击add并添加数据集“ ep_S 9 sp_filter ica chan_interp butt sel_chan sub093 ”和“ ep_S 10 sp_filter ica chan_interp butt sel_chan sub093 ”。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第49张图片
然后,单击该选项卡rereference,选择TP9TP10作为新参考在左侧的列表框中,在右侧框中点击 “select all”。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第50张图片

3.9 基线校正

单击reference, 然后在批处理模块中选择 “process”- >“baseline ”->“baseline correction”。左侧出现baseline correction选项,保留基线校正的默认设置。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第51张图片

3.10 平均

首先,单击baseline correction, 然后在批处理模块中选择 “process”- >“arrange”->“compute arrange,std,median across epoch”。

左侧出现average_epoch选项。保留基线校正的默认设置。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第52张图片
为此,我们已经完成了分配批处理的工作。下一步骤将介绍运行批处理。

3.11 运行批处理

通过点击 “Run” 按钮,我们可以运行整个批处理。

“ 人工识别成分 ” 步骤中,我们仍然手动在右侧面板中以橙色选择comp 1comp 2,然后单击OK按钮。

测试中的所有处理都需要2分钟以上的时间,其中计算ICA矩阵的步骤非常耗时。结果将与逐步操作的结果完全相同。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第53张图片
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第54张图片

3.12 批处理操作的输入/输出

整个批处理过程分为四个阶段,每个阶段都有不同的颜色。每个会话都从load步骤开始。

实际上,自动添加load操作的目的是指定系统的输入数据集。在每个步骤中,必须弄清楚处理的输入和输出。在分步操作中,输入是选定的数据集,输出是添加了前缀的新数据集。

Letswave7自动添加load操作以要求用户指定输入数据集。当然用户还可以通过选择“ File-> load ” 来手动添加load操作。

3.13 中间数据集和前缀

在Letswave7中,每个步骤都会生成一个带有前缀的新数据集。有时,中间数据集没有用,但却占据了硬盘。此外,对这些中间数据集的读/写操作将很耗时。

在这种情况下,我们可以设置prefix,并检查了保存复选框的中间步骤的selection,butterworth filters,chan_interp,reference,baseline correction。

注意: 将前缀设置为 实际上是在替换输入数据集。请注意,一旦保存了结果,它将覆盖原始数据集。

注意: 每个会话的最终结果都需要保存。否则,所有处理都是徒劳的,因为没有结果保存在硬盘驱动器上。

letswave教程:脑电数据图形绘制、批处理以及脚本生成_第55张图片
由于数据集的名称已更改,因此我们需要在load操作的步骤中相应地删除错误数据集并为输入添加正确的数据集。通过单击 “Run” 按钮,批处理将比以前更快,中间数据集不再存在。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第56张图片
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第57张图片

4 脚本生成

除了图形用户界面(GUI),脚本可能是Letswave7中最常用的功能。脚本为用户提供了更大的脑电图处理自由度,但是还要求用户具有更扎实的编程基础,这使得没有相关背景的研究人员难以使用。Letswave7致力于解决这个问题。

4.1 批处理脚本

在Letswave7中,系统通过运行相应的Matlab脚本来运行批处理。完成处理流程后,已经自动生成了相应的Matlab脚本。用户可以单击批处理模块中的 “ script ” 按钮以获取完整的脚本。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第58张图片

4.2 单步操作脚本

在批处理的每个步骤中,也可以使用右下角的 “script ” 按钮来获得用于单步操作的脚本,从而可以切实减少用户对教程的依赖。即使没有扎实的Matlab编程背景的用户也可以编写高质量的脚本来进行批处理EEG信号处理。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第59张图片
在Letswave7中,我们提供了具有丰富的函数库FLW_。该库中所有函数的语法都是统一的。对于操作的第一步,我们只需要定义选项,然后调用相应的FLW函数即可。

option=struct('XXX',xxx,'XXX',xxx);       lwdata= FLW_XXX.get_lwdata(lwdata,option);

该选项中的参数设置与GUI中的参数选择相同。只需注意函数的输入和输出是单个数据集还是多个数据集即可。

4.3 轻松访问数据

通过单击管理器模块右侧菜单中的“ send to workplace”,可以轻松访问每个数据集,该数据集将在Matlab工作区中显示为变量,名称为“ lwdata ”。然后,基于脚本的用户可以在Matlab中对数据集进行自己的操作。

letswave教程:脑电数据图形绘制、批处理以及脚本生成_第60张图片
操作后,用户还可以通过单击管理器模块右侧菜单中的“ read from workplace ”,以Letswave格式保存数据集。

同样,其他信息也很容易在其他模块中访问,例如事件信息通道名称和有关平均值,最大值最小值的统计结果。

4.4 数据导入和图形生成脚本

不仅批处理模块中的操作,其他操作(如数据导入和图形生成)也都可以脚本化。因此,从数据导入到预处理,时间/频率分析和统计分析,再到最终图形生成,EEG信号信号分析的整个过程可以轻松,快速地编写为脚本。

在这里,我们重复对P300数据集的数据分析,以演示在Letswave7中使用脚本的情况。

  • 脚本1数据导入

将Letswave路径切换为“ rawdata1 ”。打开数据导入对话框,然后选择数据集 “ Sub093.eeg”。除了单击按钮Run之外,我们还可以单击按钮script来获取用于数据导入的脚本script1

在Matlab中运行script1,我们还可以通过单击Run按钮直接加载数据集 “ Sub093”
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第61张图片

  • 脚本2单主题分析

打开之前保存的批处理“ P300 .lw_script ” 。除了单击按钮Run之外,我们还可以单击按钮script来获取用于单个主题分析的脚本script2。在Matlab中运行script2,我们也可以完成单主题分析。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第62张图片

  • 脚本3单主题分析(已编辑)

熟悉Letswave脚本和Matlab编程后,就可以将这两个脚本组合到script3并对其进行编辑以提高效率,并更改数据集的名称以进行进一步的多主题分析。

在Matlab中运行script3,对于时域分析,我们可以得到平均结果“ Sub093 P300 Target ”和“ Sub093 P300 Nontarget ”,对时频域分析可以得到“ cwt Sub093 P300 Target ”和“ cwt Sub093 P300 Nontarget ”。

  • 单个主题的脚本4 图形

选择数据集 “ Sub093 P300 nontarget.lw6”“ Sub093 P300 target.lw6”“ cwt Sub093 P300 target.lw6”“ cwt Sub093 P300 nontarget.lw6”。我们可以按照单主题分析图形进行制作。

单击按钮script以获取用于生成图形的脚本script4。在Matlab中运行script4,我们可以得到类似的图形,但是图例的位置需要调整。
letswave教程:脑电数据图形绘制、批处理以及脚本生成_第63张图片

  • 脚本5 多主题分析

Letswave的路径切换到“ rawdata2 ”,重复平均和统计分析的操作。在通过String操作进行编辑并添加for循环之后,我们可以拥有用于多主题分析的脚本script5

在Matlab中运行script5,我们可以得到与之前多主题的平均与统计分析完全相同的结果。

总结:通过以上教程,我们学习了如何运用letswave进行图形生成、批处理以及脚本生成。

至此为止,我们关于letswave的教程就结束啦!这些只是基本的操作步骤,具体的方法和参数还是要根据自己的实验目的来设置,希望本次教程能帮助到大家~

PS: 本文首发于公众号 行上行下,公众号后台回复 “Letswave” 可获得安装包、原文教程以及其他资料等内容。

排版:华华

img

你可能感兴趣的:(脑技术)