Tractography

This page outlines TractoR’s facilities for tractography, otherwise known as tract tracing, virtual dissection or white matter segmentation. The package currently offers seed-based or mask-based probabilistic tractography, based on a tensor or ball-and-sticks diffusion model. Streamline pathways, visitation maps and connectivity profiles can be obtained.

The track script

Tractography in TractoR is run using the track script, which requires some fully preprocessed diffusion MR data, stored in a session directory. A simple example is

tractor track /data/subject1 TractName:global

which will generate 100 streamlines from each voxel within the brain mask of the session directory rooted at /data/subject1, and write out an image whose voxels indicate the total number of streamlines passing through in each case. The TractName option determines the name of all output files.

Note that TractoR’s tractography is probabilistic, in the sense that an element of randomness is involved, which means that repeated tracing from a given seed point will not in general produce equivalent results. There are three reasons for this:

Seeding options

Instead of using the whole brain mask to seed, there are a number of options to narrow down the scope of seeding. The most obvious is to specify a location explicitly, as in

tractor track /data/subject1 41,38,23 Streamlines:1000

which seeds 1000 streamlines from voxel location (41,38,23). Notice that these indices are 1-based, and correspond to the locations given by the internal viewer (tractor view).

A second option is to specify an image file as the second argument, which will be used as a mask.

Thirdly, if a parcellation is available, labelled regions in the parcellation may be specified by name or type (following the names in the auxiliary .lut file). For example,

tractor track /data/subject1 white_matter

will seed in all white matter voxels, if such a region is defined.

Further refinement of the seeding region is possible using options such as AnisotropyThreshold, which ignores seeds with a fractional anisotropy below a specified threshold, and BoundaryManipulation, which applies mathematical morphology to the seed region. For example,

tractor track /data/subject1 postcentral_gyrus_left BoundaryManipulation:outer

will extract the left postcentral gyrus from the parcellation, apply a morphological dilation and subtract the original mask, resulting in a set of seed voxels just outside this grey matter region. These will typically correspond to neighbouring white matter and cerebrospinal fluid. The latter can be removed by setting an AnisotropyThreshold.

Target regions

As well as the seeding regions, a set of target areas can be specified, and streamlines may optionally be required to pass through them, or else truncated when they do so. This is often a prelude to creating a diffusion-based connectivity graph. Like seed masks, target regions can be standalone image files or named regions from a parcellation. For example,

tractor track /data/subject1 white_matter TargetRegions:cerebal_cortex TerminateAtTargets:true MinTargetHits:2

seeds from every white matter voxel and terminates in cortical grey matter regions. The option MinTargetHits:2 stipulates that both ends of the streamline must reach a target, otherwise it is rejected and not included in the result.

If the actual streamlines are required, in addition to a visitation map or instead of it, the option RequirePaths:true can be added. In this case the streamlines are written to a .trk file, which can be opened in TrackVis for visualisation as shown below.

TrackVis visualisation of streamlines

If target regions are used then an auxiliary .trkl file will also be created. This is a TractoR-specific extension that stores information about which streamlines reached which targets, for rapid lookup in other scripts such as graph-build.

Basic information about the contents of a .trk file can be obtained using the trkinfo script, and further mapping, of the seed or end-points is available through the trkmap script.

Finally, the track scripts offers connectivity profiling, which is often performed voxelwise to identify the distribution of end-points of streamlines emanating from that location. The key option here is RequireProfiles.

tractor track /data/subject1 thalamus_left Strategy:voxelwise TargetRegions:cerebal_cortex TerminateAtTargets:true RequireProfiles:true

Here, the Strategy:voxelwise option forces tractography to be run separately for each seed point. In each case, the number of “hits” to each target are counted, and the result is written into a standard CSV file, which can be opened in R or Microsoft Excel.

Neighbourhood tractography

An alternative to conventional tractography is probabilistic neighbourhood tractography, which is focussed on automatic segmentation of predefined major tracts, in a way that is consistent across subjects. There are separate scripts for that, which the tutorial explores.