TRACULA tutorial轨迹教程
本教程将引导您完成运行TRACULA(受底层解剖约束的轨迹)的必要步骤。 您将学习如何设置配置文件,如何运行分析以及如何查看结果。
Preparations
## bash
export FREESURFER_HOME=/path/to/freesurfer
source $FREESURFER_HOME/SetUpFreeSurfer.sh
export TUTORIAL_DATA=<path_to_your_tutorial_data>
export SUBJECTS_DIR=$TUTORIAL_DATA/diffusion_recons
cd $SUBJECTS_DIR
## tcsh
setenv FREESURFER_HOME /path/to/freesurfer
source $FREESURFER_HOME/SetUpFreeSurfer.csh
setenv TUTORIAL_DATA <path_to_your_tutorial_data>
setenv SUBJECTS_DIR $TUTORIAL_DATA/diffusion_recons
cd $SUBJECTS_DIR
Setting up a configuration file
TRACULA的示例配置文件包含在FreeSurfer发行版的$ FREESURFER_HOME / bin / dmrirc.example中,该文件也可以在Wiki上找到。 配置文件是Unix shell脚本,您可以在其中设置变量以指定输入数据的位置和各种处理首选项。 如果您在没有配置文件的情况下运行TRACULA,那么您将只能使用默认的处理选项。 下面,我们探讨了在教程配置文件中设置的选项,以及根据分析的具体情况可能需要设置的一些其他选项。
步骤1:创建配置文件。 这是一个用C Shell编写的简单文本文件,因此您可以使用任何文本编辑器(gedit,vi,emacs等)创建它。 在Mac上,运行open -e打开文本文件。 就本教程而言,我们已经创建了一个名为dmrirc.tutorial的配置文件。 打开此文件以查看示例,并按照我们解释的命令进行操作:
gedit $TUTORIAL_DATA/diffusion_tutorial/dmrirc.tutorial &
Mac版:
open -e $TUTORIAL_DATA/diffusion_tutorial/dmrirc.tutorial &
请注意,在#号之前的行是“注释”,因此不会作为命令运行。 #符号可以方便地添加每个命令的功能说明,或“注释掉”您要暂时禁用的命令。 教程配置文件如下所示:
# FreeSurfer SUBJECTS_DIR
# T1 images and FreeSurfer segmentations are expected to be found here
#
setenv SUBJECTS_DIR $TUTORIAL_DATA/diffusion_recons
# Output directory where trac-all results will be saved
# Default: Same as SUBJECTS_DIR
#
set dtroot = $TUTORIAL_DATA/diffusion_tutorial
# Subject IDs
#
set subjlist = ( elmo.2005 \
elmo.2008 \
elmo.2012 )
# Input diffusion DICOMs
# If original DICOMs don't exist, these can be in other image format
# but then the gradient table and b-value table must be specified (see below)
#
set dcmlist = ( $TUTORIAL_DATA/diffusion_tutorial/elmo.2005/orig/656000-11-1.dcm \
$TUTORIAL_DATA/diffusion_tutorial/elmo.2008/orig/97000-000017-000001.dcm \
$TUTORIAL_DATA/diffusion_tutorial/elmo.2012/orig/MR.1.3.12.2.1107.5.2.32.35006.2012121819455034689828982 )
# Diffusion gradient tables (if there is a different one for each scan)
# Must be specified if they cannot be read from the DICOM headers
# The tables must have either three columns, where each row is a gradient vector
# or three rows, where each column is a gradient vector
# There must be as many gradient vectors as volumes in the diffusion data set
# Default: Read from DICOM header
#
set bveclist = ( $TUTORIAL_DATA/diffusion_tutorial/elmo.2005/orig/gradients.txt \
$TUTORIAL_DATA/diffusion_tutorial/elmo.2008/orig/gradients.txt \
$TUTORIAL_DATA/diffusion_tutorial/elmo.2012/orig/gradients.txt )
# Diffusion b-value tables (if there is a different one for each scan)
# Must be specified if they cannot be read from the DICOM headers
# There must be as many b-values as volumes in the diffusion data set
# Default: Read from DICOM header
#
set bvallist = ( $TUTORIAL_DATA/diffusion_tutorial/elmo.2005/orig/bvalues.txt \
$TUTORIAL_DATA/diffusion_tutorial/elmo.2008/orig/bvalues.txt \
$TUTORIAL_DATA/diffusion_tutorial/elmo.2012/orig/bvalues.txt )
set runlist = (1 2 3)
set doeddy = 1
set dorotbvecs = 1
set usemaskanat = 1
set thrbet = 0.3
set doregflt = 0
set doregbbr = 1
set doregmni = 1
set doregcvs = 0
set pathlist = ( lh.cst_AS rh.cst_AS \
lh.ilf_AS rh.ilf_AS \
lh.unc_AS rh.unc_AS \
fmajor_PP fminor_PP \
lh.atr_PP rh.atr_PP \
lh.cab_PP rh.cab_PP \
lh.ccg_PP rh.ccg_PP \
lh.slfp_PP rh.slfp_PP \
lh.slft_PP rh.slft_PP )
set ncpts = (6 6 5 5 5 5 7 5 5 5 5 5 4 4 5 5 5 5)
这是一个非常简单的配置文件,其中仅指定了基本输入。 现在,我们将遍历上面文件中指定的选项。
Step 2: Specify the FreeSurfer subject directory 指定FreeSurfer主题目录
setenv SUBJECTS_DIR $TUTORIAL_DATA/diffusion_recons
该变量必须设置为所有受试者的FreeSurfer重建物所在的目录。 假设已经对受试者的T1加权数据运行了FreeSurfer。 TRACULA将使用每个受试者的FreeSurfer重建中的aparc + aseg.mgz-这是TRACULA的“基础解剖”部分的来源。
Step 3: Specify the TRACULA output directory 指定TRACULA输出目录
set dtroot = $TUTORIAL_DATA/diffusion_tutorial
使用此变量来指定将保存所有主题的TRACULA输出的目录。 如果未指定,默认情况下结果将保存在$ SUBJECTS_DIR下。
Step 4: Specify the list of subject IDs 指定主题ID列表
set subjlist = (elmo.2005 elmo.2008 elmo.2012)
使用此变量来指定要使用TRACULA处理的所有主题的ID。 这可以是单个主题,也可以是用于批处理的多个主题。
Step 5: Specify the location of diffusion DICOM files 指定扩散DICOM文件的位置
set dcmroot = $TUTORIAL_DATA/diffusion_tutorial
使用此变量指定可以在其中找到所有主题的扩散DICOM文件的目录。
Step 6: Specify the list of input DWIs 指定输入DWI的列表
set dcmlist = ( elmo.2005/orig/656000-11-1.dcm \
elmo.2008/orig/97000-000017-000001.dcm \
elmo.2012/orig/MR.1.3.12.2.1107.5.2.32.35006.2012121819455034689828982 )
使用此变量指定输入的DWI数据,每个主题一个条目。 假定文件名相对于上面dcmroot中指定的目录。 如果有DICOM文件可用,则假设相同系列中的其余DICOM文件位于同一目录中,则只需指定包含DWI的系列中的第一个DICOM文件。 如果DWI的格式不是DICOM,则仍可以在此处指定DWI卷,只要它们的格式可以由mri_convert读取即可。
对于DICOM文件,其中扩散编码梯度和b值存储在DICOM标头中的标准位置,则将从标头读取这些文件。 对于非标准DICOM格式或DICOM以外的文件格式,您将需要指定扩散编码渐变表(请参见下面的bvecfile或bveclist)和b值表(请参见下面的bvalfile或bvallist)的位置。
除了上面的简单配置文件中的基本选项之外,您还可以使用其他几个选项来自定义研究的数据处理。 这些在更详尽的示例配置文件中列出,该文件也可以作为FreeSurfer发行版的一部分获得。 现在,我们将介绍一些其他选项。
Step 7: Specify which subjects to analyze
set runlist = (2 3)
如果只想对子列表中包含的主题的子集进行分析,请使用此变量。 上面的示例仅对第二和第三主题进行分析。 例如,如果您仅需要对几个主题重新运行分析的特定部分,则此功能很有用。 如果未设置此变量,则默认情况下将对所有主题运行分析。
Step 8: Specify the diffusion-encoding gradient table 指定扩散编码梯度表
您可以为研究中的每个扫描指定不同的梯度表(使用bveclist),或者为研究中的所有扫描指定单个梯度表(使用bvecfile)。
为研究中的每个扫描指定不同的梯度表:
set bveclist = ( /path/to/subject/bvecs.txt \
/path/to/subject/bvecs.txt \
/path/to/subject/bvecs.txt )
请注意,命名约定不必是bvecs.txt。 您的bvec文件可以命名为gradients.txt,就像上面的dmrirc.tutorial文件一样。 但是,您需要确保该文件的格式正确(有关更多信息,请继续阅读本节的末尾)。
为研究中的所有扫描指定一个梯度表:
set bvecfile = /path/to/bvecs.txt
如果您的DWI数据不是允许mri_convert从标题读取梯度的DICOM格式,请使用这些变量之一指定梯度表的位置。
梯度表必须以三列格式(DWI系列中的每个卷一行)或三行格式(DWI系列中的每个卷一行)保存在简单的文本文件中。 一个例子如下所示:
0 0 0
0 0 0
0 0 0
0.707 0 0.707
-0.707 0 0.707
0 0.707 0.707
0 0.707 -0.707
0.707 0.707 0
-0.707 0.707 0
在此示例中,梯度表的前3行全为零,表示首先获取了3个低b(非扩散加权)体积,而其余6行对应于使用不同扩散系数获取的6个扩散加权体积 编码渐变。
Step 9: Specify the b-value table 指定b值表格
您可以为研究中的每个扫描指定一个不同的b值表(使用bvallist),或者为研究中的所有扫描指定一个b值表(带有bvalfile)。
为研究中的每个扫描指定不同的b值表:
set bvallist = ( /path/to/subject/bvals.txt \
/path/to/subject/bvals.txt \
/path/to/subject/bvals.txt )
请注意,命名约定不必为bvals.txt。 您的bvec文件可以命名为bvalues.txt,就像上面的dmrirc.tutorial文件一样。 但是,您需要确保该文件的格式正确(有关更多信息,请继续阅读本节的末尾)。
为研究中的所有扫描指定一个b值表:
set bvalfile = /path/to/bvals.txt
如果您的DWI数据不是DICOM格式(允许mri_convert从标头读取b值),请使用这些变量之一指定b值表的位置。
b值表必须保存在一个简单的文本文件中,DWI系列中的每个卷都有一个值。 一个例子如下所示:
0
0
0
1000
1000
1000
1000
1000
1000
在该示例中,DWI系列将包括3个非扩散加权(b = 0)图像,然后是6个以b = 1000mm ^ -2采集的扩散加权图像。
Step 10: Specify if eddy-current compensation will be performed步骤10:指定是否将执行涡流补偿
set doeddy = 1
使用此变量来指定是否将DWI预处理的一部分进行涡流补偿(通常称为涡流校正)。 该补偿包括使用FSL的eddy_correct将所有DWI仿射配准到系列中的第一张图像,这是为了减轻由于涡流和头部运动而引起的失真。 默认情况下,此变量设置为1,因此执行涡流补偿。 将其设置为0以禁用它。
Step 11: Specify if the gradients will be rotated to match eddy-current compensation步骤11:指定是否将梯度旋转以匹配涡流补偿
set dorotbvecs = 1
使用此变量可以指定是否将扩散编码梯度表中的矢量旋转以匹配通过涡流补偿施加到相应图像的旋转。 如果执行涡流补偿,建议使用此方法。
Step 12: Specify if an anatomical brain mask will be used步骤12:指定是否使用解剖脑罩
set usemaskanat = 1
使用此变量可以指定是否使用T1加权扫描而不是DWI扫描来提取脑罩。 如果将其设置为1(这是默认值),则可以通过从FreeSurfer分割中扩展aparc + aseg.mgz并将其映射到DWI空间来获得脑罩。 之所以使用aparc + aseg.mgz,是因为它是在FreeSurfer处理蒸汽的末尾创建的,因此是用作遮罩的更精确的体积。 扩张aparc + aseg.mgz涉及将体积增加一些体素。 要使用通过阈值DWI扫描得出的掩码,请将其设置为0。
Step 13: Set the threshold for DWI-based brain mask extraction步骤13:设置基于DWI的脑罩提取的阈值
set thrbet = 0.3
使用此变量可以设置使用FSL的Brain Extraction Tool(BET)从DWI创建脑罩的阈值。 此值指定为最大图像强度的分数,因此它必须是0到1之间的数字。默认值为0.3。 请注意,默认情况下,TRACULA使用的脑罩是从T1加权图像中提取的,而不是DWI,在这种情况下,此变量不会对分析产生太大影响(请参见上面的usemaskanat)。
Step 14: Specify the intra-subject registration method步骤14:指定主题内注册方法
将每个受试者的DWI注册到受试者自己的T1加权图像有两种选择:bbregister或FSL的FLIRT。 他们都执行仿射配准,但是bbregister也使用FreeSurfer表面重建来优化扩散和解剖扫描之间的仿射配准。
以下选择默认选项,即使用bbregister而不是FLIRT:
set doregflt = 0
set doregbbr = 1
要使用FLIRT而不是bbregister,请将doregflt设置为1,将doregbbr设置为0。如果您没有偏好,并且希望使用两个选项进行分析以进行比较,请将这两个变量都设置为1(这将花费更长的时间并创建两个 输出集)。
Step 15: Specify the inter-subject registration method步骤15:指定主题间注册方法
有两种选择可将每个受试者注册到TRACULA使用的道谱图集:将仿射注册到MNI模板(MNI152)或将非线性注册到CVS模板(cvs_avg35)。尽管TRACULA在每个受试者自身的自然扩散空间中进行了tractography,但是需要进行受试者间配准才能将个体映射到TRACULA的解剖学先验所来自的道谱上。请注意,从此地图集中提取的先验信息不是管道的确切空间位置,而是管道经过或邻近的解剖学分割标签的ID。因此,粗略的空间对准足以使这些解剖先验准确。但是,使用到通用模板的映射的另一个目的是选择对路径位置的初始猜测以初始化TRACULA。如果研究对象的解剖结构与正常人群的解剖结构显着不同,则在使用非线性配准时此初始化可能会更准确。
以下选择默认选项,即使用MNI而不是CVS注册:
set doregmni = 1
set doregcvs = 0
要使用CVS而不是MNI注册,请将doregcvs设置为1并将doregmni设置为0(这将花费更长的时间)。 如果您没有偏好,并且希望使用两个选项进行分析以进行比较,请将这两个变量都设置为1(这将花费更长的时间)。
可以指定MNI模板的位置。 如果未指定,则默认情况下:
set mnitemp = $FSLDIR/data/standard/MNI152_T1_1mm_brain.nii.gz
也可以指定CVS模板的位置。 如果未指定,则默认情况下:
set cvstemp = cvs_avg35
set cvstempdir = $FREESURFER_HOME/subjects
Step 16: Specify which white-matter pathways to reconstruct步骤16:指定要重建的白色物质途径
set pathlist = ( lh.cst_AS rh.cst_AS \
lh.ilf_AS rh.ilf_AS \
lh.unc_AS rh.unc_AS \
fmajor_PP fminor_PP \
lh.atr_PP rh.atr_PP \
lh.cab_PP rh.cab_PP \
lh.ccg_PP rh.ccg_PP \
lh.slfp_PP rh.slfp_PP \
lh.slft_PP rh.slft_PP )
使用此变量来指定要重建的TRACULA道图集中包括的18条途径中的哪条。 默认设置是重建所有18条路径,定义如下:
- lh.cst_AS: Left corticospinal tract 左皮质脊髓束
- rh.cst_AS: Right corticospinal tract
- lh.ilf_AS: Left inferior longitudinal fasciculus 左下纵筋膜
- rh.ilf_AS: Right inferior longitudinal fasciculus
- lh.unc_AS: Left uncinate fasciculus 左束状筋膜
- rh.unc_AS: Right uncinate fasciculus
- fmajor_PP: Corpus callosum - forceps major 胼胝体-大钳
- fminor_PP: Corpus callosum - forceps minor
- lh.atr_PP: Left anterior thalamic radiations 左前丘脑放射
- rh.atr_PP: Right anterior thalamic radiations
- lh.ccg_PP: Left cingulum - cingulate gyrus endings 左扣带回-扣带回末梢
- rh.ccg_PP: Right cingulum - cingulate gyrus endings
- lh.cab_PP: Left cingulum - angular bundle 左扣带-角束
- rh.cab_PP: Right cingulum - angular bundle
- lh.slfp_PP: Left superior longitudinal fasciculus - parietal endings 左上纵筋膜-顶端
- rh.slfp_PP: Right superior longitudinal fasciculus - parietal endings
- lh.slft_PP: Left superior longitudinal fasciculus - temporal endings 左上纵筋膜-颞端
- rh.slft_PP: Right superior longitudinal fasciculus - temporal endings
Step 17: Specify the number of path control points 指定路径控制点数
set ncpts = (6 6 5 5 5 5 7 5 5 5 5 5 4 4 5 5 5 5)
使用此变量来指定控制点的数量,这些控制点将用于将路径列表中的每个路径建模为样条曲线。 任何大于2的数字都是有效的选择,但是根据经验,可以仅使用几个控制点来建模一条相当笔直的路径,而高度弯曲的路径可能需要更多的控制点。 如上所示,默认设置是对大镊子使用7,对皮质脊髓束使用6,对角束使用4,对其他所有路径使用5。
在TRACULA中,控制点会被多次扰动(移动一点)以创建曲线分布。 扰动的确切数目由配置文件中的nsamples定义-默认值设置为7500。对于这些曲线中的每条曲线,我们发现哪些可以很好地说明扩散数据,而哪些不能很好地说明扩散数据。 那些被接受的被拒绝,其他被拒绝。 接受的曲线全部累加起来,以提供给您查看path.pd.nii.gz(pd =概率分布)时看到的热图。
现在配置文件已全部设置好,您可以运行TRACULA! 点击下面的“下一步”进入本教程的下一部分。
Summary
在此页的最后,您应该知道如何:
创建一个配置文件
提供正确的步骤/参数进行处理
根据您的分析细节设置其他选项