共计 1910 个字符,预计需要花费 5 分钟才能阅读完成。
1. ADNI 项目背景与数据组成
ADNI(Alzheimer’s Disease Neuroimaging Initiative)是研究阿尔茨海默病最重要的公开数据集之一。它包含多模态数据:

- 结构 MRI:T1 加权像为主,分辨率通常为 1mm 各向同性
- 功能影像:包括 FDG-PET 和 Amyloid-PET 扫描
- 临床数据:认知评估量表(如 MMSE)、APOE 基因型、诊断结果等
- 其他:部分受试者有 DTI 和 fMRI 数据
ADNI 已迭代三个主要版本:
1. ADNI1(2004-2009):最早期的 1.5T 和 3T MRI 数据
2. ADNI-GO/2(2009-2016):全面转向 3T MRI,新增 tau-PET
3. ADNI3(2016- 至今):更高分辨率扫描和更丰富的生物标记物
2. 数据申请全流程
- 访问官网(adni.loni.usc.edu)注册账号
- 填写数据使用协议(需机构邮箱和导师签字)
- 等待 1 - 3 个工作日审核通过
- 在 LONI 平台选择需要的数据类型:
- 原始 DICOM(适合深度分析)
- 预处理后的 NIFTI(快速上手)
- 临床 CSV 表格(含纵向追踪数据)
注意 :下载时建议勾选Include phantom scans 选项以便质量控制
3. Python 数据处理实战
加载 DICOM 文件
import pydicom
from pathlib import Path
def load_dicom_series(folder_path):
"""加载一个扫描序列的所有 DICOM 文件"""
try:
dicom_files = sorted(Path(folder_path).glob('*.dcm'))
slices = [pydicom.dcmread(f) for f in dicom_files]
slices.sort(key=lambda x: float(x.ImagePositionPatient[2]))
return slices
except Exception as e:
print(f"Error loading DICOM: {e}")
return None
转换为 NIFTI 格式
import nibabel as nib
import numpy as np
def dicom_to_nifti(dicom_slices):
"""将 DICOM 序列转为 NIFTI 格式"""
pixel_data = np.stack([s.pixel_array for s in dicom_slices])
affine = np.eye(4) # 简单仿射矩阵
return nib.Nifti1Image(pixel_data, affine)
4. 数据质量检查清单
遇到这些问题时要特别注意:
- 参数不一致:检查扫描仪型号(GE/Philips/Siemens)、磁场强度(1.5T/3T)、TE/TR 参数
- 缺失数据:用 pandas 检查临床表格的缺失值:
import pandas as pd df = pd.read_csv('ADNI_clinical.csv') print(df.isnull().sum()) - 运动伪影 :通过查看 DICOM 头中的
ImageComments字段识别
5. 转换为 BIDS 格式
推荐使用 heudiconv 工具:
heudiconv -d /raw/adni/sub-{subject}/*.dcm -s 001 -f convertall -o /bids
关键步骤:
1. 创建dataset_description.json
2. 按 sub-<label>/ses-<label>/modality/ 组织文件
3. 添加 participants.tsv 包含元数据
6. 性能优化技巧
处理大体积数据时:
- 使用
nibabel的memmap模式:img = nib.load('big.nii.gz', mmap=True) - 分块处理 3D 图像:
data = img.get_fdata() chunk = data[100:200, 100:200, :] # 处理局部区域 - 对临床数据使用
dask.dataframe替代 pandas
动手实验:计算海马体体积
- 下载预处理好的 T1 图像(ADNI 的
MPR; GradWarp; B1_Correction系列) - 使用 FSL 的 FIRST 工具进行分割:
run_first -i T1.nii -o hippocampus -m left_hippocampus - 统计体素数并乘以体素体积(通常 1mm³)
经验总结
ADNI 数据虽然规范,但仍有几个常见坑:
– 不同站点的扫描参数差异可能导致模型性能下降
– 临床数据中的诊断结果会随随访发生变化
– 早期 ADNI1 的数据质量明显低于 ADNI3
建议先用小样本(如 20 例)跑通全流程,再扩展到大样本分析。后续可以尝试将 MRI 与 PET 特征融合,或结合基因组数据开展多模态研究。
正文完
