dmrirc

This is a configuration file that can be used to set various options of the TRACULA processing stream. This file is passed to trac-all with the -c command-line option. It is a tcsh script file that is sourced by trac-all before any other commands are run.

Note: The information on this page refers to TRACULA in the latest version of FreeSurfer (6.0). Available options and their default values in this version may differ from past versions.

Example 1: Cross-sectional study

The following is an example dmrirc file for the most common scenario, where only one diffusion scan from a single time point is available for each subject. A copy of this file is available in the FreeSurfer distribution as:

$FREESURFER_HOME/bin/dmrirc.example

The comments over each parameter explain the default settings. Remove a parameter from the dmrirc file if you want use its default value. Parameters that don't have default values must be specified.

Any other commands that you might want to run before an analysis could also be added to this file.

# FreeSurfer SUBJECTS_DIR
# T1 images and FreeSurfer segmentations are expected to be found here
# 
setenv SUBJECTS_DIR /path/to/recons/of/ducks

# Output directory where trac-all results will be saved
# Default: Same as SUBJECTS_DIR
#
set dtroot = /path/to/tracts/of/ducks

# Subject IDs
#
set subjlist = (huey dewey louie)

# In case you want to analyze only Huey and Louie
# Default: Run analysis on all subjects
#
set runlist = (1 3)

# Input diffusion DICOMs (file names relative to dcmroot)
# 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 dcmroot = /path/to/dicoms/of/ducks
set dcmlist = (huey/day1/XXX-1.dcm dewey/day1/XXX-1.dcm louie/day2/XXX-1.dcm)

# 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 = (/path/to/huey/bvecs.txt \
                /path/to/dewey/bvecs.txt \
                /path/to/louie/bvecs.txt)

# Diffusion gradient table (if using the same one for all scans)
# Must be specified if it cannot be read from the DICOM headers
# The table 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 bvecfile = /path/to/bvecs.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 = (/path/to/huey/bvals.txt \
                /path/to/dewey/bvals.txt \
                /path/to/louie/bvals.txt)

# Diffusion b-value table (if using the same one for all scans)
# Must be specified if it 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 bvalfile = /path/to/bvals.txt

# Perform registration-based B0-inhomogeneity compensation?
# Default: 0 (no)
#
set dob0 = 1

# Input B0 field map magnitude DICOMs (file names relative to dcmroot)
# Only used if dob0 = 1
# Default: None
#
set b0mlist = (huey/fmag/XXX-1.dcm dewey/fmag/XXX-1.dcm louie/fmag/XXX-1.dcm)

# Input B0 field map phase DICOMs (file names relative to dcmroot)
# Only used if dob0 = 1
# Default: None
#
set b0plist = (huey/fphas/XXX-1.dcm dewey/fphas/XXX-1.dcm louie/fphas/XXX-1.dcm)

# Echo spacing for field mapping sequence (from sequence printout)
# Only used if dob0 = 1
# Default: None
#
set echospacing = 0.7

# Perform registration-based eddy-current compensation?
# Default: 1 (yes)
#
set doeddy = 1

# Rotate diffusion gradient vectors to match eddy-current compensation?
# Only used if doeddy = 1
# Default: 1 (yes)
#
set dorotbvecs = 1

# Fractional intensity threshold for BET mask extraction from low-b images
# This mask is used only if usemaskanat = 0
# Default: 0.3
#
set thrbet = 0.5

# Perform diffusion-to-T1 registration by flirt?
# Default: 0 (no)
#
set doregflt = 0

# Perform diffusion-to-T1 registration by bbregister?
# Default: 1 (yes)
#
set doregbbr = 1

# Perform registration of T1 to MNI template?
# Default: 1 (yes)
#
set doregmni = 1

# MNI template
# Only used if doregmni = 1
# Default: $FSLDIR/data/standard/MNI152_T1_1mm_brain.nii.gz
#
set mnitemp = /path/to/mni_template.nii.gz

# Perform registration of T1 to CVS template?
# Default: 0 (no)
#
set doregcvs = 0

# CVS template subject ID
# Only used if doregcvs = 1
# Default: cvs_avg35
#
set cvstemp = donald

# Parent directory of the CVS template subject
# Only used if doregcvs = 1
# Default: $FREESURFER_HOME/subjects
#
set cvstempdir = /path/to/cvs/atlases/of/ducks

# Use brain mask extracted from T1 image instead of low-b diffusion image?
# Has no effect if there is no T1 data
# Default: 1 (yes)
#
set usemaskanat = 1

# Paths to reconstruct
# Default: All paths in the atlas
#
set pathlist = ( lh.cst_AS rh.cst_AS \
                 lh.unc_AS rh.unc_AS \
                 lh.ilf_AS rh.ilf_AS \
                 fmajor_PP fminor_PP \
                 lh.atr_PP rh.atr_PP \
                 lh.ccg_PP rh.ccg_PP \
                 lh.cab_PP rh.cab_PP \
                 lh.slfp_PP rh.slfp_PP \
                 lh.slft_PP rh.slft_PP )

# Number of path control points
# It can be a single number for all paths or a different number for each of the
# paths specified in pathlist
# Default: 7 for the forceps major, 6 for the corticospinal tract,
#          4 for the angular bundle, and 5 for all other paths
#
set ncpts = (6 6 5 5 5 5 7 5 5 5 5 5 4 4 5 5 5 5)

# List of training subjects
# This text file lists the locations of training subject directories
# Default: $FREESURFER_HOME/trctrain/trainlist.txt
#
set trainfile = $FREESURFER_HOME/trctrain/trainlist.txt

# Number of "sticks" (anisotropic diffusion compartments) in the bedpostx
# ball-and-stick model
# Default: 2
#
set nstick = 2

# Number of MCMC burn-in iterations
# (Path samples drawn initially by MCMC algorithm and discarded)
# Default: 200
#
set nburnin = 200

# Number of MCMC iterations
# (Path samples drawn by MCMC algorithm and used to estimate path distribution)
# Default: 7500
#
set nsample = 7500

# Frequency with which MCMC path samples are retained for path distribution
# Default: 5 (keep every 5th sample)
#
set nkeep = 5

# Reinitialize path reconstruction?
# This is an option of last resort, to be used only if one of the reconstructed
# pathway distributions looks like a single curve. This is a sign that the
# initial guess for the pathway was problematic, perhaps due to poor alignment
# between the individual and the atlas. Setting the reinit parameter to 1 and
# rerunning "trac-all -prior" and "trac-all -path", only for the specific
# subjects and pathways that had this problem, will attempt to reconstruct them
# with a different initial guess.
# Default: 0 (do not reinitialize)
#
set reinit = 0

Example 2: Longitudinal study

The following is an example dmrirc file for a longitudinal analysis, where multiple diffusion scans from different time points are available for each subject. A copy of this file is available in the FreeSurfer distribution as:

$FREESURFER_HOME/bin/dmrirc.long.example

The comments over each parameter explain the default settings. Remove a parameter from the dmrirc file if you want use its default value. Parameters that don't have default values must be specified.

Any other commands that you might want to run before an analysis could also be added to this file.

# FreeSurfer SUBJECTS_DIR
# T1 images and FreeSurfer segmentations are expected to be found here
# 
setenv SUBJECTS_DIR /path/to/recons/of/ducks

# Output directory where trac-all results will be saved
# Default: Same as SUBJECTS_DIR
#
set dtroot = /path/to/tracts/of/ducks

# Subject IDs (one per time point per subject)
#
set subjlist = ( huey-scan1 \
                 huey-scan2 \
                 dewey-scan1 \
                 dewey-scan2 \
                 louie-scan1 \
                 louie-scan2 )

# Longitudinal base template subject IDs (one for each time point above)
#
set baselist = ( huey \
                 huey \
                 dewey \
                 dewey \
                 louie \
                 louie )

# In case you want to analyze only Huey and Louie
# Default: Run analysis on all time points and subjects
#
set runlist = (1 2 5 6)

# Input diffusion DICOMs (file names relative to dcmroot)
# 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 dcmroot = /path/to/dicoms/of/ducks
set dcmlist = ( huey/year1/dwi/XXX-1.dcm \
                huey/year2/dwi/XXX-1.dcm \
                dewey/year1/dwi/XXX-1.dcm \
                dewey/year2/dwi/XXX-1.dcm \
                louie/year1/dwi/XXX-1.dcm \
                louie/year2/dwi/XXX-1.dcm )

# 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 = (/path/to/huey/year1/bvecs.txt \
                /path/to/huey/year2/bvecs.txt \
                /path/to/dewey/year1/bvecs.txt \
                /path/to/dewey/year2/bvecs.txt \
                /path/to/louie/year1/bvecs.txt \
                /path/to/louie/year2/bvecs.txt)

# Diffusion gradient table (if using the same one for all scans)
# Must be specified if it cannot be read from the DICOM headers
# The table 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 bvecfile = /path/to/bvecs.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 = (/path/to/huey/year1/bvals.txt \
                /path/to/huey/year2/bvals.txt \
                /path/to/dewey/year1/bvals.txt \
                /path/to/dewey/year2/bvals.txt \
                /path/to/louie/year1/bvals.txt \
                /path/to/louie/year2/bvals.txt)

# Diffusion b-value table
# Must be specified if it 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 bvalfile = /path/to/bvals.txt

# Perform registration-based B0-inhomogeneity compensation?
# Default: 0 (no)
#
set dob0 = 1

# Input B0 field map magnitude DICOMs (file names relative to dcmroot)
# Only used if dob0 = 1
# Default: None
#
set b0mlist = ( huey/year1/fmag/XXX-1.dcm \
                huey/year2/fmag/XXX-1.dcm \
                dewey/year1/fmag/XXX-1.dcm \
                dewey/year2/fmag/XXX-1.dcm \
                louie/year1/fmag/XXX-1.dcm \
                louie/year2/fmag/XXX-1.dcm )

# Input B0 field map phase DICOMs (file names relative to dcmroot)
# Only used if dob0 = 1
# Default: None
#
set b0plist = ( huey/year1/fphas/XXX-1.dcm \
                huey/year2/fphas/XXX-1.dcm \
                dewey/year1/fphas/XXX-1.dcm \
                dewey/year2/fphas/XXX-1.dcm \
                louie/year1/fphas/XXX-1.dcm \
                louie/year2/fphas/XXX-1.dcm )

# Echo spacing for field mapping sequence (from sequence printout)
# Only used if dob0 = 1
# Default: None
#
set echospacing = 0.7

# Perform registration-based eddy-current compensation?
# Default: 1 (yes)
#
set doeddy = 1

# Rotate diffusion gradient vectors to match eddy-current compensation?
# Only used if doeddy = 1
# Default: 1 (yes)
#
set dorotbvecs = 1

# Fractional intensity threshold for BET mask extraction from low-b images
# This mask is used only if usemaskanat = 0
# Default: 0.3
#
set thrbet = 0.5

# Perform diffusion-to-T1 registration by flirt?
# Default: 0 (no)
#
set doregflt = 0

# Perform diffusion-to-T1 registration by bbregister?
# Default: 1 (yes)
#
set doregbbr = 1

# Perform registration of T1 to MNI template?
# Default: 1 (yes)
#
set doregmni = 1

# MNI template
# Only used if doregmni = 1
# Default: $FSLDIR/data/standard/MNI152_T1_1mm_brain.nii.gz
#
set mnitemp = /path/to/mni_template.nii.gz

# Perform registration of T1 to CVS template?
# Default: 0 (no)
#
set doregcvs = 0

# CVS template subject ID
# Only used if doregcvs = 1
# Default: cvs_avg35
#
set cvstemp = donald

# Parent directory of the CVS template subject
# Only used if doregcvs = 1
# Default: $FREESURFER_HOME/subjects
#
set cvstempdir = /path/to/cvs/atlases/of/ducks

# Use brain mask extracted from T1 image instead of low-b diffusion image?
# Has no effect if there is no T1 data
# Default: 1 (yes)
#
set usemaskanat = 1

# Paths to reconstruct
# Default: All paths in the atlas
#
set pathlist = ( lh.cst_AS rh.cst_AS \
                 lh.unc_AS rh.unc_AS \
                 lh.ilf_AS rh.ilf_AS \
                 fmajor_PP fminor_PP \
                 lh.atr_PP rh.atr_PP \
                 lh.ccg_PP rh.ccg_PP \
                 lh.cab_PP rh.cab_PP \
                 lh.slfp_PP rh.slfp_PP \
                 lh.slft_PP rh.slft_PP )

# Number of path control points
# It can be a single number for all paths or a different number for each of the
# paths specified in pathlist
# Default: 7 for the forceps major, 6 for the corticospinal tract,
#          4 for the angular bundle, and 5 for all other paths
#
set ncpts = (6 6 5 5 5 5 7 5 5 5 5 5 4 4 5 5 5 5)

# List of training subjects
# This text file lists the locations of training subject directories
# Default: $FREESURFER_HOME/trctrain/trainlist.txt
#
set trainfile = $FREESURFER_HOME/trctrain/trainlist.txt

# Number of "sticks" (anisotropic diffusion compartments) in the bedpostx
# ball-and-stick model
# Default: 2
#
set nstick = 2

# Number of MCMC burn-in iterations
# (Path samples drawn initially by MCMC algorithm and discarded)
# Default: 200
#
set nburnin = 200

# Number of MCMC iterations
# (Path samples drawn by MCMC algorithm and used to estimate path distribution)
# Default: 7500
#
set nsample = 7500

# Frequency with which MCMC path samples are retained for path distribution
# Default: 5 (keep every 5th sample)
#
set nkeep = 5

# Reinitialize path reconstruction?
# This is an option of last resort, to be used only if one of the reconstructed
# pathway distributions looks like a single curve. This is a sign that the
# initial guess for the pathway was problematic, perhaps due to poor alignment
# between the individual and the atlas. Setting the reinit parameter to 1 and
# rerunning "trac-all -prior" and "trac-all -path", only for the specific
# subjects and pathways that had this problem, will attempt to reconstruct them
# with a different initial guess.
# Default: 0 (do not reinitialize)
#
set reinit = 0

Tutorial

More information on setting up the dmrirc file can be found in the TRACULA tutorial.

dmrirc (last edited 2017-03-20 14:28:53 by AnastasiaYendiki)