## table of contents

- unstable 2.1.0-5+b1
- experimental 2.2.0-1+b2

ANTSREGISTRATION(1) | User Commands | ANTSREGISTRATION(1) |

# NAME¶

antsRegistration - part of ANTS registration suite

# DESCRIPTION¶

## COMMAND:¶

- antsRegistration
- This program is a user-level registration application meant to utilize ITKv4-only classes. The user can specify any number of "stages" where a stage consists of a transform; an image metric; and iterations, shrink factors, and smoothing sigmas for each level. Note that explicitly setting the dimensionality, metric, transform, output, convergence, shrink-factors, and smoothing-sigmas parameters is mandatory.

## OPTIONS:¶

**--version**

- Get Version Information.

**-d**, **--dimensionality** 2/3

- This option forces the image to be treated as a specified-dimensional image. If not specified, we try to infer the dimensionality from the input image.

**-o**, **--output** outputTransformPrefix

- [outputTransformPrefix,<outputWarpedImage>,<outputInverseWarpedImage>]
- Specify the output transform prefix (output format is .nii.gz ). Optionally, one can choose to warp the moving image to the fixed space and, if the inverse transform exists, one can also output the warped fixed image. Note that only the images specified in the first metric call are warped. Use antsApplyTransforms to warp other images using the resultant transform(s).

**-j**, **--save-state** saveSateAsTransform

- Specify the output file for the current state of the registration. The state file is written to an hdf5 composite file. It is specially usefull if we want to save the current state of a SyN registration to the disk, so we can load and restore that later to continue the next registration process directly started from the last saved state. The output file of this flag is the same as the write-composite-transform, unless the last transform is a SyN transform. In that case, the inverse displacement field of the SyN transform is also added to the output composite transform. Again notice that this file cannot be treated as a transform, and restore-state option must be used to load the written file by this flag.

**-k**, **--restore-state** restoreStateAsATransform

- Specify the initial state of the registration which get immediately used to directly initialize the registration process. The flag is mutually exclusive with other intialization flags.If this flag is used, none of the initial-moving-transform and initial-fixed-transform cannot be used.

**-a**, **--write-composite-transform** 1/(0)

- Boolean specifying whether or not the composite transform (and its inverse, if it exists) should be written to an hdf5 composite file. This is false by default so that only the transform for each stage is written to file. <VALUES>: 0

**-p**, **--print-similarity-measure-interval**
<unsignedIntegerValue>

- Prints out the CC similarity metric measure between the full-size input fixed and the transformed moving images at each iteration a value of 0 (the default) indicates that the full scale computation should not take placeany value greater than 0 represents the interval of full scale metric computation. <VALUES>: 0

**--write-interval-volumes**
<unsignedIntegerValue>

- Writes out the output volume at each iteration. It helps to present the registration process as a short movie a value of 0 (the default) indicates that this option should not take placeany value greater than 0 represents the interval between the iterations which outputs are written to the disk. <VALUES>: 0

**-z**, **--collapse-output-transforms** (1)/0

- Collapse output transforms. Specifically, enabling this option combines all adjacent transforms wherepossible. All adjacent linear transforms are written to disk in the forman itk affine transform (called xxxGenericAffine.mat). Similarly, all adjacent displacement field transforms are combined when written to disk (e.g. xxxWarp.nii.gz and xxxInverseWarp.nii.gz (if available)).Also, an output composite transform including the collapsed transforms is written to the disk (called outputCollapsed(Inverse)Composite). <VALUES>: 1

**-i**, **--initialize-transforms-per-stage** (1)/0

- Initialize linear transforms from the previous stage. By enabling this option, the current linear stage transform is directly intialized from the previous stage's linear transform; this allows multiple linear stages to be run where each stage directly updates the estimated linear transform from the previous stage. (e.g. Translation -> Rigid -> Affine). <VALUES>: 0

**-n**,**--interpolation**Linear- NearestNeighbor MultiLabel[<sigma=imageSpacing>,<alpha=4.0>] Gaussian[<sigma=imageSpacing>,<alpha=1.0>] BSpline[<order=3>] CosineWindowedSinc WelchWindowedSinc HammingWindowedSinc LanczosWindowedSinc GenericLabel[<interpolator=Linear>]

- Several interpolation options are available in ITK. These have all been made available. Currently the interpolator choice is only used to warp (and possibly inverse warp) the final output image(s).

**-g**, **--restrict-deformation** PxQxR

- This option allows the user to restrict the optimization of the displacement field, translation, rigid or affine transform on a per-component basis. For example, if one wants to limit the deformation or rotation of 3-D volume to the first two dimensions, this is possible by specifying a weight vector of '1x1x0' for a deformation field or '1x1x0x1x1x0' for a rigid transformation. Low-dimensional restriction only works if there are no preceding transformations.

**-q**,**--initial-fixed-transform**initialTransform- [initialTransform,<useInverse>] [fixedImage,movingImage,initializationFeature]

- Specify the initial fixed transform(s) which get immediately incorporated into the composite transform. The order of the transforms is stack-esque in that the last transform specified on the command line is the first to be applied. In addition to initialization with ITK transforms, the user can perform an initial translation alignment by specifying the fixed and moving images and selecting an initialization feature. These features include using the geometric center of the images (=0), the image intensities (=1), or the origin of the images (=2).

**-r**,**--initial-moving-transform**initialTransform- [initialTransform,<useInverse>] [fixedImage,movingImage,initializationFeature]

- Specify the initial moving transform(s) which get immediately incorporated into the composite transform. The order of the transforms is stack-esque in that the last transform specified on the command line is the first to be applied. In addition to initialization with ITK transforms, the user can perform an initial translation alignment by specifying the fixed and moving images and selecting an initialization feature. These features include using the geometric center of the images (=0), the image intensities (=1), or the origin of the images (=2).

**-m**, **--metric**
CC[fixedImage,movingImage,metricWeight,radius,<samplingStrategy={None,Regular,Random}>,<samplingPercentage=[0,1]>]

- MI[fixedImage,movingImage,metricWeight,numberOfBins,<samplingStrategy={None,Regular,Random}>,<samplingPercentage=[0,1]>] Mattes[fixedImage,movingImage,metricWeight,numberOfBins,<samplingStrategy={None,Regular,Random}>,<samplingPercentage=[0,1]>] MeanSquares[fixedImage,movingImage,metricWeight,radius=NA,<samplingStrategy={None,Regular,Random}>,<samplingPercentage=[0,1]>] Demons[fixedImage,movingImage,metricWeight,radius=NA,<samplingStrategy={None,Regular,Random}>,<samplingPercentage=[0,1]>] GC[fixedImage,movingImage,metricWeight,radius=NA,<samplingStrategy={None,Regular,Random}>,<samplingPercentage=[0,1]>] ICP[fixedPointSet,movingPointSet,metricWeight,<samplingPercentage=[0,1]>,<boundaryPointsOnly=0>] PSE[fixedPointSet,movingPointSet,metricWeight,<samplingPercentage=[0,1]>,<boundaryPointsOnly=0>,<pointSetSigma=1>,<kNeighborhood=50>] JHCT[fixedPointSet,movingPointSet,metricWeight,<samplingPercentage=[0,1]>,<boundaryPointsOnly=0>,<pointSetSigma=1>,<kNeighborhood=50>,<alpha=1.1>,<useAnisotropicCovariances=1>] IGDM[fixedImage,movingImage,metricWeight,fixedMask,movingMask,<neighborhoodRadius=0x0>,<intensitySigma=0>,<distanceSigma=0>,<kNeighborhood=1>,<gradientSigma=1>]
- These image metrics are available--- CC: ANTS neighborhood cross correlation, MI: Mutual information, Demons: (Thirion), MeanSquares, and GC: Global Correlation. The "metricWeight" variable is used to modulate the per stage weighting of the metrics. The metrics can also employ a sampling strategy defined by a sampling percentage. The sampling strategy defaults to 'None' (aka a dense sampling of one sample per voxel), otherwise it defines a point set over which to optimize the metric. The point set can be on a regular lattice or a random lattice of points slightly perturbed to minimize aliasing artifacts. samplingPercentage defines the fraction of points to select from the domain. In addition, three point set metrics are available: Euclidean (ICP), Point-set expectation (PSE), and Jensen-Havrda-Charvet-Tsallis (JHCT).

**-t**,**--transform**Rigid[gradientStep]- Affine[gradientStep] CompositeAffine[gradientStep] Similarity[gradientStep] Translation[gradientStep] BSpline[gradientStep,meshSizeAtBaseLevel] GaussianDisplacementField[gradientStep,updateFieldVarianceInVoxelSpace,totalFieldVarianceInVoxelSpace] BSplineDisplacementField[gradientStep,updateFieldMeshSizeAtBaseLevel,totalFieldMeshSizeAtBaseLevel,<splineOrder=3>] TimeVaryingVelocityField[gradientStep,numberOfTimeIndices,updateFieldVarianceInVoxelSpace,updateFieldTimeVariance,totalFieldVarianceInVoxelSpace,totalFieldTimeVariance] TimeVaryingBSplineVelocityField[gradientStep,velocityFieldMeshSize,<numberOfTimePointSamples=4>,<splineOrder=3>] SyN[gradientStep,updateFieldVarianceInVoxelSpace,totalFieldVarianceInVoxelSpace] BSplineSyN[gradientStep,updateFieldMeshSizeAtBaseLevel,totalFieldMeshSizeAtBaseLevel,<splineOrder=3>] Exponential[gradientStep,updateFieldVarianceInVoxelSpace,velocityFieldVarianceInVoxelSpace,<numberOfIntegrationSteps>] BSplineExponential[gradientStep,updateFieldMeshSizeAtBaseLevel,velocityFieldMeshSizeAtBaseLevel,<numberOfIntegrationSteps>,<splineOrder=3>]

- Several transform options are available. The gradientStep or learningRate characterizes the gradient descent optimization and is scaled appropriately for each transform using the shift scales estimator. Subsequent parameters are transform-specific and can be determined from the usage. For the B-spline transforms one can also specify the smoothing in terms of spline distance (i.e. knot spacing).

**-c**,**--convergence**MxNxO- [MxNxO,<convergenceThreshold=1e-6>,<convergenceWindowSize=10>]

- Convergence is determined from the number of iterations per level and is determined by fitting a line to the normalized energy profile of the last N iterations (where N is specified by the window size) and determining the slope which is then compared with the convergence threshold.

**-s**, **--smoothing-sigmas** MxNxO...

- Specify the sigma of gaussian smoothing at each level. Units are given in terms of voxels ('vox') or physical spacing ('mm'). Example usage is '4x2x1mm' and '4x2x1vox' where no units implies voxel spacing.

**-f**, **--shrink-factors** MxNxO...

- Specify the shrink factor for the virtual domain (typically the fixed image) at each level.

**-u**, **--use-histogram-matching**

- Histogram match the images before registration.

**-l**, **--use-estimate-learning-rate-once**

- turn on the option that lets you estimate the learning rate step size only at the beginning of each level. * useful as a second stage of fine-scale registration.

**-w**, **--winsorize-image-intensities**
[lowerQuantile,upperQuantile]

- Winsorize data based on specified quantiles.

**-x**, **--masks** [fixedImageMask,movingImageMask]

- Image masks to limit voxels considered by the metric. Two options are allowed for mask specification: 1) Either the user specifies a single mask to be used for all stages or 2) the user specifies a mask for each stage. With the latter one can select to which stages masks are applied by supplying valid file names. If the file does not exist, a mask will not be used for that stage. Note that we handle the fixed and moving masks separately to enforce this constraint.

**--float**

- Use 'float' instead of 'double' for computations. <VALUES>: 0

**--minc**

- Use MINC file formats for transformations. <VALUES>: 0

**-v**, **--verbose** (0)/1

- Verbose output.

**-h**

- Print the help menu (short version).

**--help**

- Print the help menu. Will also print values used on the current command line call. <VALUES>: 1

October 2017 | antsRegistration 2.2.0 |