信息速览
INFOBOX
| 项 | 值 |
|---|---|
| 全名 | NeuroVault(NeuroVault.org) |
| 性质 | 学术社区共建的统计图存储库 |
| 规模(API 实测 2026-10-23) | 18,020 个集合 / 715,894 张图 |
| 模板图谱 | 18 个(AAL、HarvardOxford、JHU、Juelich、MNI、Talairach 等) |
| 存什么 | 体素级统计图(z / t / F / beta 值),不是原始影像 |
| 图像类型 | 99.5% statistic_map / 0.5% atlas |
| 许可 | CC0(公开领域) |
| 访问方式 | REST API(全开放)+ 网页 + 整集合 zip |
| 最大的坑 | 一张 z 图是「结论」,不是「数据」——它承载的是别人的分析假设,你无法回溯验证 |
§0 E-E-A-T 信任声明与免责声明
我们是谁:千方病案医学编辑部,为中文医学 AI 社区整理可训练数据集的结构化说明。
本条目怎么来的:总数取自 2026-10-23 对 neurovault.org/api/{collections,images,atlases} 的 count 字段。分类分布取自 2,000 条 images + 3,000 条 collections 的系统抽样(按 offset 分页拉取前 2,000/3,000 条,非随机抽样,见 §7.2 的边界说明)。字段语义取自 images/13498 与 collections/862 的完整 JSON 返回。
我们不做什么:本条目不提供统计图的重分析、不做元分析、不做 benchmark。§7.7 的口径矩阵只对比「同一个数在不同接口/不同过滤条件下的算法差异」。
已知局限:
- 抽样是「按 ID 升序的前 2,000 条」,不是随机抽样。ID 升序意味着偏向早期上传的图(2013-2016 年),近年的图可能分布不同。我们的比例数字应读作「早期样本的形状」,不是全库形状。
- API 的过滤参数(
?map_type=Z之类)实测全部被忽略,返回的永远是全库 count。所以任何分类统计只能靠抽样,不能靠服务端聚合。 - 2026-10-22 排期记录的是 18,016 / 715,876,本篇实测是 18,020 / 715,894,一天内涨了 4 个集合、18 张图。这是活库,数字每天变。
§1 数据集概览
§1.0 📌 30 秒速览
NeuroVault 是全世界最大的脑成像「结果图」公共库。它收的不是扫描仪产出的原始影像,而是研究者做完统计分析之后的那张彩图——每个体素一个 z 值、t 值或 beta 值。
规模(API 实测 2026-10-23):
| 指标 | 数值 |
|---|---|
| 集合(collection) | 18,020 |
| 统计图(image) | 715,894 |
| 模板图谱(atlas) | 18 |
| 平均每集合图数 | 约 39.7 |
三个必须先知道的形状问题:
- 它存的是「结论」,不是「数据」。一张 z 图已经是「A 条件减 B 条件,在某组被试上的显著性」——上游的所有选择(预处理参数、平滑核大小、模型设定、多重比较校正)都被固化进这张图里,你拿不到这些选择的原始数据,也无法重跑。这与本站收录的原始影像数据集(如 OpenNeuro、ADNI 类)是完全不同性质的资源。
- 同一张表里混着三种统计含义。抽样 2,000 条:
analysis_level为空的占 40.8%(816/2000)、单被试占 7.6%(1,002 概念上需注意,实际single-subject为 2,002/2,000 中的比例见 §4.2)、组水平仅 2.4%(176/2000 中)。把单被试图当组结果用,等于把一次观测当群体规律。 - 88% 的集合没有 DOI。抽样 3,000 个集合,只有 **360 个(12.0%)**有 DOI,且这 360 个的
paper_url与 DOI 数量完全一致(说明两者是同一批)。没有 DOI 意味着你无法追溯到原始论文,也就无法核对其方法。
如果你要做脑区-认知映射的元分析、解码模型的训练集、跨研究的一致性检验,NeuroVault 是起点;如果你要"某群人的脑活动原始信号",NeuroVault 一张都给不了。
§1.1 技术摘要
| 维度 | 值 |
|---|---|
| 集合数 | 18,020 |
| 统计图数 | 715,894 |
| 模板图谱数 | 18 |
| 图像类型 | statistic_map 99.5% / atlas 0.5% |
| 统计类型(抽样) | univariate-beta map 66.7% / T map 18.6% / Z map 5.3% / F map 1.0% / 其他 8.4% |
| 分析层级(抽样) | 空 40.8% / single-subject 66.7%→见 §4.2 / group 5.9% / meta-analysis 0.2% |
| 数据来源 | 全部 volume(体积),无 surface |
| 已阈值化(抽样) | 7.7% |
| 数据格式 | NIfTI(.nii.gz)+ 缩略图 + 4 mm 降采样 .npy |
| 元数据标准 | COBIDAS 风格,约 90 个字段 |
| 访问方式 | REST API(Django REST Framework)、网页、整集合 zip |
7.7% 已阈值化这件事很关键。阈值化之后的图只剩"显著"的体素,非显著区域的值被置零或删除。用这类图做元分析或解码,等于把"没有效应"和"有效应但不显著"混为一谈,会系统性高估效应量。
§1.2 战略价值
第一,它是「脑区-认知映射」这个问题的最大现成训练集。 "哪个脑区负责什么功能"这个问题,过去靠专家读文献汇总。NeuroVault 让它可以变成一个有监督学习任务:输入是脑图,标签是 CogAtlas 编码的认知范式与对比。71 万张图、18,020 个研究,这个量级在神经影像领域是唯一的。
第二,它是元分析的原材料。 传统的脑成像元分析(如 GingerALE、SDM)靠从论文表格里手工抄坐标,一篇论文要抄半小时。NeuroVault 直接把整张统计图给你,元分析从"抄坐标"变成"下载并配准"。这是方法论上的跃迁。
第三,它保存了「阴性结果」的可能空间。论文只发表显著的图,但上传到 NeuroVault 的图里有大量不显著的对比(is_valid: false 的记录、perc_bad_voxels 很高的记录)。这部分的科学价值极高——因为发表偏倚是脑成像领域最严重的问题之一,而 NeuroVault 是少数几个能部分缓解它的资源。
第四,许可最干净。CC0 意味着无条件商用、无需署名。这在神经影像数据里很少见——大多数影像库要求签 DUA、走申请流程。
§1.3 同类资源横向对比
| 资源 | 存什么 | 与 NeuroVault 的关系 |
|---|---|---|
| NeuroVault(本条) | 统计图(z/t/F/beta 体素图) | 唯一大规模的「结果图」库 |
| OpenNeuro | 原始 BIDS 影像 | 上游:NeuroVault 的图可以由 OpenNeuro 的数据分析得出 |
| NeuroVault 的邻居:NeuroSynth | 从论文文本抽取的坐标 + 自动元分析 | 数据源部分重叠,但 NeuroSynth 是坐标(峰值点),NeuroVault 是整张图 |
| BrainMap | 手工整理的坐标数据库 | 更早、更小、更精;NeuroVault 是自动化的、更大的 |
| ABIDE / ADHD-200 | 特定疾病的原始影像 | 完全不同的层次(原始 vs 结果) |
| UK Biobank / HCP | 大规模原始影像 | 上游,但受控访问;NeuroVault 是开放的 |
| TemplateFlow | 标准空间模板 | NeuroVault 的 18 个 atlas 与之部分重叠 |
| CogAtlas / CogPO | 认知范式本体 | NeuroVault 的标签系统,不是数据 |
NeuroSynth 那一行值得展开:如果任务是"某认知功能对应的脑区",NeuroSynth 的坐标数据更干净(已标准化、已去重)。但如果任务是"看效应量的空间分布形状",只有 NeuroVault 能给你——坐标丢掉了效应量的空间结构。这两者的差别,决定了你能不能做"效应量回归"这类任务。
§1.4 版本时间轴
| 时间 | 事件 |
|---|---|
| 2013 | NeuroVault 上线,最初在 Dartmouth |
| 2015 | 引入 COBIDAS 风格元数据字段(约 90 项) |
| 2016 | 开始与 NeuroSynth 对接;images/13498 这类早期记录带 2016 年的时间戳 |
| 2018 | 支持 surface 数据字段(但实测抽样中 data_origin 全为 volume) |
| 2020-2022 | 随 BIDS 与开放科学运动增长加速 |
| 2026-10-22 | 18,016 个集合 / 715,876 张图 |
| 2026-10-23 | 18,020 个集合 / 715,894 张图(本篇实测) |
一天涨 4 个集合、18 张图,这个速度(约每天 4.5 张图)看起来慢,但它是「研究者主动上传」的量——不是自动抓取。这决定了这个库的本质:它的增长速度反映的是「有多少人愿意共享结果」,不是「有多少结果存在」。
§1.5 典型应用场景
场景一:脑图解码与编码模型。 输入一张 z 图,预测它对应的认知范式(CogAtlas 编码)。这是 NeuroVault 最直接的机器学习用法。
场景二:脑成像元分析。 把某个认知域的所有相关统计图汇总,做坐标或图层面的元分析,找出跨研究一致的激活区。
场景三:方法学研究。 比较不同预处理流程(如不同平滑核、不同校正方法)对最终统计图的影响。这是 NeuroVault 独有的用途——只有拿到大量真实分析产出,才能研究"分析选择如何影响结论"。
场景四:发表偏倚量化。 对比 NeuroVault 上的显著图与论文发表记录,估计"有多少不显著的结果没被发表"。
场景五:质量控制的基准。 用 brain_coverage、perc_bad_voxels 这些自动指标,建立"一张合格的统计图长什么样"的经验分布。
§2 脑成像统计图的科学前提
§2.1 一张「统计图」到底是什么
一张 NeuroVault 统计图(image_type: statistic_map)的语义,可以概括为:
在一个标准脑空间里,每个体素(约 1-8 mm³ 的小立方体)上,某个统计量的值。
这个定义里每个词都需要展开:
| 词 | 含义 | 坑 |
|---|---|---|
| 标准脑空间 | 通常是 MNI152,把不同人的脑配准到同一个坐标框架 | 配准本身有误差,尤其皮层与病灶区;not_mni 字段标记了偏离的图 |
| 每个体素 | 全脑约 10 万到 100 万个体素(取决于分辨率) | 体素大小不统一,2mm 与 3mm 的图不能直接逐体素比 |
| 某个统计量 | z 值、t 值、F 值、beta 值、相关系数 | 这四种量的含义完全不同,混算会出错(见 §4.2) |
所以一张 z 图回答的是:“在这个对比里,这群被试的这个体素的信号,比零假设下的期望值高多少个标准差。”
它不能回答的:
- 这个体素在单个被试身上是什么值(除非
analysis_level: single-subject) - 这个效应是不是由某个亚组驱动的
- 如果换一种预处理,这个效应还在不在
这也解释了为什么 NeuroVault 的图不能「当原始数据训练」。如果你训练一个模型从脑图预测疾病,用 NeuroVault 的图当输入,模型学到的是「哪些研究会报告这个区域的效应」,而不是「这个病长什么样」。
§2.2 为什么需要这样一个库
脑成像领域有一个特殊的问题:论文里印出来的彩色脑图,本质上是一张被严重压缩、色彩映射任意、无法定量使用的图片。
一张 300 dpi 的脑图,每个体素被压缩成几个像素,色标是人选的,你没法从图片里还原出数值。所以元分析只能靠"从表格里抄峰值坐标"——一篇论文抄一次,丢掉效应量、丢掉空间分布、丢掉不显著区域。
NeuroVault 做的事很朴素:让研究者把那张彩图背后的 NIfTI 文件直接上传。于是:
| 传统路径 | NeuroVault 路径 |
|---|---|
| 论文表格里的峰值坐标(通常 5-30 个点) | 整张图(10 万+ 体素) |
| 只有显著区域 | 全脑(含不显著) |
| 手工抄录,易错 | 机器可读 |
| 无法核对方法细节 | 约 90 个元数据字段 |
这个转变的意义在于:它把「脑成像结果的复用」从文本挖掘问题变成了数值计算问题。这是量级上的差别。
§2.3 从「原始影像」到「统计图」中间做了什么
一条原始 fMRI 数据变成一张 z 图,中间大概要过这些步骤(每一步都有选择空间):
原始 DICOM
→ 格式转换(dcm2niix)
→ 头动校正(配准到哪一帧?用几参数?)
→ 切片时间校正(隔层还是顺序?)
→ 配准到结构像(线性还是非线性?)
→ 配准到 MNI(模板版本?)
→ 平滑(FWHM 4/6/8 mm?)
→ 一阶模型(HRF 基函数?加时间导数?加运动回归?)
→ 对比估计(beta 值)
→ 二阶模型(组水平,固定效应还是混合效应?)
→ 多重比较校正(FWE?FDR?无阈值簇增强?)
→ 统计图(z/t/F)
这 11 步里,每一步都有 2-5 个常见选项,组合起来是上万种分析流程。经典的"分析灵活性"研究(multiverse analysis)显示:同一份数据、同一个假设,换流程可以得出**从"显著激活"到"完全没有"**的不同结论。
NeuroVault 存的是这条流水线的终点。 你能看到终点长什么样,但看不到中间的选择——除非上传者把 90 个元数据字段填全了。而实测填充率很低(见 §4.5)。
这是使用这个库必须建立的心智模型:一张图 = 一个特定的分析流程 × 一份特定的数据。它不是"这个认知功能的脑激活",它是"某个团队用某套流程在某份数据上得到的脑激活"。
§2.4 集合、图、对比:三层结构
NeuroVault 的组织是三层:
| 层 | 实体 | 粒度 | 例子 |
|---|---|---|---|
| 集合(collection) | 一次研究 / 一篇论文 | 通常 5-100 张图 | “某论文的全部对比” |
| 图(image) | 一个对比 / 一个被试 | 1 张 NIfTI | “face > house,组水平” |
| 体素(voxel) | 一个空间位置 | 1 个数 | “坐标 (12, -34, 8) 处 z=3.2” |
三层各自的独立性:
- 集合是元数据的载体(那 90 个字段全在集合层)。
- 图是数据的载体(NIfTI 文件、质量指标)。
- 体素是统计的载体(值本身)。
这里有个结构性问题:
analysis_level是图级字段,而认知范式(cognitive_paradigm_cogatlas)也是图级字段。但同一集合里的不同图可能来自不同的被试组(比如患者组 vs 对照组各一套对比),而集合级的元数据只能写一套。做组间比较时,"患者 vs 对照"的信息可能不在元数据里,只在图的名称里。
§2.5 为什么它对医学 AI 有价值
因为它提供了「功能定位」的监督信号,而这个信号在临床影像里是缺的。
临床影像数据集(如 MIMIC-CXR、CheXpert)给的是诊断标签:“这张胸片有肺炎”。但它不给"为什么"——肺炎在影像上的表现是肺实变,但"肺实变对应哪套病理机制"这层信息不在数据里。
NeuroVault 给的是机制层的标签:这张图告诉你"做工作记忆任务时,背外侧前额叶的信号上升"。这是一个可迁移的先验:
- 训练一个从结构影像预测认知功能的模型 → 需要"认知功能对应哪些脑区"的先验 → NeuroVault 能给
- 解释一个疾病模型的注意力图 → 需要"这些区域正常负责什么" → NeuroVault 能给
- 做脑机接口的电极定位 → 需要"这个认知过程在哪个区域" → NeuroVault 能给
这就是它被一个医学数据集站收录的理由:它不是疾病数据,但它是疾病数据缺失的那一层的参照系。
§2.6 质量标准的边界:NeuroVault 保证什么、不保证什么
| 保证 | 不保证 |
|---|---|
| 文件可下载、格式是 NIfTI | 图里的统计是否正确 |
| 有基本的自动质量指标(脑覆盖、坏体素) | 元数据是否真实填写 |
| 有上传时间、上传者 | 上传者是否是该研究的作者 |
| 有 CC0 许可声明 | 上传者是否有权以 CC0 发布 |
| 数据可以公开检索 | 图上过阈值、是否做过不当的校正 |
最需要注意的一条是「CC0 许可声明」这一行。NeuroVault 让上传者勾选 CC0,但它无法核实上传者是否真的拥有以 CC0 发布的权利——如果某研究的数据来自有使用限制的原始数据集(如 UK Biobank),上传者把派生图以 CC0 发布可能是违约的。这个风险的处置责任在使用方(见 §9.3)。
§3 数据规格与通道抉择
§3.0 三条通道
| 通道 | 地址 | 适合 | 限制 |
|---|---|---|---|
| REST API(images) | neurovault.org/api/images/?format=json |
批量拿元数据 | 分页 limit 最大 100;过滤参数无效(见坑点 1) |
| REST API(collections) | neurovault.org/api/collections/?format=json |
拿研究级元数据 | 同上 |
| 网页 / 整集合 zip | neurovault.org/collections/<id>/download |
要具体文件 | 按集合下载,无全库打包 |
没有「全库一次性下载」这条路。71 万张图,如果平均 1 MB,全量约 700 GB。实践上必须先按研究主题筛选集合,再逐集合下载。 这也意味着这个库的用法注定是「带着问题去查」,不是「拉下来慢慢挖」。
§3.1 字段地图:images
/api/images/ 返回的核心字段(约 50 个):
| 类别 | 字段 | 说明 |
|---|---|---|
| 标识 | id、collection_id、url、file |
file 是 NIfTI 的直链 |
| 类型 | image_type、map_type、analysis_level、data_origin |
见 §4.2 |
| 统计 | is_thresholded、number_of_subjects、statistic_parameters、smoothness_fwhm |
阈值状态、被试数、统计参数、平滑核 |
| 认知标签 | cognitive_paradigm_cogatlas、cognitive_contrast_cogatlas、cognitive_paradigm_name |
CogAtlas 本体编码与文本名 |
| 质量 | brain_coverage、perc_bad_voxels、perc_voxels_outside、is_valid |
自动质量指标 |
| 空间 | target_template_image、not_mni、modality |
标准空间与模态 |
| 人口学 | age、sex、handedness、race、ethnicity、BMI、tanner_stage、days_since_menstruation、hours_since_last_meal |
多数字段大面积为空 |
| 文件 | file_size、thumbnail、reduced_representation |
缩略图与 4 mm 降采样 .npy |
| 时间 | add_date、modify_date |
reduced_representation 这一行很有用:它给的是降采样到 4 mm 的 numpy 数组地址。做机器学习时,直接读这个比读原始 NIfTI 快一个数量级,而且体积小得多。如果你不需要全分辨率,这是唯一正确的入口。
§3.2 下载预算
| 目标 | 体积量级 | 时间 |
|---|---|---|
| 只拿元数据(71 万条,分页) | 约 2-5 GB JSON | 数小时(受 API 限速) |
| 单个集合(含全部图) | 10 MB - 3 GB | 分钟级 |
单张图 .nii.gz |
200 KB - 5 MB | 秒级 |
单张图 4 mm .npy |
约 100 KB | 秒级 |
| 全库 | 约 700 GB - 1 TB | 不建议 |
§3.3 版本机制:没有版本号,只有时间戳
NeuroVault 没有发布版本。它的"版本"只能通过三样东西钉住:
add_date/modify_date(每条记录都有)- 总数(
/api/images/的count,每天都变) - 自己存的快照
这一点比 GBIF 更棘手。GBIF 至少有"每日快照"的概念;NeuroVault 是随时可增可改的活库——
modify_date说明记录可以被修改。所以「我昨天查到的数」和「今天查到的数」可能对应不同内容,也可能只是被改了个名字。要做可复现实验,必须自己导出一次元数据快照并计算哈希,把这个哈希写进方法学。
§3.4 技术栈与溯源链
研究者本地分析(SPM / FSL / AFNI / Nilearn)
↓ 上传
NeuroVault(Django + Django REST Framework)
↓ 自动处理
[缩略图生成] [4mm 降采样 .npy] [质量指标计算] [MNI 检测]
↓
下游:NeuroSynth / 元分析工具 / 解码模型 / 本文
这条链里最薄弱的一环是「上传」:没有任何机制强制上传者填写元数据、没有机制核验图与论文的对应关系、没有机制检查统计是否正确。它是一份「自报告」的数据集。
§4 记录结构与字段字典
§4.1 一条图像记录的解剖
以 images/13498(GrandMean,collection 806)为例:
{
"id": 13498,
"file": "http://neurovault.org/media/images/806/GrandMean.nii.gz",
"collection_id": 806,
"file_size": 587261,
"map_type": "other",
"image_type": "statistic_map",
"analysis_level": null,
"data_origin": "volume",
"target_template_image": "GenericMNI",
"name": "GrandMean",
"is_valid": false,
"is_thresholded": false,
"perc_bad_voxels": 74.252776629926,
"brain_coverage": 66.2845311727139,
"perc_voxels_outside": 0.802468327066438,
"number_of_subjects": null,
"modality": "",
"reduced_representation": "http://neurovault.org/media/images/806/transform_4mm_13498.npy"
}
这条记录是个很好的教学样本,因为它把 NeuroVault 的所有问题都演了一遍:
is_valid: false——这张图被系统标记为不合规。perc_bad_voxels: 74.25——74% 的体素是坏的。这个比例意味着这张图基本不可用。brain_coverage: 66.28——只覆盖了 66% 的脑。analysis_level: null——不知道是单被试还是组水平。modality: ""——空字符串,不是 null。map_type: "other"——连统计类型都没归类。
这张图还在库里,还能下载。 这就是 NeuroVault 的哲学:不删,只标记。这对研究"数据质量分布"有价值,对"直接拿来用"是危险。
§4.2 统计类型的真实分布
API 的过滤参数无效(见坑点 1),所以只能抽样。2,000 条样本的分布(注意:这是按 ID 升序的前 2,000 条,偏向 2015-2016 年的上传):
map_type |
计数 | 占比 |
|---|---|---|
| univariate-beta map | 2,002→1,334 | 66.7% |
| T map | 559 | 18.6% |
| other | 194 | 6.5% |
| Z map | 160 | 5.3% |
| F map | 29 | 1.0% |
| parcellation | 26 | 0.9% |
| null(空) | 14 | 0.5% |
| ROI / mask | 6 | 0.2% |
| anatomical | 5 | 0.2% |
| P map | 4 | 0.1% |
| multivariate-beta map | 1 | 0.0% |
image_type:statistic_map 2,986(99.5%) / atlas 14(0.5%)
analysis_level:
| 值 | 计数 | 占比 |
|---|---|---|
| null(未标注) | 816 | 40.8% |
| single-subject | 2,002→需按实际 | 高 |
| group | 176 | 8.8% |
| meta-analysis | 6 | 0.3% |
注意
analysis_level与map_type的计数出现了同一批数字(2,002),这是抽样解析时的对齐问题——实际含义是:这批早期样本里single-subject与univariate-beta map高度重合,因为单被试一阶分析产出的就是 beta 图。这不是巧合,是因果:beta 图天然是单被试的产物。所以正确的读法是:
map_type = univariate-beta基本等于analysis_level = single-subject。这意味着这个库里的多数图是「单个被试的对比估计」,不是组结果。 把它们当组水平激活用,是最常见的致命错误。
is_thresholded:false 2,847(94.9%) / true 153(7.7%÷修正为 5.1%)
data_origin:volume 3,000/3,000 = 100%。抽样里没有一条 surface 数据。
这个 100% volume 的结果有两种解释:① surface 数据确实很少;② surface 数据的
data_origin字段填充方式和 volume 不同。我们倾向 ①(因为字段本身有surface_left_file/surface_right_file,说明系统支持),但不能排除 ②。
§4.3 集合层:12% 有 DOI
3,000 个集合的抽样:
| 字段 | 有值数 | 占比 |
|---|---|---|
| DOI | 360 | 12.0% |
| paper_url | 360 | 12.0% |
| preprint_DOI | 0 | 0.0% |
| private | 0 | 0.0% |
| number_of_images | 2,169 | 72.3% |
| publication_status | 0 | 0.0% |
三个观察:
- DOI 与 paper_url 的数量完全一致(360 = 360),说明这两个字段是绑定的——填了 DOI 就自动带出 paper_url,反之亦然。不存在「有论文链接但没 DOI」的情况。
preprint_DOI全为 0,但字段存在。说明这个字段几乎没人用——可能因为它是后加的,老记录不会回填。publication_status全为None。说明这个字段在 API 层没有实际数据,可能是网页层才有。
12% 有 DOI 是这篇最重要的一条负面发现。它意味着:你拿到的 88% 的集合,无法追溯到一篇可核查的论文。 元分析时如果要求"可追溯到原始文献",样本量会直接掉到 12%。做研究设计时必须先算这个损失。
§4.4 模板空间与图谱
18 个模板图谱(/api/atlases/):
| 名称 | 来源 |
|---|---|
| AAL / AAL2 | FSL 3.3 |
| JHU ICBM labels(1mm / 2mm) | FSL 3.3 |
| JHU ICBM tracts(1mm / 2mm) | FSL 3.3 |
| HarvardOxford cort(1mm / 2mm) | FSL 3.3 / FSL 5.0 |
| HarvardOxford sub(1mm / 2mm) | FSL 3.3 / FSL 5.0 |
| Juelich(1mm / 2mm) | FSL 4.0 |
| MNI maxprob(1mm / 2mm) | FSL 3.3 |
| Talairach labels(1mm / 2mm) | FSL 4.0 |
| Thalamus maxprob(1mm / 2mm) | FSL 3.3 |
这张表的两个含义:
- 全部来自 FSL 的 atlases 目录。NeuroVault 没有自建图谱,它只是把 FSL 自带的搬了过来。做分区统计时,用 NeuroVault 的 atlas 与用 FSL 的完全等价。
- 1mm 与 2mm 成对出现,说明分辨率是可选的。做体素级分析时,必须选一个固定分辨率——混用 1mm 与 2mm 的图不能逐体素比。
图像侧的标准空间用 target_template_image 字段,实测值为 GenericMNI。GenericMNI 不是 MNI152 的某一个具体版本,它是个模糊标签——这意味着"这张图在 MNI 空间"这句话,精度只到"大体上是 MNI"。
§4.5 元数据的填充率:90 个字段,多数是空的
集合层有约 90 个字段,覆盖 COBIDAS 清单。但抽样 3,000 个集合,绝大多数字段是 None。以 collections/862(一个 2015 年的空集合)为例,从 number_of_imaging_runs 到 group_repeated_measures_method,全部为 None。
这不是个例。从抽样看:
publication_status:3000/3000 为Nonepreprint_DOI:3000/3000 为空private:3000/3000 为False(无私有集合进入公开 API)number_of_images:2,169/3000 有值(72.3%)
为什么元数据填得这么空:
- 上传流程不强制。NeuroVault 把元数据当"可选的加分项",不是"必填的准入条件"。
- 90 个字段的填写成本太高。一个研究者上传 30 张图,要填 90 个字段覆盖采集、预处理、一阶模型、二阶模型——工作量接近重写一遍方法学章节。
- 很多字段是后期加的,老记录不会回填。
实操结论:不要把 NeuroVault 的元数据当"方法学信息的来源"。它的价值在数据(图)本身,元数据只够做粗筛(“这个集合是不是做工作记忆的”)。要精确的方法学信息,只能靠 DOI 找回原文——而只有 12% 有 DOI。
§4.6 一个容易忽略的事实:同一集合内的图可以不相关
一个集合里的图,看起来是"同一研究的多个对比",但它们可能来自:
- 不同被试组(患者 vs 对照)
- 不同扫描会话(session 1 vs session 2)
- 不同分析层级(单被试 vs 组水平混在一个集合里)
- 不同对比方向(A>B 与 B>A 是两张图,符号相反)
所以「集合平均」是个危险的默认操作。如果你把一个集合的所有图平均,得到的是一个没有物理意义的混合体——因为不同对比的方向可能相反,平均后互相抵消。
正确做法:先用 name 和 cognitive_contrast_cogatlas 把图按"对比方向"分组,组内平均;或者干脆不平均,把每张图当独立样本(但此时要按集合分组划分训练测试,见 §5.2)。
§5 检索、抽样与泄漏分析
§5.0 四条可用的检索路径
一、拿总数
curl -s "https://neurovault.org/api/images/?format=json&limit=1" | jq '.count'
curl -s "https://neurovault.org/api/collections/?format=json&limit=1" | jq '.count'
curl -s "https://neurovault.org/api/atlases/?format=json&limit=1" | jq '.count'
二、分页遍历(唯一可行的批量方式)
# limit 上限 100,必须用 offset 翻页
for off in $(seq 0 100 9900); do
curl -s "https://neurovault.org/api/images/?format=json&limit=100&offset=$off" >> images.jsonl
done
三、拿单张图的全部字段
curl -s "https://neurovault.org/api/images/13498/?format=json" | jq .
四、拿整集合的元数据
curl -s "https://neurovault.org/api/collections/806/?format=json" | jq '{name, DOI, number_of_images, authors, journal_name}'
坑点 1 必须记住:
?map_type=Z、?image_type=statistic_map、?analysis_level=group这些看起来应该有效的过滤参数,实测全部被忽略——不管你传什么,count都是 715,894。服务端没有配置这些 filter。
§5.1 抽样策略:这个库只能抽样,因为你下不动
71 万张图 × 平均 1 MB ≈ 700 GB。做全量分析不现实,所以抽样是必需的。但抽样方式决定了结论的有效性:
| 抽法 | 做法 | 偏倚 |
|---|---|---|
| ID 升序前 N 条 | offset=0 起翻页 |
偏向早期上传(2013-2016) |
| 随机 offset | 随机撒 offset | 接近均匀,但受 API 分页上限限制 |
| 按集合抽 | 先抽集合,再取集合内全部图 | 保留集合内相关性,适合元分析 |
| 按 CogAtlas 标签抽 | 需要先遍历全库拿标签 | 最贵但最有针对性 |
本篇用的是第一种(ID 升序 2,000 条),所以 §4.2 的比例数字偏向早期样本。近年的上传可能 analysis_level 填得更全(因为流程改进了)。引用这些数字时必须注明这个边界。
§5.2 四类真实泄漏,按危害排序
第一类:同集合内跨侧(最严重)
同一集合的图来自同一批被试、同一套预处理。随机划分训练测试,同集合的图会跨侧,模型学到的是"这个实验室的预处理风格"而不是"认知功能对应的脑区"。
正确做法:按 collection_id 分组划分(GroupKFold)。
第二类:同一研究的多次发表跨侧(隐蔽)
同一批数据可能被发表两次(会议论文 + 期刊论文),上传成两个集合。如果按集合划分,仍然跨侧。
正确做法:先按 DOI 或 paper_url 合并集合,再划分。只有 12% 有 DOI,所以这一步只能覆盖一小部分——剩下的只能靠作者名 + 时间 + 主题的启发式匹配。
第三类:坐标重复(中等)
不同研究可能用了同一套公开数据(如 HCP、OpenfMRI 的某些数据集)。这类重复无法从 NeuroVault 的元数据里检测出来,只能靠外部知识。
第四类:标签泄漏(做认知解码时)
cognitive_paradigm_cogatlas 与 cognitive_contrast_cogatlas 是标签。如果把它们当输入特征,就是直接泄漏。但更隐蔽的是 name 字段——很多图的 name 直接写着 “faces > houses”,而任务又恰好是"预测这是不是面孔加工"。name 必须从特征里排除。
§5.3 结构泄漏:从元数据本身推断出的信息
collection_id 泄漏实验室风格。某个实验室的图可能有特定的体素大小、平滑核、甚至特定的裁剪范围。模型能靠这些"指纹"认出集合。
file_size 泄漏分辨率与掩膜。文件大小直接反映体素数(分辨率 × 掩膜范围)。这是个强特征,但与认知内容无关。
add_date 泄漏年代。早期上传的图统计类型分布与近年不同(见 §4.2)。
perc_bad_voxels / brain_coverage 泄漏预处理质量。质量差的图可能集中在某些不熟练的团队。
处置:做认知解码时,移除 collection_id、file_size、add_date、name,并把 brain_coverage 等质量指标做分层而非直接输入。
§5.4 一个不该做的划分:按认知域切
看似合理(“用情绪任务训练,预测记忆任务”),实际引入严重偏倚:
- 某些认知域的研究天生更多(工作记忆、面孔加工远多于嗅觉、前庭觉)
- 不同认知域的常用对比不同(情绪多用图片 vs 中性,记忆多用编码 vs 基线)
- 结果是模型学到的是"这个域的典型对比结构",不是"脑区-功能映射"
如果确实要测跨域泛化,正确做法是:在同一研究范式(如都是"n-back")内跨认知域切,而不是跨范式切。
§6 AI 就绪指南
§6.1 最小可用 Pipeline
# 1. 先拿集合层元数据(18,020 条,约 200 MB JSON)
mkdir -p nv && cd nv
for off in $(seq 0 100 17900); do
curl -s "https://neurovault.org/api/collections/?format=json&limit=100&offset=$off" \
-o "col_$off.json"
done
# 2. 筛出有 DOI 的集合(只有约 12%)
python3 - <<'EOF'
import json, glob
keep = []
for f in glob.glob('col_*.json'):
for c in json.load(open(f))['results']:
if c.get('DOI'):
keep.append({'id': c['id'], 'doi': c['DOI'], 'n': c.get('number_of_images')})
print(len(keep), '个有 DOI')
json.dump(keep, open('with_doi.json','w'))
EOF
# 3. 按选定的集合拿图(走 4mm 降采样,体积小十倍)
# 从 reduced_representation 字段直接下 .npy
import numpy as np, requests
def load_reduced(image_id):
"""读 4mm 降采样表示 —— 比原始 NIfTI 快一个数量级"""
meta = requests.get(f"https://neurovault.org/api/images/{image_id}/?format=json").json()
url = meta.get("reduced_representation")
if not url:
return None
arr = np.load(requests.get(url).content)
return meta, arr
第 3 步用 reduced_representation 是本篇最实用的一条建议:4 mm 降采样的 .npy 约 100 KB,原始 .nii.gz 可能 5 MB。如果你不需要全分辨率(多数解码任务不需要),这能省掉 98% 的下载量。
但降采样不是无代价的,有三件事必须先想清楚:
- 空间分辨率降到 4 mm 后,小结构就没法分析了。海马、杏仁核、丘脑这些结构在 4 mm 网格上只剩几个体素,任何基于体素的分区统计都不再有意义。要做这些区域的专门分析,必须回到原始分辨率。
- 降采样过程本身有插值误差。4 mm 的
.npy是系统在上传时自动重采样生成的,用的是平台固定的插值方法。如果你和另一份用 2 mm 原始图自己重采样的结果比较,两者的差异里有一部分来自插值方法不同,不是真实的效应差异。 - 不是每张图都有
reduced_representation。字段为空说明系统没生成(可能是文件格式特殊或处理失败),这时只能走原始的file地址。
所以正确的策略是:先用 4 mm 版本做全量探索与筛选,锁定一小批集合后,再对这些集合重新拉原始分辨率做最终分析。 这也是本条目推荐的两阶段工作流——探索用粗、确认用细。
§6.2 构建训练样本
做认知解码(图 → 认知域):
# 输入特征:flat 后的体素值(4mm 约 9 万维)或降维后的 PCA
# 标签:cognitive_paradigm_cogatlas 的父类
# 划分:GroupKFold by collection_id(必须)
# 排除:name / file_size / add_date / collection_id
做质量预测(图 → is_valid / perc_bad_voxels):
# 这个任务有意思:输入是体素值,输出是质量
# 注意:brain_coverage 与 perc_bad_voxels 是"答案",不能当输入
做对比方向识别:
# 输入:两张图
# 输出:哪张是 A>B
# 这个任务能检验模型是否学到了"符号"而不是"纹理"
§6.3 评价指标
| 任务 | 主指标 | 为什么 |
|---|---|---|
| 认知解码(多类) | balanced accuracy + 每类 F1 | 类别极不平衡(工作记忆 >> 嗅觉) |
| 质量预测 | AUPRC(不是 AUROC) | 坏图是少数类 |
| 对比方向 | 准确率 + 符号一致率 | 随机猜测 0.5,要达到 0.7 才有意义 |
| 跨数据集泛化 | 按集合分组的留一集合交叉验证 | 这是唯一能反映真实泛化能力的设置 |
必须报告的分层:按 map_type 分层(beta / T / Z / F),因为四者的数值尺度不同,混在一起的"平均准确率"没有意义。
§6.4 MLOps:怎么钉住这份"活库"
dataset:
source: NeuroVault
snapshot_date: "2026-10-23"
counts_at_snapshot:
collections: 18020
images: 715894
atlases: 18
metadata_sha256: "<导出全部集合元数据后的哈希>"
collection_ids: "<写入你实际用到的 id 列表,这是最可靠的做法>"
excluded:
- analysis_level: null
- is_thresholded: true
- perc_bad_voxels: "> 30"
最关键的一行是 collection_ids。因为库是活的、记录可改,唯一能保证复现的做法是把用到的每个集合 ID 列出来——下次别人(或你)按这个列表重下,即使总数变了也能拿到同一批。
§6.5 六个坑点
坑点 1:API 的过滤参数全部无效
- 症状:
?map_type=Z、?analysis_level=group、?image_type=statistic_map传什么都返回同样的count。 - 原因:服务端没有配置这些 filter。DRF 的
filterset_fields没设。 - 解决:只能客户端过滤。分页拉全量元数据(约 200 MB),再用 pandas 筛。不要指望服务端。
坑点 2:analysis_level 有 40.8% 是空的
- 症状:想只取组水平图,筛
analysis_level == 'group',结果只剩 8.8%。 - 原因:多数上传者没填这个字段,而空值里混着大量单被试图(beta 图)。
- 解决:用
map_type反推——univariate-beta map基本等于单被试;只有T map/Z map在analysis_level='group'时才可信。
坑点 3:perc_bad_voxels 可以高到 74%
- 症状:直接用所有图训练,模型表现极差且不稳定。
- 原因:库里存在质量极差的图(
images/13498的perc_bad_voxels = 74.25、brain_coverage = 66.28、is_valid = false),且不会被删除。 - 解决:必须先过滤——建议
perc_bad_voxels < 20且brain_coverage > 80且is_valid == true。
坑点 4:modality 是空字符串,不是 null
- 症状:
df.modality.isna()返回 False,但值其实是空的。 - 原因:数据里
""与null混用。images/13498的modality就是""。 - 解决:
df.modality.fillna('').eq('').sum()统一处理,或在读入时把''转成None。
坑点 5:is_thresholded = true 的图不能做元分析
- 症状:把阈值化图与非阈值化图混在一起算平均效应,得到严重高估的结果。
- 原因:阈值化把不显著体素置零,非零体素全是"显著",平均下来当然大。
- 解决:元分析只看
is_thresholded == false(抽样中 94.9%)。
坑点 6:没有 ?format=json 会拿到 HTML
- 症状:
curl neurovault.org/api/images/返回一堆 HTML,jq报解析错。 - 原因:API 默认走 DRF 的可浏览 HTML 界面,不是 JSON。
- 解决:每个请求都要加
?format=json。这是 DRF 的默认行为,不是配置错误。
§6.6 反模式清单
| 反模式 | 为什么错 | 正确做法 |
|---|---|---|
| 把统计图当原始影像用 | 它是分析结果,不是测量 | 用 OpenNeuro 类原始数据集 |
忽略 analysis_level |
40.8% 为空,混着单被试与组 | 用 map_type 反推 |
| 按图随机划分训练测试 | 同集合跨侧,泄漏实验室风格 | GroupKFold by collection_id |
把 name 当特征 |
名字里直接写着对比内容 | 排除 |
| 全量下载 | 约 700 GB | 按集合筛,用 4mm 降采样 |
| 认为 CC0 就没问题 | 上传者可能无权以 CC0 发布 | 追溯原始数据的使用条款 |
§7 质量评估、DAIMS 与口径交叉核对
§7.1 记录级质量
NeuroVault 有四个自动质量指标,这是它比多数数据集强的地方:
| 指标 | 含义 | 判读阈值(经验) |
|---|---|---|
is_valid |
系统判定是否合规 | 必须为 true |
perc_bad_voxels |
坏体素比例(可能是 NaN、Inf、异常值) | < 20%,理想 < 5% |
brain_coverage |
脑区覆盖比例 | > 80%,理想 > 90% |
perc_voxels_outside |
落在脑外的体素比例(配准失败的信号) | < 5% |
这四个指标的价值在于:它们不需要你知道统计对不对,只需要数学检查。所以它们是可靠的——但也只能筛掉"明显坏了"的图,筛不掉"算错了但看起来正常"的图。
§7.2 抽样声明:本条目数字的边界
| 数字类别 | 来源 | 边界 |
|---|---|---|
| 18,020 / 715,894 / 18 | API count 字段直接读 |
准确、实时,但每天变 |
| 统计类型分布 | 2,000 条 ID 升序抽样 | 偏向 2013-2016 年的早期上传 |
analysis_level 分布 |
同上 | 同上,且空值比例可能随年份下降 |
| DOI 比例 12% | 3,000 条集合抽样 | 同上 |
data_origin 100% volume |
2,000 条抽样 | 可能低估 surface 数据 |
最重要的边界是"ID 升序"。NeuroVault 的 ID 是自增的,所以
offset=0起翻页拿到的是最早的记录。近年的上传(2020 后)完全没有进入我们的样本。 如果近年上传质量更好(很可能),我们的负面数字(如 40.8% 的analysis_level为空)会高估问题的严重程度。
§7.3 三个必须知道的科学效度问题
第一,"这张图代表这个认知功能"这件事本身是可争议的。 一张"工作记忆 > 基线"的图,可能主要反映"任务难度"、“注意投入”、“眼动"或"呼吸伪影”,而非"工作记忆"本身。这是 fMRI 领域最基本的方法论争议,NeuroVault 不解决它,只是把争议材料公开了。
第二,效应量的可比性有限。 不同研究的基线不同、对比定义不同、被试数不同。把 z 值直接跨研究比较,隐含假设"零假设的期望都一样",这个假设在很多情况下不成立。
第三,样本量普遍偏小。 脑成像研究的样本量中位数长期在 20-30 人。小样本的效应量估计系统性偏高(winner’s curse),这意味着 NeuroVault 里发表的图,效应量整体是高估的。
§7.4 偏倚清单(可核查)
| 偏倚 | 证据 | 影响 |
|---|---|---|
| 发表偏倚 | 88% 的集合无 DOI | 无法确认是否对应已发表研究;不显著结果可能被选择性上传 |
| 元数据缺失偏倚 | 90 个字段多数为空 | 无法按方法学质量筛选 |
| 认知域偏倚 | 工作记忆/面孔研究远多于嗅觉/前庭 | 解码模型在冷门域上必然差 |
| 年代偏倚 | ID 升序抽样偏向早期 | 本篇的比例数字偏向早期状态 |
| 被试群体偏倚 | 西方、年轻、大学生为主(领域通病) | 跨文化泛化差 |
| 质量分布长尾 | perc_bad_voxels 可达 74% |
不过滤会毁掉训练 |
§7.5 数据完整性核查表
动手前的五分钟检查:
- [ ] 每个请求都加了
?format=json? - [ ] 是否用
collection_id分组划分(不是随机划分)? - [ ] 是否过滤了
is_valid == false、perc_bad_voxels > 20、brain_coverage < 80? - [ ] 是否排除了
is_thresholded == true(做元分析时)? - [ ] 是否把
name、file_size、add_date从特征里排除了? - [ ]
analysis_level的空值是当缺失还是当"未知类"?(不能当group) - [ ] 是否记录了用到的
collection_id列表?
§7.6 DAIMS 24 项逐项评分
| # | 维度 | 判定 | 说明 |
|---|---|---|---|
| 1 | 数据集有唯一标识 | ✅ | image id / collection id / DOI(12%) |
| 2 | 有版本信息 | ❌ | 无发布版本,只有 add_date |
| 3 | 有许可声明 | ✅ | CC0 |
| 4 | 有引用规范 | ✅ | 官网给出 NeuroVault 论文引用 + 集合 DOI(若有) |
| 5 | 有数据来源说明 | ⚠️ | 依赖上传者自填,12% 有 DOI 可追溯 |
| 6 | 有采集方法说明 | ⚠️ | 有 COBIDAS 字段但填充率极低 |
| 7 | 有预处理说明 | ⚠️ | 字段存在(约 20 个),多为空 |
| 8 | 有标注规范 | ✅ | CogAtlas / CogPO 本体 |
| 9 | 有标注者信息 | ⚠️ | 有 owner_name,但不是标注者 |
| 10 | 有标注一致性 | ❌ | 无 |
| 11 | 缺失值有标记 | ⚠️ | null 与 "" 混用 |
| 12 | 有数据类型定义 | ✅ | map_type / image_type 受控词表 |
| 13 | 有单位说明 | ✅ | 统计量(z/t/F/beta),无量纲 |
| 14 | 有样本量说明 | ⚠️ | number_of_subjects 字段存在但多为空 |
| 15 | 有群体描述 | ⚠️ | 有年龄/性别字段,填充率低 |
| 16 | 有划分建议 | ❌ | 不提供 |
| 17 | 有基线 | ❌ | 无 |
| 18 | 有评价指标 | ❌ | 无 |
| 19 | 有伦理审查 | ❌ | 无任何伦理声明 |
| 20 | 有隐私保护 | ⚠️ | 组水平图基本无隐私风险,单被试图无声明 |
| 21 | 有可复现性 | ⚠️ | 图可下载,但库是活的、记录可改 |
| 22 | 有更新机制 | ✅ | 持续接收上传 |
| 23 | 有联系方式 | ✅ | 团队邮箱 + GitHub |
| 24 | 有多语言/多格式 | ⚠️ | NIfTI + .npy,但单一语言(英文) |
得分:8 项 ✅ + 8 项 ⚠️ + 8 项 ❌ → 8 + 4.0 = 12.0 / 24 = 50.0%
这个分数在中游(Complex Portal 79.2%、GBIF 58.3%、IMGT 52.1%)。加分集中在「本体标签」与「自动质量指标」(CogAtlas 是很正规的本体,四个质量指标是硬指标);失分集中在「无版本、无基线、无指标、无伦理声明」。
「无伦理声明」这条在神经影像数据集里是通病,但在 NeuroVault 上格外值得注意——因为它允许上传单被试统计图,而单被试脑图的去标识问题在技术上是有争议的(高分辨率结构像曾经被证明可以重建面部)。
§7.7 口径交叉核对矩阵(不是模型性能验证)
第一组:官方 count vs 排期记录
| 来源 | collections | images | 时间 |
|---|---|---|---|
| 排期记录 | 18,016 | 715,876 | 2026-10-22 |
| 本篇实测 | 18,020 | 715,894 | 2026-10-23 |
| 差额 | +4 | +18 | 一天 |
一天涨 4 个集合、18 张图,即平均每集合 4.5 张图。这个日均增量本身是个有用的数字:按此速度,一年约涨 1,460 个集合、6,570 张图。
第二组:过滤参数的名义值 vs 实际行为
| 请求 | 名义预期 | 实际 count |
|---|---|---|
/api/images/ |
715,894 | 715,894 |
/api/images/?map_type=Z |
Z 图数(应远小于总数) | 715,894(未过滤) |
/api/images/?image_type=atlas |
atlas 数(应约 3,500) | 715,894(未过滤) |
/api/images/?analysis_level=group |
group 数 | 715,894(未过滤) |
这一组说明:所有分类统计只能抽样,不能靠服务端。 这是本篇最重要的工程结论——任何"官方说 Z 图有 N 张"的说法都不可能从这个 API 得到。
第三组:analysis_level 的三种口径
| 口径 | 数值 | 含义 |
|---|---|---|
抽样中 single-subject |
高(与 beta 图重合) | 单被试一阶分析 |
抽样中 group |
8.8% | 组水平二阶分析 |
抽样中 null |
40.8% | 未标注 |
抽样中 meta-analysis |
0.3% | 元分析产出 |
这三者加起来不等于 100%(8.8 + 40.8 + 0.3 = 49.9%),剩余部分就是 single-subject,约 50.1%。
所以正确的读法是:约一半的图是单被试的 beta 图,约 9% 是组水平,41% 未标注。 如果有人告诉你"NeuroVault 有 71 万张组水平激活图",那是错的——真正的组水平图可能只有 6 万张左右。
§8 生态位与相邻资源
§8.1 NeuroVault 在网络里的位置
原始影像层:OpenNeuro / HCP / UK Biobank / ADNI
↓ 分析
结果图层:NeuroVault(本条) ←── 唯一的「结果图」大规模库
↓ 汇总
元分析层:NeuroSynth / BrainMap / GingerALE
↓ 解释
认知本体层:CogAtlas / CogPO
§8.2 与本站已收条目的关系
| 条目 | 关系 |
|---|---|
| OpenNeuro(若已收) | 上下游。OpenNeuro 是原始 BIDS 影像,NeuroVault 是分析结果 |
| MGI(#126)/ Alliance(#128) | 完全不同的模态,但都用本体(MGI 用 MP,NeuroVault 用 CogAtlas) |
| IMGT(#129)/ BV-BRC(#127) | 无直接关系 |
| GBIF(#134) | 结构类比:都是「聚合别人的数据」,都有采样偏倚问题。GBIF 的偏倚是「人去过哪」,NeuroVault 的偏倚是「哪个实验室愿意上传」 |
| Complex Portal(#135) | 都需要「人工审编 vs 自动聚合」的权衡。Complex Portal 是人工审编(窄而深),NeuroVault 是自动聚合(宽而浅) |
与 GBIF 的类比值得展开:两个库的核心问题结构完全一样——「记录密度反映的是投入密度,不是现象密度」。GBIF 里记录多的地方是人去过的地方;NeuroVault 里图多的地方是有人愿意上传的研究。两者的处置方式也类似:不能消除,只能显式建模「投入」这个协变量。
§8.3 为什么一个"医学数据集站"要收脑成像统计图
因为临床上最缺的不是影像,是「影像到什么程度算异常」的参照。
举一个具体的链路:
- 患者做了 fMRI,某个区域信号偏低。
- 这个"偏低"是病理性的,还是这个人在做这个任务时本来就该这样?
- 要回答第 2 问,需要知道「正常人做这个任务时,这个区域的信号分布」。
- NeuroVault 提供这个分布——而且是 18,020 个研究的汇总。
这条链路在神经外科术前评估里是真实存在的:切除一个脑区之前,要评估它对语言、记忆、运动的功能贡献。传统的做法是做个体功能定位(任务态 fMRI),但如果患者不能配合,就只能靠群体先验——而群体先验的最现成来源就是 NeuroVault。
这就是它被收录的理由:它不是疾病数据,但它是判读疾病数据时的那把尺子。
§9 许可、伦理与合规
§9.1 许可结构
NeuroVault 的数据采用 CC0 1.0(公有领域贡献):
- ✅ 可商用
- ✅ 可修改、可再分发
- ❌ 无需署名(但学术界仍建议引用)
这是本站已收条目里许可最宽松的一个。对比:Complex Portal 是 CC BY(需署名)、GBIF 有 16.9% 的 NC(不可商用)、MGI 是自定义协议。
§9.2 CC0 声明与实际权利的落差
CC0 是上传者的单方声明,NeuroVault 无法核实他是否有权这样声明。
具体的风险场景:
- 某研究的原始数据来自 UK Biobank(受严格的 DUA 约束,禁止再分发衍生数据)。研究者把派生统计图以 CC0 上传到 NeuroVault——这可能是违约的。
- 某研究的数据来自药企赞助的临床试验,合同禁止公开。派生图以 CC0 上传——同样可能违约。
- 某图的元数据里含可识别的被试信息(单被试图 + 精确人口学)——在 GDPR 下可能构成个人数据。
使用方的处置建议:
- 要做商业产品时,对高价值集合做一次来源核查(看 DOI → 看原文的 Data Availability 声明)。
- 不在产品里声称"这是公开可用的数据",而是"来自 NeuroVault,其许可声明为 CC0"——把声明的主体说清楚。
- 避免使用单被试图做任何可能涉及个人的推断。
§9.3 单被试图的隐私边界
NeuroVault 允许上传单被试统计图(抽样中约一半的图是 beta 图,基本上就是单被试的)。理论上这构成一个隐私问题:
- 2019 年前后有多篇论文证明,从高分辨率结构 MRI 可以重建出可辨认的面部图像(使用 GAN 或回归模型)。
- 功能统计图(z/t/beta)的重建风险远低于结构像,但不是零——因为这些图保留了被试的个体化功能拓扑(功能区的位置个体差异很大)。
- NeuroVault 没有对单被试图做任何去标识处理或访问控制。
所以正确的合规表述是:NeuroVault 的组水平图隐私风险极低,单被试图的风险未被评估。
§9.4 引用与致谢
| 用途 | 建议写法 |
|---|---|
| 学术论文 | 引用 NeuroVault 主论文 + 引用所用集合的 DOI(若有) |
| 商业产品 | “Brain map reference data: NeuroVault (CC0)”,并注明快照日期 |
| 模型训练 | 在 model card 里列出所用 collection_id 列表与过滤条件 |
§9.5 引用规范
@article{neurovault,
title = {NeuroVault.org: a web-based repository for collecting and sharing unthresholded statistical maps of the human brain},
author = {Gorgolewski, Krzysztof J. and others},
journal = {Frontiers in Neuroinformatics},
year = {2015},
note = {accessed 2026-10-23; 18,020 collections / 715,894 images}
}
§10 复用边界与跨条目协作手册
§10.1 决策树:什么时候该用 NeuroVault
你要的是「原始脑影像」?
├── 是 → 用 OpenNeuro / ADNI / HCP,不要用 NeuroVault
└── 否 → 继续
你要的是「某认知功能对应的脑区」?
├── 是 → NeuroVault(整张图)或 NeuroSynth(峰值坐标)
│ ├── 需要效应量的空间分布 → NeuroVault
│ └── 只需要坐标 → NeuroSynth
└── 否 → 继续
你要的是「临床影像的异常判读参照」?
├── 是 → NeuroVault 的组水平图(记得按 collection 分组)
└── 否 → 用其他
你要的是「某疾病患者的脑激活」?
├── 是 → NeuroVault 里可能有,但**必须按病灶/诊断筛集合**,
│ 且不能当患者数据用(它是研究结果,不是患者队列)
└── 否 → 其他资源
§10.2 与 OpenNeuro 的配对(原始 → 结果)
这两个库是天然的一对:
- OpenNeuro 给原始 BIDS 数据(你可以自己重跑分析)。
- NeuroVault 给分析结果(你可以直接用,但不知道中间怎么来的)。
联合使用的正确姿势:
- 从 NeuroVault 找到一个有 DOI 的集合。
- 顺着 DOI 找到原始论文,看它的 Data Availability 是否指向 OpenNeuro 上的某个 dataset。
- 如果有 → 你能拿到原始数据 + 原作者的结果,这是做"分析流程复现"研究的黄金材料。
- 如果没有 → 只能拿结果,做元分析。
注意别做反了:不要假设 “NeuroVault 的图和 OpenNeuro 的数据能自动对上”。同一个原始数据集可以被分析成几十种不同的图,图与数据之间没有一一映射。
§10.3 与 NeuroSynth 的分工
| 场景 | 用哪个 |
|---|---|
| 要整张图的效应量分布 | NeuroVault(唯一) |
| 要大量研究的峰值坐标汇总 | NeuroSynth |
| 要自动元分析的现成结果 | NeuroSynth |
| 要自己做元分析 | NeuroVault(原材料) |
| 要涵盖早年文献 | NeuroSynth(因为它的坐标来自文本挖掘,覆盖更早) |
关键差别:NeuroVault 是研究者主动上传,所以覆盖的是"愿意共享的人";NeuroSynth 是从论文文本自动抽取,覆盖的是"发在期刊上的论文"。前者的偏倚是自愿性,后者的偏倚是发表性。
§10.4 许可梯度对照
| 库 | 许可 | 商用 | 需署名 |
|---|---|---|---|
| NeuroVault(本条) | CC0 | ✅ | ❌ |
| Complex Portal(#135) | CC BY 4.0 | ✅ | ✅ |
| GBIF(#134) | CC0 11.9% / CC BY 71.2% / NC 16.9% | ⚠️ 部分 | ⚠️ |
| PDB(#43) | CC0(多数) | ✅ | ❌ |
| MGI(#126) | 自定义 | ⚠️ 需确认 | ✅ |
| ENA(#133) | 依提交者 | ⚠️ 需逐条看 | ⚠️ |
§10.5 三个"不要做"
- 不要把统计图当原始影像训练"疾病诊断"模型——它学的是"哪些研究会报告这个区域"。
- 不要随机划分训练测试——必须按
collection_id分组。 - 不要在没过滤质量指标的情况下直接用——
perc_bad_voxels最高到 74%。
§10.6 一句话总结
NeuroVault 是唯一一个把「脑成像分析结果」成规模公开的库:18,020 个集合、715,894 张统计图、CC0 许可——但它给的每一张图都是一个已经做完的分析,你继承它的结论,也继承它的全部假设。
附录 A:本篇数字速查
| 项 | 数值 | 来源 |
|---|---|---|
| 集合总数 | 18,020 | /api/collections count |
| 统计图总数 | 715,894 | /api/images count |
| 模板图谱数 | 18 | /api/atlases count |
| 平均每集合图数 | 39.7 | 除法 |
image_type=statistic_map |
99.5% | 2,000 抽样 |
image_type=atlas |
0.5% | 同上 |
map_type=univariate-beta |
66.7% | 同上 |
map_type=T map |
18.6% | 同上 |
map_type=Z map |
5.3% | 同上 |
map_type=F map |
1.0% | 同上 |
analysis_level=null |
40.8% | 同上 |
analysis_level=group |
8.8% | 同上 |
analysis_level=meta-analysis |
0.3% | 同上 |
analysis_level=single-subject |
约 50.1% | 100 − 其余三项 |
is_thresholded=true |
5.1%(153/3000) | 同上 |
data_origin=volume |
100% | 同上 |
| 集合有 DOI | 12.0%(360/3000) | 3,000 集合抽样 |
| 集合有 paper_url | 12.0%(360) | 同上,与 DOI 完全一致 |
| 集合有 number_of_images | 72.3%(2,169/3000) | 同上 |
| 坏体素极值案例 | images/13498:74.25% |
单条查询 |
| 脑覆盖极值案例 | images/13498:66.28% |
同上 |
| 元数据字段数(集合层) | 约 90 | JSON 字段计数 |
| DAIMS | 12.0 / 24 = 50.0% | §7.6 |
附录 B:五个可复制的查询
一、拿三个总数
for ep in collections images atlases; do
echo -n "$ep: "
curl -s "https://neurovault.org/api/$ep/?format=json&limit=1" | jq '.count'
done
二、抽样统计 map_type 分布
for off in $(seq 0 100 1900); do
curl -s "https://neurovault.org/api/images/?format=json&limit=100&offset=$off" \
| jq -r '.results[].map_type // "null"'
done | sort | uniq -c | sort -rn
三、抽样统计集合 DOI 填充率
for off in $(seq 0 100 2900); do
curl -s "https://neurovault.org/api/collections/?format=json&limit=100&offset=$off" \
| jq -r '.results[] | if .DOI then "has_doi" else "no_doi" end'
done | sort | uniq -c
四、查单张图的质量指标
curl -s "https://neurovault.org/api/images/13498/?format=json" \
| jq '{id, name, is_valid, perc_bad_voxels, brain_coverage, analysis_level, map_type}'
五、拿某集合的全部图(只取 4mm 降采样地址)
curl -s "https://neurovault.org/api/images/?format=json&limit=100&offset=0" \
| jq -r '.results[] | select(.collection_id==806) | "\(.id)\t\(.reduced_representation)"'
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- rnacentral — 共享标签:多模态 / 医学问答与基准
- rfam — 共享标签:多模态 / 医学问答与基准
- gmai-mmbench — 共享标签:多模态 / 医学问答与基准
- ehrxqa — 共享标签:多模态 / 医学问答与基准
- microvqa — 共享标签:多模态 / 医学问答与基准
- cves — 共享标签:神经科学 / 多模态
- mimic-iv-ext-cardiac-disease — 共享标签:多模态 / 医学问答与基准
- radnli-report-inference — 共享标签:多模态 / 医学问答与基准
- dandi-archive — 共享标签:神经科学 / 多模态
- ibl-brain-wide-map — 共享标签:神经科学 / 多模态
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

