学习 MNE-Python 记录

image

小记学习过程中遇到问题还有需要理解的知识点

直接看教程看了一小时不到,头晕眼花,这还说啥了,直接开整吧那就。


数据来源 —— 开源数据集
Naturalistic fMRI and MEG recordings during viewing of a reality TV show
分析其中的MEG数据,顺便理解其中的知识点,比如什么是FFT、ICA这样的概念,意义,再到实现方案


按照数据处理的顺序开始处理
这次真开整了
上个厕所先


先看看原始数据长什么样
image
额。。。这里其实有个问题,这个公开数据集有提到,这是经过处理后的?可能仅是划分之后的?按理说应该是没处理吧,不然这图太奇怪了。

image

不太懂,假装不知道好吧,开干

预处理:核心去伪影与数据校准

image
数据没有处理过,之前糊成一团是因为没有滤波对吧😘

陷波50Hz,高通0.1,低通120

image

捉到一个坏道 【MEG048】

困在ICA3个小时了,MEG中没有明确的EOG通道,需要另行考虑怎么去除,官方文档,还有其他教程我也在看,稍等

Stabilized ICA for EEG/MEG data

Preprocessing optically pumped magnetometer (OPM) MEG data

困在数据预处理断断续续大概有两天了,还是因为数据集中没有明确的EOG通道,这方面教程偏少,访问MNE-Python官网居然还算是问题,真是难受🥺

image
参考这篇 [Stabilized ICA for EEG/MEG data] 完成了20通道不稳定的ICA分解

但是下一语句 fig = ica.plot_sources(raw , show_scrollbars=False , title = "10 ICA sources")

image

略施小计
image

之后呢?ICA处理的是这样,然后呢?

image

就这啊?

我使用的数据集是被试看爸爸去哪了,wk,那能看出来个蛋,

刚刚细细想了一下,大概可以做成那种,1s一个上面的脑部图,做成动画,对应爸爸去哪了视频

不过这个有点难度,我先给官方教程那个数据集跑通再说吧


[Preprocessing optically pumped magnetometer (OPM) MEG data]

image

转战 Vs Code

没问题啊,官网的代码都能跑起来,没什么好说的,我再研究研究数据集和代码
完了最后还是处理爸爸去哪


狠狠拷打AI

image

image

点击查看代码
raw_ica_prep = raw.filter(l_freq=None, h_freq=40, n_jobs=-1, verbose=False)

ica = mne.preprocessing.ICA(
    n_components=30,  # 成分数量,可根据数据调整
    random_state=42,  # 固定随机种子,结果可复现
    max_iter="auto"
)

# 仅对良好的MEG通道进行ICA(排除坏通道)
meg_picks = mne.pick_types(raw_ica_prep.info, meg=True, exclude="bads")
ica.fit(raw_ica_prep, picks=meg_picks, verbose=False)

# 方式4.1:可视化识别(手动选择漂移成分,更直观)
ica.plot_components()  # 查看所有ICA成分,低频漂移成分通常表现为缓慢波动的空间分布
ica.plot_sources(raw_ica_prep)  # 查看成分的时间序列,低频漂移成分呈现慢波趋势
# 根据可视化结果,手动选择伪影成分(假设第0、2号是低频漂移成分)
exclude_components = [3, 5, 20, 26]  # 根据实际观察结果调整
ica.exclude = exclude_components

# 5. 应用ICA去除伪影(得到去低频漂移后的干净数据)
raw_ica_clean = ica.apply(raw, verbose=False)


# 后续流程(计算PSD、绘图,与原流程一致)
psd_kwargs = dict(fmax=20, n_fft=int(round(raw.info["sfreq"])))
psd_pre = raw.compute_psd(**psd_kwargs)
psd_post_reg = raw_ica_clean.compute_psd(**psd_kwargs)

# 绘图
time_ds = raw.times[:stop:step]
data_ds, _ = raw_ica_clean[::5, :stop]
data_ds = data_ds[:, ::step] * amp_scale

fig, ax = plt.subplots(layout="constrained")
ax.plot(time_ds, data_ds.T - np.mean(data_ds, axis=1), **plot_kwargs)
ax.grid(True, ls=":")
ax.set(title="After ICA Denoising (替代参考通道回归)", **set_kwargs)
plt.show()


After HFC

image

没有参考通道的呀,又忘了

image

image

做到这一步,官方教程就跑完了,剩下的因为我使用的数据是静息态的任务,另议。


我有一段OPM脑磁数据,被试看了20分钟的电视剧。我根据MNE的教程将数据进行了预处理,包括ICA、HFC和滤波,教程的下一步是分析ERP的脑部地形图,但是我的数据类似静息态,所以下一步呢?我能从这个数据看到什么吗?

一、核心分析方向 1:神经振荡(脑磁节律)分析(OPM 数据优势方向)
二、核心分析方向 2:功能连接与脑网络分析(静息态延伸,适配持续任务态)
三、核心分析方向 3:ICA 成分的功能深度解读(利用已完成的 ICA 预处理)
四、进阶分析方向:动态功能连接分析(突破静态连接局限性)
五、增值分析:与剧情 / 行为特征的关联分析

在尝试常见的分析方向包括数据分段(Epoch 化)、频域功率分析(各节律波段统计)
image

image

image

PSD空间分布

image

不懂
image


放弃了,2026/03/31,这次试着从阅读官方文档开始。

posted @ 2026-03-31 13:19  胡诌八扯  阅读(2)  评论(0)    收藏  举报