bids
在处理 Brain Imaging Data Structure(BIDS)数据集时使用此技能:组织神经科学与生物医学数据(MRI、EEG、MEG、iEEG、PET、显微成像、NIRS、动作捕捉、EMG、MR 波谱、行为数据),查询 BIDS 布局,验证合规性,将 DICOM 转换为 BIDS,编写元数据 sidecar 文件,或创建 BIDS 派生数据。
BIDS - 神经影像数据组织与管理标准
技能概述
BIDS(Brain Imaging Data Structure)技能帮助您按照国际标准组织神经科学和生物医学数据,支持 MRI、EEG、MEG、iEEG、PET 等 11 种模态的数据标准化管理、验证、查询和转换。
适用场景
1. 神经影像数据标准化组织
当您需要整理和规范化 fMRI、结构 MRI、扩散 MRI 等神经影像数据时,此技能可帮助您按照 BIDS v1.11.x 规范构建符合 OpenNeuro、DANDI 等国际存储库要求的目录结构,确保数据集对人类和软件工具都清晰可读。
2. DICOM 原始数据转换
从医学影像设备导出的 DICOM 数据需要转换为标准化的 BIDS 格式以便后续分析。通过 HeuDiConv、dcm2bids 等工具,支持完全自动的 ReproIn 协议映射,或自定义启发式转换,保留原始数据来源记录以保证可重复性。
3. 数据集验证与质量控制
在数据共享、论文投稿或分析前,使用 bids-validator 快速检查数据集是否符合 BIDS 规范,识别缺失文件、命名错误、元数据缺失等问题,并配置 .bidsignore 排除不需要验证的辅助文件。
核心功能
1. PyBIDS 数据查询与索引
基于 PyBIDS 库提供高效的 BIDS 数据集索引和查询功能,支持按被试、会话、任务、运行、模态等实体灵活检索文件,自动继承元数据 sidecar,并可缓存索引以加速大型数据集访问。同时支持查询衍生数据管道(如 fMRIPrep)生成的预处理文件。
2. 多模态元数据管理
为 MRI、EEG、MEG、PET 等不同模态创建和维护 JSON sidecar 元数据文件,利用继承机制在数据集、被试、会话等多层级别共享采集参数(如 RepetitionTime、TaskName、PhaseEncodingDirection),确保 fMRI 预处理管道所需的层时序、相位编码等关键参数完整准确。
3. BIDS 衍生数据与管道集成
生成符合 BIDS 衍生数据规范的预处理输出(如 fMRIPrep、MRIQC、QSIPrep),正确使用 space-、desc-、res- 等实体标注模板空间、处理步骤和分辨率,编写包含 GeneratedBy 字段的 dataset_description.json,确保衍生数据可被下游管道和工具正确识别和处理。
常见问题
BIDS 标准是什么?为什么需要使用它?
BIDS(Brain Imaging Data Structure)是神经科学领域的社区数据标准,定义了统一的文件命名、目录结构和元数据格式。使用 BIDS 可以使数据集立即被 fMRIPrep、MRIQC 等主流工具识别,满足 OpenNeuro、DANDI 存储库和 NeuroImage 等期刊的要求,大幅提升研究的可重复性和数据共享效率。BIDS 起源于 MRI,现已扩展到 EEG、MEG、iEEG、PET、显微镜、NIRS 等 11 种模态。
如何将扫描仪的 DICOM 数据转换为 BIDS 格式?
推荐使用 HeuDiConv 进行 DICOM 到 BIDS 的转换。如果扫描协议遵循 ReproIn 命名约定(如 anat-T1w、func-bold_task-rest),转换可完全自动化,无需编写配置文件。对于非标准协议名称,可编写 Python 启发式文件进行映射。转换时务必使用 --minmeta 标志避免元数据溢出,原始 DICOM 会自动存档到 sourcedata/ 目录。替代工具包括 dcm2bids(基于 JSON 配置)和 BIDScoin(带图形界面)。
bids-validator 报告"Not a BIDS dataset"或"Missing SliceTiming"错误怎么办?
"Not a BIDS dataset"通常表示缺少根目录的 dataset_description.json 文件,需创建包含 Name 和 BIDSVersion 字段的 JSON 文件。"Missing SliceTiming"表示 dcm2niix 无法从 DICOM 头提取层时序信息,需要根据扫描协议手动添加 SliceTiming 数组到 JSON sidecar(常见模式包括升序、降序、交错)。其他常见问题如被试不一致警告可用 --ignoreSubjectConsistency 忽略,TSV 文件错误通常是由于编码或分隔符问题(应使用 UTF-8 编码和制表符分隔,缺失值用 n/a 表示)。