Finding the correct input for the FreeSurfer pipeline
cd TUTORIAL_DATA/practice_with_data/dicoms // 进入到dicoms数据文件夹中
dcmunpack -help // 查看全部dcmunpack命令
dcmunpack -src . -scanonly scan.log
// 生成一个名为scan.log的文件; -src .表示数据来源的目录;. 表示当前所在的目录(或者可以指定dicom目录的完整路径);
-scanonly scan.log表示仅扫描目录并创建带有扫描列表的文本文件;按Ctrl+c 终止。
more scan.log // 查看scan.log文件内容
结果:
13 T1w_MPR_vNav_4eRMS 1.69 2530 7 unknown ROW 650 ./I50
18 rfMRI_REST_AP 37 800 52 unknown COL 2290 ./I773
其他的数据集(示例):
// vNav 表示导航器用于运动校正,4e表示收集了4个回波echoes;尽管T1w_MPR_vNav_4e被列出了6次,但这并不意味着收集了其中的6次扫描。 注意在第一个实例T1w_MPR_vNav_4e之后出现表示错误的“ err”以及错误的尺寸。对于某些扫描,该系列中有4张图像(由数字256 256 176后面的4来表示),对于某些扫描,该系列中只有1张图像。 此处的区别在于,具有4个图像的dicom系列将提供未组合的4个回波(作为单独的图像文件),而另一个通过取回波的RMS(均方根)或“平均值”来组合回波。
// 如果不知道哪个是T1-weight图像,通常会用尺寸为256 x 256 x 176的MPRAGE, MEMPRAGE, or SPGR ;
// 这里,我们计划将RMS用作FreeSurfer的输入,因此,我们将使用此T1加权dicom系列:
13 T1w_MPR_vNav_4eRMS 1.69 2530 7 unknown ROW 650 ./I50
echo $SUBJECTS_DIR // 查看当前SUBJECTS_DIR 的路径
export FREESURFER_HOME=/Applications/freesurfer
source $FREESURFER_HOME/SetUpFreeSurfer.sh
export TUTORIAL_DATA=/Applications/freesurfer/tutorial_data
export SUBJECTS_DIR=$TUTORIAL_DATA/practice_with_data
// 把SUBJECTS_DIR(工作空间)设置在practice_with_data目录下,如果你使用的是tcsh shell而不是bash,则应使用setenv而不是export。
recon-all \
-all \
-i <one slice in the anatomical dicom series> \
-s <subject id that you make up> \
recon-all -all -i I50 -s practice_subject
// -all 将运行FreeSurfer处理流中的所有步骤。
// -i 代表输入。 在这里,您可以在T1加权扫描系列中指定一个dicom文件/切片(FreeSurfer会自动在DICOM系列/切片中查找其余文件)。 如果文件不在当前目录中,请确保指定该文件的完整路径。您还可以指定nifti文件作为输入。 如果对于给定的对象有多个T1加权扫描,则对每一个扫描使用附加的-i标志。
例如:recon-all -all -i 101309_3T_T1w_MPR1.nii -s 101309_3T_T1w_MPR1
// -s 指定您要使用的对象的名称或ID。 将为该对象的所有FreeSurfer输出创建具有该名称的目录(命名输出目录)。
// 该命令将在dicoms目录上方的目录中创建一个名为practice_subject的新目录。 您可以cd到该目录以查看到目前为止已创建的内容,但是如果recon-all仍在运行,则必须打开一个新的终端窗口来执行此操作。
// 当打印到屏幕上的最后一行(以及在该对象的脚本目录中的recon-all.log中)显示“ recon-all exited without errors”时,该过程完成。
批量处理
假设您有数百个对象的DICOM文件,并且想使用FreeSurfer处理它们。 您只需提交几个命令就可以提交所有内容。 有关示例脚本,请查看此处。
---------------------------------------------------------------------------------
Exercise 1
用dicom_challenge中的数据生成surfers,输出在dicom_challenge/practice_subject目录下。
cd $TUTORIAL_DATA/dicom_challenge \ |
cd dicoms \ |
dcmunpack -src . -scanonly scan.log |
export SUBJECTS_DIR = $TUTORIAL_DATA/dicom_challenge |
recon-all -all -i I50 -s practice_subject |