Python中MNE库的脑电地形图绘制

2023-11-18

脑电地形图在进行和“源”相关的分析时很有用,可以直观的看出各个电极的激活情况以及其随时间的变化。在标准的脑电数据中都是有电极的坐标位置的,会用EEGLab的可能对这块比较熟悉了,实际MNE库中也有相关的定义和实现,可以导入外部的电极数据,或者使用一些标准的位置信息如:10-20电极分布。

电极的坐标以及坐标系:

脑电电极的分布可以根据实际情况设计不同的位置,以标准的1020为例。

https://www.diytdcs.com/2012/07/1020-system-electrode-distances/

实际上标准的10-20只有21个通道,随着通道需求的增加,基于10-20 有了很多的变形,通道数也增加了很多。不过通道的位置一般都是由采集设备固定的,了解就好。

如果你有EEGLab的数据,在转换为MNE使用的时候我们只需要关心笛卡尔坐标系的XYZ就可以了。下面的两张图是EEGLab中的坐标描述,和后面内容没什么关系,只是为了说明有3种不同的坐标系之间的转换。

https://cloud.tencent.com/developer/article/1521031

https://atonal.ucdavis.edu/resources/docs/matlab/public/eeg/fixes/readlocs.html

 

MNE中的topomap

推荐一个连接,也是官方的一个例子,把这个例子搞明白应该就够用了,例子中的内容比较多,这里只挑选示例中的几个函数。

https://mne.tools/stable/auto_tutorials/intro/plot_40_sensor_locations.html#sphx-glr-auto-tutorials-intro-plot-40-sensor-locations-py

 

1、没有电极位置信息,只有通道名称。

大部分的情况下,你可能有一些脑电数据,但是没有电极的位置信息,只要你的通道名称是标准的命名规则就可以直接使用默认的位置信息,相当方便,这个函数就是set_montage;这是epochs的一个方法epochs.set_montage('standard_1020'),这里的使用的10-20的分布规则,还有一些其他的规则可以选择。MNE中的10-20支持94+3通道,一般情况够用了 。

epochs.set_montage('standard_1020')

https://mne.tools/stable/generated/mne.Epochs.html?highlight=set_montage#mne.Epochs.set_montage

 

2、有电极位置信息

有电极位置信息是最好的了,因为有些时候由于一些特殊原因可能没有按照标准的分布规则部署电极,只要有位置信息就可以在任何平台使用了。在MNE中这种情况通过两个步骤来处理,首先make_dig_montage,然后set_montage就可以了。这种方式还能解决通道命名不规范的问题,只要make_dig_montage中ch_pos的key和通道名对应即可,并不要求一定是标准的命名方式,还有一点需要注意MNE中的单位是米,可能会需要换算。

make_dig_montage:https://mne.tools/stable/generated/mne.channels.make_dig_montage.html?highlight=make_dig_montage#mne.channels.make_dig_montage

sensorPosition={ch_names:position}
montage = mne.channels.make_dig_montage(ch_pos=sensorPosition)
epochs.set_montage(montage)

然后你就可以绘制这种脑电地形图了。。。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中MNE库的脑电地形图绘制 的相关文章

  • 如何访问pandas数据框中的多级索引?

    我想用相同的索引来调用这些行 这是示例数据框 arrays np array bar bar baz baz foo foo qux qux np array one two one two one two one two df pd Da
  • 替换字符串列表中的 \x00 的最佳方法?

    我有一个来自已解析 PE 文件的值列表 其中包括 x00每个部分末尾的空字节 我希望能够删除 x00字符串中的字节而不删除所有字节 x 文件中的 s 我试过做 replace and re sub 但并没有取得太大成功 使用Python 2
  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 获取单个方程的脚本

    在文本文件中输入 a 2 8 b 3 9 c 4 8 d 5 9 e a b f c d g 0 6 h 1 7 i e g j f h output i j 期望的输出 输出 2 8 3 9 0 6 4 8 5 9 1 7 如果输入文件名
  • 在 python-docx 中搜索和替换

    我有一个包含以下字符串的文档 模板 你好 我的名字是鲍勃 鲍勃是一个很好的名字 我想使用 python docx 打开此文档并使用 查找和替换 方法 如果存在 来更改每个字符串 Bob gt Mark 最后 我想生成一个新文档 其中包含字符
  • python中函数变量的作用域

    假设我们有两个函数 def ftpConnect ftp FTP server ftp login ftp cwd path def getFileList ftpConnect files ftp nlst print files 如果我
  • 反加入熊猫

    我有两个表 我想附加它们 以便仅保留表 A 中的所有数据 并且仅在其键唯一时添加表 B 中的数据 键值在表 A 和 B 中是唯一的 但在某些情况下键将出现在表 A 和 B 中 我认为执行此操作的方法将涉及某种过滤联接 反联接 以获取表 B
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • 使用Python将图像转换为十六进制格式

    我的下面有一个jpg文件tmp folder upload path tmp resized test jpg 我一直在使用下面的代码 Method 1 with open upload path rb as image file enco
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • FastText - 由于 C++ 扩展未能分配内存,无法加载 model.bin

    我正在尝试使用 FastText Python APIhttps pypi python org pypi fasttext https pypi python org pypi fasttext虽然 据我所知 此 API 无法加载较新的
  • 在 pip.conf 中指定多个可信主机

    这是我尝试在我的中设置的 etc pip conf global trusted host pypi org files pythonhosted org 但是 它无法正常工作 参考 https pip pypa io en stable
  • ValueError:无法插入 ID,已存在

    我有这个数据 ID TIME 1 2 1 4 1 2 2 3 我想按以下方式对数据进行分组ID并计算每组的平均时间和规模 ID MEAN TIME COUNT 1 2 67 3 2 3 00 1 如果我运行此代码 则会收到错误 ValueE
  • 在谷歌C​​olab中使用cv2.imshow()

    我正在尝试通过输入视频来对视频进行对象检测 cap cv2 VideoCapture video3 mp4 在处理部分之后 我想使用实时对象检测来显示视频 while True ret image np cap read Expand di
  • python中的sys.stdin.fileno()是什么

    如果这是非常基本的或之前已经问过的 我很抱歉 我用谷歌搜索但找不到简单且令人满意的解释 我想知道什么sys stdin fileno is 我在代码中看到了它 但不明白它的作用 这是实际的代码块 fileno sys stdin filen
  • 在pycharm中调试python代码

    这个问题类似于this https stackoverflow com questions 10240018 how to use pycharm to debug python script一 我正在尝试调试pyethapp https
  • Pandas 在特定列将数据帧拆分为两个数据帧

    I have pandas我组成的 DataFrameconcat 一行由 96 个值组成 我想将 DataFrame 从值 72 中分离出来 这样 一行的前 72 个值存储在 Dataframe1 中 接下来的 24 个值存储在 Data
  • 将 Scikit-Learn OneHotEncoder 与 Pandas DataFrame 结合使用

    我正在尝试使用 Scikit Learn 的 OneHotEncoder 将 Pandas DataFrame 中包含字符串的列替换为 one hot 编码的等效项 我的下面的代码不起作用 from sklearn preprocessin
  • 具有指定置信区间的 Seaborn 条形图

    我想在 Seaborn 条形图上绘制置信区间 但我已经计算出置信区间 如何让 Seaborn 绘制我的置信区间而不是尝试自行计算它们 例如 假设我有以下 pandas DataFrame x pd DataFrame Group 1 0 5
  • 如何使用 Django (Python) 登录表单?

    我在 Django 中构建了一个登录表单 现在我遇到了路由问题 当我选择登录按钮时 表单不会发送正确的遮阳篷 我认为前端的表单无法从 查看 py 文件 所以它不会发送任何 awnser 并且登录过程无法工作 该表单是一个简单的静态 html

随机推荐

  • C语言 基础知识之static(static是什么,static的好处,static的使用和作用)

    一 static是什么 static是C C 中的修饰符 可以用来修饰变量 也可以用来修饰函数 二 static的好处是什么 1 隐藏变量或函数 隔离错误 有利于模块化程序 在编程中 难免会用到全局变量 全局变量的作用域是整个源程序 当一个
  • virtualbox虚拟机安装Ubuntu异常处理:FATAL: NO bootable medium found! System halted

    遇到的问题 当virtualbox虚拟机安装linux系统 异常处理 FATAL NO bootable medium found System halted 问题的原因 没有找到iso文件来安装系统 解决的方案 下载镜像文件 centos
  • InnoDB Rollback Segment & Undo Page Deallocation实现源码分析

    InnoDB Rollback Segment Undo Page Deallocation实现源码分析 4月 23rd 2012 发表评论 Trackback 1 InnoDB Rollback Segment 1 1 1 Rollbac
  • 计算机视觉人脸检测与识别

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 TOC 文章目录 使用opencv进行人脸检测 文件目录 二 init文件内容 shishi文件内容 coding utf 8 加载训练数据集文件 准备识别的图片
  • 基于微信小程序的短视频管理系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端框架 VUE 数据库 MySQL5 7 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Maven项目 是 目录 一 项目简介 二
  • NEZUKO: 1——202201152003

    NEZUKO 1 202201152003 About Release Back to the Top Name nezuko 1 Date release 21 Aug 2019 Author yunaranyancat Series n
  • 五一假期出行的数据爬取和分析

    出来旅行 用手机编辑的 代码格式有可能出现问题 等回去用电脑进行修改 你们的萧萧吖 随着旅游业的迅速发展 越来越多的人选择在假期去旅游 五一假期是国内最热门的旅游季节之一 吸引了大量的游客前往各个景点 本篇博客将介绍如何使用 Python
  • XXE漏洞原理

    XXE漏洞是XML外部实体注入漏洞 那什么是外部实体呢 XML DTD 1 文档类型定义 DTD 可定义合法的XML文档构建模块 它使用一系列合法的元素来定义文档的结构 2 DTD 可被成行地声明于 XML 文档中 也可作为一个外部引用 P
  • 机器学习基础 第三章 分类算法

    1 线性分类器 感知器 1 1 感知器 有如图1 1所示的两类数据希望找到 如果想把他们分开 最简单的方法就是用图中的绿线将它们分开 显然绿线的方程为 t 0 1x 1y 1 1 1 t omega 0 omega 1 x omega 1
  • Linux的缓存内存(cache memory)

    PS 为什么Linux系统没运行多少程序 显示的可用内存这么少 其实Linux与Win的内存管理不同 会尽量缓存内存以提高读写性能 通常叫做Cache Memory 为什么Linux系统没运行多少程序 显示的可用内存这么少 其实Linux与
  • PyTorch模型训练集正常收敛,但验证集准确率稳定在10%并保持不变

    问题描述 训练过程中遇到的一个Bug 可能是跟Torch本身有关 如下图和题目所示 经过多轮训练 训练准确率开始收敛 但是验证准确率保持在10 左右不变 排查手册 一般来说这表示模型本身可能存在问题 下面列出一个排查手册 检查是否是数据问题
  • C#中的DataGridView中添加按钮并操作数据

    目录 背景 一 在DataGridView中显示需要的按钮 二 给DataGridView添加事件 可以通过按钮来操作数据库 三 在按钮上鼠标箭头变成小手样式 四 总结 背景 最近在项目中有需求需要在DataGridView中添加 删除 修
  • 十进制数转8421BCD码

    十进制数转8421BCD码就是把十进制数字每一位都用4个二进制位所组成的数字代替 十进制数 8421码 余3码 0 0000 0011 1 0001 0100 2 0010 0101 3 0011 0110 4 0100 0111 5 01
  • 拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

    前言 本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 版权归原作者所有 如有问题请及时联系我们以作处理 作者 听不来喊麦的C君 PS 如果你处于想学Python或者正在学习Python Python的教程不少了吧 但是是
  • phpstudy安装及简单使用

    前言 我们都知道如果要搭建网站 就需要借助Apache或者Nginx的帮助 当然也少不了数据库的使用 我们自行下载Apache和MySQL等数据库 需要我们进行配置才能使用 这对于一些小白非常的不方便 而且出现一些错误不会解决可能会耽搁很长
  • MySQL执行顺序

    mysql执行顺序如下 1 from 阶段 2 where 阶段 3 group by 阶段 4 having 阶段 5 select 阶段 6 order by 阶段 7 limit 阶段 问题 为什么别名不可以使用在where中 但可以
  • 队列以及Java实现

    了解队列 在我们的现实生活中会经常看见队列的出现 如 排队买奶茶 叫号服务和餐厅的排号 我们去餐厅准备吃饭时 由于人多只能排队等待就餐或换一家人少的餐厅 餐厅为了让服务更加的好 就会使用排队系统 排队系统完全模拟了人群排队全过程 通过取票进
  • el-cascader 懒加载回显问题解决

    解决思路 在页面初始化技术后根据组件的ref 直接给组件的inputValue和inputTerxt赋label的值 前提是你之前已经保存过这个值 ref的部分属性 代码
  • 靠Python做副业一年买了房:未来五年的风口行业 ,90%的人都不知道

    程序开发领域有这样一句话 人生苦短 我用Python 这本是开发者大佬Bruce Eckel的金句 Life is short you need Python 有趣的是 很多人并非专职程序员 但却把这句话奉为神谕 所以Python究竟有什么
  • Python中MNE库的脑电地形图绘制

    脑电地形图在进行和 源 相关的分析时很有用 可以直观的看出各个电极的激活情况以及其随时间的变化 在标准的脑电数据中都是有电极的坐标位置的 会用EEGLab的可能对这块比较熟悉了 实际MNE库中也有相关的定义和实现 可以导入外部的电极数据 或