开始之前,先推荐新发现的一个资源,适合新手快速上手MNE脑电处理,由几名中国博士创作,notebook可本地或直接跳转colab运行,最近已更新第二版,具体以下链接:
书归正传,上回下载了fsaverage MRI标准模板,准备进行源成像,包括两部分:
1)正运算: mne.make_forward_solution,坐标变换到MRI空间,生成头模型;
2)逆运算:stc = mne.minimum_norm.apply_inverse,源定位,生成源模型。
MNE支持三维交互显示:
1)检查EEG电极位置与MRI匹配情况:plot_alignment, 默认显示 粉色小圆点 original,原始传感器位置; 红色圆柱体为 projected,正向建模投射到头皮上的脑电图位置;
鼠标可移动旋转。
2)源估计可视化:
stc = mne.minimum_norm.apply_inverse 返回 mne.SourceEstimate 对象,包含表面源估计信息;而VolSourceEstimate对应体积源估计,以及MixedSourceEstimate混合源估计。
stc.plot,为类的一个方法,绘制源估计结果: hemi参数设置显示半球,默认为左半球, 可添加输出信号曲线点位,切换视角等; 视频参考如下:
脑成像
小插曲:三维显示窗口异常(未响应、不可交互、报错:wglMakeCurrent failed in MakeCurrent(), error)
由于我是用PyCharm打开.py文件运行,以上两个3D交互窗口弹出后都有问题。
尝试一: 安装 mayavi
and pysurfer
参考: 老版本(0.21)说明,当前版本(1.7.0),未能解决问题。
We can plot the source estimate using the stc.plot just as in other MNE objects. Note that for this visualization to work, you must have mayavi
and pysurfer
installed on your machine.
Visualize source time courses (stcs) — MNE 0.21.2 documentation
尝试二:设置notebook方式,Pycharm 可以显示交互界面,显示基本正常;但关闭plot_alignment窗口时,会报错结束进程。 Notebook中作同样设置则直接报错,不会显示。报错如下:
注意:notebook官方代码直接jupyter运行,则一切正常。
设置方法:
mne.viz.set_3d_backend("notebook")
参考:mne.viz.plot_alignment not working · Issue #11268 · mne-tools/mne-python (github.com)
目前3d_backend,支持 pyvistaqt 和 notebook 两种, 默认为 pyvistaqt 方式,两者区别(function & feature)在代码注释中说明:
...
尝试三:终端执行:在Pycharm终端命令行执行,所有显示窗口显示正常。
MNE官方讨论区,出现类似问题,Pycharm直接执行的确会存在问题。
参考:pyvistaqt 3d backend - plot not interactive - 💬 Support & Discussions - MNE Forum
以上。欢迎交流!