问题标签 [mne-python]
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.
signal-processing - 在 EEG 数据 python 中查找峰值幅度和延迟,最好使用 MNE
我有脑电图数据,我想计算峰值的幅度和延迟。我正在与 MNE 合作,并在 Evoked 对象中找到了 get_peak 方法。但是,我想找到时代数据的峰值(不是平均的)。我该怎么做?我没有看到 epochs 对象的类似功能。我更愿意通过 MNE 来做,但其他 python 库也可以工作。重要的是有一个选项来获取峰值的幅度和延迟,并选择一个时间窗口进行检测。
另外,我不明白 get_peak 是只返回最高峰,还是别的什么?如果有多个峰值。
谢谢!
mne-python - 在 MNE Python 中处理长时期时如何拒绝坏段
我正在为我的论文做一个关于脑电图的社会认知实验,在我的实验中,我正在进行 25 秒的长时间试验。这意味着,如果我使用任何自动拒绝功能来拒绝坏段,它将删除我的大量数据,因为同时使用 mne.annotations 或 autoreject 时会丢弃整个 epoch。关于如何在我的 25 秒长的时期中删除坏段而不删除整个时期的任何建议?
非常感谢所有帮助!
python - 两个事件之间的 Epoch EEG 数据,而不是 min_max 秒?
我想对我的脑电图数据进行纪元,但不是像通常那样基于以秒为单位的持续时间,而是一个纪元应该持续抖动的刺激呈现的长度。因此,我想通过刺激的开始(由一个事件标记)和下一次试验的刺激开始(另一个事件)来指示一个时期的开始和结束。(一个 epoch 将包含其他应该留在 epoch 但暂时不考虑的事件。)
例如,我有这一系列事件:104 1 2 3 4 5 105 1 2 3 4 5 103 1 2 3 4 5
我想要包含从 104 到 105 的事件的时期(不包括 105);然后从 105 到 103(不包括 103)和 103 到最后。
你知道这是否可以在matlab(或python)中完成?
非常感谢 :)
python - 如何将 rawEDF 文件导出到我的计算机
所以基本上我在 python 中使用 mne 和 pyedflib 库来操作 edf 文件。只要我对我的 edf_file 应用许多更改,我需要在每次修改后导出我的 edf 文件。我用 mne 和 pyedflib 尝试了许多命令,但它们似乎都不起作用。请问有人有解决办法吗?任何形式的帮助将不胜感激!
matlab - 在 MNE-python 中,为什么来自时频表示(tfr)的功率数据尺度与功率谱密度(PSD)不同?
当我管理我的 EEG 数据时,mne.time_frequency.tfr_morlet(或其他两种方法)的结果是 1e-7 左右的一组功率。当用 dB = 'True' 绘制时,只有当颜色比例在 -150 到 -200 左右时才能得到一个好的图表。但是,当我进行 psd 分析时,功率在 0-40 左右。是什么造成了差异?另外,我还在matlab上用eeglab做了时频分析,dB的色阶在-40到40左右,看不懂区别。谁能解释一下,谢谢。
python - 通过 URL 从 Sagemaker 访问存储在 S3 上的大型 BDF 和 EDF 文件,并使用 mne 库读取它们
我在S3上有一个存储桶和一个SageMaker笔记本。我尝试访问存储在S3存储桶中的相当大的BDF和EDF文件(1-2 GB) ,而不将它们上传到SageMaker卷。我还需要通过 URL 访问这些文件,因为EDF处理函数接收文件的绝对路径作为输入。mne.io.read_raw_edf
S3存储桶与Sagemaker Notebook Instance位于同一区域。与笔记本实例关联的 IAM 角色被授予访问S3存储桶的权限。
首先,我尝试使用this question中的方法,该方法描述了如何读取.csv
文件。尽管就我而言,它与.csv
文件配合得很好,但对文件却失败了.edf
。
当我执行此代码时,我收到以下错误:
在这里,我面临一个不是我做的路径堆叠。我不太明白为什么pd.read_csv
通常读取路径,不像mne.io.read_raw_edf
,它似乎堆叠了本地路径和服务器路径。
然后我找到了一个非常相似的问题的答案,但在堆叠路径方面遇到了非常相似的问题。
在这里我们可以看到路径是正常存储的。
当我执行此代码时,我收到以下错误:
mne.io.read_raw_edf
再次执行奇怪的堆叠。
最后,我尝试按照本文中描述的方法进行操作。
这条路似乎又恢复了正常。
但在这里我得到了另一个奇怪mne.io.read_raw_edf
的行为。不再堆叠,但路径被裁剪。
我认为这可能是mne.io.read_raw_edf
问题本身,但我从未在亚马逊产品之外遇到过这样的事情。
通过 URL 访问BDF和EDF文件是否有意义,或者将文件上传到SageMaker卷是否更好?如果这个问题看起来很幼稚,我深表歉意。我已经花了几天时间解决这个问题,但我需要尽快解决它,因为亚马逊在笔记本处于活动状态时每小时都会收取费用。
mne-python - MNE Python EEG 奇怪的 PSD
对于一个学校项目,我正在使用我想使用 MNE for Python 分析的开源 EEG 数据。(https://openneuro.org/datasets/ds003061/versions/1.0.1)
当我使用“raw.plot_psd()”在原始数据上绘制功率谱时,我得到了一条几乎平坦的线。我想也许在应用一些滤波后这个问题会得到解决,但是在带通滤波器 (filt_raw.load_data().filter(l_freq=0.1, h_freq=50)) 之后,PSD 仍然不像我对 EEG 的期望数据。
有谁知道为什么我的 PSD 看起来很奇怪?
我添加了一些图片来说明:
原始脑电图
原始 PSD
带通滤波器后的 PSD
提前致谢!
python - 跨国公司-Python;tfr_morlet 时频分析;可能不当使用论据;如何使 tfr_morlet 图正常工作?
我为这个主题的模糊性道歉。这反映了我对 tfr_morlet 图形输出的行为缺乏了解。
要指定。我正在处理 64 通道 EEG 数据。我有一个刺激事件,它是我时代的开始标记。我将我的 epoch 分成 4 个较小的 epoch,每个 1 秒,其中“Epoch1”的 1 秒持续时间内包含刺激事件和非刺激 EEG 数据。
我的工作流程如下:
- 加载 .vhdr 文件
- 应用过滤器
- 应用脑电图帽蒙太奇
- 创建事件从刺激标记开始的纪元(Epoch0)
- 制作另一个从 Epoch0 裁剪的 epoch (Epoch1) (tmin=0, tmax=1, include_tmax=True)。这给出了我有兴趣用于 tfr_morlet 函数的纪元。
- Epoch1 上的 ICA
- Epoch1 上的 tfr_morlet(后 ICA)
我一直在阅读 tfr_morlet 函数并修改参数以查看它如何影响结果图。我的工作流程的每个其他步骤似乎都在正常工作,包括,最重要的是,通过 ICA 成功删除了刺激事件。
以下是我调用 tfr_morlet 函数时的代码片段:(您会注意到我在片段中对基线参数的一些修补工作)
根据实际数据,在 epoch 的开始和结束时没有大的信号。这仅出现在 tfr_morlet 图中。我调整了 tfr_morlet 基线参数值,它似乎影响了这些奇怪的信号,但它也完全修改了所有其他信号。此外,应该有更多的信号出现在较低的频率范围内,但它们基本上不存在。有可能是数据的原因,但开头和结尾的大信号肯定不是数据的反映。
简而言之,我有点卡住了,在网上找不到太多帮助。如果有人对您的 tf 图中出现的此类问题有类似的经历,请让我知道您对如何解决此问题的想法。
如果可以在不共享我的其余代码的情况下解决此问题会更好。我相当有信心问题出在我上面提供的片段上。
感谢大家为此付出的时间和专业知识。我非常期待您的评论。当然,如果我同时解决这个问题,我也会发布我的解决方案。
python - ,使用 MNE python 包进行 EEG 信号处理时读取 .set 文件时出错
输出
OSError: The file /Users/sheetal/Desktop/emotions/sub-01/eeg/sub-01_task-ImaginedEmotion_eeg.set does not exist.
我是使用 MNE python 包进行 EEG 信号处理和读取 .set 文件时出错的新手