|
|
| Line 79: |
Line 79: |
| === Obscure Arguments === | | === Obscure Arguments === |
|
| |
|
| {| {{prettytable}}
| | To keep this page from getting cluttered, the table of obscure arguments is on a sub-page. Please see [[/Obscure Arguments]] for this table. |
| |-
| |
| ! {{Hl2}} | arg
| |
| ! {{Hl2}} | params
| |
| ! {{Hl2}} | description
| |
| ! {{Hl2}} | defaults
| |
| |-
| |
| ! colspan=4 | Output Files
| |
| |-
| |
| ! style="text-align:left;" | <tt>SAVESM</tt>
| |
| | n || Save sm file || 1
| |
| |-
| |
| ! colspan=4 | Output Mesh Control
| |
| |-
| |
| ! style="text-align:left;" | <tt>NUMPTR</tt>
| |
| | n || Number of points on a ring || 6
| |
| |-
| |
| ! style="text-align:left;" | <tt>MESHNOVSIZE</tt>
| |
| | n || Mesh coords not affected by vsize || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>OUTFA</tt>
| |
| | n || output FA as red color || 0
| |
| |-
| |
| ! colspan=4 | Integration
| |
| |-
| |
| ! style="text-align:left;" | <tt>USROI</tt>
| |
| | n || use region of interest for seed points generation || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>ROI</tt>
| |
| | f f f f f f || region of interest, specify center point and edge length || 0.0 0.0 0.0 0.0 0.0 0.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>chi0thresh</tt>
| |
| | f || isotropy model Chisqr threshold || 2.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>chi1thresh</tt>
| |
| | f || isotropy model Chisqr threshold || 2.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>chi2thresh</tt>
| |
| | f || isotropy model Chisqr threshold || 2.0
| |
| |-
| |
| ! colspan=4 | Culling
| |
| |-
| |
| ! style="text-align:left;" | <tt>wd</tt>
| |
| | n || Gaussian weighted distance: end points get higher weight. || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>USECUTOFFROI</tt>
| |
| | n || use cutoff ROI || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>ROICUTOFF</tt>
| |
| | f f f f f f || Cut off ROI, only streamtubes running through this ROI are kept || 0.0 0.0 0.0 0.0 0.0 0.0
| |
| |-
| |
| ! colspan=4 | Statistical Options
| |
| |-
| |
| ! style="text-align:left;" | <tt>chi0</tt>
| |
| | str || chisqr for isotropic model || /u/sz/diffusion/data/susumu/mri/Diff
| |
| |-
| |
| ! colspan=4 | Partial Volume
| |
| |-
| |
| ! style="text-align:left;" | <tt>pv</tt>
| |
| | str || Partial volume between iso and wm image path || /u/sz/diffusion/data/susumu/mri/Diff
| |
| |-
| |
| ! style="text-align:left;" | <tt>pv1thresh</tt>
| |
| | f || partial volume threshold for tracking || 0.5
| |
| |-
| |
| ! style="text-align:left;" | <tt>pvwm</tt>
| |
| | str || Partial volume between wm image path || /u/sz/diffusion/data/susumu/mri/Diff
| |
| |-
| |
| ! colspan=4 | Unknown
| |
| |-
| |
| ! style="text-align:left;" | <tt>cr</tt>
| |
| | f || Compress ratio, 0 means no compression || 0.3
| |
| |-
| |
| ! style="text-align:left;" | <tt>randlen</tt>
| |
| | f || random jittering diameter, coupled with seed || 1.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>randseed</tt>
| |
| | f || srand? 0: no srand, -1 srand(time), other:srand(other) || 0.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>ColSeed</tt>
| |
| | n || seed ColA data mask for seeds || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>Colmask</tt>
| |
| | str || Col mask image path || nomask
| |
| |-
| |
| ! style="text-align:left;" | <tt>ColmaskVx</tt>
| |
| | f f f || Vx of the mask Coord || 0.0 0.0 0.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>ColmaskVy</tt>
| |
| | f f f || Vx of the mask Coord || 0.0 0.0 0.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>ColmaskCtr</tt>
| |
| | f f f || Ctr of the mask Coord || 0.0 0.0 0.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>ColDTICtr</tt>
| |
| | f f f || Ctr of the DTI Coord || 0.0 0.0 0.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>ColDTIvsize</tt>
| |
| | f f f || vsize of the DTI Coord || 0.0 0.0 0.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>Colmaskvsize</tt>
| |
| | f f f || vsize of the mask Coord || 0.859376 0.859376 3.0
| |
| |-
| |
| ! style="text-align:left;" | <tt>ColS</tt>
| |
| | n || Number of random points used in a voxel in Colseeding || 4
| |
| |-
| |
| ! style="text-align:left;" | <tt>SS</tt>
| |
| | n || Using the tubes generated for the seed points of the Second Start || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>flatdir</tt>
| |
| | n || trace on a plane perpendicular to flatdir. 0: 1 0 0; 1: 0 1 0; 2: 0 0 1 || -1
| |
| |-
| |
| ! style="text-align:left;" | <tt>SEG</tt>
| |
| | str || Segmentation image || NoSegFile
| |
| |-
| |
| ! style="text-align:left;" | <tt>SF</tt>
| |
| | str || Seed-points file || NoSeedsFile
| |
| |-
| |
| ! style="text-align:left;" | <tt>OUTSF</tt>
| |
| | str || Output seed-points file || NoSeesFile
| |
| |-
| |
| ! style="text-align:left;" | <tt>USESF</tt>
| |
| | n || Use seed-points file || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>GMCON</tt>
| |
| | n || GM constaint extension step, 0 means no constraint || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>CROSSMIDBRAIN</tt>
| |
| | n || Col lesion test, keep only the tubes across midbrain || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>MIDBRAIN</tt>
| |
| | n n n || Definition of midbrain || 0 45 45
| |
| |-
| |
| ! style="text-align:left;" | <tt>FASAMPLING</tt>
| |
| | n || sample according to FA || 0
| |
| |-
| |
| ! colspan=4 | Multicompartment Input Files
| |
| |-
| |
| ! style="text-align:left;" | <tt>MC</tt>
| |
| | n || Multicompartment || 0
| |
| |-
| |
| ! style="text-align:left;" | <tt>dt1</tt>
| |
| | str || First diffusion tensor image path in multi compartemnt model || /u/sz/diffusion/data/susumu/mri/Diff
| |
| |-
| |
| ! style="text-align:left;" | <tt>dt2</tt>
| |
| | str || Second diffusion tensor image path in multi compartment model || /u/sz/diffusion/data/susumu/mri/Diff
| |
| |-
| |
| ! colspan=4 | Multicompartment Statistical Options
| |
| |-
| |
| ! style="text-align:left;" | <tt>chi1</tt>
| |
| | str || chisqr for single compartemnt model || /u/sz/diffusion/data/susumu/mri/Diff
| |
| |-
| |
| ! style="text-align:left;" | <tt>chi2</tt>
| |
| | str || chisqr multi compartemnt model || /u/sz/diffusion/data/susumu/mri/Diff
| |
| |}
| |
|
| |
|
| == Output Files == | | == Output Files == |
| Line 267: |
Line 114: |
| * [[Diffusion Processing Pipeline]] | | * [[Diffusion Processing Pipeline]] |
| * [[Brainapp]] | | * [[Brainapp]] |
| | |
| | [[Category:Diffusion MRI]] |
| | [[Category:Software]] |
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 bullshit names like "magnetite" and "fibrolite".
Publications
- Streamtube generation and culling:
- Tract-of-interest metrics:
See Also