问题标签 [eeglab]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - ggplot2 中的拓扑图 – 例如 EEG 数据的 2D 可视化
可ggplot2
用于产生所谓的拓扑图(常用于神经科学)?
样本数据:
行代表单个电极。列x
和y
代表在二维空间中的投影,并且列signal
本质上是代表在给定电极处测量的电压的 z 轴。
stat_contour
不起作用,显然是由于网格不相等。
geom_density_2d
x
仅提供和的密度估计y
。
geom_raster
不适合这项任务,或者我必须不正确地使用它,因为它很快就会耗尽内存。
不需要平滑(如右图)和头部轮廓(鼻子、耳朵)。
我想避免使用 Matlab 并转换数据以使其适合这个或那个工具箱……非常感谢!
更新(2016 年 1 月 26 日)
我最接近我的目标的是通过
这会产生这样的图像:
更新 2(2016 年 1 月 27 日)
我用完整的数据尝试了@alexforrence 的方法,结果如下:
这是一个很好的开始,但有几个问题:
- 最后一次调用 (
ggplot()
) 在 Intel i7 4790K 上大约需要 40 秒,而 Matlab 工具箱几乎可以立即生成这些;我上面的“紧急解决方案”大约需要一秒钟。 - 正如你所看到的,中心部分的上下边界似乎被“切片”了——我不确定是什么原因造成的,但这可能是第三个问题。
我收到以下警告:
/li>
更新 3(2016 年 1 月 27 日)
interp(xo, yo)
用不同的和stat_contour(binwidth)
值生成的两个图之间的比较:
如果选择 low interp(xo, yo)
,则边缘参差不齐,在本例中为xo
/ yo = seq(0, 1, length = 100)
:
matlab - EEGLAB 未正确加载事件
我使用 BCI2000 记录了 Motor Imagery 的 EEG 数据。运动意象涉及两个简单的任务(受试者被要求想象当刺激 1 出现时移动右手,当刺激 2 出现时移动左脚)。
我将数据加载到 EEGLAB 中,弹出一个窗口“选择事件”(图 1)图 1 显示事件列表,其中包含“StimulusCode”、“StimulusType”、“StimulusBegin”等选项。我使用了“StimulusCode(每个刺激是与不同的数字相关联,在我的情况下,第一个刺激为 1,第二个刺激为 2)”。
当我查看我的数据时(使用 Plot>Channel Data Scroll)图 2 显示了带有选定事件的 EEG 数据,我看到的只是一个单词“StimulusCode”,而不是与刺激相关的数字。
- 为什么 EEGLAB 不显示我的刺激代码,
- 在数据采集期间是否需要更改 BCI2000 中的任何设置(我将 BCI2000 提供的示例 BCI2000 数据加载到 EEGLAB 上,用于教程目的,即使出现上述问题的那些数据集)
- 我是否需要将单独的事件列表导入 EEGLAB,如果需要,我该怎么做?
matlab - 保存转换后的 .bdf 文件
我使用 MATLAB R2011b 和EEGLab 13.4.3b加载了一个 Biosemi .bdf文件(EEG 记录),其中包括几个虚假触发器。触发器的位置存储在header.BDF.Trigger.POS
,触发器类型在header.BDF.Trigger.TYP
。
加载文件后:
header.BDF.Trigger.POS
我对和header.BDF.Trigger.TYP
向量进行了转换并替换了它们。
注意:这些转换不应该产生影响,因为即使我只加载 bdf 文件然后尝试将其保存回来,我也会得到完全相同的错误。
这是header
(用 提取的get()
)的结构:
我尝试使用 EEGLab 函数保存转换后的文件 ( header
) 无济于事。我知道如何使用 GUI 在 EEGLab 中保存 bdf 文件。但是,使用 GUI 不允许进行我需要的转换。
为了保存我尝试使用的文件pop_writeeeg()
,swrite()
但它们都不起作用。
我使用了以下命令:
首先采取:
回报:
/li>然后我尝试了:
哪个返回:
/li>我的下一个想法是使用
swrite()
以下方式:哪个返回:
/li>
我很确定我在这里遗漏了一些简单的东西。
有谁知道如何将转换后的 EEG (bdf) 数据保存回 bdf 文件?
matlab - 针对 EEGLAB 的不同数据集和条件的 for 循环
我必须分析一些脑电图数据,并且我正在尝试自动化预处理过程。
我有 40 名参与者。每个参与者有 4 个不同的文件,用于 4 个条件。
所以文件保存为
高达 40-4
这些文件来自 BioSemi (.bdf)
我已经能够自动化预处理过程,但每次我必须选择不同的文件,运行脚本并保存它。
我想运行一个 for 循环,它自己完成所有操作(取 1-1,运行预处理,保存,取 1-2 ......等等)。
接下来,我将粘贴到目前为止的内容。
我整天都在尝试编写一个 for 循环,但它就是行不通。
我真的很感激任何帮助。
这是当前的预处理脚本:
matlab - 如何在 EEGLab 中提取给定时间的频率?
我是 EEGLab 的新手,这是一个用于分析 EEG 数据的 MATLAB 工具。我想知道是否有一种特定的方法可以将给定时间的脑电波频率提取到使用 MATLAB 的文本文件中。
例如:1s 11Hz,2s 8Hz....
matlab - 如何在 MATLAB 中从 EEGLAB gui 中的各种 ICA 组件中提取特定的独立组件?
我目前正在做一个关于 BCI 运动图像数据集的项目。我的兴趣是通过 ICA 方法提取必要的组件。我目前正在为此目的使用 EEGLAB。您能否帮助我了解如何将自变量从 GUI 提取到 MATLAB 的工作区?
eeglab - 睡眠脑电数据的 EEGLAB 预处理
我有来自夜间睡眠记录的 29 通道 EEG 数据(约 8 小时的 EEG 数据)。EEG 数据不是连续的,因为如果受试者需要上厕所休息(约 5-10 分钟)或检查阻抗(约 2 分钟),我会暂停它。这会在我的 EEG 数据中插入一个“边界事件”。在某些情况下,如果阻抗很高,我还会重新应用几个电极。此外,有时由于某些技术原因,我不得不停止脑电图记录并重新开始,因为我在同一晚即同一会话中有两个脑电图文件用于同一主题。
在我的实验中,我在一夜之间有 15-20 个事件,并计划在每个事件之前使用 1-2 分钟的数据进行预处理和分析。我想使用 ICA 来纠正伪影,但在此之前,我想知道是否需要在每个“边界事件”处拆分数据并将它们作为单独的 EEG 文件处理?或者我可以将每个受试者的 EEG 记录视为单个 EEG 记录并执行 ICA(如果我在同一会话中每个受试者有两个 EEG 文件,我可以附加 EEG 文件)?任何建议都将受到高度赞赏,因为我对 EEG 和 MATLAB 非常陌生。
r - 使用 ggplot2 对 EEG 数据结果进行拓扑图
我可以使用 ggplot 从一些 EEG 数据中创建回归结果的拓扑图吗?
本质上,我想做这样的事情:ggplot2 中的拓扑图 – 例如 EEG 数据的 2D 可视化, 而我的数据不是电压,而是回归的结果(例如,系数、t 值、贝叶斯因子等)。
我设法复制了绘制电压的那个例子。在我的尝试中,我得到了每个电极在某个时间片的贝叶斯因子列表。但是,我无法将该帖子中的代码改编为我的。这是我的数据的一部分:
这是我导入数据后所做的:
按照代码,我的预测值对于所有电极或梯度将变得相同。
我只有在执行了 ggplot 命令的这一部分后才得到这个:
我认为问题发生在我进行插值时。或者,可能是因为电极的坐标不同。我真的是拓扑图和插值如何工作的新手,所以如果我犯了一个愚蠢的错误,请多多包涵。
任何帮助将不胜感激!
matlab - matlab 中的拓扑图:EEG 数据的 2D 可视化
我想使用 EEG 数据制作地形图。我使用 EEGLAB 工具箱。它只能制作插值形式(图1)。
我想喜欢这个地形图(图 2)。
我已经更改了 EEGLAB 的 topoplot 功能的许多选项。但是,我找不到它。有没有使用matlab制作那种地形图的方法?
python - 时间序列脑电图重采样以解决电压分辨率差的问题?
我在加州犯了一个非常严重的错误。14 次脑电图记录——我以 10uV 分辨率 @ 5000 Hz 而不是 0.1 uV @ 500 Hz 记录。我正在进行 ERP 实验,感兴趣的信号大约为 5 uV。我想知道是否有任何方法可以对电压进行上采样,因为我的时间序列数据点比我需要的多..?某种插值?
我看过很多关于从 500 赫兹到 1000 赫兹的上采样的帖子,但不确定主体是否相同?
这代表了大约 42 小时的记录时间,我很想知道我是否可以从这些记录中恢复任何可用的数据,或者我是否必须尝试让参与者重新加入(有一个治疗登记截止日期,这意味着我不能只需获取更多数据)。非常感谢,
PK