Tubegen

From VrlWiki
Jump to navigation Jump to search

tubegen is a program that generates "streamtubes" from a tensor field. We define streamtubes as integral paths in the interpolated field of principle eigenvectors of the diffusion tensors. Many of our studies with clinical neuroscience collaborators use streamtubes as a proxy for axon tracts in the brain's white matter and involve computing measures over the streamtubes. We also do HCI and visualization research motivated by the fundamental difficulties of interacting with a complex jumble of tubes.

We use this program extensively in the diffusion MRI project and it is generally run at the end of the diffusion processing pipeline.

Technical Details

We use 2nd-order Runge-Kutta numerical integration with tricubic b-spline interpolation of the principle eigenvectors; the citation we've used for this process is:

Peter J. Basser, Sinisa Pajevic, Carlo Pierpaoli, Jeffrey Duda, and Akram Aldroubi. In vivo fiber tractography using DT-MRI data. Magnetic Resonance in Medicine, 44:625632, 2000. (PDF)

Once you've generated a bunch of streamtubes, it makes sense to remove some so that you get a visually or statistically representative set. The full streamtube process, including termination conditions, culling, and terminology, is described in Song's 2003 TVCG article .

tubegen may be found in $G/bin/tubegen. It generates a *.sm file, which brainapp reads in order to visualize and interact with the streamtubes.

Command-Line Arguments

Common Arguments

arg params description defaults
Input Files
dt str Diffusion tensor image path /u/sz/diffusion/data/susumu/mri/Diff
t2 str T2-weighted image path /u/sz/diffusion/data/susumu/mri/T2
FA str Fractional Anisotropy image ./d2mem/FA
Output Files
out str output sm file /map/gfx0/common0/diffusion/Interface/bin/tubegen/1.sm
Integration
ODE n ode method, 0:rk2, 1:rk4 0
cs n Max tube length 20
seed f f f Number of seed points to place in each voxel along each dimension (i.e. 1 1 1 generates one streamtube per voxel; 10 10 5 generates 500 streamtubes per voxel) 10.0 10.0 5.0
stepsize f Stepsize in mm 1.0
radius f streamtube radius 1.0
al f Low threshold for linear anisotropy 0.1
dth f Low threshold on distances in mm 0.5
t2thresh f t2 low threshold -1.0
Longshort n For integration, start from long one? (1) or short one(0), or longest of the two (2), or mean of the two (3) 0
Culling
cl f Min Average Linear Anisotropy 0.3
cd f Min Distance between tubes in mm 2.0

Obscure Arguments

To keep this page from getting cluttered, the table of obscure arguments is on a sub-page. Please see /Obscure Arguments for this table.

Output Files

In addition to the .sm file that you specify with the "out" argument, tubegen also generates corresponding .data, .info, .nocr, .size, and .wrl files in the same directory as the specified output.

It sure would be nice to know what all of them are and how they're structured...

streamtube Library

$G/src/streamtube/streamtube is where the top-level streamtube library lives. This depends on a bunch of helper libraries located in the directories above there with random names like "magnetite" and "fibrolite".

Publications

See Also