信息速览
INFOBOX — NeBULA 一屏速览
维度 内容 本质 标准化伸手(reaching)运动执行任务的 hd-EEG + sEMG 双模数据集,非想象、非静息态 全称 NeBULA = Neuromechanical Biomarkers for Upper Limb Assessment(上肢评估神经力学标志物) 采集方 意大利技术研究院(Istituto Italiano di Tecnologia, IIT)Rehab Technologies Lab,热那亚 Via Morego 30 论文 Scientific Data 2025, 12:831;doi:10.1038/s41597-025-05042-4;CC BY-NC-ND 4.0 数据 Figshare doi:10.6084/m9.figshare.27301629(2025-05-21 首发) BIDS 镜像 NEMAR nm000322(DOI 10.82901/nemar.nm000322,v1.0.0,2026-10-08) 被试 入组 40(20 男/20 女,44.6 ± 13.2 岁);释出 39(sub-28 缺) 信号 EEG 127 导 @1000 Hz(FCz 参考 / Fpz 接地)+ sEMG 11 肌 硬件 Brain Products actiCHamp 128 通道放大器 + actiCAP 主动电极 范式 3 目标位置 × 3 档辅助(free / low / high)× 10 重复 = 人均 90 trial 类别 reach_1 / reach_2 / reach_3(事件码 1/2/3) 体量 NEMAR 9.07 GB;Figshare Derivatives.zip 17.78 GB 许可 数据 CC BY / CC-BY-4.0;论文 CC BY-NC-ND 4.0(双层,详见 §6) 生态 MOABB NeBULA2025、EEGDashNM000322、NEMAR 直链库内互链 stroke-eeg-fnirs(1212)、boas-bitbrain(1174)、openneuro(100)、brain-wearable-monitoring(1030)
NeBULA 是一个「为了给康复机器人打分,先把健康人怎么伸手这件事测准」的数据集。它由意大利技术研究院(IIT)的康复技术实验室(Rehab Technologies Lab)牵头,40 名健康成人坐在一块自研的可调触摸面板前,在灯亮时报出三种不同位置的伸手动作;其中两组运行中,他们的右臂被 IIT 自研的上肢外骨骼原型托着,分别提供低档与高档助力。与此同时,他们戴着 127 导的高密度脑电帽、前臂与手部贴了 11 块表面肌电电极,全部数据按脑电 BIDS(EEG-BIDS)规范整理为可被 MNE-BIDS、MOABB 直接读取的目录。
这个数据集最有价值的地方不是「大」,而是「同一个人、同一个动作、三种助力水平」这样一组对照:它把「人体自然运动时的神经力学响应」和「有机器辅助时的神经力学响应」放在同一个被试、同一块面板、同一套信号链下比较,从而让"外骨骼到底改变了多少神经控制"这个问题第一次有了可复用的基线。这也解释了它为什么被 MOABB 收录、被 NEMAR 再分发、被 EEGDash 索引——在公开脑电数据里,「伸手」这一类的标准化、多条件、双模态数据一直稀缺。
导语读法三则:
- 只想下载并跑通分类:直接看 §6 与 §7.3,
moabb.datasets.NeBULA2025一行代码即可取数,但要注意它只返回 EEG、不返回 11 肌 sEMG(坑 4)。 - 想复现论文的 ERSP/ERS-ERD 分析:重点读 §4 的 epoch 定义与 §5 的事件结构,注意论文用 −0.5~2 s、MOABB 用 0~2 s,两者不同(坑 2)。
- 关心数据完整性:直接读 §8 的双口径存照表与坑 1、坑 3——「40 人入组 vs 39 人释出」「NEMAR 39 vs EEGDash 48」这两处矛盾决定你能拿到多少人。
§0 导读:这个数据集解决什么问题
0.1 问题起点:辅助技术缺少客观标尺
上肢神经康复在过去二十年里被机器人外骨骼、虚拟现实、脑机接口(BCI)、脑刺激四条技术线同时改造。其中机器人辅助最具工程说服力:它能提供自适应、可重复、可量化的物理训练,天然契合运动学习(motor learning)与神经可塑性(neuroplasticity)的基本原理。但作者在论文 Background & Summary 开篇直接点出一个难堪的事实——机器人辅助神经康复的疗效在文献中仍存争议,多篇系统综述给出的结论并不一致。
争论的根源不是技术不行,而是缺少标准化、客观的评估手段。临床上已经有成熟的上肢功能量表(如 Fugl-Meyer 上肢部分、ARAT 等),它们提供了一套"运动技能"的分类学(taxonomy),但量表是行为层面的、评分者主观的、天花板效应明显的;而工程侧需要的「神经层面发生了什么」——运动皮层在动作准备与执行阶段的去同步强度、感觉运动节律的恢复速度、肌电与脑电的耦合——量表给不出来。已有的运动学表征框架(关节角度、末端轨迹、平滑度)又难以直接迁移到真实世界场景,因为它们高度依赖具体设备与marker布置。
作者给出的路径是「神经力学标志物」(neuromechanical biomarker):把脑电(中枢)与肌电(外周)在同一动作、同一时间轴上同步记录,用可复现的信号处理管线提取指标,从而对人的运动控制能力给出一个客观、可跨设备、可跨被试比较的读数。
0.2 数据集的四层设计
NeBULA 的方法学严谨性体现在四层叠加的设计上,这也是它区别于普通 BCI 数据集的地方:
第一层:标准化任务。不用自由挥臂、不用屏幕上的光标,而是用一块自研可调触摸面板(adaptable touch panel)。面板上三个目标位置按临床运动技能分类学(Magill & Anderson 的运动技能分类,经 Longatelli 等人用于临床基准)设定,要求被试坐姿、右臂伸向亮起的目标、以自然速度触碰后把手放回右大腿静息位。任务的"标准化"意味着:目标间距、面板高度、触发方式对所有被试一致,动作的难度等级可以被写进论文而不是依赖现场即兴。
第二层:多条件对照。同一个动作在三种辅助水平下重复:free(无外骨骼,纯自由运动)、low(外骨骼低档助力)、high(外骨骼高档助力)。三次运行(run)一一对应三档,顺序在被试间固定。这是 NeBULA 的核心卖点——作者自称是首个在上肢运动中包含"同一任务、不同机器人辅助水平"的双模态 BIDS 数据集。
第三层:双模态同步。高密度脑电(hd-EEG,127 导)与表面肌电(sEMG,11 肌)在同一放大器、同一时钟下记录,肌电作为辅助通道(auxiliary channels)并入脑电记录文件,天然时间对齐,省去了两套设备各自的时钟漂移问题。
第四层:BIDS 与 FAIR。全部数据按 EEG-BIDS 1.9.0 整理,顶层 dataset_description.json、participants.tsv、participants.json、README 齐备,每个被试目录内 .eeg/.vhdr/.vmrk 三元组 + eeg.json + channels.tsv + events.tsv + events.json 侧车文件齐全,事件标注采用 HED 8.4.0 本体。
0.3 与"伸手类"脑电数据集的分工
公开脑电数据里,"上肢动作"这一类大致分三支:
- 运动想象(motor imagery)支:BCI Competition IV 2a 是最经典的 4 类想象(左手/右手/双脚/舌头),任务明确但无真实动作,肌电几乎为零,神经信号与真实运动有系统性差异。
- 运动执行(motor execution)支:要求被试真做动作,信号更接近自然控制,但设备通常是低成本 8-32 导,且少有"多条件对照"。
- 康复/临床支:卒中患者执行动作,临床价值高但样本小、个体差异巨大、标签噪声重。
NeBULA 落在第二支的"高配版本":127 导、1000 Hz、双模态、三条件对照、40 人。代价是它只有健康人——这对基线研究是优点(可以先刻画健康变异度),对临床迁移是限制(没有任何患者数据,模型不能直接声称具备康复评估能力)。
§1 数据集速览:十二问十二答
Q1:NeBULA 这个名字是什么意思?
NeBULA = Neuromechanical Biomarkers for Upper Limb Assessment,直译「上肢评估的神经力学标志物」。它是一个项目名而非任务名,因此检索时容易与天文/生物领域的同名项目混淆。NEMAR 与 EEGDash 给它加上了年份代码 NeBULA2025,MOABB 的类名也叫 NeBULA2025。
Q2:到底有多少人?
两个数字都对但含义不同:论文报告入组 40 名健康成人(20 男 20 女,均值 44.6 岁,标准差 13.2 岁,招募区间 25-80 岁);公开释出 39 名,因为 sub-28 没有放出记录。MOABB 文档把 n_subjects 设为 39 以匹配释出,并在文档里明确写了「论文的人口学描述的是 40 人队列」。详见坑 1。
Q3:每个人做多少次?
每人 1 个 session、3 个 run(对应三档辅助)、每个 run 内 3 个目标各重复 10 次,即 3 × 3 × 10 = 90 trial/人。39 人释出后合计约 3,510 个 trial(计划口径 3,600)。
Q4:信号是怎么采的?
脑电:Brain Products actiCHamp 128 通道放大器 + actiCAP 主动电极帽,记录 127 导(第 128 个位置被参考占用),采样率 1000 Hz,在线参考 FCz,接地 Fpz,工频 50 Hz(欧洲电网)。电极布局为标准 10-05 扩展导联(NEMAR 标 standard_1005)。肌电:11 块肌肉的表面肌电,作为辅助通道并入同一记录。
Q5:三类标签是什么?
三个目标位置,不是三个动作类型:reach_1、reach_2、reach_3 分别对应面板上三个亮灯位置。事件码在原始记录里是 1/2/3(NEMAR 写作 reach1=1、reach2=2、reach_3=3),BIDS 化后标签统一为 reach_1/reach_2/reach_3。
Q6:三档辅助是怎么分的?
free = 不用外骨骼,纯自由运动;low = 外骨骼助力档位 1;high = 外骨骼助力档位 2。三档各占一个 run,因此"辅助水平"在 BIDS 里是 run 级变量而不是 trial 级变量——这一点在做交叉验证时必须小心,见坑 5。
Q7:trial 的时间窗怎么截?
论文的分析窗口是 −0.5 ~ 2 s(以 Go 线索为零点,含 500 ms 基线);NEMAR/MOABB 的 trial interval 写的是 [0, 2] s。差异原因是部分记录在第一个 trial 之前没有完整的 500 ms 基线(见坑 2)。
Q8:数据有多大?
NEMAR 再发布版总量 9.07 GB;Figshare 原始包中 Derivatives.zip 单独就有 17.78 GB,单个被试 zip 在 228 ~ 389 MB 之间(sub-01 316.42 MB,sub-04 388.79 MB,sub-15 228.38 MB),code.zip 仅 30.65 kB。
Q9:怎么最快拿到数据?
三条路:① Figshare 数据集页(doi:10.6084/m9.figshare.27301629)逐文件下载 zip;② NEMAR nm000322 页面在线浏览 / 直链下载已转换的 BIDS;③ Python 一行 from moabb.datasets import NeBULA2025; d = NeBULA2025().get_data()。
Q10:许可能不能商用?
数据本体两侧(Figshare 记录页标 CC BY,NEMAR 标 CC-BY-4.0)都允许商用与再分发,条件是署名。但论文文字与图表是 CC BY-NC-ND 4.0,不能商用、不能改编。两者是不同对象,别混为一谈(§6)。
Q11:有没有官方基线结果?
论文的 Technical Validation 给的是信号质量与生理合理性证据(ERSP、ITC、ERS/ERD 的被试级图谱),不是"某模型在该数据上达到 X% 准确率"的排行榜。因此若你在论文里找不到 SOTA 表格,那是正常的,不是漏读(§7)。
Q12:它和 BCI Competition IV 2a 能直接比吗?
不能。2a 是运动想象、4 类、22 导、250 Hz;NeBULA 是运动执行、3 类、127 导、1000 Hz,且类别是目标位置而非肢体。任何跨数据集比较都必须重采样、重分段、重定义标签,见 §7.4。
§2 论文与时间线
2.1 出处与标识
| 字段 | 值 |
|---|---|
| 期刊 | Scientific Data(Nature Portfolio 数据描述期刊) |
| 卷期 | 2025 年,第 12 卷,文章号 831 |
| DOI | 10.1038/s41597-025-05042-4 |
| 论文标题 | An EEG-EMG dataset from a standardized reaching task for biomarker research in upper limb assessment |
| 类型 | Data Descriptor(数据描述型论文,非研究型) |
| 论文许可 | CC BY-NC-ND 4.0 |
| 资助 | Istituto Nazionale Assicurazione Infortuni sul Lavoro(INAIL,意大利国家工伤保险机构),项目号 PR19-RR-P2 |
Nature Portfolio 的 Data Descriptor 体裁有一个关键约定:技术验证(Technical Validation)部分的目的是证明数据"可信、可用",而不是证明某个方法"领先"。这直接决定了 NeBULA 论文的写法——它给出大量信号质量图与生理合理性证据,但不提供分类准确率排行榜。理解这一点,才能在引用时不出错。
2.2 时间线
2023–2024 IIT Rehab Technologies Lab 完成 40 名健康被试的采集(招募区间 25–80 岁)
2025-05-21 Figshare 数据集首发(v1),doi:10.6084/m9.figshare.27301629
2025 Scientific Data 12:831 论文发表
2026-10-08 NEMAR 以 BIDS 再发布,nm000322,v1.0.0,DOI 10.82901/nemar.nm000322
2026-10 EEGDash 索引为 NM000322(其元数据标 48 subjects / 234 recordings / 10.6 h)
其中 2026-10-08 这个时间点是理解"为什么会出现 39 人"的关键:NEMAR 的再发布不是把 Figshare 的 zip 原样搬过去,而是经 MOABB 1.8.0dev0 转换、重排、并写入 HED 注释后的 BIDS 化副本。转换过程中的取舍(丢 sub-28、丢 EMG)都发生在这个环节。
2.3 论文结构导读
Data Descriptor 的标准结构对阅读者很友好,NeBULA 也不例外:
- Background & Summary:讲清"为什么需要这个数据"——康复机器人疗效争议 + 缺少客观评估 + 已有运动表征框架难落地。
- Methods:分 Participants / Task / Apparatus / Data acquisition / Data processing 若干小节,是所有硬参数的来源。
- Data Records:描述 Figshare 上的文件组织与命名。
- Technical Validation:ERSP / ITC / ERS-ERD / EMG 时频分解,证明信号"像人该有的样子"。
- Usage Notes:明示数据可被用于伪迹去除、特征提取、分类、人机交互研究。
- Code Availability / Data Availability:
code.zip与 Figshare DOI。
2.4 引用规范
数据集本身与论文各有独立 DOI,引用时必须区分:
@article{garro2025nebula,
title = {An EEG-EMG dataset from a standardized reaching task for biomarker
research in upper limb assessment},
author = {Garro, Federica and Fenoglio, Elisa and Ceroni, Ilaria and
Forsiuk, Iryna and Canepa, Michela and Mozzon, Marta and
Bruschi, Alessandro and Zippo, Fabio and Laffranchi, Matteo and
De Michieli, Lorenzo and Buccelli, Stefano and Chiappalone, Michela
and Semprini, Marianna},
journal = {Scientific Data},
volume = {12},
pages = {831},
year = {2025},
doi = {10.1038/s41597-025-05042-4}
}
若使用 NEMAR 转换版,还需追加 NEMAR 的推荐引用(Garro 等,2026,Version v1.0.0,DOI 10.82901/nemar.nm000322)——因为 BIDS 化的目录结构与原始 zip 不同,复现者需要能区分自己用的是哪一版。
§3 机构与人物
3.1 机构
| 机构 | 角色 | 说明 |
|---|---|---|
| Istituto Italiano di Tecnologia(IIT)Rehab Technologies Lab | 主导、采集、通讯 | 位于热那亚 Via Morego 30;论文第一与通讯单位 |
| University of Genoa, DIBRIS | 合作 | 热那亚大学信息学、生物工程、机器人与系统工程系 |
| The Open University Affiliated Research Centre at IIT(ARC@IIT) | 合作 | 英国开放大学在 IIT 的附属研究中心 |
IIT 的 Rehab Technologies Lab 是意大利在康复机器人领域的核心实验室之一,其研究主线正是"外骨骼/假肢原型 + 神经生理信号评估"的组合。NeBULA 的采集设备与任务设计都来自该实验室的自研工程——触摸面板与外骨骼原型都不是货架产品,这也意味着想完全复刻实验条件,需要联系实验室。
3.2 作者与分工(13 人)
| 作者 | 主要角色推断 |
|---|---|
| Federica Garro | 第一作者、数据策展(NEMAR/EEGDash 标注其为 data & curation) |
| Elisa Fenoglio | 采集与分析 |
| Ilaria Ceroni | 采集与分析 |
| Iryna Forsiuk | 采集与分析 |
| Michela Canepa | 采集与分析 |
| Marta Mozzon | 采集与分析 |
| Alessandro Bruschi | 外骨骼/工程 |
| Fabio Zippo | 外骨骼/硬件 |
| Matteo Laffranchi | 实验室负责人层级(Rehab Technologies) |
| Lorenzo De Michieli | IIT 管理/工程 |
| Stefano Buccelli | 信号处理/神经工程 |
| Michela Chiappalone | 神经工程(IIT 神经科学方向) |
| Marianna Semprini | 资深作者/通讯(ORCID 0000-0001-5504-0251) |
3.3 作者名拼写冲突(重要)
同一个作者列表在三个来源上出现了系统性拼写差异:
| 论文/NEMAR | Figshare 记录页 / OpenAIRE |
|---|---|
| Federica Garro | Florencia Garro |
| Elisa Fenoglio | Elena Fenoglio |
| Ilaria Ceroni | Indya Ceroni |
| Iryna Forsiuk | Inna Forsiuk |
| Michela Canepa | Michele Canepa |
| Marta Mozzon | Michael Mozzon |
| Alessandro Bruschi | Agnese Bruschi |
| Fabio Zippo | Francesco Zippo |
Figshare 记录页的元数据看起来像是经过一遍自动姓名规范化(把意大利/东欧名替换成了"更常见"的英文名),而 NEMAR 与论文正文的拼写一致。检索作者时应以论文正文与 NEMAR 为准,若用 Figshare 的拼写在 ORCID/Scopus 里查会大量落空。这条已写入 §8 存照表(坑 3)。
§4 数据规模与硬数字
4.1 被试
| 指标 | 数值 | 来源 |
|---|---|---|
| 入组人数 | 40 | 论文 Methods |
| 性别 | 男 20 / 女 20 | 论文 / NEMAR |
| 年龄均值 ± 标准差 | 44.6 ± 13.2 岁 | 论文 / NEMAR |
| 年龄最小值 | 25 岁 | NEMAR(min=25.0) |
| 年龄最大值 | 论文写招募区间 25–80;NEMAR 写 max=71.0 | 双口径,见坑 8 |
| 利手 | 全部右手(right) | NEMAR |
| 健康状态 | 健康(healthy),无神经/运动系统疾病 | 论文 |
| 公开释出 | 39(sub-28 缺失) | NEMAR 目录列表 |
participants.tsv 在 Figshare 上仅 0.75 kB,对应的是 40 行左右的极简表(participant_id、sex、age、handedness 一类字段),participants.json 给出字段定义。由于文件极小,可以推断它不含任何临床量表分数——这是一份纯健康基线数据。
4.2 记录与 trial
| 层级 | 数量 | 说明 |
|---|---|---|
| session | 1 / 人 | 单次到访完成全部采集 |
| run | 3 / 人 | free、low、high 各一 |
| 目标类别 | 3 | reach_1 / reach_2 / reach_3 |
| 每类每 run 重复 | 10 | 论文"10 repetitions of three tasks" |
| trial / 人 | 90 | 3 run × 3 类 × 10 |
| trial 总量(释出 39 人) | ≈ 3,510 | 39 × 90 |
| trial 总量(计划 40 人) | 3,600 | 40 × 90 |
4.3 信号参数
| 参数 | 值 |
|---|---|
| 脑电通道数 | 127(记录/存储) |
| 放大器 | Brain Products actiCHamp(128 通道) |
| 电极 | actiCAP 主动电极(active electrodes) |
| 采样率 | 1000 Hz |
| 在线参考 | FCz |
| 接地 | Fpz |
| 工频 | 50 Hz |
| 电极布局 | 10-05 扩展(NEMAR 标 standard_1005) |
| 肌电 | 11 肌 sEMG,作为辅助通道并入 EEG 记录 |
| 文件格式 | BrainVision(.eeg / .vhdr / .vmrk) |
127 导的具体电极名可以在 NEMAR 的 channel list 里完整取到,覆盖极密:额极区 Fp1/Fp2/AFp1/AFp2、额区 F1-F10/AF3/AF4/AF7/AF8/AFz、额颞 FC1-FC6/FT7-FT10、中央 C1-C6/Cz、顶区 CP1-CP6/CPz/P1-P10/Pz、颞区 T7/T8/TP7-TP10、枕区 O1/O2/Oz/O9/O10/OI1h/OI2h/PO3/PO4/PO7/PO8/PO9/PO10/POz、以及大量 10-05 中间位点(AFF1h、FFC1h、FCC3h、CCP1h、CPP3h、PPO9h、POO1 等)。这对源定位(source localization)与高空间分辨率的运动皮层(C3/C4/Cz 及邻近的 FC3/FC4/CP3/CP4)分析是有利的。
4.4 体量
| 对象 | 体积 |
|---|---|
| NEMAR BIDS 再发布 total | 9.07 GB |
Figshare Derivatives.zip |
17.78 GB |
| Figshare 单被试 zip | 228.38 MB(sub-15)~ 388.79 MB(sub-04) |
Figshare code.zip |
30.65 kB |
Figshare participants.tsv |
0.75 kB |
Figshare dataset_description.json |
0.77 kB |
注意:NEMAR 9.07 GB 与 Figshare 单被试 300 MB 的量级不矛盾——39 × 300 MB ≈ 11.7 GB 压缩包,解压后约 9 GB 的 BIDS 内容(BrainVision 的 .eeg 是原始二进制,压缩率不高但 BIDS 化时重排可去掉冗余)。而 Derivatives.zip 的 17.78 GB 是衍生分析结果,不是原始数据,下载时不要误以为必须全下。
4.5 记录时长估算
每个 trial 的分析窗 2.5 s(−0.5~2 s),但 trial 之间还有反应与回位时间。按论文 90 trial/人、单 run 30 trial,若平均 trial 周期约 6-8 s,单 run 约 3-4 分钟,加上准备与休息,单被试总记录在 30-40 分钟量级。EEGDash 给出的 10.6 h 总时长与"48 subjects / 234 recordings"口径对应,按 39 人 117 条记录的 NEMAR 口径折算则约 5-6 h——时长口径同样受被试数矛盾影响(§4.6)。
4.6 "48 subjects"之谜
EEGDash 的 NM000322 页面写着 48 subjects / 234 recordings / 10.6 h,而 NEMAR 同一条目写 39 subjects,Figshare 目录列表清清楚楚只有 sub-1 至 sub-40(缺 28)。三个数字互不相容:
- 若按 NEMAR 目录计数:39。
- 若按 Figshare 目录列表:40 个编号,39 个有内容。
- 若按 EEGDash 元数据:48——这个数字无法由任何一手目录印证,很可能是 EEGDash 侧的聚合口径(把 sourcedata 或 derivatives 中的子集重复计入),或与其索引的其他数据集混淆。
本条目采用 39 人为释出准数,并在 §8 存照。任何以"48 人"为前提的实验设计都应回退核查。
§5 实验范式与标注
5.1 任务
被试坐姿,右臂自然放松,手置于右大腿。面板上三个目标位置之一亮灯(Go 线索),被试以舒适速度伸右臂触碰目标,然后把手收回静止位。三种目标位置对应三个类别标签。
关键在于"标准化"三个字:作者采用 Magill & Anderson 的运动技能分类学(motor skill taxonomy),并经 Longatelli 等人用于临床基准的那一套,把"伸手"这一动作定位在分类树上的特定节点(论文 Fig. 2 用橙色高亮标出)。这意味着 NeBULA 的"伸手"不是随便一个够取动作,而是与临床上肢评估量表所测的技能同一层级——这正是它作为"辅助技术评估工具"的合法性来源。
5.2 三档辅助
| 运行 | 条件 | 含义 |
|---|---|---|
| run free | 无外骨骼 | 纯自由运动,作为个体基线 |
| run low | 外骨骼助力档 1 | 低档助力 |
| run high | 外骨骼助力档 2 | 高档助力 |
外骨骼是 IIT 自研的上肢外骨骼原型(论文称 “novel upper limb exoskeleton prototype developed at the Italian Institute of Technology”)。三档是否随机化、是否平衡顺序,论文未在可检索段落中给出明确说明;MOABB 文档只说"the three assistance levels are the three runs"。做条件间对比时,应默认顺序固定并把它当作潜在混淆因素(坑 5)。
5.3 事件结构
BIDS 化后的事件表 events.tsv 采用标准列:onset、duration、trial_type(部分实现用 value/sample)。三类事件的取值:
| 标签 | NEMAR 事件码 | 含义 |
|---|---|---|
| reach_1 | 1 | 目标位置 1 亮灯 |
| reach_2 | 2 | 目标位置 2 亮灯 |
| reach_3 | 3 | 目标位置 3 亮灯 |
NEMAR 页面在 “Events” 一栏同时出现过 reach1=1, reach2=2, reach_3=3 与 reach_1=1, reach_2=2, reach_3=3 两种写法——下划线是 BIDS 化后加的,原始 BrainVision 的 .vmrk 里是纯数字或 S 1 形式。解析 .vmrk 时若只匹配 reach_ 前缀会漏掉原始标记(坑 6)。
5.4 HED 标注
NEMAR 再发布版为三类事件写入了 HED 8.4.0 标签树:
reach_1 ├─ Sensory-event └─ Label/reach_1
reach_2 ├─ Sensory-event └─ Label/reach_2
reach_3 ├─ Sensory-event └─ Label/reach_3
这个标注把 Go 线索正确地归为"感觉事件 + 标签",符合 HED 对视觉线索的语义约定。但它没有标注运动事件本身(伸手开始/触碰/回位)——也就是说,用 HED 做自动分析时只能拿到"灯亮了",拿不到"手动了"。若研究需要运动学对齐,必须自己从 sEMG 或视频(若有)重建运动起始点。
5.5 时间窗
| 口径 | 窗口 | 来源 | 用途 |
|---|---|---|---|
| 论文分析 | −0.5 ~ 2.0 s | 论文 Methods | ERSP/ITC/ERS-ERD |
| NEMAR / MOABB | 0 ~ 2.0 s | NEMAR trial interval / MOABB | 开箱即用的分类 |
MOABB 文档给出的降级理由值得记住:“部分记录在第一个 trial 之前没有完整的 pre-cue 基线”。所以选 0~2 s 不是设计选择而是数据约束——若你要复现论文的基线校正,必须自己检查每个 run 的首 trial 是否有前 500 ms,并对缺失者特殊处理(坑 2)。
§6 获取方式、目录结构与许可
6.1 三条获取路径对比
| 路径 | 入口 | 形态 | 适合谁 |
|---|---|---|---|
| A. Figshare 原始包 | https://doi.org/10.6084/m9.figshare.27301629 | 按被试分 zip + Derivatives.zip + code.zip | 想要完整原始件、含衍生分析结果的人 |
| B. NEMAR BIDS 再发布 | https://nemar.org/dataset/nm000322(DOI 10.82901/nemar.nm000322) | 已转换 BIDS,9.07 GB,在线浏览 + 直链 | 想直接 mne.read_raw 的人 |
| C. MOABB API | moabb.datasets.NeBULA2025 |
编程取数,返回 MNE Epochs | 做 BCI 分类基准的人 |
| D. EEGDash | eegdash.dataset.NM000322 |
带查询能力的 DataLoader 风格接口 | 做大规模批量处理的人 |
四条路径的数据内容不完全等价:A 含 11 肌 sEMG 与 Derivatives;B 只有 EEG;C 只有 EEG 且窗口被裁到 0~2 s;D 的元数据存在 48 人矛盾。选择路径前先确定你要什么。
6.2 Figshare 原始包结构
An_EEG-EMG_Dataset_from_a_Standardized_Reaching_Task_.../
├── dataset_description.json 0.77 kB
├── participants.tsv 0.75 kB
├── README.txt 0.34 kB
├── code.zip 30.65 kB ← 预处理/分析脚本
├── Derivatives.zip 17.78 GB ← ERSP/ITC/ERS-ERD/EMG 分解结果
├── sub-01.zip 316.42 MB
├── sub-02.zip 245.89 MB
├── sub-03.zip 296.64 MB
├── sub-04.zip 388.79 MB
├── sub-05.zip 267.78 MB
├── sub-06.zip 305.34 MB
├── sub-07.zip 368.49 MB
├── sub-08.zip 308.29 MB
├── sub-09.zip 349.73 MB
├── sub-10.zip 316.61 MB
├── sub-11.zip 275.94 MB
├── sub-12.zip 275.76 MB
├── sub-13.zip 285.86 MB
├── sub-14.zip 353.64 MB
├── sub-15.zip 228.38 MB
└── sub-16.zip … sub-40.zip (逐被试,sub-28 缺失)
注意 Figshare 页面可见的前 15 个 zip 体积已经在上面列全——单个被试压缩包 228~389 MB 的离散度(约 1.7 倍)反映了试次有效性与记录长度的个体差异,sub-15 最小可能意味着其某段记录被裁短或某个 run 作废。
6.3 NEMAR BIDS 再发布结构
NEMAR 的记录页给出顶层 48 个条目、root 仅 9.92 KB:
nm000322/
├── .bidsignore
├── README.md 5.51 kB
├── dataset_description.json 1.49 kB ← BIDS 1.9.0,License CC-BY-4.0
├── participants.tsv 1.78 kB
├── participants.json 1.10 kB
├── .nemar/ ← NEMAR 自身元数据
├── code/ ← MOABB 转换脚本
├── sourcedata/ ← 原始来源
└── sub-1/ … sub-40/ ← 缺 sub-28,共 39 个
dataset_description.json 里 BIDSVersion 为 1.9.0,Authors 为完整的 13 人列表(与论文一致,非 Figshare 拼写),License 为 CC-BY-4.0,EthicsApprovals 一栏明确写明"本 deposit 分析的数据沿用原研究取得的伦理批准,原文见主论文;本 BIDS 再发布未采集任何新的人类被试数据"——这句话很重要,它划清了"再发布者"与"伦理责任主体"的边界。
6.4 单个被试目录
sub-01/
└── ses-1/ (或直接 eeg/,取决于转换实现)
└── eeg/
├── sub-01_task-free_eeg.eeg
├── sub-01_task-free_eeg.vhdr
├── sub-01_task-free_eeg.vmrk
├── sub-01_task-free_eeg.json
├── sub-01_task-free_channels.tsv
├── sub-01_task-free_events.tsv
├── sub-01_task-free_events.json
├── sub-01_task-low_* …
└── sub-01_task-high_* …
任务名在 NEMAR 顶层被列为 free、high、imagery、low 四个——imagery 这一项是 NEMAR 范式自动识别把 motor execution 误判为 motor imagery 的产物(页面 “Paradigm: imagery”、“Detected paradigm: motorimagery” 即此),实际数据是运动执行。文件名里的 task-imagery 若出现,不要据此认为存在想象任务(坑 7)。
6.5 加载代码
MNE-BIDS 直读(BIDS 路径):
from mne_bids import BIDSPath, read_raw_bids
p = BIDSPath(root="/data/nm000322", subject="01",
task="free", datatype="eeg", extension=".vhdr")
raw = read_raw_bids(p, verbose=False)
print(raw.info["sfreq"], len(raw.ch_names)) # 1000.0 127
MOABB(推荐用于分类基准):
from moabb.datasets import NeBULA2025
ds = NeBULA2025() # n_subjects = 39
data = ds.get_data() # {subject: {session: {run: epochs}}}
# 单被试
sub01 = NeBULA2025(subjects=[1]).get_data()
MOABB 的 get_data 默认返回 EEG 的 MNE Epochs,不返回 11 肌 sEMG(return_all_modalities=False 时的既定行为)。若要 EMG,只能走 Figshare 原始包。
EEGDash:
from eegdash.dataset import NM000322
ds = NM000322(cache_dir="./data")
raw = ds.datasets[0].raw
# 带查询
ds2 = NM000322(cache_dir="./data", query={"subject": {"$in": ["01", "02"]}})
6.6 许可双层
| 对象 | 许可 | 可否商用 | 可否改编 | 义务 |
|---|---|---|---|---|
| 数据本体(Figshare 记录) | CC BY | 可 | 可 | 署名 |
| NEMAR 再发布版 | CC-BY-4.0 | 可 | 可 | 署名 |
| 论文正文与图表 | CC BY-NC-ND 4.0 | 否 | 否(禁演绎) | 署名 + 非商业 + 不改编 |
| Derivatives.zip | 随 Figshare 记录,CC BY | 可 | 可 | 署名 |
注意 NC-ND 只挂在论文上。把论文里的图直接搬去做商业演示是违规的,但把数据重新分析后出图是允许的。这层区分在中文引用场景里经常被混淆,务必写清。
另有一条存照:MOABB 官方文档在该数据集页明确写了 “The Figshare record licence was not verified during the paper audit(论文审计时未核验 Figshare 记录的许可)”——这句话本身是 MOABB 维护者的免责声明。第三方(本条目)实抓 Figshare 记录页,页面标注为 CC BY,故本条目采用"两侧均为 CC BY 系"的判断,同时保留 MOABB 的疑问(§8 存照)。
§7 分析、基准与验证
7.1 论文的技术验证做了什么
NeBULA 的 Technical Validation 走的是"信号合理性"路线,四组证据:
- ERSP(event-related spectral perturbation,事件相关谱扰动):以 Go 线索为零点,计算各导各频段的功率相对基线的变化。运动执行任务应当在 mu(8-13 Hz)与 beta(15-30 Hz)频段出现 C3/C4 附近的功率下降。
- ITC(inter-trial coherence,试次间相干):衡量跨试次的相位一致性,用于证明事件锁时(event-locked)成分稳定存在,而非随机噪声。
- ERS/ERD(event-related synchronization / desynchronization,事件相关同步/去同步):把 ERSP 拆成"升功率"与"降功率"两个方向,是运动皮层激活最经典的读数。
- EMG 时域与频域分解:11 肌的激活时序与频谱特征,用于确认"手真的动了"并且肌电与脑电同步。
这四组证据合起来回答一个问题:这份数据里的脑电是否表现出健康人做伸手动作时该有的样子? 答案是肯定的——论文给出的被试级图谱呈现典型的对侧(左半球 C3 区)运动相关去同步。
7.2 没有的东西
必须在引用时明确,NeBULA 论文不提供:
- 分类准确率排行榜(无 SVM/EEGNet/CNN 对比表);
- 交叉验证协议(无 train/test split 规定);
- 运动学指标(无末端轨迹、无关节角度,触摸面板只给"碰没碰");
- 临床量表分数(健康被试,未做 Fugl-Meyer 等评估);
- 外骨骼助力的机械参数(扭矩、助力曲线未在可检索段落给出)。
这不是缺陷,而是 Data Descriptor 体裁的选择:它把"数据本身可信"和"任务可解"两件事分开,后者留给社区。
7.3 MOABB 框架下的任务定义
MOABB 把 NeBULA2025 定义为一个 3 类、单 session、3 run 的分类任务:
| 字段 | 值 |
|---|---|
| paradigm | Imagery(框架标签,实际为执行) |
| n_classes | 3 |
| class labels | reach_1, reach_2, reach_3 |
| n_subjects | 39 |
| n_sessions | 1 |
| channels | 127 |
| sfreq | 1000 Hz |
| trial 长度 | 2.0 s(0~2 s) |
| interval | [0, 2] |
| license | CC BY 4.0 |
用 MOABB 的 CrossSubjectEvaluation 或 WithinSessionEvaluation 可以直接生成基准。但要注意 run 与条件的耦合:free/low/high 是三个 run,MOABB 的 WithinSession 评估会把三个 run 混在一起按类别分层——于是"同一个类别的样本有的来自无外骨骼,有的来自有外骨骼",分类器可能学到的是助力条件而非目标位置。这是在本数据上做基准最容易犯的错(坑 5)。
7.4 跨数据集比较的陷阱
把 NeBULA 与 BCI Competition IV 2a(库内 rid=352)或 PhysioNet EEGMMIDB(库内 rid=342)比较时,至少四层不匹配:
| 维度 | NeBULA | BCI IV 2a | EEGMMIDB |
|---|---|---|---|
| 任务 | 运动执行(真伸手) | 运动想象 | 真实/想象握拳、睁闭眼 |
| 类别数 | 3(目标位置) | 4(左手/右手/双脚/舌) | 2-4(视任务) |
| 通道 | 127 | 22 | 64 |
| 采样率 | 1000 Hz | 250 Hz | 160 Hz |
| 被试 | 39 | 9 | 109 |
任何"在 NeBULA 上 60%、在 2a 上 75%,所以方法更好"的论述都是错误的——任务难度、类别语义、信噪比三者都不同。若一定要比,只能比"同一方法在各自数据集内的相对提升"。
7.5 数据质量的实际观感
从公开信息可以推断几点实践层面的质量特征:
- 肌电串扰风险:伸手动作涉及肩、肘、腕多块肌肉,sEMG 幅度可能远高于 EEG(典型 100 μV vs 10-50 μV),若电极帽靠近颈肩肌群,EEG 的 beta/gamma 频段会被 EMG 污染。论文把 EMG 作为辅助通道同录,正是为了后续做 EMG 伪迹回归(EMG-artifact regression)。
- 无在线阻抗记录披露:127 导 active 电极的阻抗在长时程记录中会漂移,若
channels.tsv无impedance列,则无法事后筛选坏道。实践中建议先按channels.tsv的status列(若为bad)筛,再用方差/相关性做坏道检测。 - 1000 Hz 的高采样率:对 EEG(关注 1-40 Hz)是过采样,但对 EMG(关注 20-300 Hz)恰好合适。这也是为什么双模态同录要选 1000 Hz 而不是 EEG 常用的 250/500 Hz。
§7.6 坑点清单
以下八条坑点来自对论文、NEMAR、MOABB、EEGDash 四个来源的交叉核对,每条都对应一个会在实践中真实踩到的错误。
坑 1:40 人 vs 39 人,哪个才是你能用的
论文写 40,NEMAR 目录只有 39(缺 sub-28)。如果照论文写"40 名被试"去做被试数统计,你的代码会在 sub-28 上抛 FileNotFoundError;如果照 NEMAR 写 39,则引用论文时会被审稿人质疑"与原文不符"。
正确做法:写「论文入组 40 人,公开释出 39 人(sub-28 缺失)」,并在方法学部分说明你实际使用了 39。切勿把 sub-28 当作"数据缺失需插补"——它是从未释出,不是记录损坏。
坑 2:论文 −0.5 s 基线 vs MOABB 0 s 起点
论文分析用 −0.5~2 s,MOABB/NEMAR 用 0~2 s。原因写在 MOABB 文档里:部分记录在第一个 trial 之前没有完整 500 ms 基线。
后果:若你照论文做 tmin=-0.5,在 MOABB 返回的 Epochs 上会直接报"window out of bounds"或静默 padding 出零值基线,导致基线校正形同虚设、ERD 幅度被系统性低估。
正确做法:先 raw.annotations 检查首个事件的 onset 是否 ≥ 0.5 s,再决定统一用 0~2 s(社区口径)还是逐 run 剔除首 trial(论文口径)。
坑 3:作者名两个版本
Figshare 记录页把 Federica 写成 Florencia、Elisa 写成 Elena、Ilaria 写成 Indya、Iryna 写成 Inna、Michela 写成 Michele、Marta 写成 Michael、Alessandro 写成 Agnese、Fabio 写成 Francesco——八个名字全变。这看是一次自动姓名补全事故。
后果:用 Figshare 名字查 ORCID/Google Scholar 会大面积落空;在参考文献管理软件里合并作者时会生成两个独立条目。
正确做法:以论文正文与 NEMAR dataset_description.json 的 Authors 字段为准。若必须引用 Figshare,用其 DOI 而非作者名。
坑 4:MOABB 默认不返回 EMG
NeBULA2025(subjects=None, sessions=None, *, return_all_modalities=False) 的默认参数决定了它只返回 EEG。11 肌 sEMG 在 NEMAR 的 BIDS 再发布里也已被剥离(NEMAR 明确写 “the 11-muscle surface EMG is not returned”)。
后果:想研究 EEG-EMG 耦合、做 EMG 伪迹回归、或验证"手真的动了"的人,用 MOABB/NEMAR 都拿不到肌电,会在跑了一半的分析里才发现。
正确做法:需要 EMG 必须下 Figshare 原始 zip(sub-XX.zip),并在 BrainVision 的 channels.tsv 里区分 EEG 与 EMG 类型通道(11 个 EMG 通道)。若用 NEMAR 版,channels.tsv 里只剩 127 个 EEG。
坑 5:辅助水平是 run 级变量,不是 trial 级
free/low/high 各占一个 run。任何"随机划分 trial 做交叉验证"的做法都会让训练集与测试集共享同一个辅助条件,模型学到的是助力条件的系统性差异而不是目标位置的空间编码。
后果:报告的准确率虚高且不可迁移。更隐蔽的是——三档助力的运动学不同(有外骨骼时手臂轨迹被约束),这种差异在 EEG 上表现为整体功率水平的偏移,一个线性分类器仅凭总功率就能区分 run。
正确做法:① 至少做 leave-one-run-out;② 若目标是"目标位置解码",先在单个 run 内做 within-run 分类;③ 报告时明确说明是否跨条件。
坑 6:.vmrk 里的原始标记不是 reach_
BrainVision 的 .vmrk 用 S 1/S 2/S 3 形式的数字标记,reach_1 是 BIDS 化后由 events.tsv 的 trial_type 列映射出来的。NEMAR 页面上 reach1=1 与 reach_1=1 两种写法并存,就是这个映射的痕迹。
后果:直接 grep "reach" 原始 .vmrk 会得到零结果;反过来,若自己写 BIDS 转换脚本时把 trial_type 写成 reach1(无下划线),下游 MOABB/MNE 的标签匹配会失败。
正确做法:解析 .vmrk 时匹配 ^S\s+\d+ 并建立 {1: reach_1, 2: reach_2, 3: reach_3} 映射;BIDS 侧的 trial_type 必须带下划线。
坑 7:NEMAR 把它标成 imagery
NEMAR 页面顶部写 Paradigm: imagery、Detected paradigm: motorimagery,任务列表里还有 imagery。这是 NEMAR 范式自动识别器的误判——它看到 “when a target light turned on” 这类线索描述就归到 imagery。论文与 MOABB 文档都明确这是 motor execution(被试真实伸臂触碰)。
后果:若在论文里写"该数据集为运动想象范式",会被审稿人直接指出错误;若按 imagery 的处理惯例(如做 CSP 前的强滤波 8-30 Hz、剔除眼动)可能不适用于真实运动带来的大伪迹。
正确做法:以论文与 MOABB 的 “motor execution” 为准,把 NEMAR 的 paradigm 字段视为元数据噪声。
坑 8:EEGDash 的 48 subjects
EEGDash 的 NM000322 页面标 48 subjects / 234 recordings / 10.6 h,与 NEMAR 的 39、Figshare 的 39-40 全都对不上。这个数字无一手目录支撑。
后果:若从 EEGDash 拉 dataset.datasets 并假设长度=48,索引会越界或拿到重复记录;若在论文里引用"48 人",会被核查者质疑。
正确做法:以 len(ds.datasets) 实测为准,不要相信元数据里的 n_subjects。本条目采信 39。
坑 9(附):年龄上限 80 还是 71
论文说招募区间 25-80 岁,NEMAR 的 participants.tsv 统计给 max=71.0。两者并不必然矛盾——"招募区间"是筛选标准,"最大值 71"是实际入组样本的极值。但若你在论文里写"被试年龄 25-80 岁"而不加"招募区间"限定,会被理解为实际样本范围。
正确做法:写「招募区间 25-80 岁,实际样本 25-71 岁(均值 44.6 ± 13.2)」。
§8 双口径存照表
下表汇总本条目在交叉核对中发现的所有口径冲突。凡与官方原始材料不一致处,均以一手来源(论文正文 / NEMAR 实际目录 / Figshare 记录页)为准,并在表格中注明采信理由。
| # | 指标 | 口径 A(来源) | 口径 B(来源) | 本条目采信 | 理由 |
|---|---|---|---|---|---|
| 1 | 被试数 | 40(论文 Methods) | 39(NEMAR 目录实列;MOABB n_subjects) |
39 释出 / 40 入组 | 目录可点验,论文是设计口径 |
| 2 | 被试数(第三方) | 48(EEGDash NM000322) |
39(NEMAR) | 39 | EEGDash 数字无一手支撑 |
| 3 | 记录数 | 234 recordings(EEGDash) | 117(39×3 run) | 约 117 | 3 run/人 × 39 人 |
| 4 | 总时长 | 10.6 h(EEGDash) | 未披露(论文) | 未采信 10.6 h | 基于 48 人口径推算 |
| 5 | 作者拼写 | Federica / Elisa / Ilaria / Iryna / Michela / Marta / Alessandro / Fabio(论文、NEMAR) | Florencia / Elena / Indya / Inna / Michele / Michael / Agnese / Francesco(Figshare、OpenAIRE) | 论文版 | 论文与 NEMAR 一致,Figshare 疑为自动补全 |
| 6 | 年龄上限 | 招募 25-80 岁(论文) | 实际 max 71.0(NEMAR participants 统计) | 两者都写 | 招募标准 ≠ 实际极值 |
| 7 | 数据许可 | CC BY(Figshare 记录页) | CC-BY-4.0(NEMAR);MOABB 称"未核验 Figshare 许可" | CC BY / CC-BY-4.0 | 两侧均为 CC BY 系;保 MOABB 疑问 |
| 8 | 论文许可 vs 数据许可 | CC BY-NC-ND 4.0(论文) | CC BY(数据) | 分层 | 对象不同,不可混用 |
| 9 | 范式标签 | motor execution(论文、MOABB 文字) | imagery / motorimagery(NEMAR 自动识别) | motor execution | 论文明确、MOABB 明确 |
| 10 | trial 窗口 | −0.5 ~ 2 s(论文) | 0 ~ 2 s(NEMAR interval、MOABB) | 两者并存(坑 2) | 数据约束导致降级 |
| 11 | 事件命名 | reach_1/2/3(BIDS) |
reach1/reach2/reach_3(NEMAR Events 栏) |
reach_1/2/3 |
BIDS 侧车为权威 |
| 12 | 数据体量 | 9.07 GB(NEMAR) | 17.78 GB(仅 Derivatives) | 两者都列 | 原始 vs 衍生,非同一对象 |
| 13 | EMG 可得性 | 11 肌(论文、Figshare) | 不返回(NEMAR/MOABB) | 以 Figshare 为准 | 再发布剥离 |
| 14 | 采集年份 | 2023-2025(推断) | 未明确(论文) | 标为推断 | 论文未给采集起止日期 |
上表 14 条中,第 1、2、5、7、9、10 条是最容易引发错误的六条,分别对应坑 1、坑 8、坑 3、坑 4 与 §6.6、坑 7、坑 2。
§9 DAIMS 数据质量评估
DAIMS(Data and Analytics Maturity Scorecard / 数据与分析成熟度评分)从八个维度评估数据集面向 AI 就绪的成熟度,每维 0-5 分,满分 40。本条目按 NeBULA 的公开材料与实测可获取性打分。
| 维度 | 分数 | 依据 |
|---|---|---|
| D1 可发现性(Discoverability) | 5 | 论文 DOI + Figshare DOI + NEMAR DOI + MOABB 类名,四重入口,均带解析 |
| D2 可获取性(Accessibility) | 5 | 无申请、无 DUA、无登录墙,直链下载;API 一行取数 |
| D3 可理解性(Understandability) | 4 | BIDS 侧车齐全、participants.json 有字段定义;但外骨骼机械参数、run 顺序随机化与否未披露,扣 1 分 |
| D4 互操作性(Interoperability) | 5 | EEG-BIDS 1.9.0 + BrainVision + HED 8.4.0 + MNE-BIDS/moabb/eegdash 三方工具原生支持 |
| D5 可复用性(Reusability) | 5 | CC BY 允许商用与改编;code.zip 提供处理代码;Derivatives 提供参考结果 |
| D6 数据完整性(Integrity) | 3 | sub-28 缺失、EMG 在 NEMAR 版被剥离、被试数三个口径不一致;原始 Figshare 版完整性较好 |
| D7 数据时效性(Timeliness) | 4 | 2025 年发表、2026 年 BIDS 再发布,属近两年数据;但采集年份未披露,无法精确判断 |
| D8 数据规模(Scale) | 3 | 39 人 / 127 导 / 约 3,510 trial,在 EEG 数据集里属中等偏上,但远不及千人体量的 HBN 等 |
| 总分 | 34 / 40 | AI-Ready 成熟度「良好」档:结构规范、许可友好、工具链完整;主要短板在完整性(被试缺口)与规模 |
9.1 按 AI 用途的适配度细分
| 用途 | 适配度 | 说明 |
|---|---|---|
| 运动执行 vs 静息的二分类 | ★★★★★ | 信号明显,127 导 + 1000 Hz 富信息 |
| 三目标位置的分类 | ★★★★☆ | 论文未给基线;目标位置差异主要在空间编码,需注意 run 混淆 |
| 跨被试迁移学习 | ★★★☆☆ | 39 人可做 leave-one-subject-out,但辅助条件差异会带来被试间分布偏移 |
| EEG-EMG 耦合分析 | ★★★★☆ | 需下 Figshare 原始包;双模同录、时间对齐是优势 |
| 伪迹去除/去噪方法研究 | ★★★★★ | 真实运动伪迹 + 同步 EMG 参考,是理想的"有 ground truth 参照"的评测床 |
| 康复评估模型训练 | ★★☆☆☆ | 全健康被试,无患者标签,不能直接声称临床评估能力 |
| 连续运动解码(轨迹回归) | ★★☆☆☆ | 三个离散目标点,无连续运动学 |
| 闭环 BCI 在线评估 | ★☆☆☆☆ | 离线范式、无反馈,不适合在线闭环 |
9.2 与库内相邻条目的横向定位
| 条目 | rid | 任务 | 被试 | 通道 | 与本条关系 |
|---|---|---|---|---|---|
| stroke-eeg-fnirs | 1212 | 卒中患者运动任务 EEG+fNIRS | 患者 | — | 临床侧互补:NeBULA 是健康基线,它是患者侧 |
| boas-bitbrain | 1174 | 脑机接口/多模态 | — | — | 方法侧互补:可复用其预处理与解码管线 |
| openneuro | 100 | 平台 | — | — | 平台侧:NeBULA 走 Figshare+NEMAR,不经 OpenNeuro |
| brain-wearable-monitoring | 1030 | 可穿戴长期监测 | — | — | 场景互补:长期日常监测 vs 实验室标准化任务 |
| eegmmidb | 342 | 运动执行/想象握拳 | 109 | 64 | 最接近的"运动执行"对照,可做跨数据集泛化 |
| bci-competition-iv-2a | 352 | 运动想象 4 类 | 9 | 22 | 经典 BCI 基准,范式不同(坑:不可直接比) |
| bonn-eeg | 322 | 癫痫发作检测 | — | — | 同属 EEG 但任务完全不同,仅器械/格式可参考 |
| hbn-eeg | 362 | 儿童青少年静息/任务 | 大样本 | — | 规模对照:说明 39 人在 EEG 领域的相对位置 |
| siena-scalp-eeg | 1070 | 癫痫 | — | — | 临床 EEG,与康复运动任务无关 |
| helsinki-neonatal-eeg | 880 | 新生儿 | — | — | 人群完全不同 |
| chb-mit-scalp-eeg | 72 | 癫痫 | — | 23 | 长时程 vs 短任务 |
| bci-ihc | 841 | 想象 | — | — | 想象支 |
| tuh-eeg-corpus | 71 | 静息/异常 | 大样本 | 21 | 临床筛查支 |
从这张表可以看出一个结构性事实:库内 EEG 条目绝大多数集中在癫痫检测与运动想象两个方向,运动执行 + 康复机器人评估这一格几乎是空的,NeBULA 填的正是这个空格。
§10 使用指南与建议互链
10.1 推荐工作流
场景一:做三目标位置分类的基准
from moabb.datasets import NeBULA2025
from moabb.evaluations import WithinSessionEvaluation
from moabb.paradigms import MotorImagery
from pyriemann.classification import MDM
from pyriemann.estimation import Covariances
from sklearn.pipeline import Pipeline
ds = NeBULA2025()
# 注意:MOABB 标为 Imagery,实际为执行;fmin/fmax 按运动皮层 mu/beta 设
paradigm = MotorImagery(n_classes=3, fmin=8, fmax=30, tmin=0, tmax=2)
pipeline = Pipeline([("cov", Covariances(estimator="lwf")), ("mdm", MDM())])
WithinSessionEvaluation(paradigm=paradigm).evaluate(pipeline, datasets=[ds])
关键点:tmin=0(不要写 −0.5,坑 2);WithinSessionEvaluation 会把三个 run 混合,若需排除助力条件混淆,须自己按 run 分组写评估循环(坑 5)。
场景二:做 EEG-EMG 耦合
- 下 Figshare
sub-XX.zip(不要用 NEMAR 版,EMG 已被剥离)。 mne_bids.read_raw_bids读入后,按channels.tsv的type列分离 127 EEG 与 11 EMG。- EEG 做 1-40 Hz 带通 + 50 Hz 陷波;EMG 做 20-300 Hz 带通 + 整流 + 低通包络。
- 以 Go 线索为零点,EEG 与 EMG 各自切 −0.5~2 s(先检查首 trial 基线,坑 2)。
- 计算 corticomuscular coherence(CMC):EEG-C3/C4 与对侧前臂肌 EMG 的相干谱,关注 beta 频段。
场景三:评测去噪方法
这是 NeBULA 最被低估的用途。作者在 Usage Notes 明确点名"artifact removal and denoising techniques"。优势在于:同步 sEMG 给了肌电伪迹的参考通道,你可以用 EMG 回归得到的"干净 EEG"作为近似 ground truth,再比较其他去噪方法(ICA、ASR、SSP)的还原程度。这在纯 EEG 数据集上做不到。
10.2 常见错误速查
| 现象 | 原因 | 修复 |
|---|---|---|
FileNotFoundError: sub-28 |
缺 sub-28 | 循环里跳过 28 |
| Epochs 全是 0 基线 | 用了 −0.5 s 但首 trial 无基线 | 改 0~2 s 或剔除首 trial |
get_data 后找不到 EMG |
MOABB 不返回 EMG | 下 Figshare 原始包 |
| 分类准确率异常高(>90%) | run 混淆泄漏 | 改 leave-one-run-out |
grep reach 原始 vmrk 无结果 |
vmrk 是 S 1 |
解析 S\s+\d+ |
| 引用"48 人"被质疑 | EEGDash 元数据错 | 以 39 为准 |
| 作者名查不到 | Figshare 拼写错 | 用论文版 |
10.3 建议互链点
以下是库内与本条目存在实质关联的条目,互链建议按关联强度排序:
- stroke-eeg-fnirs(rid=1212) —— 最自然的上下游。NeBULA 提供健康人上肢运动的标准化基线,stroke-eeg-fnirs 提供卒中患者的 EEG+fNIRS 记录。二者合起来正好覆盖"健康 → 患者"的迁移链条。建议在 stroke-eeg-fnirs 条目的"基线数据"小节反向链回本条。
- boas-bitbrain(rid=1174) —— 方法侧互补。若 boas-bitbrain 的分析管线包含滤波、ICA、源定位,NeBULA 可作为该管线的验证数据。
- openneuro(rid=100) —— 平台侧对照。本条不托管于 OpenNeuro 而走 Figshare + NEMAR,可作为"NEMAR 与 OpenNeuro 双轨"的一个实例,在 openneuro 条目的"其他 BIDS 托管平台"小节提及。
- brain-wearable-monitoring(rid=1030) —— 场景侧对照。一个是实验室标准化短任务,一个是日常长时程可穿戴,二者在"生态效度 vs 实验控制"的权衡上构成一对。
次级互链(同属 EEG,但任务差异大):eegmmidb(342)、bci-competition-iv-2a(352)、hbn-eeg(362)、bonn-eeg(322)、siena-scalp-eeg(1070)、helsinki-neonatal-eeg(880)、chb-mit-scalp-eeg(72)、bci-ihc(841)、tuh-eeg-corpus(71)。
§11 延伸阅读与来源
11.1 一手来源
| 来源 | 地址 | 用途 |
|---|---|---|
| 论文(Scientific Data) | https://doi.org/10.1038/s41597-025-05042-4 | 硬参数、方法、验证 |
| Figshare 数据集 | https://doi.org/10.6084/m9.figshare.27301629 | 原始包、Derivatives、文件清单 |
| NEMAR nm000322 | https://nemar.org/dataset/nm000322 | BIDS 再发布、被试/通道/事件元数据 |
| NEMAR 数据浏览器 | https://nemar.org/dataexplorer/detail?dataset_id=nm000322 | 目录结构、许可、引用格式 |
| NEMAR DOI | https://doi.org/10.82901/nemar.nm000322 | 再发布版正式引用 |
| MOABB 文档 | https://moabb.neurotechx.com/docs/generated/moabb.datasets.NeBULA2025.html | API、trial 窗口、被试数、许可疑问 |
| EEGDash | https://eegdash.org/api/dataset/eegdash.dataset.NM000322.html | 第三方索引、48 subjects 矛盾 |
11.2 规范与工具文档
- EEG-BIDS:Pernet CR 等,Scientific Data 2019;6:103,doi:10.1038/s41597-019-0104-8 —— NeBULA 的 BIDS 结构依据(NEMAR metadata 列为参考)。
- MNE-BIDS:Appelhoff S 等,JOSS 2019;4:1896,doi:10.21105/joss.01896 ——
read_raw_bids读取实现。 - HED 8.4.0:https://www.hedtags.org/hed-schema-browser —— 事件语义标注本体。
- BrainVision 格式:
.eeg(二进制数据)+.vhdr(头文件)+.vmrk(标记文件)三元组,Brain Products 规范。
11.3 关联文献线索
- Longatelli 等:上肢运动临床基准(论文引用为运动技能分类学的应用来源)。
- Magill & Anderson:运动技能分类学教材,论文任务设计的理论依据。
- Garro F 等 2025/2026:NeBULA 主论文与 NEMAR 再发布,两个 DOI 分别为 10.1038/s41597-025-05042-4 与 10.82901/nemar.nm000322。
11.4 本条目声明
本条目所有数字均来自上述一手来源的公开页面,未做任何推测性填补。凡推测(如采集年份、trial 周期、作者分工)均已在正文标注"推断"或"未在可检索段落给出"。文献检索完成于 2026-10-17,此后若 NEMAR 更新版本(如补入 sub-28 或恢复 EMG),以 NEMAR 最新页面为准。
§12 数据字典:逐字段释义
本节把 BIDS 目录中会实际用到的字段逐一列出,说明取值范围与常见坑。NeBULA 的 BIDS 化遵循 EEG-BIDS 1.9.0,因此以下字段的语义与通用 EEG-BIDS 完全一致,特殊之处另行标注。
12.1 dataset_description.json
| 字段 | NeBULA 取值 | 说明 |
|---|---|---|
Name |
NeBULA2025: Standardized reaching motor-execution EEG dataset (NeBULA) | 数据集正式名;NEMAR 页显示的名称 |
BIDSVersion |
1.9.0 | EEG-BIDS 扩展版本的基线 |
DatasetType |
raw | 原始数据;Derivatives 在 Figshare 单独打包 |
License |
CC-BY-4.0 | 数据许可(非论文许可) |
Authors |
13 人全列表 | 与论文一致(非 Figshare 拼写) |
Acknowledgements |
INAIL PR19-RR-P2 等 | 资助致谢 |
Funding |
Istituto Nazionale Assicurazione Infortuni sul Lavoro(INAIL),PR19-RR-P2 | 资助机构与项目号 |
ReferencesAndLinks |
主论文 DOI + MNE-BIDS + EEG-BIDS | 规范与工具引用 |
EthicsApprovals |
声明沿用原研究伦理批准,未采集新数据 | 再发布者的责任边界声明 |
GeneratedBy |
MOABB 1.8.0dev0 | 说明这是转换产物而非原始提交 |
坑点:GeneratedBy 字段是判断"你手里是原始版还是转换版"的最快依据。Figshare 原始包的 dataset_description.json 只有 0.77 kB,不会有 GeneratedBy;NEMAR 版 1.49 kB 则带完整转换记录。 |
12.2 participants.tsv / participants.json
participants.tsv 在 Figshare 上仅 0.75 kB,对应约 40 行 × 若干列。EEG-BIDS 建议的最小字段集:
| 列名 | 类型 | NeBULA 取值 | 备注 |
|---|---|---|---|
participant_id |
string | sub-01 … sub-40(缺 sub-28) |
必须与目录名一致 |
age |
number | 25-71(实测),均值 44.6 | 论文说招募 25-80 |
sex |
string | M / F(各 20) |
BIDS 推荐 M/F,不推荐 Male/Female |
handedness |
string | R(全部右手) |
任务用右臂,与利手一致 |
group |
string | 健康组(若有) | 单一组,无对照 |
participants.json(1.10 kB)给出上述字段的 Description、Units、Levels 定义。若你做跨数据集合并,应优先读 participants.json 而不是猜列名。
坑点:age 在 Figshare 原始版与 NEMAR 版可能一个有、一个无,或精度不同(整数 vs 浮点)。合并前先 print(df.dtypes)。
12.3 channels.tsv
每 run 一份,至少包含:
| 列名 | 取值 | 说明 |
|---|---|---|
name |
127 个电极名(Fp1, Fz, F3, …) | 与 .vhdr 内通道顺序一致 |
type |
EEG(NEMAR 版);EEG/EMG(Figshare 原始版) |
这是区分是否含肌电的关键列 |
units |
µV 或 V |
BrainVision 原始为 µV;MNE 读入后转 V |
status |
good / bad |
若全为 good,则坏道需自行检测 |
status_description |
文本 | 坏道原因(若有) |
坑点:NEMAR 版 channels.tsv 只有 127 行全 EEG;Figshare 原始版的 11 个 EMG 通道 type 为 EMG,名字通常是肌肉缩写(如 FDS、ECR、BB 等),具体命名需以实际文件为准。若你的代码假设 len(ch_names)==127,在原始版上会得到 138。 |
12.4 events.tsv / events.json
| 列名 | 取值 | 说明 |
|---|---|---|
onset |
秒(相对记录起点) | Go 线索亮灯时刻 |
duration |
通常为 0 或短时长 | 线索持续时间 |
trial_type |
reach_1 / reach_2 / reach_3 |
三分类标签 |
value |
1 / 2 / 3 | 原始事件码(部分实现保留) |
sample |
整数 | 对应采样点(1000 Hz 下 1 s = 1000) |
events.json 给出 trial_type 的 Levels 映射与 HED 注释。
坑点:onset 若出现负值或首值 <0.5 s,说明该 run 无完整前置基线(坑 2 的根源)。检测代码:
import pandas as pd
ev = pd.read_csv("sub-01_task-free_events.tsv", sep="\t")
print(ev["onset"].min(), ev["trial_type"].value_counts())
正常情况下 value_counts() 应给出三个类各 10 条(单 run 30 trial)。
12.5 eeg.json
| 字段 | 取值 |
|---|---|
TaskName |
free / low / high(NEMAR 侧另有 imagery,见坑 7) |
SamplingFrequency |
1000 |
EEGReference |
FCz |
EEGGround |
Fpz |
PowerLineFrequency |
50 |
SoftwareFilters |
论文口径:离线处理在 code.zip 中 |
EEGChannelCount |
127 |
EMGChannelCount |
11(原始版);NEMAR 版可能缺该字段 |
RecordingType |
continuous |
Manufacturer |
Brain Products |
ManufacturersModelName |
actiCHamp |
CapManufacturer |
Brain Products |
CapManufacturersModelName |
actiCAP |
HardwareFilters |
通常为 n/a(在线无硬件滤波或未披露) |
坑点:PowerLineFrequency=50 对应欧洲电网。若在 60 Hz 地区做陷波,必须先按 50 Hz 处理原始数据,不能直接套 60 Hz notch——否则 50 Hz 残留会与 beta/gamma 混叠。 |
§13 信号质量与预处理建议
13.1 原始信号可能包含的伪迹
NeBULA 是真实伸臂动作的记录,伪迹种类比运动想象数据集多得多:
| 伪迹 | 频段 | 表现 | 处理 |
|---|---|---|---|
| 眼动/眨眼 | 0.5-8 Hz,额区 | Fp1/Fp2/AF7/AF8 大幅慢波 | ICA(需 EOG 通道或源估计) |
| 肌电串扰(EMG) | 20-300 Hz | 颞/额颞区高频 | 用同录 sEMG 做回归;或 ICA 分离 |
| 运动伪迹(电极位移) | 全频段 | 全导同步阶跃 | ASR / 剔除坏段 |
| 心电 | 1-2 Hz 周期性 | 全导 QRS | ICA 或模板减法 |
| 电缆/电极噪声 | 50 Hz 及谐波 | 窄带峰 | 50 Hz 陷波 |
| 出汗/阻抗漂移 | <0.5 Hz | 慢漂移 | 0.5 Hz 高通 |
13.2 推荐预处理链
读入 (.vhdr via mne.io.read_raw_brainvision 或 read_raw_bids)
→ 50 Hz 陷波(notch, Q=30)
→ 0.5–40 Hz 带通(FIR, 注意保护 8-30 Hz 运动节律)
→ 坏道检测(方差 / 相关性 / 高频噪声比)
→ 重参考(可选:CAR 或 平均参考;原始 FCz 参考)
→ ICA(剔除眼动/心电/肌肉成分)
→ 分段 −0.5~2 s 或 0~2 s(见坑 2)
→ 基线校正(若用 −0.5 s)
→ 降采样至 250-500 Hz(分类任务可降,源定位保留 1000 Hz)
关键取舍:若研究方向是 EMG 伪迹去除,则不要在第 5 步用 ICA 把肌肉成分全剔掉——那样会破坏你本来想研究的对象。应保留原始数据,用 sEMG 参考做定量评估。
13.3 重参考的选择
原始参考是 FCz(在线参考,即记录时所有通道相对 FCz)。FCz 位于额中央,接近辅助运动区(SMA),对运动任务而言是一个"会被激活"的位置。若保持 FCz 参考,SMA 的活动会被"压平"(因为它在参考端被减掉了)。
建议:
- 做 C3/C4 区的 ERD 分析:改用平均参考或 Cz 参考,避免 FCz 参考导致 SMA 信号缺失。
- 做源定位:先用 FCz 参考数据建头模型,再在源空间处理。
- 做跨数据集比较:统一到平均参考,最易对齐。
13.4 频段与特征
运动执行任务的经典特征频段:
| 频段 | 范围 | 现象 |
|---|---|---|
| mu | 8-13 Hz | 对侧 C3 区 ERD(功率下降) |
| beta | 13-30 Hz | 动作前 ERD、动作后 ERS(beta rebound) |
| low gamma | 30-45 Hz | 与肌电串扰高度混合,慎用 |
NeBULA 的 1000 Hz 采样与 127 导覆盖使 mu/beta 的空间分布分析(不仅是 C3/C4 两点)成为可能,这是低导数据集做不到的。
§14 复现论文技术验证的步骤
论文的 Technical Validation 不提供逐图代码,但 code.zip(30.65 kB)应当包含主要分析脚本。以下给出按论文描述重建的步骤,供无法运行官方代码时使用。
14.1 ERSP
import numpy as np, mne
from mne.time_frequency import tfr_morlet
epochs = ... # 已分段,tmin=-0.5, tmax=2.0
freqs = np.arange(4, 40, 1)
n_cycles = freqs / 2.0
power, itc = tfr_morlet(epochs, freqs=freqs, n_cycles=n_cycles,
return_itc=True, decim=10, n_jobs=4)
# 基线校正(相对基线功率的 dB 变化)
power.apply_baseline(baseline=(-0.5, 0), mode="logratio")
power.plot([epochs.ch_names.index("C3"),
epochs.ch_names.index("C4")], baseline=(-0.5, 0),
mode="logratio", title="ERSP C3/C4")
预期:C3 在 8-13 Hz 出现负值(ERD),且对侧强于同侧(右臂运动 → 左半球 C3 更强)。
14.2 ITC
同一 tfr_morlet 调用的 itc 返回值即为试次间相干。预期在 mu 频段、动作起始后 0.3-1.0 s 出现 ITC 峰值(试次间相位一致)。
14.3 ERS/ERD 时间过程
# 取 mu 频段平均功率,按时间展开
mu_power = power.copy().crop(fmin=8, fmax=13).data.mean(axis=1) # (n_ch, n_times)
# 归一化后画 C3 时间曲线,预期 0 s 后出现下凹
14.4 EMG 分解
仅 Figshare 原始版可做:
raw_emg = mne.io.read_raw_brainvision("sub-01_task-free_eeg.vhdr")
emg = raw_emg.copy().pick_channels([c for c in raw_emg.ch_names
if raw_emg.get_channel_types(
picks=[c])[0] == "emg"])
emg.filter(20, 300)
env = emg.apply_hilbert(envelope=True) # 包络
# 按 trial 切分,看各肌的激活时序
预期:不同目标位置的伸手,肩/肘/腕肌群的激活时序有差异——这正是"三个目标位置"在 EMG 层面的可分性来源。
14.5 验证通过标准
论文没有给出定量阈值,但从图谱可读出的定性标准:
- C3/C4 的 mu ERD 在组水平显著(39 人平均后仍然可见);
- beta rebound 在动作结束后 0.5-1 s 出现;
- ITC 在 mu 频段有明确峰;
- EMG 包络的起始早于或同步于 EEG 变化(运动执行中 EMG 通常领先 50-100 ms)。
若你的复现结果不满足第 4 条,很可能是 EEG 与 EMG 的时间对齐出了问题(检查 .vmrk 是否被正确解析,以及两模态是否用了同一个起始零点)。
§15 术语表(中英对照)
本条目涉及的术语在首次出现时已标注英文,此处集中列出,便于检索与翻译对照。
| 中文 | 英文(缩写) | 释义 |
|---|---|---|
| 高密度脑电 | high-density EEG (hd-EEG) | 通常指 ≥64 导的脑电记录;NeBULA 为 127 导 |
| 表面肌电 | surface EMG (sEMG) | 皮肤表面电极记录的肌电,反映运动单位动作电位的总和 |
| 脑机接口 | brain-computer interface (BCI) | 直接从神经信号解码意图并驱动外部设备的系统 |
| 运动执行 | motor execution | 被试真实执行动作;与运动想象相对 |
| 运动想象 | motor imagery | 被试仅想象动作而不执行 |
| 伸手任务 | reaching task | 从静息位向目标位置伸出上肢并返回的动作范式 |
| 辅助技术 | assistive technology | 帮助残障者完成功能的设备,此处特指上肢外骨骼 |
| 外骨骼 | exoskeleton | 穿戴于肢体外部、提供支撑或助力的机械结构 |
| 神经康复 | neurorehabilitation | 针对神经系统损伤后的功能恢复训练 |
| 神经力学标志物 | neuromechanical biomarker | 由神经信号与力学信号联合导出的、可量化评估运动控制状态的指标 |
| 事件相关谱扰动 | event-related spectral perturbation (ERSP) | 事件前后各频段功率相对基线的变化 |
| 试次间相干 | inter-trial coherence (ITC) | 跨试次的相位一致性,衡量事件锁时成分的稳定性 |
| 事件相关去同步 | event-related desynchronization (ERD) | 事件导致的某频段功率下降,常见于运动皮层 mu/beta |
| 事件相关同步 | event-related synchronization (ERS) | 事件导致的某频段功率上升,如动作后的 beta rebound |
| β 反弹 | beta rebound | 动作结束后 beta 频段功率的短暂上升 |
| μ 节律 | mu rhythm | 感觉运动皮层 8-13 Hz 节律,受运动调制 |
| 皮层肌肉相干 | corticomuscular coherence (CMC) | 脑电与肌电在特定频段的相干性,反映皮层-肌肉耦合 |
| 脑成像数据结构 | Brain Imaging Data Structure (BIDS) | 神经影像与电生理数据的目录与命名规范 |
| 脑电 BIDS 扩展 | EEG-BIDS | BIDS 针对脑电的扩展规范 |
| 事件本体 | Hierarchical Event Descriptors (HED) | 用受控词汇描述实验事件的层级本体 |
| 源定位 | source localization | 由头皮电位反推皮层电流源位置 |
| 独立成分分析 | independent component analysis (ICA) | 盲源分离方法,常用于去除眼动/肌电伪迹 |
| 伪迹子空间重建 | artifact subspace reconstruction (ASR) | 基于滑动窗口的在线伪迹校正方法 |
| 共空间模式 | common spatial pattern (CSP) | BCI 经典空域滤波,最大化两类方差比 |
| 黎曼几何分类 | Riemannian geometry classifier | 在协方差矩阵流形上做分类,MDM 为代表 |
| 留一被试交叉验证 | leave-one-subject-out (LOSO) | 跨被试评估的标准协议 |
| 运动技能分类学 | motor skill taxonomy | 按技能特征(离散/连续、开放/封闭)划分动作的体系 |
§16 常见问题(FAQ)
问:NeBULA 是运动想象还是运动执行?
运动执行。被试真实伸右臂触碰目标。NEMAR 页面的 “imagery” 标签是自动识别器的误判(坑 7),MOABB 的范式字段也沿用了这个标签,但其文档正文明确写 “motor execution”。
问:可以用 NeBULA 训练一个 BCI 解码器吗?
可以训练,但要清楚它的局限:三类是"目标位置"而非"动作意图",且没有在线反馈。它更适合作为离线解码算法的基准或预处理管线验证数据,不宜直接宣称是"可用的 BCI 系统"。
问:为什么只有 3 个类别?
因为面板上只有 3 个目标位置。这是任务设计的刻意简化——类别少、每类 10 重复、跨 3 个条件,重点在"条件对照"而非"类别数量"。
问:39 人够做深度学习吗?
对 EEG 深度学习而言属于中等规模。39 人 × 90 trial ≈ 3,510 样本,若做数据增强(滑窗、加噪、通道dropout)可扩充到数万。但跨被试泛化仍是难点,建议用 LOSO 报告。
问:能用于商业产品吗?
数据本体可(CC BY),论文图表不可(CC BY-NC-ND)。若要引用论文中的 ERSP 图做产品说明,需获授权。
问:有中文版本的数据说明吗?
没有官方中文版。本条目即为中文导读,但不能替代官方 README。
问:外骨骼的型号是什么?
论文称 “novel upper limb exoskeleton prototype developed at the Italian Institute of Technology”,未给出商业型号——它是实验室原型。想复刻需联系 IIT Rehab Technologies Lab。
问:为什么采样率是 1000 Hz?
因为要同步记录 sEMG(关注 20-300 Hz)。EEG 本身用 250-500 Hz 足够,但双模态共用一台放大器、一个采样时钟,只能取两者需求的并集上限。
§17 局限性与使用边界
17.1 方法学局限
- 样本代表性:40 人(39 释出)全部为健康成人,年龄跨度 25-71 岁但均值 44.6 岁偏中年,无儿童、无老年人(80 岁以上)、无患者。任何"该数据可评估康复效果"的推断都超出其设计边界。
- 条件顺序:三个 run 对应三档辅助,若顺序固定(论文未明确随机化),则 run 顺序效应与辅助效应完全混淆,无法分离。
- 单次到访:每人 1 个 session,无法评估重测信度(test-retest reliability)。
- 无运动学:触摸面板只记录"碰没碰",不记录末端轨迹、关节角度、速度曲线。若研究需要运动学,必须另配动作捕捉。
- 无临床量表:健康被试未做 Fugl-Meyer、ARAT 等评估,无法给出"神经力学标志物 ↔ 临床评分"的对照。
17.2 技术局限
- EMG 通道在再发布版缺失:NEMAR/MOABB 均不返回 11 肌 sEMG,双模态研究必须走 Figshare 原始包。
- 被试缺口:sub-28 无记录,且原因未披露(是采集失败、同意撤回、还是数据处理中剔除?)。
- 阻抗信息:未见公开的逐通道阻抗记录,坏道识别只能事后推断。
- 事件粒度:HED 只标注了 Go 线索,未标注动作起始/触碰/回位,运动相关分析需自行从 EMG 重建。
17.3 伦理与合规边界
- 数据已去标识化(仅 participant_id),无姓名、无面部影像。
- 伦理批准来自原研究(IIT 伦理委员会),NEMAR 再发布明确声明未采集新数据。二次研究者应遵守原伦理批准的范围(通常限定为研究用途,不用于个体识别或商业诊断)。
- 虽然许可允许商用,但将健康人运动数据用于商业诊断宣称会超出伦理批准范围,属于"许可允许但伦理不允许"的灰色地带,需自行评估。
17.4 引用伦理
引用时应同时给出论文 DOI 与数据 DOI(Figshare 或 NEMAR),并说明用的是哪一版。仅引论文而不引数据 DOI,会让复现者无法确定数据版本。
§18 与康复评估场景的对接建议
本节面向把 NeBULA 用于康复/辅助技术评估的读者,给出从"健康基线"到"患者评估"的落地路径。这些建议属于推导而非论文原文,已明确标注。
18.1 从基线到个体的迁移
NeBULA 提供的是群体基线(39 人平均的 ERSP/ERD 模式)。要用于个体评估,需要:
- 建立个体基线:同一被试在无外骨骼(free)条件下的 ERD 幅度与潜伏期。
- 计算偏差:外骨骼条件下的 ERD 相对 free 条件的变化量(delta-ERD)。
- 对照群体分布:把该 delta-ERD 放到 NeBULA 39 人的分布中,得到 z 分数。
这条路径的隐含假设是:健康人的 delta-ERD 分布可以作为"正常范围"。论文没有直接验证这个假设,但它正是 NeBULA "健康基线"定位的自然延伸。
18.2 可提取的候选标志物
| 候选标志物 | 计算方式 | 生理含义 |
|---|---|---|
| 对侧 mu ERD 幅度 | C3 在 8-13 Hz 的功率下降百分比 | 运动皮层激活强度 |
| ERD 潜伏期 | 从 Go 到功率最低点的时间 | 运动准备速度 |
| beta rebound 幅度 | 动作后 15-30 Hz 功率峰值 | 运动皮层抑制恢复 |
| ITC 峰值 | mu 频段试次间相干最大值 | 运动时序一致性 |
| CMC 峰值频率 | EEG-EMG 相干谱峰位 | 皮层-肌肉传导状态 |
| EMG 起始潜伏期 | 从 Go 到 sEMG 包络超阈值的时间 | 运动执行速度 |
| 肌间协同数 | sEMG 矩阵的 NMF 分解秩 | 运动控制简化程度 |
表中前四项可从 EEG 单独得到(NEMAR 版即可),后三项需要 sEMG(必须 Figshare 原始版)。
18.3 与 stroke-eeg-fnirs(1212) 的联合设计
若要做"健康 → 卒中"的对照研究,一个可行的设计是:
- 在 NeBULA 上建立"健康右臂伸手"的 ERD/CMC 基线分布;
- 在卒中数据集上计算同一指标(需注意任务是否可比、导联是否可映射);
- 报告患者指标相对健康分布的偏离程度,而非绝对阈值。
这个设计的最大风险是任务不可比:NeBULA 是面板触碰,卒中数据集可能是其他动作。若任务不同,基线只能作"量级参照"而非"统计对照"。
18.4 用于辅助技术选型的实操建议
工程团队若要在"低档助力 vs 高档助力"之间选型,可以用 NeBULA 做先验验证:
- 若在健康人中,高档助力显著降低了对侧 mu ERD(即"用更少脑力完成动作"),这提示该助力水平可能有效;
- 但健康人与患者在"助力收益"上的响应可能相反(患者可能因助力而重新获得运动能力,ERD 反而上升)。
因此 NeBULA 只能回答"健康人如何响应助力",不能回答"患者是否获益"。这一点在对外沟通中必须写清,否则容易构成过度宣称。
§19 版本演进与长期可维护性
19.1 当前可见的版本链
NeBULA 目前以三个"版本节点"形式存在,各自的语义不同:
| 节点 | 标识 | 时间 | 性质 |
|---|---|---|---|
| Figshare v1 | doi:10.6084/m9.figshare.27301629 | 2025-05-21 | 原始数据提交,作者上传的 zip 包集合 |
| 论文 | doi:10.1038/s41597-025-05042-4 | 2025 | 学术出版,固定了数据的"官方描述" |
| NEMAR v1.0.0 | doi:10.82901/nemar.nm000322 | 2026-10-08 | 第三方 BIDS 化再发布,带版本号语义 |
Figshare 的 DOI 是 concept DOI 与 version DOI 的双层机制:不带 .vN 的 concept DOI 永远指向最新版本,带 .v1 的指向具体版本。NeBULA 目前只有 v1,因此两个 DOI 解析到同一处。但若作者后续上传 v2(例如补入 sub-28),10.6084/m9.figshare.27301629 会自动指向 v2,而 ...v1 仍指向原始。做可复现研究时应引用带版本号的 DOI。
NEMAR 的 v1.0.0 是 NEMAR 自身的版本语义,与 Figshare 的 v1 没有对应关系——它表示"MOABB 转换脚本的第 1 个正式发布版"。若 NEMAR 重跑转换(例如 MOABB 升级),可能出现 v1.1.0,届时同样的 DOI 前缀下会有多个转换产物。
19.2 维护风险
- Figshare 文件的不可变性:Figshare 允许多文件记录在 version 升级时替换文件。若作者删除或替换了某个
sub-XX.zip,旧链接会失效,而 NEMAR 的再发布版可能仍保留旧内容——造成两个版本永久分叉。 - NEMAR 的自动转换:NEMAR 的 BIDS 化由脚本生成,若 MOABB 的
NeBULA2025类定义改变(例如把tmin从 0 改成 −0.5),重跑转换会改变数据文件的切分边界。这在"用 MOABB 缓存"的用户侧会造成静默不一致。 - EEGDash 的元数据:已发现 48 subjects 的错误,说明第三方索引的元数据没有定期与源站校验。长期使用时应每次运行前比对源站被试数,而不是信任缓存。
19.3 建议的本地固化策略
若要把 NeBULA 纳入长期研究资产,建议:
data/nebula/
├── VERSION.txt # 记录三个 DOI + 下载日期 + md5 清单
├── raw/ # Figshare 原始 zip(保留,不删)
├── bids/ # NEMAR 版或自行转换版
├── checksums.md5 # 全量文件校验
└── provenance.json # 记录每步处理命令
关键原则:原始 zip 永不删除。BIDS 化、重参考、滤波都是有损/可逆但会改变形态的操作,保留原始件是唯一可靠的退路。
§20 相关数据集横向对比表
下表把 NeBULA 与公开的几类"上肢运动 + 电生理"数据集放在一起,按关键维度对照。凡库内已有条目的,标注 rid。
| 数据集 | 任务 | 被试 | 通道 | 采样率 | 模态 | 辅助条件 | 许可 | 库内 rid |
|---|---|---|---|---|---|---|---|---|
| NeBULA | 三目标伸手(执行) | 39/40 健康 | 127 | 1000 Hz | EEG+11EMG | free/low/high | CC BY | 本条 |
| BCI Competition IV 2a | 四类运动想象 | 9 | 22 | 250 Hz | EEG | 无 | 研究用 | 352 |
| PhysioNet EEGMMIDB | 握拳/睁闭眼(执行+想象) | 109 | 64 | 160 Hz | EEG | 无 | ODC-BY | 342 |
| Bonn EEG | 癫痫(非运动) | 5 组 | 单/少导 | 173.6 Hz | EEG | 无 | 研究用 | 322 |
| HBN EEG | 儿童静息+任务 | 数千 | 128/129 | 500 Hz | EEG | 无 | CC BY-NC-SA | 362 |
| TUH EEG Corpus | 临床静息/异常 | 数万 | 19-23 | 250-1000 Hz | EEG | 无 | 注册制 | 71 |
| stroke-eeg-fnirs | 卒中运动任务 | 患者 | 少导 | — | EEG+fNIRS | 无 | — | 1212 |
| BOAS / bitbrain | BCI 多模态 | — | — | — | EEG+其他 | — | — | 1174 |
从这张表能看出 NeBULA 的独特性:它是唯一同时具备"高密度 + 高采样 + 双模态 + 多辅助条件"的一项。代价是被试数(39)在 EEG 数据集里只算中等。
20.1 选择建议
- 若研究运动想象解码:用 BCI IV 2a 或 EEGMMIDB(想象段),NeBULA 不适用。
- 若研究真实运动执行的高空间分辨率:NeBULA 是最优选,127 导足以做源定位。
- 若研究EEG-EMG 耦合:NeBULA 几乎是公开数据里的唯一高配选择(双模同录 + 时间对齐)。
- 若研究康复评估:NeBULA 提供健康基线,需与 stroke-eeg-fnirs 这类患者数据集配对使用。
- 若研究大规模预训练:NeBULA 规模不够,应选 HBN 或 TUH。
§21 数据引用模板
21.1 中文引用
Garro F, Fenoglio E, Ceroni I, Forsiuk I, Canepa M, Mozzon M, Bruschi A, Zippo F, Laffranchi M, De Michieli L, Buccelli S, Chiappalone M, Semprini M. 一项用于上肢评估生物标志物研究的标准化伸手任务 EEG-EMG 数据集[J]. Scientific Data, 2025, 12: 831. DOI: 10.1038/s41597-025-05042-4. 数据: Figshare, DOI: 10.6084/m9.figshare.27301629.
21.2 英文引用(数据 + 论文)
Garro, F., Fenoglio, E., Ceroni, I., Forsiuk, I., Canepa, M., Mozzon, M., Bruschi, A., Zippo, F., Laffranchi, M., De Michieli, L., Buccelli, S., Chiappalone, M., & Semprini, M. (2025). An EEG-EMG dataset from a standardized reaching task for biomarker research in upper limb assessment. Scientific Data, 12, 831. https://doi.org/10.1038/s41597-025-05042-4
Garro, F., et al. (2025). An EEG-EMG Dataset from a Standardized Reaching Task for Biomarker Research in Upper Limb Assessment [Data set]. figshare. https://doi.org/10.6084/m9.figshare.27301629
21.3 NEMAR 再发布版引用
Garro, F., Fenoglio, E., Ceroni, I., Forsiuk, I., Canepa, M., Mozzon, M., Bruschi, A., Zippo, F., Laffranchi, M., De Michieli, L., Buccelli, S., Chiappalone, M., & Semprini, M. (2026). NeBULA2025: Standardized reaching motor-execution EEG dataset (NeBULA) (Version v1.0.0) [Data set]. NEMAR. https://doi.org/10.82901/nemar.nm000322
21.4 方法学部分应写明的信息
无论用哪一版,论文方法学部分至少应包含:
- 使用的版本(Figshare v1 / NEMAR v1.0.0)与被试数(39);
- 是否包含 sEMG(决定模态声明);
- 分段窗口(0~2 s 或 −0.5~2 s);
- 重参考方案(FCz / 平均 / Cz);
- 是否使用了
code.zip中的官方脚本(影响可复现性声明)。
§22 编辑说明与核验记录
22.1 核验过程
本条目在写作过程中执行了三源互证:
- 一手论文:通过 Scientific Data DOI 与 Paperity/OpenAIRE 镜像获取摘要与方法段落(Nature 主站在沙箱内重定向至 idp.nature.com,故采用镜像段落 + 多源摘录交叉验证)。
- 数据仓库:Figshare 记录页(
27301629)提供完整文件清单与体积;NEMARnm000322提供 BIDS 元数据(被试、通道、事件、HED、许可、引用);NEMAR dataexplorer 提供顶层目录结构。 - 第三方工具文档:MOABB
NeBULA2025类文档提供 API、n_subjects=39、trial interval[0,2]、许可未核验声明;EEGDashNM000322提供 48 subjects 的冲突数字。
22.2 冲突处理原则
凡三源不一致处,按以下优先级采信:
- 论文正文(对设计口径、方法参数最权威);
- Figshare 实际文件清单(对"有哪些文件"最权威);
- NEMAR 实际目录(对"BIDS 化后有什么"最权威);
- MOABB/EEGDash 文档(仅作参考,发现冲突时标注而不采信)。
例:被试数采用"论文 40 入组 / NEMAR 39 释出"的双写,而非单取其一;EGGDash 的 48 被明确标为不可采信。
22.3 未解决疑点
以下问题在本次核验中未能从公开材料得到答案,列为遗留疑点:
- 采集年份区间:论文未在可检索段落给出采集起止日期,本条目按发表年倒推标为 2023-2025(推断)。
- sub-28 缺失原因:是未采集、同意撤回、还是数据质量问题?NEMAR 只写 “Subject 28 has no released recording”。
- 三档辅助的顺序是否随机:论文未明确,影响条件间对比的有效性。
- 11 块肌肉的具体名称:Figshare 原始包的
channels.tsv应包含,但本次未下载验证,故未列出。 - 外骨骼的机械参数:助力扭矩、关节自由度、重量补偿比例均未在可检索段落披露。
- Figshare 作者名拼写是否已修正:截至核验日仍为 Florencia/Elena 等版本。
- EEGDash 的 48 subjects 来源:无法由任何一手目录印证,疑为其内部聚合口径。
code.zip的实际内容:30.65 kB 体积推测为若干 Python/MATLAB 脚本,但未解压验证。
22.4 条目元信息
| 字段 | 值 |
|---|---|
| slug | nebula-reaching-eeg |
| 代理名 | agent-c-nebulareac |
| 核验日期 | 2026-10-17 |
| 核验来源数 | 7(论文/Figshare/NEMAR×2/MOABB/EEGDash/OpenAIRE) |
| 章节数 | §0 - §38,含附录共 39 个主章节 + 附录小节 |
| 坑点数 | 9(坑 1 - 坑 9) |
| 双口径条目 | 14 |
| 库内互链建议 | 4 主 + 9 次 |
22.5 免责声明
本条目为千方病案医数集 AI-Ready 数据集百科的编纂成果,所有事实性陈述均标注来源。文中对"如何用数据"的建议(§10、§14、§18)属于方法学推导,非官方指南;实际使用时请以官方 README、code.zip 与论文原文为准。若发现本条目与官方材料不符,以官方为准,并欢迎通过站点反馈渠道指正。
§23 深度剖析:三档辅助条件下神经信号的可分性与科学含义
本节不是论文的复述,而是把一个在使用者中最常被问、也最容易被误答的问题拆开:外骨骼的三档助力,在 EEG 与 EMG 上到底"看得见"什么? 公开材料没有直接给出答案,但把已知的信号机制、实验设计和数据条件拼起来,可以给出有依据的推断框架,并指出哪些推断不能做。
23.1 助力改变的是什么
上肢外骨骼对伸手动作的干预,机制上至少有三条通路,每条在电生理上留下不同痕迹:
| 通路 | 机制 | EEG 痕迹 | EMG 痕迹 |
|---|---|---|---|
| 重力补偿 | 外骨骼托住上臂重量,肩部屈肌无需对抗重力 | 运动准备期(−0.5~0 s)的 mu ERD 减弱 | 三角肌前束/冈上肌的静息激活降低 |
| 轨迹约束 | 外骨骼的关节限位改变可达空间与运动学 | 空间编码相关成分改变(不太明显) | 多肌协同模式被简化 |
| 主动助力 | 执行器提供正力矩,降低肌肉出力需求 | 执行期 ERD 幅度降低、beta rebound 提前 | 主要肌群积分肌电(iEMG)下降 |
这三条通路在 free / low / high 三档上并非线性叠加:低档可能只做重力补偿,高档才引入主动助力。若如此,low 与 free 的差异会集中在 EMG 而非 EEG,high 与 low 的差异才会出现在 EEG 的 mu/beta 上。这个"两段式"假设是从产品逻辑推导的,论文未确认,使用时需自行用数据检验。
23.2 哪些比较是合法的
在 NeBULA 上,可以合理提出并被回答的问题:
- 同一被试、同一目标位置、不同助力档的 ERD 差异(若 run 顺序固定,需控制疲劳/习惯化)。
- 同一助力档内、不同目标位置的分类可分性(这是最干净的比较,因为辅助条件恒定)。
- 助力档间 EMG 激活模式的协同数变化(用 NMF 分解 sEMG 矩阵,比较秩)。
会被实验设计阻断的问题:
- 助力对"学习"的影响:单次到访、无重复 session,无法评估学习曲线。
- 助力档间 EEG 差异的因果关系:run 顺序若固定,助力效应与时间效应(疲劳、熟悉度)完全混淆。
- 患者是否"更需要"某档助力:无患者数据。
23.3 一个可执行的分析设计
假设你要检验"高档助力降低运动皮层激活"这一假设,一个稳健的设计是:
对每个被试 s:
对每个目标 t ∈ {reach_1, reach_2, reach_3}:
对每个档 a ∈ {free, low, high}:
从 run a 中取出 target=t 的 10 个 epoch
计算 C3(对侧)mu 频段(8-13 Hz)在 [0.5, 1.5] s 的平均功率 P[s,t,a]
以 free 档为基线,计算 ERD_ratio = (P_free - P_a) / P_free
对 10 个 epoch 做 bootstrap,得 P[s,t,a] 的置信区间
组水平:
对 39 个被试的 ERD_ratio 做符号检验(free vs low, free vs high, low vs high)
用 FDR 校正多重比较(3 个目标 × 3 个对比 = 9 次)
这个设计的要点是:以 free 为被试内基线,消除个体间 ERD 幅度的巨大差异(EEG 的个体差异可达 3-5 倍);用 bootstrap 而非 t 检验,因为单被试单条件的 epoch 只有 10 个,正态性假设不可靠。
23.4 样本量与效应量
39 人的被试内设计,对中等效应量(Cohen’s d ≈ 0.5)的检验力约 0.85(配对 t 检验,α=0.05 双侧)。若效应量只有 0.3,检验力降至约 0.45——容易漏检。这意味着:如果论文或你自己的分析报告"助力对 ERD 无显著影响",不能立刻理解为"没有效应",也可能只是样本量不足。
另一个隐藏问题是 epoch 数:每个"被试 × 目标 × 档"单元格只有 10 个 trial。10 个 trial 的 ERSP 估计噪声很大,单被试层面的 ERD 时间曲线会相当毛糙。这就是为什么论文的 Technical Validation 给的是组水平平均——单人单条件的图谱不够稳定,不适合作为个案诊断依据(这也是 §18.1 中"个体基线"路径的主要风险)。
23.5 与"神经力学标志物"定义的对接
论文把 NeBULA 定位为"神经力学标志物"数据源。严格来说,一个标志物要可用,需满足三性:
| 属性 | 含义 | NeBULA 是否支持 |
|---|---|---|
| 可靠性(reliability) | 同一人重复测量结果稳定 | 未知——单 session,无重测数据 |
| 有效性(validity) | 与金标准(临床量表/运动学)相关 | 未知——无临床量表、无运动学 |
| 敏感性(sensitivity) | 能区分不同状态(如助力档) | 很可能可以,但未经论文验证 |
也就是说,NeBULA 提供的是候选标志物的计算材料,而不是已验证的标志物。这个区分在推广该数据集时至关重要:它允许研究者提出标志物并验证,但它本身没有完成验证。
23.6 抓取陷阱:这份数据"看起来"比实际更适合 BCI
一个常见的误判是:127 导 + 1000 Hz + 三分类,看起来是理想的 BCI 数据集。但 BCI 的核心需求是在线、低延迟、跨会话稳定,而 NeBULA 是离线、单 session、无反馈。用 NeBULA 训练的分类器在离线交叉验证里可能拿到不错的数字(三目标位置在空间上是可分的),但把这个数字当作"BCI 性能"是错的。
更准确的表述是:「在 NeBULA 上,三目标位置的离线分类准确率为 X%」,而不是「基于 NeBULA 的 BCI 准确率为 X%」。这一句话的差别,在审稿与产品宣传中都会被严格审视。
§24 可复现性清单
一份可直接抄用的检查表,覆盖从下载到建模的全流程。
24.1 下载阶段
- [ ] 记录使用的版本(Figshare v1 的 concept DOI 与 version DOI 都记)
- [ ] 记录下载日期与文件 md5
- [ ] 确认 sub-28 是否存在(应为不存在)
- [ ] 确认是否包含 EMG 通道(NEMAR 版没有)
- [ ] 确认总被试数(39)与总文件数
24.2 读取阶段
- [ ]
sfreq == 1000 - [ ]
len(ch_names) == 127(若为 138,说明含 11 EMG) - [ ]
raw.info["dev_ctf_t"]无关;检查raw.annotations是否为空(若空,说明.vmrk未解析) - [ ]
channels.tsv的type列取值集合 - [ ]
events.tsv的trial_type取值集合应为 - [ ] 首事件 onset 是否 ≥ 0.5(决定能否用 −0.5 s 基线)
24.3 预处理阶段
- [ ] 陷波频率 50 Hz(非 60)
- [ ] 带通下限不低于 0.1 Hz(避免 ERD 被高通吃掉);建议 0.5 Hz
- [ ] 带通上限不超过 40 Hz(除非研究 gamma,但要处理 EMG 串扰)
- [ ] 坏道列表是否落盘(可复现)
- [ ] ICA 成分是否保存(可复现剔除决策)
- [ ] 重参考方案明确写出
24.4 分段与建模阶段
- [ ]
tmin/tmax明确(0 或 −0.5) - [ ] 划分策略明确(within-run / leave-one-run-out / LOSO)
- [ ] 是否有 run 级泄漏(free/low/high 混在同一折)
- [ ] 随机种子固定
- [ ] 类别平衡(三类各 10 trial/run,天然平衡)
24.5 报告阶段
- [ ] 写清"39 人释出,论文入组 40"
- [ ] 写清是否使用 sEMG
- [ ] 写清是否使用官方
code.zip - [ ] 若比较跨数据集,说明重采样与标签映射方案
- [ ] 若报告准确率,注明是离线分类而非在线 BCI
§25 结语:NeBULA 在数据集版图中的位置
如果把"人体运动相关的公开电生理数据"铺成一张二维图,横轴是"实验控制程度"(从自然日常到严格标准化任务),纵轴是"信号丰富度"(从单模态低导到多模态高导),NeBULA 落在右上角:任务是高度标准化的(固定面板、固定目标、固定三档助力),信号是高度丰富的(127 导 EEG + 11 肌 sEMG,1000 Hz)。
这个位置带来两个后果。好处是它极其适合做"机制验证"与"方法评测"——控制得足够严,变量足够清晰,任何信号处理或解码方法的差异都能被观察到。代价是它离真实使用场景最远:没有患者、没有自由动作、没有在线闭环、没有长期追踪。所有在实验室里"看起来很准"的结论,都必须经过生态效度(ecological validity)的再检验。
NeBULA 的价值因此不该被描述为"一个可用的康复评估工具",而应被描述为**“一把校准实验室测量方法的尺子”**:它让"伸手时大脑和肌肉发生了什么"这件事有了一个可重复、可对照、可公开获取的读数。有了这把尺子,后续的患者数据、可穿戴数据、闭环 BCI 数据才有比对的对象。
从这个角度看,它在千方医数集库内的定位也很清楚:它不与 stroke-eeg-fnirs(1212) 竞争"临床价值",也不与 bci-competition-iv-2a(352) 竞争"BCI 基准地位",而是补上了这两者之间那块长期空白的**“健康人 + 真实动作 + 多条件 + 高密度双模态”**拼图。库内 EEG 条目以癫痫与运动想象为主,插入这一块之后,"神经电生理"这一栏才真正具备了从健康到患者、从想象到执行、从实验室到可穿戴的完整谱系。
最后一点提醒:本条目中所有"推断"都已显式标注。数据集的官方材料本身是克制的——论文不吹嘘基准成绩,NEMAR 不隐藏转换损失,MOABB 甚至主动声明"未核验 Figshare 许可"。这种克制值得延续:使用 NeBULA 时,把"它是什么"和"它能证明什么"分清楚,比任何技巧都重要。
§26 附录:论文段落要点摘录与转述
以下按论文的 Data Descriptor 结构,逐节记录可核实的关键信息。左侧为原文章节名,右侧为本条目整理后的要点;凡属转述的均已注明,未注明的为原文直接事实。
26.1 Background & Summary 要点
- 上肢神经康复正快速整合虚拟现实、脑机接口、机器人辅助、脑刺激四条路径(原文合并陈述)。
- 机器人辅助技术因"自适应、可重复、可量化"而最具前景。
- 但疗效在文献中仍有争议,多个来源对康复效果的结论不一致。
- 领域的关键缺口是:缺少标准化、客观的测量手段来评估辅助技术的性能与成本效益。
- 已有的运动表征框架难以落地真实场景,限制了人机交互评估。
- 已有临床框架(量表)提供了运动技能的分类学,但没有标准化采集方法。
- NeBULA 的解决路径:把"分类学 + 标准化信号采集"结合,并放大样本量,以刻画健康运动。
- 作者自称的第一个:首个在上肢运动中包含"同一任务、不同机器人辅助水平"的双模态 BIDS 数据集。
26.2 Methods 要点
- 被试:40 名健康受试,20 男 20 女,44.6 ± 13.2 岁,招募区间 25-80 岁。
- 任务:标准化上肢伸手,遵循 Magill & Anderson 的运动技能分类学,经 Longatelli 等人用于临床基准的同一框架。
- 设备:自研可调触摸面板(adaptable touch panel),模拟日常活动中自然的上肢运动。
- 信号:hd-EEG + sEMG 同步采集,捕捉神经力学响应。
- 验证性条件:被试同时使用 IIT 自研的上肢外骨骼原型完成任务。
- 规模:40 名受试 × 3 个标准化任务 × 10 次重复。
- 定位:健康人基线,未来用于区分健康与受损的运动模式;先在健康人上测试辅助设备可降低安全风险。
26.3 Data Records 要点
- 数据遵循 BIDS 标准,与 FAIR 原则一致。
- Figshare 托管,按被试分 zip,附
Derivatives.zip(ERSP/ITC/ERS-ERD 与 EMG 时频分解)与code.zip。 - 顶层含
dataset_description.json、participants.tsv、README.txt。
26.4 Technical Validation 要点
- 提供被试级的 ERSP、ITC、ERS/ERD 分析(EEG)。
- 提供 EMG 的时域与频域分解。
- 目的是证明数据"可用于"神经力学标志物的提取,而非给出方法排名。
26.5 Usage Notes 要点(原文列举的用途)
- 评估辅助技术(外骨骼性能)。
- 生物信号处理研究,尤其是伪迹去除与去噪。
- 基于机器学习的特征提取与分类。
- 目标导向运动中的神经力学调制研究。
- 非临床环境下的人机交互研究。
- 用于机器人控制的混合脑机接口(hybrid BCI)。
- 上肢运动的生物力学建模。
这份清单是本条目 §9.1 适配度评分的直接依据——作者本人把"去噪"排在评估之后,说明他们认为该数据的方法学研究价值不低于应用价值。
26.6 与本条目的一致性与差异
| 项 | 论文 | 本条目 | 说明 |
|---|---|---|---|
| 被试数 | 40 | 40 入组 / 39 释出 | 多一层释出口径 |
| 被试年龄 | 44.6 ± 13.2,招募 25-80 | 同,并补 NEMAR 实测 max 71 | 不矛盾 |
| 采样率 | 1000 Hz | 同 | — |
| 通道 | 127 EEG + EMG | 同,并写明 11 肌 | 补充 |
| 参考/接地 | FCz / Fpz | 同 | 来自 NEMAR 元数据 |
| 类别 | 三目标位置 | 同 | — |
| 条件 | 三档辅助 | 同 | — |
| 许可 | 论文 CC BY-NC-ND 4.0 | 数据 CC BY + 论文 CC BY-NC-ND | 分层说明 |
| 基准成绩 | 无 | 明确写"无" | 防止误读 |
§27 附录:读者角色路线图
不同背景的读者读这份百科,最短路径不同。下表按角色给出推荐阅读顺序。
| 读者角色 | 关心什么 | 建议路线 | 预计阅读量 |
|---|---|---|---|
| BCI 算法研究者 | 能否直接拿来做分类基准 | §1 Q1-Q5 → §6.5 → §7.3 → §10.1 场景一 → 坑 5 | 约 1/4 |
| 神经科学研究者 | 信号是否支持源定位、ERD 分析 | §4.3 → §7.1 → §13.3 → §14 → §23 | 约 1/3 |
| 康复机器人工程师 | 助力条件的对照价值 | §0 → §5.2 → §18 → §23.1-23.4 | 约 1/4 |
| 数据工程/MLOps | 目录结构、版本、许可 | §6.2-6.6 → §12 → §19 → §24 | 约 1/3 |
| 临床研究者 | 能否用于患者评估 | §17 → §18.2-18.4 → §20.1 → 结语 | 约 1/5 |
| 学生/入门者 | 这是什么、值不值得学 | §1 → §3 → §5 → §15 → FAQ | 约 1/4 |
| 文献综述撰写者 | 引用、来源、双口径 | §2 → §8 → §11 → §21 → §22 | 约 1/4 |
27.1 三条最容易被忽略的提醒
- “40” 与 “39” 不是笔误,是入组与释出的差别。写论文时两个数字都要出现一次。
- “imagery” 是第三方标签事故,不是范式描述。任何引用 NEMAR 范式字段的地方都要加一句"实际为运动执行"。
- MOABB 拿不到 EMG,而作者把"双模态"当作核心卖点。只用 MOABB 的用户实际上只用了这个数据集的一半。
27.2 一句话版本
如果需要向别人用一句话介绍 NeBULA:
「意大利 IIT 用 127 导脑电加 11 块肌电,记录了 39 名健康人在三档外骨骼助力下向三个目标伸手的动作,全部按 BIDS 公开,许可宽松,但目前只能当健康基线用,不能当临床工具。」
这句话里的每个限定词——“健康”“三档”“三个目标”“39 名”“公开”“只能当基线”——都对应正文中的一处核实,删掉任何一个都会变成过度宣称。
§28 附录:信号处理算法备忘
本节把 NeBULA 分析中最常用的几个算法写成可直接套用的备忘,重点在参数选择而非公式推导。所有参数都以 1000 Hz / 127 导 / 三分类为本数据的具体情境。
28.1 带通滤波的边界取舍
| 目的 | 建议频带 | 滤波器类型 | 理由 |
|---|---|---|---|
| 通用预处理 | 0.5–40 Hz | FIR(零相位,filtfilt) |
保留 mu/beta,去掉漂移与高频噪声 |
| 仅 mu/beta 分析 | 6–35 Hz | FIR | 减少 EMG 串扰进入分析带 |
| EMG 包络 | 20–300 Hz | Butterworth 4 阶 | 覆盖运动单位放电主频 |
| CMC 分析 | 5–45 Hz(EEG)/ 20–300 Hz(EMG) | FIR | 相干计算需两侧频带重叠 |
关键提醒:mne.filter.filter_data 的默认 fir_design="firwin" 在 0.5 Hz 高通、1000 Hz 采样下需要很长的滤波器阶数;若 len(raw) < 3 * filter_length 会抛出警告并自动缩短。对单 run(约 3-4 分钟 = 18-24 万采样点)通常够用,但若你只截取 10 s 片段做演示,务必先滤波再截取。 |
28.2 坏道检测的三个指标
import numpy as np
def bad_channels(raw, z_thresh=3.0):
data = raw.get_data() # (n_ch, n_times),已带通
# 1) 方差离群
var = np.var(data, axis=1)
z_var = (var - var.mean()) / var.std()
# 2) 与邻近通道的相关性(用全局中位相关近似)
corr = np.corrcoef(data)
med_corr = np.median(corr, axis=1)
z_corr = (med_corr - med_corr.mean()) / med_corr.std()
# 3) 高频噪声比(40 Hz 以上功率占比)
from scipy.signal import welch
f, p = welch(data, fs=raw.info["sfreq"], nperseg=2048)
hf_ratio = p[:, f > 40].sum(axis=1) / p.sum(axis=1)
z_hf = (hf_ratio - hf_ratio.mean()) / hf_ratio.std()
bad = np.where((np.abs(z_var) > z_thresh) |
(z_corr < -z_thresh) |
(z_hf > z_thresh))[0]
return [raw.ch_names[i] for i in bad]
对本数据,z_thresh=3.0 在 127 导上通常标出 2-5 个坏道;若超过 10 个,说明该 run 整体质量存疑(可能是电极帽接触不良),建议整 run 标记而不只是删通道。
28.3 ICA 的秩与成分数
127 导记录的 ICA 成分数上限受有效秩限制:若数据经过 0.5 Hz 高通与重参考,实际秩约为 n_ch - 1(重参考引入一个线性约束)。MNE 的 ICA(n_components=0.99) 会按解释方差自动截断,通常得到 60-90 个成分。
对本数据,眼动成分通常出现在前 5-15 个成分(高方差),肌电成分分散在中后段,心电成分偶见。识别建议:
- 看成分的地形图:眼动在前额呈双极(Fp1/Fp2 相反极性),心电在全导近似均匀。
- 看成分的功率谱:肌电成分在 20 Hz 以上有宽峰。
- 看成分的时间过程与 sEMG 包络的相关性(仅 Figshare 原始版可做):相关系数 > 0.3 的成分大概率是肌肉来源。
28.4 CSP 的参数敏感性
共空间模式(CSP)在二分类下常用 2-4 对空间滤波器。在本数据的三分类任务上,标准做法是 one-vs-rest 训练三个二分类 CSP,或改用多类扩展(如 MNE 的 CSP(n_components=4) 配合 OvR)。
注意:CSP 对协方差估计的稳定性高度敏感。10 个 trial 估计 127×127 协方差矩阵会严重欠定(10 < 127),必须用收缩估计(Covariances(estimator="lwf") 或 "oas")。若直接用样本协方差,CSP 会过拟合并给出虚假的高准确率。
28.5 黎曼几何方法的优势
在 127 导、10 trial/类的条件下,黎曼几何分类器(MDM、TS+LR)通常优于 CSP+LDA,原因是:
- 协方差矩阵在 SPD 流形上的距离对样本量要求低;
- 不需要估计空间滤波器,避免了欠定问题;
- 对通道数量不敏感(127 vs 22 的性能差距远小于 CSP)。
MOABB 生态里 pyriemann 的 Covariances + MDM 是最省事且稳健的基线。若要在本数据上报基准,建议至少给出 MDM 与一个深度模型(如 EEGNet)两条线。
28.6 跨 run 标准化的必要性
由于 free/low/high 三个 run 的绝对功率水平可能不同(外骨骼改变姿态与肌肉张力),直接拼接三个 run 会让分类器学到 run 间的偏移。两种处理:
- 被试内 run 级 z-score:每个 run 内按通道、按频段减均值除标准差。能消除 run 偏移,但也可能抹掉真实的条件效应。
- 基线归一化:以每个 trial 的 −0.5~0 s(或 0~0.5 s)为基线做 dB 变换。保留相对变化,对绝对偏移不敏感。
推荐后者:它保留了"条件效应"这一研究对象的可比性,同时消除设备层面的增益漂移。
28.7 结果报告的最小集
一份可用于同行评议的结果报告,至少包含:
| 项 | 示例 |
|---|---|
| 被试数 | 39(论文入组 40,sub-28 未释出) |
| trial 数 | 3,510(39 × 90) |
| 预处理 | 50 Hz 陷波 → 0.5–40 Hz 带通 → 平均参考 → ICA 剔除眼动 |
| 分段 | 0–2 s,无基线校正 |
| 划分 | leave-one-run-out(3 折),被试内 |
| 分类器 | Covariances(lwf) + MDM |
| 结果 | 准确率 均值 ± 标准差(39 人) |
| 对照 | 机会水平 33.3%;置换检验 p 值 |
缺任何一项,读者都无法判断数字的可信度。
§29 附录:与 BIDS 生态工具的适配细节
NeBULA 能被 MNE-BIDS、MOABB、EEGDash 三方同时消化,这在公开 EEG 数据里并不常见。本节拆解三者的适配方式,说明"能读"背后的差异,以及为什么同一个数据集在三个工具里会给出不同数字。
29.1 MNE-BIDS:最接近原始形态
MNE-BIDS 只做两件事:按 BIDS 路径规则找到文件、把 BrainVision 三元组读成 MNE Raw。它不做任何重采样、重分段、重参考。因此:
- 读到的
sfreq一定是 1000; - 读到的通道数取决于目录:NEMAR 版 127、Figshare 原始版 138(含 11 EMG);
raw.annotations的description直接来自events.tsv的trial_type。
from mne_bids import BIDSPath, read_raw_bids
for task in ["free", "low", "high"]:
p = BIDSPath(root=root, subject="01", task=task,
datatype="eeg", extension=".vhdr")
raw = read_raw_bids(p, verbose=False)
print(task, raw.info["sfreq"], len(raw.ch_names),
set(raw.annotations.description))
这段代码是最快的"数据体检":如果三个 run 的输出通道数不一致,说明某个 run 缺通道;如果 description 集合不是 {reach_1, reach_2, reach_3},说明事件映射出了问题。
29.2 MOABB:做了大量默认处理
MOABB 的 NeBULA2025.get_data() 在 MNE 之上叠了三层默认行为:
- 按 BIDS
task分 run:free/low/high各成一个 run,键名即任务名。 - 自动重分段到
[0, 2]:这一步是不可见的,由BaseDataset的 metadata 驱动。 - 默认只取 EEG:11 个 EMG 通道在数据进入 MOABB 之前就被过滤掉(
return_all_modalities=False)。
三层叠加的后果是:用 MOABB 看到的数据与用 MNE-BIDS 看到的数据不是同一个形状。前者是 (n_trials, 127, 2001) 的 Epochs(1000 Hz × 2 s = 2001 点),后者是连续的 (138, n_times) Raw。任何"我在 MOABB 里看到的 trial 数"与"我在原始文件里数的事件数"的比对,都必须经过 [0,2] 窗口过滤——落在记录末尾不足 2 s 的 trial 可能被丢弃。
29.3 EEGDash:索引层的元数据漂移
EEGDash 的定位是"跨数据集的统一索引 + 缓存",它不重新处理数据,只维护一份元数据表。问题在于这份元数据表与源站不同步:NEMAR 39 人,EEGDash 48 人。
可能的解释有三种,都无法证实:
- EEGDash 把
sourcedata/或derivatives/下的子目录也算作了被试; - 索引时把同批次的其他数据集条目并入了 nm000322;
- 早期版本的元数据曾包含 48 人,后续未回刷。
无论哪种,使用者应当把 EEGDash 的 subject 字段当作发现工具而非真值。要确认人数,回到 NEMAR 数目录。
29.4 三者的一致性检查表
| 检查项 | MNE-BIDS | MOABB | EEGDash | 一致性 |
|---|---|---|---|---|
| 被试数 | 39(目录) | 39(n_subjects) |
48 | 不一致 |
| 通道数 | 127 / 138 | 127 | 127 | 视版本 |
| 采样率 | 1000 | 1000 | 1000 | 一致 |
| 分段 | 不分段(Raw) | 0–2 s | 不分段 | 设计差异 |
| EMG | 有(原始版) | 无 | 无 | 不一致 |
| 事件标签 | trial_type 原样 |
归一化 | 未暴露 | 一致 |
| 许可 | 读 dataset_description |
CC BY 4.0 硬编码 | CC-BY-4.0 | 一致 |
如果四个列里出现一个"不一致",先查那一列对应的工具版本,再查源站——九成的情况是工具侧的缓存过期,而不是数据本身变了。
29.5 用 BrainDecode 直接接 MOABB
若要做深度学习,常见组合是 MOABB 取数 + Braindecode 建模:
from moabb.datasets import NeBULA2025
from braindecode.datasets import MOABBDataset
from braindecode.preprocessing import (preprocess, Preprocessor,
exponential_moving_standardize)
from numpy import multiply
ds = MOABBDataset(dataset_name="NeBULA2025", subject_ids=[1, 2, 3])
preprocess(ds, [
Preprocessor("pick_types", eeg=True, meg=False, stim=False),
Preprocessor(multiply, factor=1e6), # V → µV
Preprocessor("filter", l_freq=4, h_freq=38),
Preprocessor(exponential_moving_standardize, factor_new=1e-3,
init_block_size=1000),
])
这段配置的每一行都有本数据的理由:pick_types 保证只留 EEG(即便以后恢复 EMG 也不误入);×1e6 是因为 BrainVision 原始单位是 V 而 Braindecode 的标准化假设 µV 量级;4–38 Hz 覆盖 mu/beta 并避开工频;init_block_size=1000 对应 1 s 的初始化窗口(1000 Hz)。
§30 附录:常见误用案例复盘
以下六个场景是从"公开数据被误用"的常见模式里提炼的,每一个都能在 NeBULA 上复现。
30.1 把 NEMAR 的 imagery 当成范式写进论文
误用:「NeBULA 是一个运动想象数据集,被试想象伸手。」
后果:论文方法学部分被审稿人指出与原文不符;若基于此选了运动想象的标准预处理(强 8-30 Hz 带通 + 剔除所有运动相关成分),会系统性抹掉真实动作产生的关键信号。
更正:NEMAR 的 Paradigm 字段由自动识别器生成,对本数据判断错误。以论文与 MOABB 正文的 “motor execution” 为准。
30.2 用 −0.5 s 基线却没检查首 trial
误用:epochs = mne.Epochs(raw, events, tmin=-0.5, tmax=2.0),直接跑通。
后果:MNE 不会报错,但首 trial 的 −0.5~0 s 会被填零或裁短;基线功率被拉低,ERD 被高估。
更正:先 min(events[:, 0]) / sfreq >= 0.5,否则改用 tmin=0 或剔除首 trial。
30.3 把 run 当被试混进交叉验证
误用:把 39 人 × 3 run 的 trial 全部合并,随机 5 折。
后果:同一被试的同一 run 的 trial 同时出现在训练与测试集,准确率虚高;更糟的是 free/low/high 的条件差异成了"类别信号"。
更正:至少 leave-one-run-out;跨被试则 LOSO。
30.4 只下 NEMAR 版却声称做了双模态
误用:论文写「基于 NeBULA 的 EEG-EMG 双模态分析」,实际只用了 NEMAR 的 127 导 EEG。
后果:无法复现,且"双模态"的核心论断没有数据支撑。
更正:用 Figshare 原始 zip,或明确改写为"单模态 EEG 分析"。
30.5 引用 Figshare 的作者名拼写
误用:参考文献直接用 Figshare 页面的作者名,把第一作者写成 Florencia Garro、第二作者写成 Elena Fenoglio 等(八人全部与论文版不同)。
后果:文献管理软件生成重复作者条目;ORCID 匹配失败。
更正:统一用论文版 13 人列表。
30.6 把离线准确率当 BCI 性能
误用:「NeBULA 上达到 85% 准确率,证明该系统可用于 BCI 控制。」
后果:离线三分类与在线闭环控制之间的差距(延迟、反馈、用户学习)被完全忽略。
更正:明确写"离线三目标位置分类",并说明无在线评估。
30.7 误用模式速查
| 误用 | 触发条件 | 检出方法 | 修复成本 |
|---|---|---|---|
| imagery 误标 | 只读 NEMAR 页面 | 对照论文 | 低 |
| 基线错位 | 直接 −0.5 s | 查事件 onset | 低 |
| run 泄漏 | 随机划分 | 查划分键 | 中 |
| 单模态冒充双模 | 只走 MOABB | 查 channels.tsv |
高(需重下) |
| 作者名错 | 只读 Figshare | 对照论文 | 低 |
| 离线当在线 | 未声明 | 读方法段 | 低 |
§31 附录:关键数字速查表
| 数字 | 含义 | 出处 |
|---|---|---|
| 40 | 入组被试数 | 论文 Methods |
| 39 | 公开释出被试数(缺 sub-28) | NEMAR 目录 |
| 20 / 20 | 男 / 女 | 论文、NEMAR |
| 44.6 ± 13.2 | 年龄均值 ± 标准差(岁) | 论文、NEMAR |
| 25 | 实际最小年龄 | NEMAR |
| 71 | 实际最大年龄 | NEMAR |
| 25–80 | 招募年龄区间 | 论文 |
| 127 | 脑电记录通道数 | NEMAR channels.tsv |
| 128 | 放大器/电极帽通道数 | actiCHamp / actiCAP |
| 11 | 表面肌电通道数 | 论文、NEMAR 描述 |
| 1000 | 采样率(Hz) | 论文、NEMAR |
| 50 | 工频(Hz) | NEMAR |
| 3 | 目标位置类别数 | 论文 |
| 3 | 运行数(三档辅助) | 论文 |
| 10 | 每类每 run 重复次数 | 论文 |
| 90 | 每人 trial 数 | 3 × 3 × 10 |
| 3,510 | 释出规模 trial 数 | 39 × 90 |
| 3,600 | 计划规模 trial 数 | 40 × 90 |
| 117 | 释出记录数(run 数) | 39 × 3 |
| 234 | EEGDash 记录数(存疑) | EEGDash |
| 48 | EEGDash 被试数(存疑) | EEGDash |
| 10.6 | EEGDash 总时长(小时,存疑) | EEGDash |
| 9.07 | NEMAR 数据总量(GB) | NEMAR |
| 17.78 | Derivatives.zip 体积(GB) | Figshare |
| 30.65 | code.zip 体积(kB) | Figshare |
| 0.75 | participants.tsv 体积(kB) | Figshare |
| 0.77 | dataset_description.json(Figshare 版,kB) | Figshare |
| 1.49 | dataset_description.json(NEMAR 版,kB) | NEMAR |
| 5.51 | README.md 体积(kB) | NEMAR |
| 1.9.0 | BIDS 版本 | NEMAR |
| 8.4.0 | HED 版本 | NEMAR |
| 1.8.0dev0 | MOABB 转换版本 | NEMAR |
| 831 | 论文文章号 | Scientific Data 12:831 |
| PR19-RR-P2 | 资助项目号 | 论文、NEMAR |
| 2001 | 2 s × 1000 Hz 的采样点数 | 推算 |
| 33.3% | 三分类机会水平 | 推算 |
§32 附录:术语与缩写的四种语言对照
| 缩写 | 意大利语线索 | 英文全称 | 中文 |
|---|---|---|---|
| NeBULA | — | Neuromechanical Biomarkers for Upper Limb Assessment | 上肢评估神经力学标志物 |
| hd-EEG | elettroencefalografia ad alta densità | high-density electroencephalography | 高密度脑电 |
| sEMG | elettromiografia di superficie | surface electromyography | 表面肌电 |
| ERSP | perturbazione spettrale correlata all’evento | event-related spectral perturbation | 事件相关谱扰动 |
| ITC | coerenza inter-prova | inter-trial coherence | 试次间相干 |
| ERS | sincronizzazione correlata all’evento | event-related synchronization | 事件相关同步 |
| ERD | desincronizzazione correlata all’evento | event-related desynchronization | 事件相关去同步 |
| CMC | coerenza cortico-muscolare | corticomuscular coherence | 皮层-肌肉相干 |
| BIDS | struttura dei dati di neuroimaging | Brain Imaging Data Structure | 脑成像数据结构 |
| HED | descrittori gerarchici degli eventi | Hierarchical Event Descriptors | 层级事件描述符 |
| IIT | Istituto Italiano di Tecnologia | Italian Institute of Technology | 意大利技术研究院 |
| INAIL | Istituto Nazionale Assicurazione Infortuni sul Lavoro | Italian National Institute for Insurance against Accidents at Work | 意大利国家工伤保险机构 |
| BCI | interfaccia cervello-computer | brain-computer interface | 脑机接口 |
| ICA | analisi delle componenti indipendenti | independent component analysis | 独立成分分析 |
| CSP | pattern spaziale comune | common spatial pattern | 共空间模式 |
| MDM | distanza minima alla media | minimum distance to mean | 最小均值距离 |
| LOSO | lasciare fuori un soggetto | leave-one-subject-out | 留一被试交叉验证 |
32.1 意大利语作者名的读音提示
作者列表里的名字在中文文献里常被误读,附上读音近似:
- Garro:/ˈɡar.ro/,“加罗”
- Fenoglio:/feˈnɔʎ.ʎo/,“费诺利奥”
- Chiappalone:/kjap.paˈlo.ne/,“基亚帕洛内”
- Buccelli:/butˈtʃɛl.li/,“布切利”
- Semprini:/semˈpri.ni/,“森普里尼”
- Laffranchi:/lafˈfran.ki/,“拉弗兰基”
- De Michieli:/de miˈkjɛ.li/,“德米基耶利”
正确的读音有助于在学术会议与同行交流时被识别。
§33 附录:与 NEMAR 的技术说明对照
NEMAR 作为一个 BIDS 再发布平台,其 README 里有一批对本数据特别重要的声明。本节逐条对照。
33.1 转换来源声明
NEMAR 明确写:「this NEMAR record only reformats the published source data into BIDS via MOABB(本记录仅通过 MOABB 将已发表的源数据重排为 BIDS)」。
这句声明的三重含义:
- 不新增数据:所见即 Figshare 所有;
- 转换工具是 MOABB:所以 MOABB 的任何默认行为都会体现在目录里;
- 源数据来自"已发表"渠道:即 Figshare 的发布版,而非实验室内部版本。
33.2 伦理责任声明
NEMAR 写:「the data analysed in this deposit were collected under the ethics approval obtained by the original investigators and reported in the primary publication cited above… No new human-subject data were collected during this BIDS re-release」。
含义:再发布方不承担新的伦理审查义务,二次使用者的伦理依据仍指向原研究的批准。这意味着若你要发表基于 NeBULA 的研究,伦理声明应写"数据来自已发表数据集,原研究已获 IIT 伦理委员会批准",而不是"NEMAR 批准"。
33.3 版本语义
NEMAR 的 v1.0.0 是 NEMAR 侧版本,与 Figshare 的 v1 无映射关系。若 NEMAR 因 MOABB 升级重跑,可能出现 v1.1.0 而 Figshare 仍是 v1。引用时应写明"哪一侧的哪个版本"。
33.4 自动识别字段的可靠性
NEMAR 页面自动生成四类字段:Paradigm、Number of classes、Trial interval、Detected paradigm。四者对 NeBULA 的表现:
| 字段 | 自动值 | 是否正确 | 备注 |
|---|---|---|---|
| Paradigm | imagery | 错 | 应为 motor execution |
| Number of classes | 3 | 对 | reach_1/2/3 |
| Trial interval | [0, 2] s | 对(工程值) | 论文为 −0.5~2 |
| Detected paradigm | motorimagery | 错 | 同第一行 |
| Channel types | eeg=127 | 对 | |
| Reference | FCz | 对 | |
| Ground | Fpz | 对 | |
| Line frequency | 50 | 对 |
结论:NEMAR 的硬件与信号字段可靠(来自 .vhdr 解析),范式字段不可靠(来自文本启发式识别)。使用时按这个分界线取舍。
33.5 HED 映射的覆盖度
NEMAR 标注 “HED tags 3/3 events annotated”,即三类事件全覆盖。但如前所述(§5.4),标注的是"线索"而非"动作"。若用 HED 做自动化分析,需注意事件的语义层级只到 Sensory-event → Label,没有 Motor-action 节点。
§34 附录:写作与核验时的决策记录
本条目在写作过程中的若干判断,可能对后续维护者有用。
34.1 为什么用 40/39 双写而不是单取一个
单取 40 会与可点验的目录矛盾;单取 39 会与论文原文矛盾。双写虽然增加文字量,但它是唯一不与任何一手来源冲突的写法。这也符合百科条目的惯例:呈现冲突而不是掩盖冲突。
34.2 为什么把 EEGDash 的 48 写进正文
因为它是真实的第三方声明,用户可能在 EEGDash 上看到 48。若正文不提,读者会以为本条目漏查。写进去并标注"存疑",比不写更有用。
34.3 为什么给 DAIMS 打 34 分而不是更高
D6(完整性)扣 2 分是因为 sub-28 缺失 + EMG 在主流通道缺失 + 三个被试数口径;D8(规模)扣 2 分是因为 39 人在 EEG 领域只是中等。若未来 NEMAR 补齐 sub-28 并恢复 EMG,D6 可升至 5,总分升至 36。
34.4 为什么把坑点写成 9 条
纪律要求 ≥5,实际写了 9 条,因为核验中确实发现了 9 个会实际踩到的点。少写会掩盖问题,多写不构成的负担——每条都对应一个具体现象与一个具体修复。
34.5 为什么没给基准准确率
因为论文没有,第三方也没有可靠复现。编造一个数字会破坏整篇的可信度。宁可写"无基准结果",也不给"估计值"。
34.6 本条目未做的事
- 未实际下载 9 GB 数据验证通道名与事件数(受沙箱带宽与中断预算限制);
- 未解压
code.zip查看脚本内容; - 未访问 Nature 主站原文全文(重定向至 idp.nature.com),改用镜像段落;
- 未核验 Figshare 的
channels.tsv中 11 块肌肉的具体名称。
上述四项列入 §22.3 遗留疑点。若后续有代理接管,建议优先补做第 2 项与第 4 项——两者成本低、信息量大。
§35 附录:伸手动作的运动学与电生理时序
本节梳理一个伸手 trial 的时间解剖,帮助使用者把 EEG、EMG 与行为对齐。
35.1 一个 trial 的六段
| 段 | 相对 Go 的时间 | EEG 现象 | EMG 现象 |
|---|---|---|---|
| 静息基线 | −0.5 ~ 0 s | mu/beta 功率稳定 | 低幅静息活动 |
| 线索期 | 0 ~ 0.2 s | 视觉诱发电位(枕区 P1/N1) | 无明显变化 |
| 运动准备 | 0.2 ~ 0.5 s | 对侧 mu ERD 起始 | 近端肌群预激活 |
| 执行期 | 0.5 ~ 1.2 s | mu ERD 峰值、beta ERD | 多肌群爆发、包络峰 |
| 触碰/保持 | 1.2 ~ 1.5 s | ERD 维持 | 远端肌群稳定 |
| 回位与恢复 | 1.5 ~ 2.0 s+ | beta rebound 起始 | 包络下降、近端肌群主导 |
上表是教科书时序,实际个体的潜伏期差异可达 ±0.3 s,且外骨骼档位会系统性地改变"执行期"的起止。做组水平分析时,建议用 EMG 包络的起点做逐 trial 对齐,而不是只用 Go 线索对齐。
35.2 为什么 2 s 窗口可能截断回位
BIDS 化后的窗口是 [0, 2] s。若被试的伸手+回位总时长超过 2 s(老年人或高助力条件下可能发生),回位阶段的信号会被截断,beta rebound 的峰值可能丢失。
实践建议:若要研究 rebound,直接从 Figshare 原始连续数据重新分段,窗口取 [0, 3] s 或 [0, 4] s。NEMAR/MOABB 的 2 s 窗口只适合研究执行期本身。
35.3 三种对齐方式的取舍
| 对齐方式 | 零点 | 优点 | 缺点 |
|---|---|---|---|
| 线索对齐 | Go 亮灯 | 简单、与 BIDS 事件一致 | 混入视觉与认知准备成分 |
| EMG 起点对齐 | sEMG 包络过阈值 | 纯运动相关 | 需 sEMG,且阈值因人而异 |
| 触碰对齐 | 面板触发 | 行为终点明确 | 事件表中通常不记录触碰时刻 |
BIDS 版只有线索,所以大多数公开分析都走第一种。这也是为什么很多论文的 “运动相关” 结论里其实混着 “视觉注意” 成分——一个方法学上常见但少被讨论的问题。
35.4 助力档对时序的影响(推断)
从外骨骼的工作原理推断:
- free:自然运动,EMG 起点到触碰约 0.6-0.9 s;
- low:重力补偿,近端肌群出力下降,可能使运动变慢(因为缺少自然的惯性加速),执行期延长;
- high:主动助力,执行期缩短,但被试可能因"不用出力"而降低运动准备强度(mu ERD 减弱)。
这个推断的核心是:助力不一定让动作"更好",可能让动作"更快但更被动"。这也解释了作者为什么强调要建立"健康基线"——没有基线,无法判断助力改变的是效率还是参与度。此段为推断,未经论文验证。
§36 附录:文档维护与更新记录
| 日期 | 版本 | 变更 | 代理人 |
|---|---|---|---|
| 2026-10-17 | 初稿 | 建立条目,完成三源核验,写入 §0-§36 | agent-c-nebulareac |
36.1 后续更新触发条件
以下任一事件发生时,本条目应更新:
- NEMAR 发布新版本(
v1.x.x),特别是补入 sub-28 或恢复 EMG; - Figshare 记录升级到 v2,文件清单变化;
- MOABB 的
NeBULA2025类定义变化(tmin或n_subjects); - 论文被勘误(erratum);
- 出现首个公开发表的基准准确率(可作为 §7 的补充);
- EEGDash 修正 48 subjects 的错误。
36.2 更新时的最小核对清单
- [ ] 重跑 §29.4 的七项一致性检查
- [ ] 核对 §31 速查表全部数字
- [ ] 核对 §8 的 14 条双口径是否仍成立
- [ ] 检查 §7.6 的 9 条坑点是否有已修复的(修复的标注"已修复"而非删除)
- [ ] 更新本节记录
36.3 条目结构导航
| 章节 | 主题 | 面向 |
|---|---|---|
| §0 | 问题起点与设计 | 全体 |
| §1 | 十二问速览 | 入门 |
| §2 | 论文与时间线 | 文献 |
| §3 | 机构与人物 | 文献 |
| §4 | 规模硬数字 | 数据工程 |
| §5 | 实验范式与标注 | 神经科学 |
| §6 | 获取、目录、许可 | 数据工程 |
| §7 | 分析、基准、验证 | 算法 |
| §7.6 | 九条坑点 | 全体 |
| §8 | 十四项双口径存照 | 文献 |
| §9 | DAIMS 评估 | 决策 |
| §10 | 工作流与互链 | 算法 |
| §11 | 来源清单 | 文献 |
| §12 | 字段字典 | 数据工程 |
| §13 | 预处理建议 | 算法 |
| §14 | 复现步骤 | 算法 |
| §15 | 术语表 | 入门 |
| §16 | FAQ | 入门 |
| §17 | 局限与边界 | 临床 |
| §18 | 康复场景对接 | 临床 |
| §19 | 版本演进 | 数据工程 |
| §20 | 横向对比 | 决策 |
| §21 | 引用模板 | 文献 |
| §22 | 核验记录 | 全体 |
| §23 | 助力条件深度剖析 | 神经科学 |
| §24 | 可复现性清单 | 算法 |
| §25 | 结语与定位 | 全体 |
| §26 | 论文要点转述 | 文献 |
| §27 | 角色路线图 | 入门 |
| §28 | 算法备忘 | 算法 |
| §29 | 工具适配细节 | 数据工程 |
| §30 | 误用案例复盘 | 全体 |
| §31 | 关键数字速查 | 全体 |
| §32 | 四语术语对照 | 文献 |
| §33 | NEMAR 说明对照 | 数据工程 |
| §34 | 写作决策记录 | 维护者 |
| §35 | 运动时序解剖 | 神经科学 |
| §36 | 维护记录(本节) | 维护者 |
36.4 致谢
本条目的事实核查依赖以下公开资源,谨致谢意:IIT Rehab Technologies Lab 与全部 40 名参与者的原始贡献;Scientific Data 的开放出版;Figshare 的数据托管;NEMAR 团队(含 MOABB 转换与 HED 标注);MOABB 与 MNE 社区的工具链;EEGDash 的索引服务。任何错误均由本条目作者承担,与上述机构无关。
(全文完)
§37 附录:按研究问题索引的检索表
本表把"你想回答什么问题"映射到"该看哪一节、用哪些字段、注意哪些坑"。
| 研究问题 | 数据字段/文件 | 章节 | 必读坑点 |
|---|---|---|---|
| 健康人伸手时运动皮层如何激活? | events.tsv + eeg(C3/C4) |
§7.1、§14.1 | 坑 2 |
| 三种目标位置在脑电上可分吗? | trial_type + 127 导 |
§7.3、§28.4-28.5 | 坑 5 |
| 外骨骼助力改变了肌肉出力吗? | sEMG 11 肌(仅 Figshare) | §23.1、§18.2 | 坑 4 |
| 助力是否降低脑力投入? | mu ERD(C3) | §23.2-23.3 | 坑 5 |
| 如何评测一个去噪方法? | 全部 EEG + sEMG 参考 | §10.1 场景三、§13.2 | 坑 4 |
| 皮层-肌肉耦合有多强? | EEG + sEMG 同步 | §14.4、§28.1 | 坑 4 |
| 能否做源定位? | 127 导 + 电极位置 | §4.3、§13.3 | 坑 3(参考电极) |
| 被试间差异有多大? | participants.tsv + 逐人 ERD |
§23.4、§18.1 | 坑 1 |
| 数据能否商用? | 许可字段 | §6.6 | §8 第 7 条 |
| 如何引用? | DOI × 3 | §21 | 坑 3 |
| 为什么我的 trial 数少了? | events.tsv onset |
§5.5、§29.2 | 坑 2 |
| 为什么通道数是 138? | channels.tsv type |
§12.3 | 坑 4 |
| 为什么 NEMAR 说是 imagery? | NEMAR 自动字段 | §33.4 | 坑 7 |
37.1 三个"先做这一步"的建议
- 先数事件再建模:
len(events)对每个 run 应接近 30。若不是,先查事件解析,别急着跑分类。 - 先看通道类型再声明模态:
set(raw.get_channel_types())。只有看到emg才配写"双模态"。 - 先定被试数再说样本量:39 还是 40,写错一次要改全文。
§38 附录:与同类"康复 EEG"数据集的差异化
除了 §20 的横向对比表,这里从"研究命题"层面说明 NeBULA 的不可替代性。
38.1 它唯一能回答的问题
“在没有病理干扰的前提下,机器人助力如何改变健康人的神经力学响应?”
这个问题的价值在于:它把"助力效果"从"患者是否康复"里剥离出来,先回答一个可控的基础问题。任何临床研究若跳过这一步,就无法区分"助力改变了运动控制"与"患者学会了新策略"两种机制。
38.2 它不能回答的问题
- 患者能否从助力中获益(无患者数据);
- 长期使用外骨骼是否导致依赖(无纵向数据);
- 助力对痉挛、肌张力异常的影响(无病理样本);
- 不同外骨骼品牌间的差异(只有一款原型)。
38.3 与其他条目的互补矩阵
| 维度 | NeBULA | stroke-eeg-fnirs(1212) | eegmmidb(342) | bci-iv-2a(352) |
|---|---|---|---|---|
| 人群 | 健康 | 卒中 | 健康 | 健康 |
| 动作 | 真实伸手 | 真实运动(含患者) | 握拳/睁闭眼 | 想象 |
| 条件对照 | 三档助力 | 无(或临床分组) | 无 | 无 |
| 空间分辨率 | 127 导 | 低导 | 64 导 | 22 导 |
| 肌电 | 11 肌 | 无 | 无 | 无 |
| 临床标签 | 无 | 有量表 | 无 | 无 |
这张矩阵说明:没有单一数据集能同时具备"多条件 + 高密度 + 双模态 + 临床标签",需要组合使用。 NeBULA 提供前三项,stroke-eeg-fnirs 提供第四项。这也是 §10.3 把两者列为首要互链的原因。
38.4 组合使用的三条路径
路径 A:先健康后患者——在 NeBULA 上建立指标计算与正常范围,再在 stroke-eeg-fnirs 上套用。
路径 B:先方法后数据——在 NeBULA 上开发去噪/解码方法(因双模态可验证),再迁移到临床数据。
路径 C:先小后大——用 NeBULA(39 人)做预实验,确定效应量与样本量,再设计更大的临床研究。
三条路径的共性:NeBULA 是方法学的前置站,不是临床结论的来源。
38.5 时序视角下的收束
本节的价值在于:把「线索—准备—执行—触碰—回位」这条链条摊开之后,使用者才能判断自己的分段窗口落在哪一段、缺失的是哪一段,以及为什么同一个「伸手动作」在论文、MOABB、自己的分析里会呈现出不同的 ERD 曲线。尤其要强调的是:BIDS 化把整个动作压进 2 s 窗口,这对研究执行期足够,对研究回位与 beta rebound 则可能不够;而回位阶段恰恰是判断「动作是否真的完成」的关键——只看执行期,无法区分「伸手到位」与「伸手到一半被外骨骼挡住」。因此任何涉及完成度的分析,都应回到 Figshare 原始连续记录,从 Go 线索向后至少留出 4 s,并配合 sEMG 包络确认动作终点。这也是本节把六段时序、三种对齐方式、助力档推断分开写的原因:三者分别回答「发生了什么」「以哪里为零点」「条件改变了什么」,混在一起谈会互相掩盖。把这些讲清楚之后,NeBULA 的使用边界就非常明确——它是一份高质量、可控、公开的健康人运动基线,它的价值实现方式不是「直接给出结论」,而是「让结论可以被检验」。
资料与致谢:本条目依据的科学数据描述论文发表于 Scientific Data(2025 年,第 12 卷,文章号 831),DOI 为 10.1038/s41597-025-05042-4;数据集本体由 Figshare 托管,DOI 为 10.6084/m9.figshare.27301629,首发于 2025 年 5 月 21 日;BIDS 化再发布版由 NEMAR 托管,记录号 nm000322,DOI 为 10.82901/nemar.nm000322,版本 v1.0.0,发布于 2026 年 10 月 8 日;工具链文档来自 MOABB 的 NeBULA2025 类页面与 EEGDash 的 NM000322 条目,规范文档来自 MNE-BIDS 与 EEG-BIDS。数据采集由意大利技术研究院康复技术实验室完成,资助来自意大利国家工伤保险机构的 PR19-RR-P2 项目,四十名健康志愿者贡献了全部原始信号。本条目在写作过程中对上述来源做了交叉核对,凡有冲突之处均已在双口径存照表中逐条列明并说明采信理由;凡属推断的内容均已在正文显式标注。若后续官方材料更新(例如补齐缺失被试、恢复肌电通道或发布新的转换版本),应以官方页面为准,并据此修订本条目的相应章节。最后提醒读者:本条目面向 AI-Ready 数据集的知识整理与检索,不构成任何临床使用建议,也不替代论文原文、数据说明文件与代码包中的权威表述。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- eeg-power-anesthesia — 共享标签:生理信号 / 脑电信号 / 神经科学 / 评测基准
- consumer-grade-wearables — 共享标签:生理信号 / 神经科学 / 可穿戴传感 / 评测基准
- ltrsvp — 共享标签:生理信号 / 脑电信号 / 神经科学 / 评测基准
- moabb — 共享标签:生理信号 / 脑电信号 / 神经科学 / 评测基准
- brain-wearable-monitoring — 共享标签:生理信号 / 脑电信号 / 神经科学 / 可穿戴传感
- tuev — 共享标签:生理信号 / 脑电信号 / 神经科学 / 评测基准
- boas-bitbrain — 共享标签:生理信号 / 脑电信号 / 可穿戴传感 / 评测基准
- wearable-exam-stress — 共享标签:生理信号 / 神经科学 / 可穿戴传感 / 评测基准
- mental-fnirs — 共享标签:生理信号 / 脑电信号 / 神经科学 / 可穿戴传感
- globem — 共享标签:生理信号 / 神经科学 / 可穿戴传感 / 评测基准
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

