基于Docker使用HeuDiConv整理MRI数据(BIDS)
1.在Win10pro安装Docker,参考Docker在Win10中的安装及相关配置
2.组织好待整理的数据:
-project
-Dicom
-sub-01
-T1
-Func
-sub-02
-...
2.打开Linux终端:打开Windows Powershell,输入bash
运行
3.获取HeuDiConv镜像:docker pull nipy/heudiconv:latest
4.运行:
docker run --rm -it -v /mnt/c/Users/***/Desktop/project:/base nipy/heudiconv:latest -d /base/Dicom/sub-{subject}/*/* -o /base/Nifti/ -f convertall -s 01 -ss 001 -c none --overwrite
其中:
/mnt/c/Users/***/Desktop/project
改为自己的项目路径,使用-v
将该路径映射到/bash
/base/Dicom/sub-{subject}/*/*
该路径为待处理图像的地址
-s
代表subject序号,-ss
代表每个subject的session,本项目没有session,可以忽略
5.代码运行结束后,在/base/Nifti/路径下生成.heudiconv文件夹,里面有四个文件。
其中:
使用Excel打开文件夹中的dicominfo.tsv,可以看到所有Dicom文件的头文件信息,该信息用于修改将要进行的图像分类脚本。
在Nifti文件夹下创建code文件夹,把heuristic.py拷贝进去,使用VS Code或Pycharn打开,并进行修改
1.第一处修改,声明Nifti文件命名规则
#原代码
data = create_key('run{item:03d}')
info = {data: []}
#修改为
t1w = create_key('sub-{subject}/anat/sub-{subject}_T1w')
rest = create_key('sub-{subject}/func/sub-{subject}_task-rest_bold')
info = {t1w: [], rest: []}
2.第二处修改
#原代码
info[data].append(s.series_id)
#修改为
if (s.dim3 == 192):
info[t1w].append(s.series_id)
if (s.dim4 == 240):
info[rest].append(s.series_id)
6.批量转换图像格式并组织为BIDS形式
for sub in *
do
docker run --rm -it -v /mnt/c/Users/***/Desktop/project:/base nipy/heudiconv:latest -d /base/Dicom/{subject}/*/* -o /base/Nifti/ -f /base/Nifti/code/heuristic.py -s $sub -c dcm2niix -b --overwrite
done
7.上传数据,验证是否符合BIDS要求,验证链接
参考:
【1】https://www.zhihu.com/column/c_1306280601625337856
【2】https://reproducibility.stanford.edu/bids-tutorial-series-part-2a/
【3】https://nipy.org/workshops/2017-03-boston/lectures/bids-heudiconv/#1
【4】https://www.youtube.com/watch?v=O1kZAuR7E00