C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend
--- tend: Diffusion Image Processing and Analysis ---
tend about ... Information about this program and its use
tend grads ... Calculate balanced gradient directions for DWI acquisition
tend epireg ... Register diffusion-weighted echo-planar images
tend bmat ... Calculate B-matrix given gradient directions
tend estim ... Estimate tensors from a set of DW images
tend sim ... Simulate DW images from a tensor field
tend mfit ... Estimate models from a set of DW images
tend mconv ... convert from one model to another
tend msim ... Simulate DW images from an image of models
tend make ... Create DT volume from confidence and eigensystem
tend avg ... Average across tensor volumes
tend helix ... Generate twisting helical tensor field
tend sten ... Calculate structure tensors from a scalar field
tend glyph ... Generate postscript or ray-traced renderings of 3D glyphs
tend ellipse ... Generate postscript renderings of 2D glyphs
tend anplot ... Graph anisotropy metric in barycentric coords
tend anvol ... Apply an anisotropy metric to a DT volume
tend anscale ... Scale the anisotropic component of the tensors
tend anhist ... Generate barycentric histograms of anisotropy
tend triple ... Compute volume of shape triples
tend tconv ... Convert between different shape triples
tend point ... Describe everything about one sample in a DT volume
tend slice ... Slice 3D tensors to get slab/image of 3D/2D tensors
tend norm ... Normalize tensor size
tend fiber ... Fiber tractography, from one or more seeds
tend eval ... Calculate one or more eigenvalues in a DT volume
tend evalpow ... Modify shape by raising eigenvalues to some power
tend evalclamp ... Modify shape by clamping eigenvalues in some range
tend evaladd ... Modify shape by adding a constant to all eigenvalues
tend evalmult ... Modify shape by multiplying eigenvalues by a constant
tend log ... Calculates logarithm of the tensor
tend exp ... Calculates exp() of the tensor
tend evec ... Calculate one or more eigenvectors in a DT volume
tend evecrgb ... Make an RGB volume from an eigenvector and an anisotropy
tend evq ... Quantize directions of diffusion
tend unmf ... Applies and removes the measurement frame
tend expand ... Converts masked non-redundant tensor images to redundant
tend shrink ... Converts a 9-value DT volume to a 7-value DT volume
tend bfit ... Non-linear least-squares fitting of b-value curves
tend satin ... Generate a pretty synthetic DT volume
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend about
--- tend: Diffusion Image Processing and Analysis ---
Teem version 1.12.0, maybe 2014 or 2015 (not yet released)
"tend" is a command-line interface to much of the functionality in "ten",
a C library for diffusion image processing. Ten is one library in the "Teem"
collection of libraries. More information about Teem is at
<http://teem.sf.net>. A checkout of Teem source is available via:
svn co http://svn.code.sf.net/p/teem/code/teem/trunk teem
Long-term maintenance of this software depends on funding, and funding
depends on being able to document who is using it for what. If tend or Ten
has helped in your research, including for simple one-off experiments or
mundane data hacking, the developers of Teem would love to know. There are
multiple ways of communicating this. In your publications, consider adding a
line such as this in the Acknowledgments: "Data processing performed with the
tend tool, part of the Teem toolkit available at http://teem.sf.net".
Alternatively, please email glk@uchicago.edu and briefly describe how Teem
software has helped in your work. Please also consider joining the teem-users
mailing list: <http://lists.sourceforge.net/lists/listinfo/teem-users>. This
is the primary forum for feedback, questions, and feature requests.
Like "unu", another Teem command-line binary, it is often useful to chain
together invocations of tend with pipes, as in the following, which estimates
tensors from DWIs, takes a slice of the tensor volume, computes the standard
RGB colormap of the principal eigenvector, and then quantizes it to an 8-bit
PNG:
tend estim -i dwi.nhdr -B kvp -knownB0 true \
| tend slice -a 2 -p 30 \
| tend evecrgb -c 0 -a cl2 -gam 1.2 \
| unu quantize -b 8 -min 0 -max 1 -o z30-rgb.png
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend about (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend grads
grads: Calculate balanced gradient directions for DWI acquisition, based on a
simulation of anti-podal point pairs repelling each other on the unit sphere
surface. This can either distribute more uniformly a given set of gradients, or
it can make a new distribution from scratch. A more clever implementation could
decrease drag with time, as the solution converges, to get closer to the
minimum energy configuration faster. In the mean time, you can run a second
pass on the output of the first pass, using lower drag. A second phase of the
algorithm tries sign changes in gradient directions in trying to find an
optimally balanced set of directions. This uses a randomized search, so if it
doesn't seem to be finishing in a reasonable amount of time, try restarting
with a different "-seed".
Usage: grads [-n <# dir>] [-i <grads>] [-seed <value>] [-step <step>] \
[-single] [-snap <interval>] [-jitter <jitter>] [-miniter <# iters>] \
[-maxiter <# iters>] [-minvelo <vel>] [-exp <exponent>] [-dp <potential \
change>] [-minimprov <delta>] [-minmean <len>] [-izv <insert>] \
[-o <filename>]
-n <# dir> = desired number of diffusion gradient directions
(int); default: "6"
-i <grads> = initial gradient directions to start with, instead of
default random initial directions (overrides "-n")
(nrrd); default: ""
-seed <value> = seed value to used with airSrandMT() (unsigned int);
default: "42"
-step <step> = time increment in solver (double); default: "1.0"
-single = instead of the default behavior of tracking a pair of
antipodal points (appropriate for determining DWI
gradients), use only single points (appropriate for
who knows what).
-snap <interval> = specifies an interval between which snapshots of the
point positions should be saved out. By default (not
using this option), there is no such snapshot behavior
(int); default: "0"
-jitter <jitter> = amount by which to perturb points when given an input
nrrd (double); default: "0.1"
-miniter <# iters> = max number of iterations for which to run the
simulation (int); default: "0"
-maxiter <# iters> = max number of iterations for which to run the
simulation (int); default: "1000000"
-minvelo <vel> = low threshold on mean velocity of repelling points,
at which point repulsion phase of algorithm
terminates. (double); default: "0.00001"
-exp <exponent> = the exponent n that determines the potential energy
1/r^n. (double); default: "1"
-dp <potential change> = low threshold on fractional change of potential at
which point repulsion phase of algorithm terminates.
(double); default: "0.000000001"
-minimprov <delta> = in the second phase of the algorithm, when
stochastically balancing the sign of the gradients,
the (small) improvement in length of mean gradient
which triggers termination (as further improvements
are unlikely. (double); default: "0.00005"
-minmean <len> = if length of mean gradient falls below this, finish
the balancing phase (double); default: "0.0001"
-izv <insert> = adding zero vector at beginning of grads (bool);
default: "false"
-o <filename> = file to write output nrrd to (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend grads (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend epireg
epireg: Register diffusion-weighted echo-planar images. This registration
corrects the shear, scale, and translate along the phase encoding direction
(assumed to be the Y (second) axis of the image) caused by eddy currents from
the diffusion-encoding gradients with echo-planar imaging. The method is based
on calculating moments of segmented images, where the segmentation is a simple
procedure based on blurring (optional), thresholding and connected component
analysis. The registered DWIs are resampled with the chosen kernel, with the
separate DWIs stacked along axis 0.
Usage: epireg -i <dwi0 dwi1 ...> -g <grads> [-r <reference>] [-nv] [-p] \
[-bw <x,y blur>] [-t <DWI thresh>] [-ncc] [-f <fit frac>] [-k <kernel>] \
[-s <start #>] [-o <output/prefix>]
-i <dwi0 dwi1 ...> = all the diffusion-weighted images (DWIs), as separate 3D
nrrds, **OR**: one 4D nrrd of all DWIs stacked along axis
0 (1 or more nrrds)
-g <grads> = array of gradient directions, in the same order as the
associated DWIs were given to "-i", **OR** "-g kvp"
signifies that gradient directions should be read from the
key/value pairs of the DWI (string)
-r <reference> = which of the DW volumes (zero-based numbering) should be
used as the standard, to which all other images are
transformed. Using -1 (the default) means that 9 intrinsic
parameters governing the relationship between the gradient
direction and the resulting distortion are estimated and
fitted, ensuring good registration with the
non-diffusion-weighted T2 image (which is never explicitly
used in registration). Otherwise, by picking a specific
DWI, no distortion parameter estimation is done. (int);
default: "-1"
-nv = turn OFF verbose mode, and have no idea what stage
processing is at.
-p = save out intermediate steps of processing
-bw <x,y blur> = standard devs in X and Y directions of gaussian filter
used to blur the DWIs prior to doing segmentation. This
blurring does not effect the final resampling of
registered DWIs. Use "0.0 0.0" to say "no blurring"
(2 floats); default: "1.0 2.0"
-t <DWI thresh> = Threshold value to use on DWIs, to do initial separation
of brain and non-brain. By default, the threshold is
determined automatically by histogram analysis. (float);
default: "nan"
-ncc = do *NOT* do connected component (CC) analysis, after
thresholding and before moment calculation. Doing CC
analysis usually gives better results because it converts
the thresholding output into something much closer to a
real segmentation
-f <fit frac> = (only meaningful with "-r -1") When doing linear fitting
of the intrinsic distortion parameters, it is good to
ignore the slices for which the segmentation was poor. A
heuristic is used to rank the slices according to
segmentation quality. This option controls how many of the
(best) slices contribute to the fitting. Use "0" to
disable distortion parameter fitting. (float);
default: "0.70"
-k <kernel> = kernel for resampling DWIs along the phase-encoding
direction during final registration stage (kernel
specification); default: "cubic:0,0.5"
-s <start #> = first number to use in numbered sequence of output files.
(int); default: "1"
-o <output/prefix> = For separate 3D DWI volume inputs: prefix for output
filenames; will save out one (registered) DWI for each
input DWI, using the same type as the input. **OR**: For
single 4D DWI input: output file name. (string);
default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend epireg (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend bmat
bmat: Calculate B-matrix given gradient directions, assuming no diffusion
weighting from the other imaging gradients. The input is a 3-by-N array of
floats or doubles, each row being one of the gradient directions used for
diffusion-weighted imaging. A plain text file with one gradient per line, no
punctuation, is an easy way to specify this information. The gradient vector
coefficients are used as is, without normalization (since different gradient
strengths are sometimes desired). The output has one row of the B-matrix per
line, with coefficient ordering Bxx, Bxy, Bxz, Byy, Byz, Bzz, and with the
off-diagonal elements NOT pre-multiplied by 2.
Usage: bmat -i <grads> [-o <nout>]
-i <grads> = array of gradient directions (nrrd)
-o <nout> = output B matrix (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend bmat (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend estim
estim: Estimate tensors from a set of DW images. The tensor coefficient
weightings associated with each of the DWIs, the B-matrix, is given either as a
separate array, (see "tend bmat" usage info for details), or by the key-value
pairs in the DWI nrrd header. A "confidence" value is computed with the tensor,
based on a soft thresholding of the sum of all the DWIs, according to the
threshold and softness parameters.
Usage: estim [-old] [-sigma <sigma>] [-v <verbose>] [-est <estimate method>] \
[-wlsi <WLS iters>] [-fixneg] [-ee <filename>] [-eb <filename>] \
[-t <thresh>] [-soft <soft>] [-scale <scale>] [-mv <min val>] \
-B <B-list> [-b <b>] -knownB0 <bool> [-i <dwi0 dwi1 ...>] [-o <nout>]
-old = instead of the new tenEstimateContext code, use the
old tenEstimateLinear code
-sigma <sigma> = Rician noise parameter (float); default: "nan"
-v <verbose> = verbosity level (int); default: "0"
-est <estimate method> = estimation method to use. "lls": linear-least squares
(single-tensor-estimation); default: "lls"
-wlsi <WLS iters> = when using weighted-least-squares ("-est wls"), how
many iterations to do after the initial weighted fit.
(unsigned int); default: "1"
-fixneg = after estimating the tensor, ensure that there are no
negative eigenvalues by adding (to all eigenvalues)
the amount by which the smallest is negative
(corresponding to increasing the non-DWI image value).
-ee <filename> = Giving a filename here allows you to save out the
tensor estimation error: a value which measures how
much error there is between the tensor model and the
given diffusion weighted measurements for each sample.
By default, no such error calculation is saved.
(string); default: ""
-eb <filename> = In those cases where there is no B=0 reference image
given ("-knownB0 false"), giving a filename here
allows you to save out the B=0 image which is
estimated from the data. By default, this image value
is estimated but not saved. (string); default: ""
-t <thresh> = value at which to threshold the mean DWI value per
pixel in order to generate the "confidence" mask. By
default, the threshold value is calculated
automatically, based on histogram analysis. (double);
default: "nan"
-soft <soft> = how fuzzy the confidence boundary should be. By
default, confidence boundary is perfectly sharp
(float); default: "0"
-scale <scale> = After estimating the tensor, scale all of its
elements (but not the confidence value) by this
amount. Can help with downstream numerical precision
if values are very large or small. (float);
default: "1"
-mv <min val> = minimum plausible value (especially important for
linear least squares estimation) (double);
default: "1.0"
-B <B-list> = 6-by-N list of B-matrices characterizing the
diffusion weighting for each image. "tend bmat" is one
source for such a matrix; see its usage info for
specifics on how the coefficients of the B-matrix are
ordered. An unadorned plain text file is a great way
to specify the B-matrix.
**OR**
Can say just "-B kvp" to try to learn B matrices from
key/value pair information in input images.
(string)
-b <b> = "b" diffusion-weighting factor (units of sec/mm^2)
(double); default: "nan"
-knownB0 <bool> = Indicates if the B=0 non-diffusion-weighted reference
image is known, or if it has to be estimated along
with the tensor elements.
o if "true": in the given list of diffusion
gradients or B-matrices, there are one or more with
zero norm, which are simply averaged to find the B=0
reference image value
o if "false": there may or may not be
diffusion-weighted images among the input; the B=0
image value is going to be estimated along with the
diffusion model
(bool)
-i <dwi0 dwi1 ...> = all the diffusion-weighted images (DWIs), as separate
3D nrrds, **OR**: One 4D nrrd of all DWIs stacked
along axis 0 (1 or more nrrds); default: "-"
-o <nout> = output tensor volume (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend estim (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend sim
sim: Simulate DW images from a tensor field. The output will be in the same
form as the input to "tend estim". The B-matrices ("-B") can be the output from
"tend bmat", or the gradients can be given directly ("-g"); one of these is
required. Note that the input tensor field ("-i") is the basis of the output
per-axis fields and image orientation. NOTE: this includes the measurement
frame used in the input tensor field, which implies that the given gradients or
B-matrices are already expressed in that measurement frame.
Usage: sim [-old] [-sigma <sigma>] [-seed <seed>] [-g <grad list>] [-B <B \
matrix>] -r <reference field> [-i <tensor field>] [-b <b>] [-kvp] \
[-t <type>] [-o <nout>]
-old = don't use the new tenEstimateContext functionality
-sigma <sigma> = Rician noise parameter (float); default: "0.0"
-seed <seed> = seed value for RNG which creates noise (int);
default: "42"
-g <grad list> = gradient list, one row per diffusion-weighted image
(nrrd)
-B <B matrix> = B matrix, one row per diffusion-weighted image. Using
this overrides the gradient list input via "-g" (nrrd)
-r <reference field> = reference anatomical scan, with no diffusion weighting
(nrrd)
-i <tensor field> = input diffusion tensor field (nrrd)
-b <b> = b value for simulated scan (float); default: "1000"
-kvp = generate key/value pairs in the NRRD header
corresponding to the input b-value and gradients or
B-matrices.
-t <type> = output type of DWIs (type); default: "float"
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend sim (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend mfit
mfit: Estimate models from a set of DW images. More docs here.
Usage: mfit [-v <verbose>] -m <model> [-ns <# starts>] [-ml] [-sigma <sigma>] \
[-eps <eps>] [-mini <min iters>] [-maxi <max iters>] -knownB0 <bool> \
[-t <type>] [-i <dwi>] [-o <nout>] [-eo <filename>] [-co <filename>] \
[-io <filename>]
-v <verbose> = verbosity level (int); default: "0"
-m <model> = which model to fit. Use optional "b0+" prefix to indicate
that the B0 image should also be saved (independent of
whether it was known or had to be estimated, according to
"-knownB0"). (string)
-ns <# starts> = number of random starting points at which to initialize
fitting (unsigned int); default: "1"
-ml = do ML fitting, rather than least-squares, which also
requires setting "-sigma"
-sigma <sigma> = Gaussian/Rician noise parameter (double); default: "nan"
-eps <eps> = convergence epsilon (double); default: "0.01"
-mini <min iters> = minimum required # iterations for fitting. (unsigned int);
default: "3"
-maxi <max iters> = maximum allowable # iterations for fitting. (unsigned
int); default: "100"
-knownB0 <bool> = Indicates if the B=0 non-diffusion-weighted reference
image is known ("true") because it appears one or more
times amongst the DWIs, or, if it has to be estimated along
with the other model parameters ("false") (bool)
-t <type> = output type of model parameters (type); default: "float"
-i <dwi> = all the diffusion-weighted images in one 4D nrrd (nrrd)
-o <nout> = output parameter vector image (string); default: "-"
-eo <filename> = Giving a filename here allows you to save out the
per-sample fitting error. By default, no such error is
saved. (string); default: ""
-co <filename> = Giving a filename here allows you to save out the
per-sample convergence fraction. By default, no such error
is saved. (string); default: ""
-io <filename> = Giving a filename here allows you to save out the
per-sample number of iterations needed for fitting. By
default, no such error is saved. (string); default: ""
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend mfit (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend mconv
mconv: convert from one model to another. More docs here.
Usage: mconv -mo <model> [-mi <model>] [-i <nin>] [-o <nout>]
-mo <model> = which model to convert to (string)
-mi <model> = model converting from; if not set, will try to determine from
input nrrd (string); default: ""
-i <nin> = input nrrd of model parms (nrrd)
-o <nout> = output nrrd of model parms (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend mconv (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend msim
msim: Simulate DW images from an image of models. The output will be in the
same form as the input to "tend estim". The B-matrices ("-B") can be the output
from "tend bmat", or the gradients can be given directly ("-g"); one of these
is required. Note that the input tensor image ("-i") is the basis of the output
per-axis fields and image orientation. NOTE: this includes the measurement
frame used in the input tensor image, which implies that the given gradients or
B-matrices are already expressed in that measurement frame.
Usage: msim [-sigma <sigma>] [-seed <seed>] -g <grad list> [-b0 <b0 image>] \
[-i <model image>] -m <model> [-ib0 <bool>] [-b <b>] [-kvp <bool>] \
[-t <type>] [-o <nout>]
-sigma <sigma> = Gaussian/Rician noise parameter (double); default: "0.0"
-seed <seed> = seed value for RNG which creates noise (int); default: "42"
-g <grad list> = gradient list, one row per diffusion-weighted image (nrrd)
-b0 <b0 image> = reference non-diffusion-weighted ("B0") image, which may be
needed if it isn't part of give model param image (nrrd)
-i <model image> = input model image (nrrd)
-m <model> = model with which to simulate DWIs, which must be specified
if it is not indicated by the first axis in input model
image. (string)
-ib0 <bool> = insert a non-DW B0 image at the beginning of the experiment
specification (useful if the given gradient list doesn't
already have one) and hence also insert a B0 image at the
beginning of the output simulated DWIs (bool);
default: "false"
-b <b> = b value for simulated scan (double); default: "1000"
-kvp <bool> = generate key/value pairs in the NRRD header corresponding
to the input b-value and gradients. (bool); default: "true"
-t <type> = output type of DWIs (type); default: "float"
-o <nout> = output dwis (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend msim (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend make
make: Create DT volume from confidence and eigensystem. The input is in the
form of three nrrds, one for confidence values (3D), one for eigenvalues (4D,
three evals per voxel), and one for eigenvectors (4D, nine evec components per
voxel).
Usage: make -i <conf evals evecs> [-o <nout>]
-i <conf evals evecs> = input diffusion tensor volume (3 nrrds)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend make (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend avg
avg: Average across tensor volumes. The output is the same size as the any one
of the inputs. The individual tensors may be averaged in various ways.
Usage: avg -i <nin1 nin2 ...> [-t <type>] [-o <nout>]
-i <nin1 nin2 ...> = list of input diffusion tensor volumes (2 or more nrrds)
-t <type> = averaging method (interp type); default: "linear"
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend avg (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend helix
helix: Generate twisting helical tensor field. The main utility of such a
field is to debug handling of coordinate systems in tensor field visualization.
The "space directions" and "space origin" fields of the NRRD header determines
the mapping from coordinates in the index space of the image to coordinates in
the world space in which the image is sampled. The "measurement frame" field
determines the mapping from the coordinates of the tensor itself, to
coordinates of the world space. When these are correctly handled, the region of
high anisotropy is a right-handed helix (same as DNA). Using differing axes
sizes (via "-s") helps make sure that the raster ordering of axes is correct.
In addition, the tensors twist relative to the helix, which exposes handling of
the measurement frame. If you trace paths guided by the principal eigenvector
of the tensors, along the surface of the helical cylinder, you get another
right-handed helix, as if the the tensor field is modeling the result if
twisting a set of fibers into single-stranded helical bundle.
Usage: helix -s <size> [-ip <image orientation>] [-mp <measurement \
orientation>] [-b <boundary>] [-r <little radius>] [-R <big radius>] \
[-S <spacing>] [-a <angle>] [-nit] [-ev <eigenvalues>] \
[-bg <background>] [-v <verbose>] [-o <nout>]
-s <size> = sizes along fast, medium, and slow axes of the
sampled volume, often called "X", "Y", and "Z".
It is best to use slightly different sizes
here, to expose errors in interpreting axis
ordering (e.g. "-s 39 40 41") (3 ints)
-ip <image orientation> = quaternion quotient space orientation of image
(3 doubles); default: "0 0 0"
-mp <measurement orientation> = quaternion quotient space orientation of
measurement frame (3 doubles); default: "0 0 0"
-b <boundary> = parameter governing how fuzzy the boundary
between high and low anisotropy is. Use "-b 0"
for no fuzziness (double); default: "10"
-r <little radius> = (minor) radius of cylinder tracing helix
(double); default: "30"
-R <big radius> = (major) radius of helical turns (double);
default: "50"
-S <spacing> = spacing between turns of helix (along its
axis) (double); default: "100"
-a <angle> = maximal angle of twist of tensors along path.
There is no twist at helical core of path, and
twist increases linearly with radius around
this path. Positive twist angle with positive
spacing resulting in a right-handed twist
around a right-handed helix. (double);
default: "60"
-nit = changes behavior of twist angle as function of
distance from center of helical core: instead
of increasing linearly as describe above, be at
a constant angle
-ev <eigenvalues> = eigenvalues of tensors (in order) along
direction of coil, circumferential around coil,
and radial around coil. (3 doubles);
default: "0.006 0.002 0.001"
-bg <background> = eigenvalue of isotropic background (double);
default: "0.5"
-v <verbose> = verbose output (int); default: "1"
-o <nout> = output file (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend helix (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend sten
sten: Calculate structure tensors from a scalar field. Not a diffusion tensor,
but it is symmetric and positive-definate.
Usage: sten [-ds <diff. scale>] [-is <int. scale>] [-df <downsample factor>] \
[-i <nin>] [-o <nout>]
-ds <diff. scale> = differentiation scale, in pixels: the radius of the
kernel used for differentation to compute gradient
vectors (int); default: "1"
-is <int. scale> = integration scale, in pixels: the radius of the
kernel used for blurring outer products of gradients
in order compute structure tensors (int);
default: "2"
-df <downsample factor> = the factor by which to downsample when creating
volume of structure tensors (int); default: "1"
-i <nin> = input scalar volume (nrrd)
-o <nout> = output filename (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend sten (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend glyph
glyph: Generate postscript or ray-traced renderings of 3D glyphs. Whether the
output is postscript or a ray-traced image is controlled by the initial "rt"
flag (by default, the output is postscript). Because this is doing
viz/graphics, many parameters need to be set. Use a response file to simplify
giving the command-line options which aren't changing between invocations. The
postscript output is an EPS file, suitable for including as a figure in LaTeX,
or viewing with ghostview, or distilling into PDF. The ray-traced output is a 5
channel (R,G,B,A,T) float nrrd, suitable for "unu crop -min 0 0 0 -max 2 M M "
followed by "unu gamma" and/or "unu quantize -b 8".
Usage: glyph [@file ...] [-rt] [-v <level>] [-ctr <conf thresh>] [-a <aniso>] \
[-atr <aniso thresh>] [-p <pos array>] [-m <mask vol>] [-mtr <mask \
thresh>] [-g <glyph shape>] [-sh <sharpness>] [-gsc <scale>] \
[-c <evector #>] [-sat <saturation>] [-ga <aniso>] [-am <aniso mod>] \
[-gg <gray>] [-gam <gamma>] [-emap <env map>] [-adsp <phong>] \
[-bg <background>] [-ec <edge rgb>] [-slc <axis pos>] [-si <slice \
image>] [-off <slice offset>] [-sg <slice gamma>] [-sb <slice bias>] \
-fr <from point> [-at <at point>] [-up <up vector>] [-rh] [-dn <near \
clip>] [-df <far clip>] [-or] [-ur <uMin uMax>] [-vr <vMin vMax>] \
[-fv <fov>] [-gr <glyph res>] [-wd <3 widths>] [-psc <scale>] \
[-ca <angle>] [-nobg] [-concave] [-is <nx ny>] [-ns <# samp>] [-nt <# \
threads>] [-al <B U V N E>] [-ao] [-shadow <s>] [-hack <hack>] \
[-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-rt = generate ray-traced output. By default (not using this
option), postscript output is generated.
-v <level> = verbosity level (int); default: "0"
-ctr <conf thresh> = Glyphs will be drawn only for tensors with confidence
values greater than this threshold (float);
default: "0.5"
-a <aniso> = Which anisotropy metric to use for thresholding the data
points to be drawn (anisotropy metric); default: "fa"
-atr <aniso thresh> = Glyphs will be drawn only for tensors with anisotropy
greater than this threshold (float); default: "0.5"
-p <pos array> = Instead of being on a grid, tensors are at arbitrary
locations, as defined by this 3-by-N array of floats.
Doing this makes various other options moot (nrrd)
-m <mask vol> = Scalar volume (if any) for masking region in which
glyphs are drawn, in conjunction with "mtr" flag. (nrrd)
-mtr <mask thresh> = Glyphs will be drawn only for tensors with mask value
greater than this threshold (float); default: "0.5"
-g <glyph shape> = shape of glyph to use for display. Possibilities include
"box", "sphere", "cylinder", and "superquad"
(tenGlyphType); default: "box"
-sh <sharpness> = for superquadric glyphs, how much to sharp edges form as
a function of differences between eigenvalues. Higher
values mean that edges form more easily (float);
default: "3.0"
-gsc <scale> = over-all glyph size in world-space (float);
default: "0.01"
-c <evector #> = which eigenvector should determine coloring. (formally
"v") "0", "1", "2" are principal, medium, and minor
(int); default: "0"
-sat <saturation> = maximal saturation to use on glyph colors (use 0.0 to
create a black and white image) (float); default: "1.0"
-ga <aniso> = Which anisotropy metric to use for modulating the
saturation of the glyph color (anisotropy metric);
default: "fa"
-am <aniso mod> = How much to modulate glyph color saturation by
anisotropy (as chosen by "-ga"). If 1.0, then glyphs for
zero anisotropy data points will have no hue. (float);
default: "0.0"
-gg <gray> = desaturating glyph color due to low anisotropy tends
towards this gray level (float); default: "1.0"
-gam <gamma> = gamma to use on color components (after saturation)
(float); default: "0.7"
-emap <env map> = environment map to use for shading glyphs. By default,
there is no shading (nrrd)
-adsp <phong> = phong ambient, diffuse, specular components, and
specular power (4 floats); default: "0 1 0 30"
-bg <background> = background RGB color; each component in range [0.0,1.0]
(3 floats); default: "1 1 1"
-ec <edge rgb> = edge RGB color; each component in range [0.0,1.0]
(3 floats); default: "0 0 0"
-slc <axis pos> = For showing a gray-scale slice of anisotropy: the axis
and position along which to slice. Use "-1 -1" to signify
that no slice should be shown (2 ints); default: "-1 -1"
-si <slice image> = Instead of showing a slice of the anisotropy used to
cull glyphs, show something else. (nrrd)
-off <slice offset> = Offset from slice position to render slice at (so that
it doesn't occlude glyphs). (float); default: "0.0"
-sg <slice gamma> = Gamma to apply to values on slice. (float);
default: "1.7"
-sb <slice bias> = amount by which to bump up slice gray values prior to
gamma. (float); default: "0.05"
-fr <from point> = position of camera, used to determine view vector
(3 doubles)
-at <at point> = camera look-at point, used to determine view vector
(3 doubles); default: "0 0 0"
-up <up vector> = camera pseudo-up vector, used to determine view
coordinates (3 doubles); default: "0 0 1"
-rh = use a right-handed UVN frame (V points down)
-dn <near clip> = position of near clipping plane, relative to look-at
point (double); default: "-2"
-df <far clip> = position of far clipping plane, relative to look-at
point (double); default: "2"
-or = use orthogonal projection
-ur <uMin uMax> = range in U direction of image plane (2 doubles);
default: "-1 1"
-vr <vMin vMax> = range in V direction of image plane (2 doubles);
default: "-1 1"
-fv <fov> = if not NaN, vertical field-of-view, in degrees (double);
default: "nan"
-gr <glyph res> = (* postscript only *) resolution of polygonalization of
glyphs (all glyphs other than the default box) (int);
default: "10"
-wd <3 widths> = (* postscript only *) width of edges drawn for three
kinds of glyph edges: silohuette, crease, non-crease
(3 floats); default: "0.8 0.4 0.0"
-psc <scale> = (* postscript only *) scaling from screen space units to
postscript units (in points) (float); default: "300"
-ca <angle> = (* postscript only *) minimum crease angle (float);
default: "70"
-nobg = (* postscript only *) don't initially fill with
background color
-concave = use slightly buggy rendering method suitable for concave
or self-occluding objects
-is <nx ny> = (* ray-traced only *) image size (resolution) to render
(2 ints); default: "256 256"
-ns <# samp> = (* ray-traced only *) number of samples per pixel (must
be a square number) (int); default: "4"
-nt <# threads> = (* ray-traced only *) number of threads to be used for
rendering (int); default: "1"
-al <B U V N E> = (* ray-traced only *) brightness (B), view-space
location (U V N), and length of edge (E) of a square area
light source, for getting soft shadows. Requires lots
more samples "-ns" to converge. Use brightness 0 (the
default) to turn this off, and use environment map-based
shading ("-emap") instead. (5 floats);
default: "0 -1 -1 -4 0.7"
-ao = set up 6 area lights in a box to approximate ambient
occlusion
-shadow <s> = the extent to which shadowing occurs (float);
default: "1.0"
-hack <hack> = don't mind me (string)
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output file (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend glyph (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend ellipse
ellipse: Generate postscript renderings of 2D glyphs. Not much to look at
here.
Usage: ellipse [@file ...] [-ctr <conf thresh>] [-gsc <scale>] \
[-dot <radius>] [-wid <width>] [-inv] [-min <minX minY>] [-max <maxX \
maxY>] [-i <nin>] [-p <pos array>] [-s <stn array>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-ctr <conf thresh> = Glyphs will be drawn only for tensors with confidence
values greater than this threshold (float); default: "0.5"
-gsc <scale> = over-all glyph size (float); default: "1"
-dot <radius> = radius of little dot to put in middle of ellipse, or "0"
for no such dot (float); default: "0.0"
-wid <width> = with of lines for tractlets (float); default: "0.0"
-inv = use white ellipses on black background, instead of
reverse
-min <minX minY> = when using "-p", minimum corner (2 floats);
default: "-1 -1"
-max <maxX maxY> = when using "-p", maximum corner (2 floats);
default: "1 1"
-i <nin> = image of 2D tensors (nrrd)
-p <pos array> = Instead of being on a grid, tensors are at arbitrary
locations, as defined by this 2-by-N array of floats
(nrrd)
-s <stn array> = Locations given by "-p" have this connectivity (nrrd)
-o <nout> = output PostScript file (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend ellipse (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend anplot
anplot: Graph anisotropy metric in barycentric coords. The metrics all vary
from 0.0 to 1.0, and will be sampled in the lower right half of the image. The
plane on which they are sampled is a surface of constant trace. You may want to
use "unu resample -s = x0.57735 -k tent" to transform the triangle into a
30-60-90 triangle, and "ilk -t 1,-0.5,0,0,0.866,0 -k tent -0 u:0,1 -b pad -bg
0" (possibly followed by teem/src/limntest/triimg) to transform the domain into
an equilateral triangle.
Usage: anplot [@file ...] [-r <res>] [-w] [-hflip] [-nan] -a <aniso> \
[-o <nout>]
@file ... = response file(s) containing command-line arguments
-r <res> = resolution of anisotropy plot (int); default: "256"
-w = sample the whole triangle of constant trace, instead of just the
sixth of it in which the eigenvalues have the traditional sorted
order.
-hflip = flip the two bottom corners (swapping the place of linear and
planar)
-nan = set the pixel values outside the triangle to be NaN, instead of 0
-a <aniso> = Which anisotropy metric to plot. All the Westin metrics come in
two versions. Currently supported:
o "cl1", "cl2": Westin's linear
o "cp1", "cp2": Westin's planar
o "ca1", "ca2": Westin's linear + planar
o "cs1", "cs2": Westin's spherical (1-ca)
o "ct1", "ct2": GK's anisotropy type (cp/ca)
o "ra": Basser/Pierpaoli relative anisotropy/sqrt(2)
o "fa": Basser/Pierpaoli fractional anisotropy
o "vf": volume fraction = 1-(Basser/Pierpaoli volume ratio)
o "tr": trace
(anisotropy metric)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend anplot (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend anvol
anvol: Apply an anisotropy metric to a DT volume. The anisotropy value will be
zero in the locations which don't meet the given confidence threshold.
Usage: anvol [@file ...] -a <aniso> [-t <thresh>] [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-a <aniso> = Which anisotropy metric to plot. All the Westin metrics come in
two versions. Currently supported:
o "cl1", "cl2": Westin's linear
o "cp1", "cp2": Westin's planar
o "ca1", "ca2": Westin's linear + planar
o "cs1", "cs2": Westin's spherical (1-ca)
o "ct1", "ct2": GK's anisotropy type (cp/ca)
o "ra": Basser/Pierpaoli relative anisotropy/sqrt(2)
o "fa": Basser/Pierpaoli fractional anisotropy
o "vf": volume fraction = 1-(Basser/Pierpaoli volume ratio)
o "tr": trace
(anisotropy metric)
-t <thresh> = confidence threshold (float); default: "0.5"
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend anvol (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend anscale
anscale: Scale the anisotropic component of the tensors. This maintains the
isotropic component of the tensor, and fixes either the trace or determinant,
while scaling up (or down) the "deviatoric" component of the tensor. Good for
exaggerating the shape of nearly isotropic tensors.
Usage: anscale [@file ...] -s <scale> [-fd] [-mp] [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-s <scale> = Amount by which to scale deviatoric component of tensor. (float)
-fd = instead of fixing the per-sample trace (the default), fix the
determinant (ellipsoid volume)
-mp = after changing the eigenvalues of the tensor, enforce their
non-negative-ness. By default, no such constraint is imposed.
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend anscale (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend anhist
anhist: Generate barycentric histograms of anisotropy. The barycentric space
used is either one of Westin's triple of spherical, linear, and planar
anisotropy. The bin counts in the histogram are weighted by the confidence
value.
Usage: anhist [@file ...] [-v <westin version>] [-w <nweight>] -r <res> \
[-right] [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-v <westin version> = Which version of Westin's anisotropy metric triple to
use, either "1" or "2" (int); default: "1"
-w <nweight> = how to weigh contributions to histogram. By default (not
using this option), the increment is one bin count per
sample, but by giving a nrrd, the value in the nrrd at
the corresponding location will be the bin count
increment (nrrd)
-r <res> = resolution of anisotropy plot (int)
-right = sample a right-triangle-shaped region, instead of a
roughly equilateral triangle.
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend anhist (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend triple
triple: Compute volume of shape triples. The triple can be eignvalues,
invariants (J, K, R), and lots of other things.
Usage: triple [@file ...] -t <type> [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-t <type> = desired output triple type (tenTripleType)
-i <nin> = input tensor volume (nrrd)
-o <nout> = output triple volume (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend triple (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend tconv
tconv: Convert between different shape triples. The triples can be eignvalues,
invariants (J, K, R), and lots of other things.
Usage: tconv [@file ...] -t <inType outType> [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-t <inType outType> = given input and desired output type of triples
(2 tenTripleTypes)
-i <nin> = input array of triples (nrrd)
-o <nout> = output array (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend tconv (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend point
point: Describe everything about one sample in a DT volume.
Usage: point [@file ...] -p <x y z> [-i <nin>]
@file ... = response file(s) containing command-line arguments
-p <x y z> = coordinates of sample to be described (3 ints)
-i <nin> = input diffusion tensor volume (nrrd)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend point (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend slice
slice: Slice 3D tensors to get slab/image of 3D/2D tensors.
Usage: slice [@file ...] -a <axis> -p <pos> [-d <dim>] [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-a <axis> = axis along which to slice (int)
-p <pos> = position to slice at (int)
-d <dim> = dimension of desired tensor output, can be either 2 or 3 (int);
default: "3"
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output tensor slice (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend slice (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend norm
norm: Normalize tensor size. This operates on the eigenvalues of the tensor,
and allows normalizing some user-defined weighting ("-w") of the eigenvalues by
some user-defined amount ("-a").
Usage: norm [@file ...] -w <w0 w1 w2> [-a <amount>] [-t <target>] [-i <nin>] \
[-o <nout>]
@file ... = response file(s) containing command-line arguments
-w <w0 w1 w2> = relative weights to put on major, medium, and minor eigenvalue
when performing normalization (internally rescaled to have a
1.0 L1 norm). These weightings determine the tensors's "size".
(3 doubles)
-a <amount> = how much of the normalization to perform (float);
default: "1.0"
-t <target> = target size, post normalization (float); default: "1.0"
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend norm (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend fiber
fiber: Fiber tractography, from one or more seeds. A fairly complete
command-line interface to the tenFiber API.
Usage: fiber [@file ...] [-i <nin>] [-dwi] [-s <seed point>] [-ns <seed \
nrrd>] [-wsp] [-t <type>] [-n <intg>] [-k <kernel>] [-wp <which>] [-ap] \
[-wspo] [-step <step size>] -stop <stop1 ...> [-v <verbose>] \
[-nmat <transform>] [-o <out>]
@file ... = response file(s) containing command-line arguments
-i <nin> = input volume (nrrd)
-dwi = input volume is a DWI volume, not a single tensor volume
-s <seed point> = seed point for fiber; it will propogate in two opposite
directions starting from here (3 doubles); default: "0 0 0"
-ns <seed nrrd> = 3-by-N nrrd of seedpoints (nrrd)
-wsp = define seedpoint and output path in worldspace. Otherwise,
(without using this option) everything is in index space
-t <type> = fiber type; defaults to something (string)
-n <intg> = integration method for fiber tracking (fiber integration
method); default: "rk4"
-k <kernel> = kernel for reconstructing tensor field (kernel
specification)
-wp <which> = when doing multi-tensor tracking, index of path to follow
(made moot by "-ap") (unsigned int); default: "0"
-ap = follow all paths from (all) seedpoint(s), output will be
polydata, rather than a single 3-by-N nrrd, even if only a
single path is generated
-wspo = output should be in worldspace, even if input is not (this
feature is unstable and/or confusing)
-step <step size> = stepsize along fiber, in world space (double);
default: "0.01"
-stop <stop1 ...> = the conditions that should signify the end of a fiber, or
when to discard a fiber that is done propagating. Multiple
stopping criteria are logically OR-ed and tested at every
point along the fiber. Possibilities include:
o "aniso:<type>,<thresh>": require anisotropy to be
above the given threshold. Which anisotropy type is given
as with "tend anvol" (see its usage info)
o "len:<length>": limits the length, in world space, of
each fiber half
o "steps:<N>": the number of steps in each fiber half is
capped at N
o "conf:<thresh>": requires the tensor confidence value
to be above the given thresh
o "radius:<thresh>": requires that the radius of
curvature of the fiber stay above given thr
o "frac:<F>": in multi-tensor tracking, the fraction of
the tracked component must stay above F
o "minlen:<len>": discard fiber if its final whole
length is below len (not really a termination criterion)
o "minsteps:<N>": discard fiber if its final number of
steps is below N (not really a termination criterion)
(1 or more fiber stops)
-v <verbose> = verbosity level (int); default: "0"
-nmat <transform> = a 4x4 homogenous transform matrix (as a nrrd, or just a
text file) given with this option will be applied to the
output tractography vertices just prior to output (nrrd)
-o <out> = output fiber(s) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend fiber (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend eval
eval: Calculate one or more eigenvalues in a DT volume.
Usage: eval [@file ...] -c <c0 ...> [-t <thresh>] [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-c <c0 ...> = which eigenvalues should be saved out. "0" for the largest, "1"
for the middle, "2" for the smallest, "0 1", "1 2", "0 1 2" or
similar for more than one (1..3 ints)
-t <thresh> = confidence threshold (float); default: "0.5"
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend eval (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend evalpow
evalpow: Modify shape by raising eigenvalues to some power. The orientation of
the tensor is unchanged.
Usage: evalpow [@file ...] -p <power> [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-p <power> = Power to which to raise all the eigenvalues. (float)
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output tensor volume (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend evalpow (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend evalclamp
evalclamp: Modify shape by clamping eigenvalues in some range. The orientation
of the tensor is unchanged. Note that unlike "tend anscale", this operation can
completely change the shape of the tensor.
Usage: evalclamp [@file ...] -min <min> [-max <max>] [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-min <min> = Eigenvalues are clamped from below by this (the minimum output
eigenvalue). Use "nan" to signify that no minimum clamping should
be done. (float)
-max <max> = Eigenvalues are clamped from above by this (the maximum output
eigenvalue). Use "nan" to signify that no maximum clamping should
be done. (float); default: "nan"
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend evalclamp (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend evaladd
evaladd: Modify shape by adding a constant to all eigenvalues. The orientation
of the tensor is unchanged. Note that unlike "tend anscale", this operation can
completely change the shape of the tensor.
Usage: evaladd [@file ...] -v <value> [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-v <value> = Value to add to all eigenvalues (float)
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend evaladd (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend evalmult
evalmult: Modify shape by multiplying eigenvalues by a constant. The
orientation of the tensor is unchanged.
Usage: evalmult [@file ...] -v <value> [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-v <value> = Value to multiply eigenvalues by (float)
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend evalmult (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend log
log: Calculates logarithm of the tensor, which is based on finding the log of
the eigenvalues.
Usage: log [@file ...] [-i <nin>] -o <nout>
@file ... = response file(s) containing command-line arguments
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (string)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend log (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend exp
exp: Calculates exp() of the tensor, which is based on exp() of the
eigenvalues.
Usage: exp [@file ...] [-i <nin>] -o <nout>
@file ... = response file(s) containing command-line arguments
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (string)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend exp (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend evec
evec: Calculate one or more eigenvectors in a DT volume.
Usage: evec [@file ...] -c <c0 ...> [-t <thresh>] [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-c <c0 ...> = which eigenvalues should be saved out. "0" for the largest, "1"
for the middle, "2" for the smallest, "0 1", "1 2", "0 1 2" or
similar for more than one (1..3 ints)
-t <thresh> = confidence threshold (float); default: "0.5"
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend evec (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend evecrgb
evecrgb: Make an RGB volume from an eigenvector and an anisotropy.
Usage: evecrgb [@file ...] -c <evec index> -a <aniso> [-t <thresh>] \
[-bg <background>] [-gr <gray>] [-gam <gamma>] [-i <nin>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-c <evec index> = which eigenvector will be colored. "0" for the principal,
"1" for the middle, "2" for the minor (unsigned int)
-a <aniso> = Which anisotropy to use for modulating the saturation of
the colors. All the Westin metrics come in two versions.
Currently supported:
o "cl1", "cl2": Westin's linear
o "cp1", "cp2": Westin's planar
o "ca1", "ca2": Westin's linear + planar
o "cs1", "cs2": Westin's spherical (1-ca)
o "ct1", "ct2": GK's anisotropy type (cp/ca)
o "ra": Basser/Pierpaoli relative anisotropy/sqrt(2)
o "fa": Basser/Pierpaoli fractional anisotropy
o "vf": volume fraction = 1-(Basser/Pierpaoli volume
ratio)
o "tr": trace
(anisotropy metric)
-t <thresh> = confidence threshold (double); default: "0.5"
-bg <background> = gray level to use for voxels who's confidence is zero
(double); default: "0"
-gr <gray> = the gray level to desaturate towards as anisotropy
decreases (while confidence remains 1.0) (double);
default: "0"
-gam <gamma> = gamma to use on color components (double); default: "1"
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend evecrgb (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend evq
evq: Quantize directions of diffusion. Because VTK doesn't do
multi-dimensional colormaps, we have to quantize directions of diffusion
(usually just the principal eigenvector) in order to create the usual XYZ<->RGB
coloring. Because eigenvector directions are poorly defined in regions of low
anisotropy, the length of the vector (pre-quantization) is modulated by
anisotropy, requiring the selection of some anisotropy metric.
Usage: evq [@file ...] [-c <evec index>] -a <aniso> [-ns] [-i <nin>] \
[-o <nout>]
@file ... = response file(s) containing command-line arguments
-c <evec index> = Which eigenvector should be quantized: "0" for the direction
of fastest diffusion (eigenvector associated with largest
eigenvalue), "1" or "2" for other two eigenvectors
(associated with middle and smallest eigenvalue) (int);
default: "0"
-a <aniso> = Which anisotropy metric to scale the eigenvector with. All
the Westin metrics come in two versions. Currently
supported:
o "cl1", "cl2": Westin's linear
o "cp1", "cp2": Westin's planar
o "ca1", "ca2": Westin's linear + planar
o "cs1", "cs2": Westin's spherical (1-ca)
o "ct1", "ct2": GK's anisotropy type (cp/ca)
o "ra": Basser/Pierpaoli relative anisotropy/sqrt(2)
o "fa": Basser/Pierpaoli fractional anisotropy
o "vf": volume fraction = 1-(Basser/Pierpaoli volume
ratio)
o "tr": trace
(anisotropy metric)
-ns = Don't attenuate the color by anisotropy. By default (not
using this option), regions with low or no anisotropy are
very dark colors or black
-i <nin> = input diffusion tensor volume (nrrd)
-o <nout> = output image (floating point) (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend evq (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend unmf
unmf: Applies and removes the measurement frame. When the given tensor volume
has a measurement frame associated with it, this will apply the measurement
frame transform to all tensors to convert them into world space, and remove the
measurement frame from the nrrd.
Usage: unmf [@file ...] -i <nin> [-o <nout>]
@file ... = response file(s) containing command-line arguments
-i <nin> = input diffusion tensor volume (sorry, can't use usual default of
"-" for stdin because of hest quirk) (nrrd)
-o <nout> = output tensor volume (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend unmf (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend expand
expand: Converts masked non-redundant tensor images to redundant. For images
of 3D tensors, this converts from a 7-value tensor starting with the
confidence/mask value (conf, Dxx, Dxy, Dxz, Dyy, Dyz, Dzz) to a 9-value tensor
with the full matrix (Dxx, Dxy, Dxz, Dxy, Dyy, Dyz, Dxz, Dyz, Dzz). This is set
to all zeros when the confidence is below the given threshold. For images of 2D
tensors, the conversion is from (conf, Dxx, Dxy, Dyy) to (Dxx, Dxy, Dxy, Dyy).
Usage: expand [@file ...] [-t <thresh>] [-s <scale>] [-unmf] [-ro] [-roo] \
[-i <nin>] -o <nout>
@file ... = response file(s) containing command-line arguments
-t <thresh> = confidence level to threshold output tensors at. Should be
between 0.0 and 1.0. (float); default: "0.5"
-s <scale> = how to scale values before saving as 9-value tensor. Useful for
visualization tools which assume certain characteristic ranges of
eigenvalues (float); default: "1.0"
-unmf = apply and remove the measurement frame, if it exists
-ro = reduce general image orientation to axis-aligned spacings
-roo = reduce general image orientation to axis-aligned spacings, while
also making some effort to set axis mins from space origin
-i <nin> = input diffusion tensor volume, with 7 values per sample (nrrd)
-o <nout> = output tensor volume, with the 9 matrix components per sample
(string)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend expand (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend shrink
shrink: Converts a 9-value DT volume to a 7-value DT volume. The confidence
value is set to 1.0 everwhere. You can "unu splice" or nrrdSplice() something
else in its place later.
Usage: shrink [@file ...] [-i <nin>] -o <nout>
@file ... = response file(s) containing command-line arguments
-i <nin> = input diffusion tensor volume, with 9 matrix components per sample
(nrrd)
-o <nout> = output tensor volume, with the 7 values per sample (string)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend shrink (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend bfit
bfit: Non-linear least-squares fitting of b-value curves. Axis 0 is replaced
by three values: amp, dec, err, based on a non-linear least-squares fit of
amp*exp(-b*dec) to the range of DWI values along input axis 0, as a function of
changing b values.
Usage: bfit [@file ...] [-i <nin>] -b <b1 b2 ...> [-w <w1 w2 ...>] [-imax <# \
iter>] [-eps <epsilon>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-i <nin> = Input nrrd. List of DWIs from different b-values must be
along axis 0 (nrrd)
-b <b1 b2 ...> = b values across axis 0 of input nrrd (2 or more doubles)
-w <w1 w2 ...> = weights for samples in non-linear fitting
(2 or more doubles); default: "nan nan"
-imax <# iter> = max number of iterations to use in non-linear fitting, or,
use 0 to do only initial linear fit (int); default: "10"
-eps <epsilon> = epsilon convergence threshold for non-linear fitting
(double); default: "1"
-o <nout> = output tensor volume (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend bfit (ret=0)
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### BEGIN tend satin
satin: Generate a pretty synthetic DT volume. The surface of a sphere or torus
is covered with either linear or planar anisotropic tensors, or somewhere in
between.
Usage: satin [@file ...] [-t] -p <aniso parm> [-max <max ca1>] [-min <min \
ca1>] [-b <boundary>] [-br <ramp>] [-th <thickness>] [-scl <scaling>] \
[-evsc <eval scale>] [-s <size>] [-o <nout>]
@file ... = response file(s) containing command-line arguments
-t = generate a torus dataset, instead of the default
spherical
-p <aniso parm> = anisotropy parameter. 0.0 for one direction of linear
(along the equator for spheres, or along the larger
circumference for toruses), 1.0 for planar, 2.0 for the
other direction of linear (from pole to pole for spheres,
or along the smaller circumference for toruses) (float)
-max <max ca1> = maximum anisotropy in dataset, according to the "ca1"
anisotropy metric. "1.0" means completely linear or
completely planar anisotropy (float); default: "1.0"
-min <min ca1> = minimum anisotropy in dataset (float); default: "0.0"
-b <boundary> = parameter governing how fuzzy the boundary between high
and low anisotropy is. Use "-b 0" for no fuzziness
(float); default: "0.05"
-br <ramp> = how much to ramp upeffective "b" along Y axis. Use "-b 0"
for no such ramping. (float); default: "0.0"
-th <thickness> = parameter governing how thick region of high anisotropy
is (float); default: "0.3"
-scl <scaling> = scaling on size of sphere or torus within volume;
lowering this below default 1.0 produces more background
margin (float); default: "1.0"
-evsc <eval scale> = scaling of eigenvalues (float); default: "1.0"
-s <size> = dimensions of output volume. For size N, the output is
N x N x N for spheres, and 2N x 2N x N for toruses (int);
default: "32"
-o <nout> = output filename (string); default: "-"
C:/Projects/teem-Slicer-build/bin/Release/test_tendlist.exe: ################### END tend satin (ret=0)