Content-type: text/html Manpage of track

track

Section: User Commands (1)
Index Return to Main Contents

 

NAME

track - Performs streamline tractography.

 

SYNOPSIS

track [options]

 

DESCRIPTION

Does streamline tractography using either a determinstic method or the probabilistic PICo [Parker et al, JMRI 18:242-254, 2003] or Bayesian [Friman et al, IEEE-TMI 25:965-978, 2006] algorithms.

Interpolation is optional, and is different for the probabilistic and deterministic cases. Deterministic trackers interpolate tensor or vector data from the 8 neighbouring tensors and tracking proceeds with a fixed step size. Probabilistic trackers also use a fixed step size, but the interpolation follows the method of Behrens et al (Magnetic Resonance in Medicine, 50:1077-1088, 2003). Noninterpolated tracking uses a modified FACT (Mori et al, Annals Neurology 45:265-269, 1999) method. The stopping criteria is different to the original FACT algorithm (see below).

The tensor deflection (tend) algorithm may be used for deterministic tracking in tensor images (Lazar et al, Human Brain Mapping 18:306-321, 2003). This algorithm is similar to FACT except that the tracking direction in each voxel is deflected by the local diffusion tensor.

Stopping criteria for streamlines are based on on voxel classification, anisotropy and / or curvature. Streamlines will always terminate upon entry to background voxels. Anisotropy thresholds can be used to specify the minimum anisotropy in a voxel. Streamlines will terminate if the anisotropy is below the threshold. The default curvature threshold will terminate streamlines if they curve by more than 80 degrees across the length of one voxel.

The program procstreamlines (see procstreamlines(1)) contains many tools for post-processing of streamlines.

 

SEEDING TRACTOGRAPHY

The seed file is an Analyze / Meta / ITK image. The image need not be of the same resolution as the diffusion data, but they must be aligned. A point in physical space, measured from voxel (0,0,0) of the diffusion data, must be the same point in the seed image.

The seed file contains the regions of interest for tracking. Streamlines are seeded at the centre of all voxels with an intensity greater than zero. Voxels that share the same intensity are considered part of the same ROI, they do not have to be contiguous.

The seed, waypoint and target file (see procstreamlines(1)) can be of any data type, but the maximum value in these files must not exceed 2^15 - 1.

A single seed point may be specified on the command line (see OPTIONS).

 

OUTPUT

The output is streamlines in one of three formats: raw binary format, voxel lists, or OOGL format (as used by Geomview).

If -outputroot is specified, streamline output is contained in a single file for each ROI.

for (all rois numbered r) {


    open file outputFile 


    for (all z) {
        for (all y) {
            for (all x) {
                s = seed voxel (x,y,z);
                if (s == r) {          for (all iterations i) {

                         calculate streamline for seed (x,y,z)
                         write streamline to outputFile 
                    }
                } 
           }
        }
    }


    close outputFile

}

If no output root is specified, then all streamlines are written to a single stream, in the same order as above. The stream is stdout by default but can be set to a file with the -outputfile option.

The coordinate system of tracts is measured in millimeters from the origin of the image, where voxel (0,0,0) is the first to be read from a file in Camino voxel-order format.

The seed file may contain multiple ROIs, with different intensity values. If an output root is specified with -outputroot <root>, then the output is split into different files for each ROI. The output for each ROI with intensity N in the seed file is rootN.suffix, where the suffix depends on the output type. If no output root is given, then all output is written to stdout.

The raw streamline format is 32 bit float. For each streamline, the program outputs the number of points N in the streamline, the index of the seed point, followed by the (x,y,z) coordinates (in mm) of each point: [<N>, <seed point index>, <x_1>, <y_1>, <z_1>,...,<x_numPoints>, <y_N>, <z_N>, <N>,...,<z_N>], where the <seed point index> is the point on the streamline where tracking began.

The voxels format is 16-bit signed integer, and lists the integer indices of all M voxels that the streamline passes through, in the format [<M>, <seed point index>, <tan_x>, <tan_y>, <tan_z>, <ntan_x>, <ntan_y>, <ntan_z>, <vx_1>, <vy_1>, <vz_1>,...,<vx_M>, <vy_M>, <vz_M>, M,...,<vz_M>]. The vector tan is the tangent to the tract at the seed point, pointing from the seed point to the last point in the streamline. The vector ntan is the tangent pointing from the seed point to point 0. Both tan and ntan are unit vectors that have been scaled by 2^15-1.

The OOGL format outputs a LIST of OOGL VECT objects in ASCII format. The colour at each point on the streamline is an RGB vector that describes the local orientation as a combination of red (x), green (y) and blue (z).

The vtkstreamlines program converts Camino streamlines to VTK polylines.

 

STEPS REQUIRED TO TRACK

The number of preprocessing steps between raw data to tractography varies according to the data and what kind of tracking is required.

The most common task is to track streamlines through tensor data, and this is the simplest case to deal with. The steps are:


 1. Fit the tensors (eg with dtfit).
 2. Define the seed ROIs.
 3. Run track.

The handedness of the coordinate system used by the scanner may not agree with that used within Camino. If this happens, the anisotropy will be correct but the orientations of the tensors will be incorrect. This problem is often only noticed during tractography. A simple way to check for this is to fit the diffusion tensors and visualize the principal directions with the dtpdview program. If the principal directions appear to be rotated by 180 degrees about the X, Y or Z directions, then the likely cause is that the gradient directions do not agree. This can be remedied by negating the relevant entries in the scheme file.

For streamlines from PAS or Q-ball data, there is an additional step.


 1. Calculate the inversion (eg with mesd).
 2. Extract the principal directions with sfpeaks.
 3. Define the seed ROIs.
 4. Run track.

 

STEPS REQUIRED FOR MODEL-BASED PICO

For PICo, one additional step is required per scanner sequence, and one per subject. A lookup table (LUT) of PDF parameters must be created, for tensor data this is done with dtlutgen. The PDFs describe the noise-based uncertainty in principal directions, and therefore the values are dependent on the acquisition scheme and the type of inversion. Once the LUT has been calculated, it can be used for all subjects scanned using the same acquisition parameters and processed with the same tensor fitting routine. See dtlutgen(1) for details of the LUT generation process for tensor data. Once this is done, the steps for a subject are:


 1. Fit the tensors (eg with dtfit).
 2. Define ROIs.
 3. Run picopdfs to construct PDFs in each voxel in the image.
 4. Run track with -inputmodel pico and pass the output of picopdfs as the input file. The -numpds option tells track the maximum number of principal directions in each voxel. The default is 1.

PICo can also be performed using the output from multiple-fibre reconstruction techniques such as PASMRI and Q-Ball. See picocalibdata(1) and sflutgen(1) for details on how to create the lookup tables. The rest of the steps remain the same.

When using PICo or PD data, you may still wish to apply an anisotropy threshold. This can be done by passing an anisotropy image with the -anisfile option. In fact, any scalar image may be passed with the -anisfile option; tracking will be restricted to voxels where the intensity is not less than the threshold specified by the -anisthresh option.

 

BOOTSTRAP TRACKING

Bootstrap tracking requires the raw DWI data and a reconstruction algorithm. The principal direction or directions in each voxel are determined independently for each bootstrap sample of the data.

Currently, diffusion tensor is the only model supported. Both repetition and wild bootstrapping are available. Please see datasynth(1) for more information on the bootstrap techniques.

Using the repetition bootstrap, one and two-tensor models may be fitted to the bootstrap data. The reconstruction parameters [see modelfit(1) should be passed to track along with the other
 parameters. For example, given 4 repeats of a scan SubjectA_[1,2,3,4].Bfloat, (in voxel order),  we can track using repetition bootstrapping and DTI:


  track  -inputmodel bootstrap -bsdatafiles SubjectA_1.Bfloat SubjectA_2.Bfloat  SubjectA_3.Bfloat 
  SubjectA_4.Bfloat -schemefile A.scheme -inversion 1 -bgmask A_BrainMask.hdr 
  -iterations 1000 -seedfile ROI.hdr -bsmodel dt > A_bs.Bfloat

To use a two-tensor model, we must pass the voxel classification from voxelclassify.


  track  -inputmodel bootstrap -bsdatafiles SubjectA_1.Bfloat SubjectA_2.Bfloat SubjectA_3.Bfloat 
  SubjectA_4.Bfloat -schemefile A.scheme -inversion 21 -voxclassmap A_vc.Bint
  -iterations 1000 -seedfile ROI.hdr -bsmodel multitensor > A_bs.Bfloat

The voxel classifications are fixed; they are not re-determined dynamically.

Note that you may pass either -voxclassmap or -bgmask, but not both. If you are using a voxel classification map, the brain / background mask should be passed to voxelclassify. You may always restrict tracking to any volume of the brain by using the -anisfile and -anisthresh options.

Wild bootstrapping requires a single DWI data set. Multi-tensor reconstruction is not supported. The scheme file is required.

track -inputfile SubjectA_1.Bfloat -inputmodel bootstrap -schemefile A.scheme -bgmask A_BrainMask.hdr
  -iterations 1000 -seedfile ROI.hdr -wildbsmodel dt > A_wildbs.Bfloat

 

BAYESIAN TRACKING WITH DIRAC PRIORS

This method was presented by Friman et al, IEEE-TMI 25:965-978 (2006). In each voxel, we compute the likelihood of the fibre orientation being the axis X, given the data and the model of the data. We wish to sample from


   P(X | data) = P(data | X) P(X) / P(data)

in each voxel. We first fit a model to the data (like the diffusion tensor), the model yields m_i, the predicted measurement i given a principal direction X. The observed data y_i is a noisy estimate of m_i. The noise is modelled on the log data as


  ln(y_i) = ln(m_i) + epsilon,

where epsilon is Gaussian distributed as N(0, sigma^2 / m_i^2), where sigma^2 is the variance of the noise in the complex MR data. Therefore,


  P(data | X) = P(y_1 | m_1)P(y_2 | m_2)...P(y_N | m_N) 

where there are N measurements. The prior distribution for all parameters except X is a dirac delta function, so P(data) is the integral of P(data | X) over the sphere. In the case of the diffusion tensor, for example, the priors of S(0) and the tensor eigenvalues L1, and L2 = L3 are fixed around the maximum-likelihood estimate (MLE). The function P(data | X) is then evaluated by setting the tensor principal direction to X and computing the likelihood of the observed data.

The prior on X, P(X), may be set to favor low tract curvature. With the -curvepriork option, the user may set a Watson concentration parameter k. Given a previous tract orientation T, P(X) = W(X, T, k), where k >= 0. The default is k = 0, which is a uniform distribution. Higher values of k increase the sharpness of P(X) around its peak axis T. Suggested values of k are in the range of 0 to 5. You may also use -curvepriorg to implement Friman's curvature prior. Note that a curvature prior does not directly impose a curvature threshold, which may be imposed separately.

An external prior may also be added, in the form of a PICo PDF O(X) defined for each voxel in the image. The full prior is then W(X, T, k)O(X). Pass a PICo image with -extpriorfile.

Example:

track -inputfile SubjectA_1.Bfloat -inputmodel bayesdirac -schemefile A.scheme -bgmask A_BrainMask.hdr
  -iterations 1000 -seedfile ROI.hdr > A_bd.Bfloat

 

INPUT MODELS

This section deals with the various types input to track, which are specified with the -inputmodel option.

The default data type is "float" for input models "bootstrap" and "bayesdirac", and "double" for everything else.

The available input models are:


  dt - diffusion tensor data, as produced by modeltfit.

The -anisthresh option may be specified without supplying a separate anisotropy map; in this case the fractional anisotropy of the DT is used.


  multitensor - diffusion tensor data, as produced by multitenfit

The maximum number of tensors in each voxel is specified by the -maxcomponents option. The number of tensors in individual voxels is encoded in the data, so no voxel classification map is required. As with single DT data, a fractional anisotropy mask can be derived from the data. Voxels containing multiple tensors are always included in the mask; single-tensor voxels are included if their anisotropy is above the specified threshold.


  pds - principal directions, as produced by sfpeaks

The maximum number of PDs in each voxel is specified by the -numpds option. The number of PDs in individual voxels is encoded in the data.


  ballstick - Ball and stick partial volume model, as produced by ballstickfit.

The ball and stick model [Behrens et al, MRM 50:1077-1088, (2003)] has one principal direction per voxel.


  pico - PICo PDFs, as produced by picopdfs

The maximum number of PDs in each voxel is specified by the -numpds option. The number of PDs in individual voxels is encoded in the data.


  bootstrap - raw data for bootstrapping. 

Repetition bootstrap data is passed to the program with -bsdatafiles. Wild bootstrap data is passed on standard input or with -inputfile.


  bayesdirac - raw data for Bayesian tractography. 

This inputmodel is for probabilistic tracking using the Bayesian method
 with dirac priors. The assumption of dirac delta priors on the "nuisance parameters"  (parameters other than the fibre orientation) simplifies computation so that the PDF may be sampled in real time.

The voxel-ordered diffusion-weighted data is passed on standard input or with -inputfile. Relevant options include -curvepriork, -datamodel, and -extpriorfile.

 

EXAMPLES

Track within a region of interest defined in an analyze image subAROI.[hdr, img | img.gz ]. The ROI is defined by a collection of voxels with the intensity value 1.

track -inputmodel dt -seedfile subAROI.hdr -anisthresh 0.1 -outputroot A_oneDT_ < SubjectA.oneDT.Bdouble

This outputs A_oneDT_1.Bfloat, containing all streamlines from the ROI. If there were a total of R separate ROIs in the seed file, there would be another output file for each ROI: A_oneDT_{1...R}.Bfloat. In this example we do not specify voxel or data dimensions, so they are taken from the Analyze header of the seed file.

Track from the same ROI, but get PICo connection probability maps. This first requires us to use picopdfs to get the PDF volume A.picopdfs.Bdouble. We then track with

track -inputmodel pico -seedfile subAROI -outputroot A_oneDTpico_ < A.picopdfs.Bdouble

And pass the results to the procstreamlines program

procstreamlines -outputroot A_oneDTpico_ -seedfile subAROI -outputcp < A_oneDT_1.Bfloat

The output here is A_oneDT_nonInt_1_N_1.[hdr,img], where N is 1 for the first seed point and is incremented for each subsequent seed. The last 1 refers to the principal directions of the seed point. If there are P principal directions at a seed point, then the above command will produce output numbered A_oneDT_nonInt_1_N_{1...P}.[hdr,img]. If there were further ROIs numbered 2...R, then there would be output A_oneDT_nonInt_{2...R}_N_{1...P}.[hdr,img]. Note that the number of seeds and principal directions may be different for each ROI.

 

MULTIPLE-ROI TRACKING

In this example we want only streamlines that intersect two or more volumes within the brain, Let subA2ROI.img contain the two ROIs, the first defined by voxels with intensity 1, the second by voxels with intensity 2.

We track as before:

track -inputmodel dt -seedfile subA2ROI -outputroot A_oneDT_ < A.picopdfs.Bdouble

And pass the results to the procstreamlines program

cat A_oneDT_1.Bfloat A_oneDT_2.Bfloat | procstreamlines -outputroot A_twoROI_ -outputtracts raw -waypointfile subA2ROI

The procstreamlines program discards all streamlines that do not enter both ROIs.

Equivalently, we could do the above in one line:

cat A.picopdfs.Bdouble | track -inputmodel dt -seedfile subA2ROI | procstreamlines -outputroot A_twoROI_ -outputtracts raw -waypointfile subA2ROI

If the -outputroot option is not specified, then track writes all output to stdout.

 

PARALLEL TRACKING

The -seedindex option allows seed points within an ROI to be processed independently. The output of parallel PICo tracking will NOT be the same as that of serial PICo. In the parallel case, track is run many times, and a different random number generator is created for each run. When all seed points are processed in series, the random number generator is created only once. By default, the random number generator is seeded from the system time in milliseconds. To avoid multiple tracking operations using the same sequence of random numbers, include a short delay between successive runs of track.

To track using -seedindex, we must know the total number of seeds within the ROI. The program countseeds does this for us:

countseeds subA2ROI

We can then process each seed in parallel with the bash command, subject to one constraint: because track outputs all streamlines from an ROI to the same file. We therefore have to name the output root from each seed uniquely:

for seed in `seq 1 $(countseeds subA2ROI)`; do

        track -inputmodel pico -datadims 128 128 60 -voxeldims 1.7 1.7
        2.3 -seedfile subA2ROI -outputroot A_oneDT_${seed}_ -seedindex $seed < A.picopdfs.Bdouble

done

This command produces the files A_oneDT_{1,2,...,N}_R_1.Bfloat for each of the N seeds in the seed file (the program determines the ROI R to which each seed belongs). These can be concatenated to produce the same output we get from tracking without parallel processing.

If we do not wish to process each seed in parallel, we can process each ROI in parallel instead. The -regionindex option is similar to the -seedindex option, but all seeds in each ROI are processed in series. Therefore, if there are four ROIs in the seed file subA2ROI.img, then we use a similar command to process each ROI in parallel:

for roi in `seq 1 4`; do

        track -inputmodel pico -datadims 128 128 60 -voxeldims 1.7 1.7
        2.3 -seedfile subA2ROI -outputroot A_oneDT_ -regionindex $roi < A.picopdfs.Bdouble

done

To produce connection probability maps directly, the procedure is

for roi in `seq 1 4`; do

        track -inputmodel pico -datadims 128 128 60 -voxeldims 1.7 1.7
        2.3 -seedfile subA2ROI -regionindex $roi < A.picopdfs.Bdouble | procstreamlines

        -seedfile subA2ROI -regionindex $roi -outputcp -outputroot A_oneDT_cp_

done

The advantage of this approach is that there is no need to concatenate streamline output after tracking. In some circumstances, this method may also be more efficient, since the program is only initialized once per region instead of once per seed.

 

OPTIONS

The following list details the options pertaining to the input data, the tractography parameters, the output, and the PICo parameters.

 

DATA OPTIONS

-inputmodel <model>
One of the following:

dt - diffusion tensor data, as produced by dtfit.

multitensor - diffusion tensor data, as produced by multitenfit. Presently, track supports a maximum of two tensors per voxel for PICo. Three tensors per voxel is allowed for streamline tracking. The maximum number of tensor components in a voxel is controlled by the maxcomponents option, and the default is 2.

pds - principal directions, as produced by sfpeaks. The maximum number of PDs in a voxel (if different from the default of 3) is specified by the numpds option.

pico - PICo PDFs, as produced by picopdfs.

bootstrap - raw data to be bootstrapped.

ballstick - as produced by ballstickfit.

bayesdirac - raw data for Bayesian tracking.

-inputdatatype <type>
If any bootstrapping options are specified, the default input data type is "float". Otherwise, it is "double".

-numpds <number>

The maximum number of PDs in a voxel for input models pds and pico. The default is 3 for input model pds and 1 for input model pico. This option determines the size of the voxels in the input file and does not affect tracking. For tensor data, this option is not used. If the input model is "dt", the number of PDs in each voxel is 1. If the input model is "multitensor", the number of PDs is specified by the -maxcomponents option.

-maxcomponents <number>

The maximum number of tensor components in a voxel. This determines the size of the input file and does not say anything about the voxel classification. The default is 2 if the input model is multitensor and 1 if the input model is dt.

-datadims <x> <y> <z>
The x, y, and z dimension of the data, in voxels. Not required if a seed file is used, unless the seed dimensions do not agree with the diffusion dimensions. In either case, the physical coordinates of seed space MUST be aligned to diffusion space, ie a point in mm must be the same location in both, even if the voxel coordinates are different.

-voxeldims <x> <y> <z>
The x, y, and z dimension of each voxel, in millimetres. Not required if a seed file is used, unless the seed dimensions do not agree with the diffusion dimensions. In either case, the physical coordinates of seed space MUST be aligned to diffusion space, ie a point in mm must be the same location in both, even if the voxel coordinates are different.

 

TRACTOGRAPHY OPTIONS

-ipthresh <value>
Curvature threshold for tracking, expressed as the minimum dot product between two streamline orientations calculated over the length of a voxel. If the dot product between the previous and current directions is less than this threshold, then the streamline terminates. The default setting will terminate fibres that curve by more than 80 degrees. Set this to -1.0 to disable curvature checking completely.

-curvethresh <value>
Curvature threshold for tracking, expressed as the maximum angle (in degrees) between between two streamline orientations calculated over the length of a voxel. If the angle is greater than this, then the streamline terminates.

-stepsize <value>
Step size for interpolated trackers. The default is one tenth of the slice thickness.

-noninterpolated
Use a noninterpolated tracking algorithm. This is the default.

-interpolate [vectors] (formerly -interpolated, which is now deprecated but still works)
Use an interpolated tracking algorithm. For deterministic streamlines, the interpolation scheme depends on the input data. If the input model is pd, the vector field is linearly interpolated. If the inputmodel is dt or multitensor, the tensor field is linearly interpolated unless the optional argument "vectors" is included. To interpolate the vector field of tensor principal directions, specify "-interpolate vectors".

For probabilistic methods, the "interpolated" tracking direction is chosen from the voxels surrounding the current point. The algorithm for choosing a direction is described by Behrens et al Magnetic Resonance in Medicine, 50:1077-1088, 2003.

-tend
Use the tensor deflection algorithm. The tracking direction is a weighted average of the local tensor principal eigenvector e_1, the previous direction v_{in}, and the tend term D * v_{in}. Two parameters f and g control the weighting, e_1 is weighted by f, v_{in} is weighted by (1-f)(1-g) and tend is weighted by (1-f)g. By default, f = 0 and g = 1, so tend follows D * v_{in}.

-tendf <f | f.[hdr, nii, mha]>
The tend parameter f controls the weighting given to the FACT term, which is the unmodified local fiber orientation in each voxel. The default is 0.0. The maximum value is 1.0, which is identical to FACT tracking. If f is a constant, it is applied to all voxels, if it is an image, the local value of f is used in each voxel.

-tendg <g>
The relative weighting of the tend term and the previous direction. This must be a constant between 0 (ignore tend) and 1.0 (ignore the previous direction). The default is 1.0.

-anisthresh <value>
Terminate fibres that enter a voxel with lower anisotropy than the threshold. The anisotropy can be calculated from the data or from a separate anisotropy map. If the data contains tensors, then the fractional anisotropy is used unless an anisotropy map is provided. If non-tensor input data is used, then a separate anisotropy map is required for a nonzero threshold. The default anisotropy threshold is 0.

-anisfile <file>
File containing the anisotropy map. This is required to apply an anisotropy threshold with non tensor data. If the map is supplied it is always used, even in tensor data. This allows an alternative scalar image to be used in place of fractional anisotropy. If the file is an Analyze image, specify the .hdr extension. Otherwise, it is treated as raw binary with the same data type as the input data.

-randomseed <seed>
An integer seed for the random number generator. The default seed is the current system time in milliseconds since midnight, January 1, 1970 UTC. Repeated runs of track using probabilistic methods will use the same sequence of random numbers on all platforms if a constant seed is used.

 

SEEDS

-seedpointmm <x> <y> <z>
The coordinates of a single seed point for tractography, in mm.

-seedpointvox <x> <y> <z>
The voxel coordinates of a single seed point for tractography. Tracking will proceed from the centre of voxel (x,,y,x,z). This option overrides -seedpointmm. The voxel indices are numbered from 0 to (data dimension) - 1.

-seedfile <file.[hdr | nii | mha | mhd]>
Nifti / ITK / Analyze image containing seed points. Streamlines will be seeded at the centre of all voxels with intensity greater than 0. The output is numbered according to the intensity of the seed. This option overrides -seedpointvox and -seedpointmm. If this is specified there is no need to use the -datadims and -voxeldims options if the seed space is the same as the diffusion space.

-seedlist <file>
Reads a list of seed points from the text file file. The points should be defined in mm space, where 0.0 0.0 0.0 is the corner of voxel (0,0,0) of the input image. Each component of the point should be on one line, separated by white space, eg


  1.0 2.0 3.0
  4.0 5.0 6.0
    ...

The entire list of points is treated as a single ROI by track.

 

PICO OPTIONS

-pdf <bingham | watson | acg>
Specifies the model for PICo parameters. The default is "bingham".

-iterations
Number of streamlines to generate at each seed point. The default is 5000, which takes about 30 - 60 seconds per seed point.

 

BAYES-DIRAC OPTIONS

-iterations
Number of streamlines to generate at each seed point. The default is 5000. The computational demands of Bayesian tracking is proportional to the size of the image and the number of measurements in each voxel. For most data, it is slower than model-based PICo tracking.

-pointset <index>
Index to the point set to use for Bayesian likelihood calculation. The index specifies a set of evenly distributed points on the unit sphere, where each point x defines two possible step directions (x or -x) for the streamline path. A larger number indexes a larger point set, which gives higher angular resolution at the expense of computation time. The default is index 1, which gives 1922 points, index 0 gives 1082 points, index 2 gives 3002 points.

-datamodel <model>
Model of the data for Bayesian tracking. The default model is "cylsymmdt", a diffusion tensor with cylindrical symmetry about e_1, ie L1 >= L_2 = L_3. The other model is "ballstick", the partial volume model (see ballstickfit).

-curvepriork <k>
Concentration parameter for the prior distribution on fibre orientations given the fibre orientation at the previous step. Larger values of k make curvature less likely. The default is 0, which gives a uniform distribution. The curvature prior is Watson distributed, so P(X_i | X_{i-1}) is proportional to exp[k (X_i^T X_{i-1})^2]. The optimum value is defined heuristically, but a suggested range of values is 0 to 3. You may use either this or -curvepriorg but not both.

-curvepriorg <g>
Concentration parameter for the prior distribution on fibre orientations given the fibre orientation at the previous step. Larger values of g make curvature less likely. The default is 0, which gives a uniform distribution. Given the previous tracking vector V the prior on the present step, P(X) is P(X) = K [X . V]^g for all positive values of [X . V], where K is a normalization constant. If the angle between the U and X is greater than 90 degrees, the prior is zero. A value of g=1 means that P(X | V) is directly proportional to the cosine of the angle between X and V. Using this option overrides a Watson curvature prior.

-extpriorfile <file>
Path to a PICo image produced by picopdfs. The PDF in each voxel is used as a prior for the fibre orientation in Bayesian tracking. The prior image must be in the same space as the diffusion data.

-pdf <bingham | watson | acg>
Specifies the model for PICo priors (not the curvature priors). The default is "bingham".

-extpriordatatype <type>
Datatype of the prior image. The default is "double".

 

BOOTSTRAP OPTIONS

-iterations
Number of streamlines to generate at each seed point. Bootstrapping is slower than model-based PICo.

-inversion <index>
Tensor reconstruction algorithm for repetition bootstrapping, see modelfit(1). Default is 1 (linear reconstruction, single tensor).

-schemefile <Scheme file name>
Specifies the scheme file for the diffusion MRI data, see camino(1).

-bsdatafiles <file1 file2 ... fileN>
Specifies files containing raw data for repetition bootstrapping. Use -inputfile for wild bootstrap data.

-bsmodel <model>
Model to fit to bootstrap data. This is used for repetition bootstrapping. May be "dt" (default) or "multitensor". This option may be omitted if -inversion is specified.

-bgmask <Mask file>
Provides the name of a file containing a background mask computed using, for example, FSL's bet2 program. The mask file contains zero in background voxels and non-zero in foreground. The file can be raw binary or an Analyze / ITK / NIFTI-1 image. Raw binary files must be big endian; the default data type is 16-bit shorts, but can be changed using the -maskdatatype option. The -bgmask option is only supported for raw data. For all other input models, the brain / background mask or threshold should be applied during the reconstruction of the data. The resulting brain / background segmentation is available to track. This image must be of the same dimensions as the diffusion data.

-wildbsmodel <model>
The model to fit to the data, for wild bootstrapping. The same model is used to generate the the wild bootstrap data. Must be "dt", which is the default.

 

OUTPUT OPTIONS

-gzip
Compress output using the gzip algorithm.

-outputtracts <format>

Output streamlines, in one of the following formats: raw binary, voxels, oogl, or ooglbinary. The default is to output raw tracts.

The raw streamline format is 32 bit float. For each streamline, the program outputs the number of points N in the streamline, the index of the seed point, followed by the (x,y,z) coordinates (in mm) of each point: [<N>, <seed point index>, <x_1>, <y_1>, <z_1>,...,<x_numPoints>, <y_N>, <z_N>, <N>,...,<z_N>], where the <seed point index> is the point on the streamline where tracking began.

The voxels format is 16-bit signed integer, and lists the integer indices of all M voxels that the streamline passes through, in the format [<M>, <seed point index>, <vx_1>, <vy_1>, <vz_1>,...,<vx_M>, <vy_M>, <vz_M>, M,...,<vz_M>]. The voxels are defined in the seed space.

The OOGL format option, oogl, outputs a LIST of OOGL VECT objects in ASCII format. The colour at each point on the streamline is an RGB vector that describes the local orientation as a combination of red (x), green (y) and blue (z). The ooglbinary option outputs the same objects in the OOGL binary format.

-outputroot <string>
Prepended onto all output file names. Used to segregate output by ROI. If this is not specified, all output goes to the file specified with the -outputfile option. If no output file is specified, the output goes to stdout.

-outputfile <string>
Name of the file to which all output should be written. This option is ignored if -outputroot is set.

 

PARALLEL TRACKING

-seedindex <index>
Only one specified seed is tracked. See the section PARALLEL TRACKING.

-regionindex <index>
Only one specified ROI is tracked. See the section PARALLEL TRACKING.

 

AUTHORS

Philip Cook <camino@cs.ucl.ac.uk>

 

SEE ALSO

modelfit(1), dtlutgen(1), picopdfs(1), countseeds(1), procstreamlines(1)

 

BUGS


 

Index

NAME
SYNOPSIS
DESCRIPTION
SEEDING TRACTOGRAPHY
OUTPUT
STEPS REQUIRED TO TRACK
STEPS REQUIRED FOR MODEL-BASED PICO
BOOTSTRAP TRACKING
BAYESIAN TRACKING WITH DIRAC PRIORS
INPUT MODELS
EXAMPLES
MULTIPLE-ROI TRACKING
PARALLEL TRACKING
OPTIONS
DATA OPTIONS
TRACTOGRAPHY OPTIONS
SEEDS
PICO OPTIONS
BAYES-DIRAC OPTIONS
BOOTSTRAP OPTIONS
OUTPUT OPTIONS
PARALLEL TRACKING
AUTHORS
SEE ALSO
BUGS

This document was created by man2html, using the manual pages.
Time: 02:06:54 GMT, December 10, 2011