Using Workbench Command

Workbench Command is a set of command-line tools that can be used to perform simple and complex operations within Connectome Workbench.

Full Documentation:

Documentation Home
-add-to-spec-file
ADD A FILE TO A SPECIFICATION FILE
   wb_command -add-to-spec-file
      <specfile> - the specification file to add to
      <structure> - the structure of the data file
      <filename> - the path to the file

      The resulting spec file overwrites the existing spec file.  If the spec
      file doesn't exist, it is created with default metadata.  The structure
      argument must be one of the following:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-annotation-resample
RESAMPLE AN ANNOTATION FILE TO DIFFERENT MESHES
   wb_command -annotation-resample
      <annotation-in> - the annotation file to resample
      <annotation-out> - name of resampled annotation file

      [-surface-pair] - repeatable - pair of surfaces for resampling surface
         annotations for one structure
         <source-surface> - the midthickness surface of the current mesh the
            annotations use
         <target-surface> - the midthickness surface of the mesh the
            annotations should be transferred to

      Resample an annotation file from the source mesh to the target mesh.

      Only annotations in surface space are modified, no changes are made to
      annotations in other spaces.  The -surface-pair option may be repeated
      for additional structures used by surface space annotations.


-backend-average-dense-roi
CONNECTOME DB BACKEND COMMAND FOR CIFTI AVERAGE DENSE ROI
   wb_command -backend-average-dense-roi
      <index-list> - comma separated list of cifti indexes to average
      <out-file> - file to write the average row to

      This command is probably not the one you are looking for, try
      -cifti-average-dense-roi.  It takes the list of cifti files to average
      from standard input, and writes its output as little endian, 32-bit
      integer of row size followed by the row as 32-bit floats.


-backend-average-roi-correlation
CONNECTOME DB BACKEND COMMAND FOR CIFTI AVERAGE ROI CORRELATION
   wb_command -backend-average-roi-correlation
      <index-list> - comma separated list of cifti indexes to average and then
         correlate
      <out-file> - file to write the average row to

      This command is probably not the one you are looking for, try
      -cifti-average-roi-correlation.  It takes the list of cifti files to
      average from standard input, and writes its output as little endian,
      32-bit integer of row size followed by the row as 32-bit floats.


-border-export-color-table
WRITE BORDER NAMES AND COLORS AS TEXT
   wb_command -border-export-color-table
      <border-file> - the input border file
      <table-out> - output - the output text file

      [-class-colors] - use class colors instead of the name colors

      Takes the names and colors of each border, and writes it to the same
      format as -metric-label-import expects.  By default, the borders are
      colored by border name, specify -class-colors to color them by class
      instead.  The key values start at 1 and follow the order of the borders
      in the file.


-border-file-export-to-caret5
EXPORT BORDER FILE TO CARET5 FILE FORMAT
   wb_command -border-file-export-to-caret5
      <border-file> - workbench border file
      <output-file-prefix> - prefix for name of output caret5
         border/borderproj/bordercolor files

      [-surface] - repeatable - specify an input surface
         <surface-in> - a surface file for unprojection of borders

      A Workbench border file may contain borders for multiple structures and
      borders that are both projected and unprojected.  It also contains a
      color table for the borders. 

      Caret5 has both border (unprojected) and border projection (projected)
      files.  In addition, each Caret5 border or border projection file
      typically contains data for a single structure. Caret5 also uses a border
      color file that associates colors with the names of the borders. 

      This command will try to output both Caret5 border and border projection
      files.  Each output border/border projection file will contains data for
      one structure so there may be many files created.  The structure name is
      included in the name of each border or border projection file that is
      created. 

      One Caret5 border color file will also be produced by this command. 

      Providing surface(s) as input parameters is optional, but recommended.
      Surfaces may be needed to create both projected and/or unprojected
      coordinates of borders.  If there is a failure to produce an output
      border or border projection due to a missing surface with the matching
      structure, an error message will be displayed and some output files will
      not be created. 

      When writing new files, this command will overwrite a file with the same
      name. 


-border-length
REPORT LENGTH OF BORDERS
   wb_command -border-length
      <border> - the input border file
      <surface> - the surface to measure the borders on

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      [-separate-pieces] - report lengths for multi-part borders as separate
         numbers

      [-hide-border-name] - don't print border name before each output

      For each border, print its length along the surface, in mm.  If a border
      has multiple parts, their lengths are summed before printing, unless
      -separate-pieces is specified.

      The -corrected-areas option is intended for when the length is not
      meaningfully measurable on individual surfaces, it is only an approximate
      correction for the reduction in structure of a group average surface.


-border-merge
MERGE BORDER FILES INTO A NEW FILE
   wb_command -border-merge
      <border-file-out> - output - the output border file

      [-border] - repeatable - specify an input border file
         <border-file-in> - a border file to use borders from

         [-select] - repeatable - select a single border to use
            <border> - the border number or name

            [-up-to] - use an inclusive range of borders
               <last-border> - the number or name of the last column to include

               [-reverse] - use the range in reverse order

      Takes one or more border files and makes a new border file from the
      borders in them.

      Example: wb_command -border-merge out.border -border first.border -select
      1 -border second.border

      This example would take the first border from first.border, followed by
      all borders from second.border, and write these to out.border.


-border-resample
RESAMPLE A BORDER FILE TO A DIFFERENT MESH
   wb_command -border-resample
      <border-in> - the border file to resample
      <current-sphere> - a sphere surface with the mesh that the metric is
         currently on
      <new-sphere> - a sphere surface that is in register with <current-sphere>
         and has the desired output mesh
      <border-out> - output - the output border file

      Resamples a border file, given two spherical surfaces that are in
      register.  Only borders that have the same structure as current-sphere
      will be resampled.


-border-to-rois
MAKE METRIC ROIS FROM BORDERS
   wb_command -border-to-rois
      <surface> - the surface the borders are drawn on
      <border-file> - the border file
      <metric-out> - output - the output metric file

      [-border] - create ROI for only one border
         <name> - the name of the border

      [-inverse] - use inverse selection (outside border)

      [-include-border] - include vertices the border is closest to

      By default, draws ROIs inside all borders in the border file, as separate
      metric columns.


-border-to-vertices
DRAW BORDERS AS VERTICES IN A METRIC FILE
   wb_command -border-to-vertices
      <surface> - the surface the borders are drawn on
      <border-file> - the border file
      <metric-out> - output - the output metric file

      [-border] - create ROI for only one border
         <name> - the name of the border

      Outputs a metric with 1s on vertices that follow a border, and 0s
      elsewhere.  By default, a separate metric column is created for each
      border.


-cifti-all-labels-to-rois
MAKE ROIS FROM ALL LABELS IN A CIFTI LABEL MAP
   wb_command -cifti-all-labels-to-rois
      <label-in> - the input cifti label file
      <map> - the number or name of the label map to use
      <cifti-out> - output - the output cifti file

      The output cifti file is a dscalar file with a column (map) for each
      label in the specified input map, other than the ??? label, each of which
      contains a binary ROI of all brainordinates that are set to the
      corresponding label.

      Most of the time, specifying '1' for the <map> argument will do what is
      desired.


-cifti-average
AVERAGE CIFTI FILES
   wb_command -cifti-average
      <cifti-out> - output - output cifti file

      [-exclude-outliers] - exclude outliers by standard deviation of each
         element across files
         <sigma-below> - number of standard deviations below the mean to
            include
         <sigma-above> - number of standard deviations above the mean to
            include

      [-mem-limit] - restrict memory used for file reading efficiency
         <limit-GB> - memory limit in gigabytes

      [-cifti] - repeatable - specify an input file
         <cifti-in> - the input cifti file

         [-weight] - give a weight for this file
            <weight> - the weight to use

      Averages cifti files together.  Files without -weight specified are given
      a weight of 1.  If -exclude-outliers is specified, at each element, the
      data across all files is taken as a set, its unweighted mean and sample
      standard deviation are found, and values outside the specified number of
      standard deviations are excluded from the (potentially weighted) average
      at that element.


-cifti-average-dense-roi
AVERAGE CIFTI ROWS ACROSS SUBJECTS BY ROI
   wb_command -cifti-average-dense-roi
      <cifti-out> - output - output cifti dscalar file

      [-cifti-roi] - cifti file containing combined weights
         <roi-cifti> - the roi cifti file

         [-in-memory] - cache the roi in memory so that it isn't re-read for
            each input cifti

      [-left-roi] - weights to use for left hempsphere
         <roi-metric> - the left roi as a metric file

      [-right-roi] - weights to use for right hempsphere
         <roi-metric> - the right roi as a metric file

      [-cerebellum-roi] - weights to use for cerebellum surface
         <roi-metric> - the cerebellum roi as a metric file

      [-vol-roi] - voxel weights to use
         <roi-vol> - the roi volume file

      [-left-area-surf] - specify the left surface for vertex area correction
         <left-surf> - the left surface file

      [-right-area-surf] - specify the right surface for vertex area correction
         <right-surf> - the right surface file

      [-cerebellum-area-surf] - specify the cerebellum surface for vertex area
         correction
         <cerebellum-surf> - the cerebellum surface file

      [-cifti] - repeatable - specify an input cifti file
         <cifti-in> - a cifti file to average across

      Averages rows for each map of the ROI(s), across all files.  ROI maps are
      treated as weighting functions, including negative values.  For
      efficiency, ensure that everything that is not intended to be used is
      zero in the ROI map.  If -cifti-roi is specified, -left-roi, -right-roi,
      -cerebellum-roi, and -vol-roi must not be specified.  If multiple
      non-cifti ROI files are specified, they must have the same number of
      columns.


-cifti-average-roi-correlation
CORRELATE ROI AVERAGE WITH ALL ROWS THEN AVERAGE ACROSS SUBJECTS
   wb_command -cifti-average-roi-correlation
      <cifti-out> - output - output cifti file

      [-cifti-roi] - cifti file containing combined weights
         <roi-cifti> - the roi cifti file

         [-in-memory] - cache the roi in memory so that it isn't re-read for
            each input cifti

      [-left-roi] - weights to use for left hempsphere
         <roi-metric> - the left roi as a metric file

      [-right-roi] - weights to use for right hempsphere
         <roi-metric> - the right roi as a metric file

      [-cerebellum-roi] - weights to use for cerebellum surface
         <roi-metric> - the cerebellum roi as a metric file

      [-vol-roi] - voxel weights to use
         <roi-vol> - the roi volume file

      [-left-area-surf] - specify the left surface for vertex area correction
         <left-surf> - the left surface file

      [-right-area-surf] - specify the right surface for vertex area correction
         <right-surf> - the right surface file

      [-cerebellum-area-surf] - specify the cerebellum surface for vertex area
         correction
         <cerebellum-surf> - the cerebellum surface file

      [-cifti] - repeatable - specify an input cifti file
         <cifti-in> - a cifti file to average across

      Averages rows for each map of the ROI(s), takes the correlation of each
      ROI average to the rest of the rows in the same file, applies the fisher
      small z transform, then averages the results across all files.  ROIs are
      always treated as weighting functions, including negative values.  For
      efficiency, ensure that everything that is not intended to be used is
      zero in the ROI map.  If -cifti-roi is specified, -left-roi, -right-roi,
      -cerebellum-roi, and -vol-roi must not be specified.  If multiple
      non-cifti ROI files are specified, they must have the same number of
      columns.


-cifti-change-mapping
CONVERT TO SCALAR, COPY MAPPING, ETC
   wb_command -cifti-change-mapping
      <data-cifti> - the cifti file to use the data from
      <direction> - which direction on <data-cifti> to replace the mapping
      <cifti-out> - output - the output cifti file

      [-series] - set the mapping to series
         <step> - increment between series points
         <start> - start value of the series

         [-unit] - select unit for series (default SECOND)
            <unit> - unit identifier

      [-scalar] - set the mapping to scalar

         [-name-file] - specify names for the maps
            <file> - text file containing map names, one per line

      [-from-cifti] - copy mapping from another cifti file
         <template-cifti> - a cifti file containing the desired mapping
         <direction> - which direction to copy the mapping from

      Take an existing cifti file and change one of the mappings.  Exactly one
      of -series, -scalar, or -from-cifti must be specified.  The direction can
      be either an integer starting from 1, or the strings 'ROW' or 'COLUMN'.

      The argument to -unit must be one of the following:

      SECOND
      HERTZ
      METER
      RADIAN


-cifti-convert
DUMP CIFTI MATRIX INTO OTHER FORMATS
   wb_command -cifti-convert

      [-to-gifti-ext] - convert to GIFTI external binary
         <cifti-in> - the input cifti file
         <gifti-out> - output - the output gifti file

      [-from-gifti-ext] - convert a GIFTI made with this command back into a
         CIFTI
         <gifti-in> - the input gifti file
         <cifti-out> - output - the output cifti file

         [-reset-timepoints] - reset the mapping along rows to timepoints,
            taking length from the gifti file
            <timestep> - the desired time between frames
            <timestart> - the desired time offset of the initial frame

            [-unit] - use a unit other than time
               <unit> - unit identifier (default SECOND)

         [-reset-scalars] - reset mapping along rows to scalars, taking length
            from the gifti file

         [-column-reset-scalars] - reset mapping along columns to scalar
            (useful for changing number of series in a sdseries file)

         [-replace-binary] - replace data with a binary file
            <binary-in> - the binary file that contains replacement data

            [-flip-endian] - byteswap the binary file

            [-transpose] - transpose the binary file

      [-to-nifti] - convert to NIFTI1
         <cifti-in> - the input cifti file
         <nifti-out> - output - the output nifti file

         [-smaller-file] - use better-fitting dimension lengths

         [-smaller-dims] - minimize the largest dimension, for tools that don't
            like large indices

      [-from-nifti] - convert a NIFTI (1 or 2) file made with this command back
         into CIFTI
         <nifti-in> - the input nifti file
         <cifti-template> - a cifti file with the dimension(s) and mapping(s)
            that should be used
         <cifti-out> - output - the output cifti file

         [-reset-timepoints] - reset the mapping along rows to timepoints,
            taking length from the nifti file
            <timestep> - the desired time between frames
            <timestart> - the desired time offset of the initial frame

            [-unit] - use a unit other than time
               <unit> - unit identifier (default SECOND)

         [-reset-scalars] - reset mapping along rows to scalars, taking length
            from the nifti file

      [-to-text] - convert to a plain text file
         <cifti-in> - the input cifti file
         <text-out> - output - the output text file

         [-col-delim] - choose string to put between elements in a row
            <delim-string> - the string to use (default is a tab character)

      [-from-text] - convert from plain text to cifti
         <text-in> - the input text file
         <cifti-template> - a cifti file with the dimension(s) and mapping(s)
            that should be used
         <cifti-out> - output - the output cifti file

         [-col-delim] - specify string that is between elements in a row
            <delim-string> - the string to use (default is any whitespace)

         [-reset-timepoints] - reset the mapping along rows to timepoints,
            taking length from the text file
            <timestep> - the desired time between frames
            <timestart> - the desired time offset of the initial frame

            [-unit] - use a unit other than time
               <unit> - unit identifier (default SECOND)

         [-reset-scalars] - reset mapping along rows to scalars, taking length
            from the text file

      This command is used to convert a full CIFTI matrix to/from formats that
      can be used by programs that don't understand CIFTI.  You must specify
      exactly one of -to-gifti-ext, -from-gifti-ext, -to-nifti, -from-nifti,
      -to-text, or -from-text.

      If you want to write an existing CIFTI file with a different CIFTI
      version, see -file-convert, and its -cifti-version-convert option.

      If you want part of the CIFTI file as a metric, label, or volume file,
      see -cifti-separate.  If you want to create a CIFTI file from metric
      and/or volume files, see the -cifti-create-* commands.

      If you want to import a matrix that is restricted to an ROI, first create
      a template CIFTI file matching that ROI using a -cifti-create-* command.
      After importing to CIFTI, you can then expand the file into a standard
      brainordinates space with -cifti-create-dense-from-template.  If you want
      to export only part of a CIFTI file, first create an roi-restricted CIFTI
      file with -cifti-restrict-dense-mapping.

      The -transpose option to -from-gifti-ext is needed if the replacement
      binary file is in column-major order.

      The -unit options accept these values:

      SECOND
      HERTZ
      METER
      RADIAN


-cifti-correlation
GENERATE CORRELATION OF ROWS IN A CIFTI FILE
   wb_command -cifti-correlation
      <cifti> - input cifti file
      <cifti-out> - output - output cifti file

      [-roi-override] - perform correlation from a subset of rows to all rows

         [-left-roi] - use an roi for left hempsphere
            <roi-metric> - the left roi as a metric file

         [-right-roi] - use an roi for right hempsphere
            <roi-metric> - the right roi as a metric file

         [-cerebellum-roi] - use an roi for cerebellum
            <roi-metric> - the cerebellum roi as a metric file

         [-vol-roi] - use an roi for volume
            <roi-vol> - the volume roi file

         [-cifti-roi] - use a cifti file for combined rois
            <roi-cifti> - the cifti roi file

      [-weights] - specify column weights
         <weight-file> - text file containing one weight per column

      [-fisher-z] - apply fisher small z transform (ie, artanh) to correlation

      [-no-demean] - instead of correlation, do dot product of rows, then
         normalize by diagonal

      [-covariance] - compute covariance instead of correlation

      [-mem-limit] - restrict memory usage
         <limit-GB> - memory limit in gigabytes

      For each row (or each row inside an roi if -roi-override is specified),
      correlate to all other rows.  The -cifti-roi suboption to -roi-override
      may not be specified with any other -*-roi suboption, but you may specify
      the other -*-roi suboptions together.

      When using the -fisher-z option, the output is NOT a Z-score, it is
      artanh(r), to do further math on this output, consider using -cifti-math.

      Restricting the memory usage will make it calculate the output in chunks,
      and if the input file size is more than 70% of the memory limit, it will
      also read through the input file as rows are required, resulting in
      several passes through the input file (once per chunk).  Memory limit
      does not need to be an integer, you may also specify 0 to calculate a
      single output row at a time (this may be very slow).


-cifti-correlation-gradient
CORRELATE CIFTI ROWS AND TAKE GRADIENT
   wb_command -cifti-correlation-gradient
      <cifti> - the input cifti
      <cifti-out> - output - the output cifti

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

         [-left-corrected-areas] - vertex areas to use instead of computing
            them from the left surface
            <area-metric> - the corrected vertex areas, as a metric

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

         [-right-corrected-areas] - vertex areas to use instead of computing
            them from the right surface
            <area-metric> - the corrected vertex areas, as a metric

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

         [-cerebellum-corrected-areas] - vertex areas to use instead of
            computing them from the cerebellum surface
            <area-metric> - the corrected vertex areas, as a metric

      [-surface-presmooth] - smooth on the surface before computing the
         gradient
         <surface-kernel> - the size of the gaussian surface smoothing kernel
            in mm, as sigma by default

      [-volume-presmooth] - smooth the volume before computing the gradient
         <volume-kernel> - the size of the gaussian volume smoothing kernel in
            mm, as sigma by default

      [-presmooth-fwhm] - smoothing kernel sizes are FWHM, not sigma

      [-undo-fisher-z] - apply the inverse fisher small z transform to the
         input

      [-fisher-z] - apply the fisher small z transform to the correlations
         before taking the gradient

      [-surface-exclude] - exclude vertices near each seed vertex from
         computation
         <distance> - geodesic distance from seed vertex for the exclusion
            zone, in mm

      [-volume-exclude] - exclude voxels near each seed voxel from computation
         <distance> - distance from seed voxel for the exclusion zone, in mm

      [-covariance] - compute covariance instead of correlation

      [-mem-limit] - restrict memory usage
         <limit-GB> - memory limit in gigabytes

      [-double-correlation] - do two correlations before taking the gradient

         [-fisher-z-first] - after the FIRST correlation, apply fisher small z
            transform (ie, artanh)

         [-no-demean-first] - instead of correlation for the FIRST operation,
            do dot product of rows, then normalize by diagonal

         [-covariance-first] - instead of correlation for the FIRST operation,
            compute covariance

      For each structure, compute the correlation of the rows in the structure,
      and take the gradients of the resulting rows, then average them.  Memory
      limit does not need to be an integer, you may also specify 0 to use as
      little memory as possible (this may be very slow).


-cifti-create-dense-from-template
CREATE CIFTI WITH MATCHING DENSE MAP
   wb_command -cifti-create-dense-from-template
      <template-cifti> - file to match brainordinates of
      <cifti-out> - output - the output cifti file

      [-series] - make a dtseries file instead of a dscalar
         <step> - increment between series points
         <start> - start value of the series

         [-unit] - select unit for series (default SECOND)
            <unit> - unit identifier

      [-volume-all] - specify an input volume file for all voxel data
         <volume-in> - the input volume file

         [-from-cropped] - the input is cropped to the size of the voxel data
            in the template file

      [-label-collision] - how to handle conflicts between label keys
         <action> - 'ERROR', 'SURFACES_FIRST', or 'LEGACY', default 'ERROR',
            use 'LEGACY' to match v1.4.2 and earlier

      [-cifti] - repeatable - use input data from a cifti file
         <cifti-in> - cifti file containing input data

      [-metric] - repeatable - use input data from a metric file
         <structure> - which structure to put the metric file into
         <metric-in> - input metric file

      [-label] - repeatable - use input data from surface label files
         <structure> - which structure to put the label file into
         <label-in> - input label file

      [-volume] - repeatable - use a volume file for a single volume
         structure's data
         <structure> - which structure to put the volume file into
         <volume-in> - the input volume file

         [-from-cropped] - the input is cropped to the size of the volume
            structure

      This command helps you make a new dscalar, dtseries, or dlabel cifti file
      that matches the brainordinate space used in another cifti file.  The
      template file must have the desired brainordinate space in the mapping
      along the column direction (for dtseries, dscalar, dlabel, and symmetric
      dconn this is always the case).  All input cifti files must have a brain
      models mapping along column and use the same volume space and/or surface
      vertex count as the template for structures that they contain.  If any
      input files contain label data, then input files with non-label data are
      not allowed, and the -series option may not be used.

      Any structure that isn't covered by an input is filled with zeros or the
      unlabeled key.

      The <structure> argument of -metric, -label or -volume must be one of the
      following:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT

      The argument to -unit must be one of the following:

      SECOND
      HERTZ
      METER
      RADIAN


-cifti-create-dense-scalar
CREATE A CIFTI DENSE SCALAR FILE
   wb_command -cifti-create-dense-scalar
      <cifti-out> - output - the output cifti file

      [-volume] - volume component
         <volume-data> - volume file containing all voxel data for all volume
            structures
         <structure-label-volume> - label volume file containing labels for
            cifti structures

      [-left-metric] - metric for left surface
         <metric> - the metric file

         [-roi-left] - roi of vertices to use from left surface
            <roi-metric> - the ROI as a metric file

      [-right-metric] - metric for right surface
         <metric> - the metric file

         [-roi-right] - roi of vertices to use from right surface
            <roi-metric> - the ROI as a metric file

      [-cerebellum-metric] - metric for the cerebellum
         <metric> - the metric file

         [-roi-cerebellum] - roi of vertices to use from right surface
            <roi-metric> - the ROI as a metric file

      [-name-file] - use a text file to set all map names
         <file> - text file containing map names, one per line

      All input files must have the same number of columns/subvolumes.  Only
      the specified components will be in the output cifti file.  Map names
      will be taken from one of the input files.  At least one component must
      be specified.

      See -volume-label-import and -volume-help for format details of label
      volume files.  The structure-label-volume should have some of the label
      names from this list, all other label names will be ignored:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-cifti-create-dense-timeseries
CREATE A CIFTI DENSE TIMESERIES
   wb_command -cifti-create-dense-timeseries
      <cifti-out> - output - the output cifti file

      [-volume] - volume component
         <volume-data> - volume file containing all voxel data for all volume
            structures
         <structure-label-volume> - label volume file containing labels for
            cifti structures

      [-left-metric] - metric for left surface
         <metric> - the metric file

         [-roi-left] - roi of vertices to use from left surface
            <roi-metric> - the ROI as a metric file

      [-right-metric] - metric for left surface
         <metric> - the metric file

         [-roi-right] - roi of vertices to use from right surface
            <roi-metric> - the ROI as a metric file

      [-cerebellum-metric] - metric for the cerebellum
         <metric> - the metric file

         [-roi-cerebellum] - roi of vertices to use from right surface
            <roi-metric> - the ROI as a metric file

      [-timestep] - set the timestep
         <interval> - the timestep, in seconds (default 1.0)

      [-timestart] - set the start time
         <start> - the time at the first frame, in seconds (default 0.0)

      [-unit] - use a unit other than time
         <unit> - unit identifier (default SECOND)

      All input files must have the same number of columns/subvolumes.  Only
      the specified components will be in the output cifti.  At least one
      component must be specified.

      See -volume-label-import and -volume-help for format details of label
      volume files.  The structure-label-volume should have some of the label
      names from this list, all other label names will be ignored:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT

      The -unit option accepts these values:

      SECOND
      HERTZ
      METER
      RADIAN


-cifti-create-label
CREATE A CIFTI LABEL FILE
   wb_command -cifti-create-label
      <cifti-out> - output - the output cifti file

      [-volume] - volume component
         <label-volume> - label volume file containing the data to be copied
         <structure-label-volume> - label volume file that defines which voxels
            to use

      [-left-label] - label file for left surface
         <label> - the label file

         [-roi-left] - roi of vertices to use from left surface
            <roi-metric> - the ROI as a metric file

      [-right-label] - label for left surface
         <label> - the label file

         [-roi-right] - roi of vertices to use from right surface
            <roi-metric> - the ROI as a metric file

      [-cerebellum-label] - label for the cerebellum
         <label> - the label file

         [-roi-cerebellum] - roi of vertices to use from right surface
            <roi-metric> - the ROI as a metric file

      All input files must have the same number of columns/subvolumes.  Only
      the specified components will be in the output cifti.  At least one
      component must be specified.

      The -volume option requires two volume arguments, the label-volume
      argument contains all labels you want to display (e.g. nuclei of the
      thalamus), whereas the structure-label-volume argument contains all CIFTI
      voxel-based structures you want to include data within (e.g.
      THALAMUS_LEFT, THALAMUS_RIGHT, etc).  See -volume-label-import and
      -volume-help for format details of label volume files.  If you just want
      the labels in voxels to be the structure names, you may use the same file
      for both arguments.  The structure-label-volume must use some of the
      label names from this list, all other label names in the
      structure-label-volume will be ignored:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-cifti-create-parcellated-from-template
MATCH PARCELS TO TEMPLATE BY NAME
   wb_command -cifti-create-parcellated-from-template
      <cifti-template> - a cifti file with the template parcel mapping along
         column
      <modify-direction> - which dimension of the output file should match the
         template (integer, 'ROW', or 'COLUMN')
      <cifti-out> - output - the output cifti file

      [-fill-value] - specify value to be used in parcels that don't match
         <value> - value to use (default 0)

      [-cifti] - repeatable - specify an input cifti file
         <cifti-in> - the input parcellated cifti file

      For each parcel name in the template mapping, find that name in an input
      cifti file and use its data in the output file.  All input cifti files
      must have a parcels mapping along <modify-direction> and matching
      mappings along other dimensions.  The direction can be either an integer
      starting from 1, or the strings 'ROW' or 'COLUMN'.


-cifti-create-scalar-series
IMPORT SERIES DATA INTO CIFTI
   wb_command -cifti-create-scalar-series
      <input> - input file
      <cifti-out> - output - output cifti file

      [-transpose] - use if the rows of the text file are along the scalar
         dimension

      [-name-file] - use a text file to set names on scalar dimension
         <file> - text file containing names, one per line

      [-series] - set the units and values of the series
         <unit> - the unit to use
         <start> - the value at the first series point
         <step> - the interval between series points

      Convert a text file containing series of equal length into a cifti file.
      The text file should have lines made up of numbers separated by
      whitespace, with no extra newlines between lines.

      The <unit> argument must be one of the following:

      SECOND
      HERTZ
      METER
      RADIAN


-cifti-cross-correlation
CORRELATE A CIFTI FILE WITH ANOTHER CIFTI FILE
   wb_command -cifti-cross-correlation
      <cifti-a> - first input cifti file
      <cifti-b> - second input cifti file
      <cifti-out> - output - output cifti file

      [-weights] - specify column weights
         <weight-file> - text file containing one weight per column

      [-fisher-z] - apply fisher small z transform (ie, artanh) to correlation

      [-mem-limit] - restrict memory usage
         <limit-GB> - memory limit in gigabytes

      Correlates every row in <cifti-a> with every row in <cifti-b>.  The
      mapping along columns in <cifti-b> becomes the mapping along rows in the
      output.

      When using the -fisher-z option, the output is NOT a Z-score, it is
      artanh(r), to do further math on this output, consider using -cifti-math.

      Restricting the memory usage will make it calculate the output in chunks,
      by reading through <cifti-b> multiple times.


-cifti-dilate
DILATE A CIFTI FILE
   wb_command -cifti-dilate
      <cifti-in> - the input cifti file
      <direction> - which dimension to dilate along, ROW or COLUMN
      <surface-distance> - the distance to dilate on surfaces, in mm
      <volume-distance> - the distance to dilate in the volume, in mm
      <cifti-out> - output - the output cifti file

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

         [-left-corrected-areas] - vertex areas to use instead of computing
            them from the left surface
            <area-metric> - the corrected vertex areas, as a metric

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

         [-right-corrected-areas] - vertex areas to use instead of computing
            them from the right surface
            <area-metric> - the corrected vertex areas, as a metric

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

         [-cerebellum-corrected-areas] - vertex areas to use instead of
            computing them from the cerebellum surface
            <area-metric> - the corrected vertex areas, as a metric

      [-bad-brainordinate-roi] - specify an roi of brainordinates to overwrite,
         rather than zeros
         <roi-cifti> - cifti dscalar or dtseries file, positive values denote
            brainordinates to have their values replaced

      [-nearest] - use nearest good value instead of a weighted average

      [-merged-volume] - treat volume components as if they were a single
         component

      [-legacy-mode] - use the math from v1.3.2 and earlier for weighted
         dilation

      For all data values designated as bad, if they neighbor a good value or
      are within the specified distance of a good value in the same kind of
      model, replace the value with a distance weighted average of nearby good
      values, otherwise set the value to zero.  If -nearest is specified, it
      will use the value from the closest good value within range instead of a
      weighted average.  When the input file contains label data, nearest
      dilation is used on the surface, and weighted popularity is used in the
      volume.

      The -*-corrected-areas options are intended for dilating on group average
      surfaces, but it is only an approximate correction for the reduction of
      structure in a group average surface.

      If -bad-brainordinate-roi is specified, all values, including those with
      value zero, are good, except for locations with a positive value in the
      ROI.  If it is not specified, only values equal to zero are bad.


-cifti-erode
ERODE A CIFTI FILE
   wb_command -cifti-erode
      <cifti-in> - the input cifti file
      <direction> - which dimension to dilate along, ROW or COLUMN
      <surface-distance> - the distance to dilate on surfaces, in mm
      <volume-distance> - the distance to dilate in the volume, in mm
      <cifti-out> - output - the output cifti file

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

         [-left-corrected-areas] - vertex areas to use instead of computing
            them from the left surface
            <area-metric> - the corrected vertex areas, as a metric

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

         [-right-corrected-areas] - vertex areas to use instead of computing
            them from the right surface
            <area-metric> - the corrected vertex areas, as a metric

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

         [-cerebellum-corrected-areas] - vertex areas to use instead of
            computing them from the cerebellum surface
            <area-metric> - the corrected vertex areas, as a metric

      [-merged-volume] - treat volume components as if they were a single
         component

      For all data values that are empty (for label data, unlabeled, for other
      data, zero), set the surrounding values to empty.  The surrounding values
      are defined as the immediate neighbors and all values in the same
      structure within the specified distance (-merged-volume treats all voxels
      as one structure).

      The -*-corrected-areas options are intended for eroding on group average
      surfaces, but it is only an approximate correction.


-cifti-estimate-fwhm
ESTIMATE FWHM SMOOTHNESS OF A CIFTI FILE
   wb_command -cifti-estimate-fwhm
      <cifti> - the input cifti file

      [-merged-volume] - treat volume components as if they were a single
         component

      [-column] - only output estimates for one column
         <column> - the column number

      [-whole-file] - estimate for the whole file at once, not each column
         separately

         [-demean] - subtract the mean image before estimating smoothness

      [-surface] - repeatable - specify an input surface
         <structure> - what structure to use this surface for
         <surface> - the surface file

      Estimate the smoothness of the components of the cifti file, printing the
      estimates to standard output.  If -merged-volume is used, all voxels are
      used as a single component, rather than separated by structure.

      <structure> must be one of the following:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-cifti-export-dense-mapping
WRITE INDEX TO ELEMENT MAPPING AS TEXT
   wb_command -cifti-export-dense-mapping
      <cifti> - the cifti file
      <direction> - which direction to export the mapping from, ROW or COLUMN

      [-volume-all] - export the the mapping of all voxels
         <text-out> - output - the output text file

         [-no-cifti-index] - don't write the cifti index in the output file

         [-structure] - write the structure each voxel belongs to in the output
            file

      [-surface] - repeatable - export the the mapping of one surface structure
         <structure> - the structure to output
         <text-out> - output - the output text file

         [-no-cifti-index] - don't write the cifti index in the output file

      [-volume] - repeatable - export the the mapping of one volume structure
         <structure> - the structure to output
         <text-out> - output - the output text file

         [-no-cifti-index] - don't write the cifti index in the output file

      This command produces text files that describe the mapping from cifti
      indices to surface vertices or voxels.  All indices are zero-based.  The
      default format for -surface is lines of the form:

      <cifti-index> <vertex>

      The default format for -volume and -volume-all is lines of the form:

      <cifti-index> <i> <j> <k>

      For each <structure> argument, use one of the following strings:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-cifti-extrema
FIND EXTREMA IN A CIFTI FILE
   wb_command -cifti-extrema
      <cifti> - the input cifti
      <surface-distance> - the minimum distance between extrema of the same
         type, for surface components
      <volume-distance> - the minimum distance between extrema of the same
         type, for volume components
      <direction> - which dimension to find extrema along, ROW or COLUMN
      <cifti-out> - output - the output cifti

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

      [-surface-presmooth] - smooth on the surface before finding extrema
         <surface-kernel> - the size of the gaussian surface smoothing kernel
            in mm, as sigma by default

      [-volume-presmooth] - smooth volume components before finding extrema
         <volume-kernel> - the size of the gaussian volume smoothing kernel in
            mm, as sigma by default

      [-presmooth-fwhm] - smoothing kernel distances are FWHM, not sigma

      [-threshold] - ignore small extrema
         <low> - the largest value to consider for being a minimum
         <high> - the smallest value to consider for being a maximum

      [-merged-volume] - treat volume components as if they were a single
         component

      [-sum-maps] - output the sum of the extrema maps instead of each map
         separately

      [-consolidate-mode] - use consolidation of local minima instead of a
         large neighborhood

      [-only-maxima] - only find the maxima

      [-only-minima] - only find the minima

      Finds spatial locations in a cifti file that have more extreme values
      than all nearby locations in the same component (surface or volume
      structure).  The input cifti file must have a brain models mapping along
      the specified direction.  COLUMN is the direction that works on dtseries
      and dscalar.  For dconn, if it is symmetric use COLUMN, otherwise use
      ROW.


-cifti-false-correlation
COMPARE CORRELATION LOCALLY AND ACROSS/THROUGH SULCI/GYRI
   wb_command -cifti-false-correlation
      <cifti-in> - the cifti file to use for correlation
      <3D-dist> - maximum 3D distance to check around each vertex
      <geo-outer> - maximum geodesic distance to use for neighboring
         correlation
      <geo-inner> - minimum geodesic distance to use for neighboring
         correlation
      <cifti-out> - output - the output cifti dscalar file

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

         [-dump-text] - dump the raw measures used to a text file
            <text-out> - the output text file

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

         [-dump-text] - dump the raw measures used to a text file
            <text-out> - the output text file

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

         [-dump-text] - dump the raw measures used to a text file
            <text-out> - the output text file

      For each vertex, compute the average correlation within a range of
      geodesic distances that don't cross a sulcus/gyrus, and the correlation
      to the closest vertex crossing a sulcus/gyrus.  A vertex is considered to
      cross a sulcus/gyrus if the 3D distance is less than a third of the
      geodesic distance.  The output file contains the ratio between these
      correlations, and some additional maps to help explain the ratio.


-cifti-find-clusters
FILTER CLUSTERS BY AREA/VOLUME
   wb_command -cifti-find-clusters
      <cifti> - the input cifti
      <surface-value-threshold> - threshold for surface data values
      <surface-minimum-area> - threshold for surface cluster area, in mm^2
      <volume-value-threshold> - threshold for volume data values
      <volume-minimum-size> - threshold for volume cluster size, in mm^3
      <direction> - which dimension to use for spatial information, ROW or
         COLUMN
      <cifti-out> - output - the output cifti

      [-less-than] - find values less than <value-threshold>, rather than
         greater

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

         [-corrected-areas] - vertex areas to use instead of computing them
            from the surface
            <area-metric> - the corrected vertex areas, as a metric

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

         [-corrected-areas] - vertex areas to use instead of computing them
            from the surface
            <area-metric> - the corrected vertex areas, as a metric

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

         [-corrected-areas] - vertex areas to use instead of computing them
            from the surface
            <area-metric> - the corrected vertex areas, as a metric

      [-cifti-roi] - search only within regions of interest
         <roi-cifti> - the regions to search within, as a cifti file

      [-merged-volume] - treat volume components as if they were a single
         component

      [-size-ratio] - ignore clusters smaller than a given fraction of the
         largest cluster in the structure
         <surface-ratio> - fraction of the structure's largest cluster area
         <volume-ratio> - fraction of the structure's largest cluster volume

      [-distance] - ignore clusters further than a given distance from the
         largest cluster in the structure
         <surface-distance> - how far from the largest cluster a cluster can
            be, edge to edge, in mm
         <volume-distance> - how far from the largest cluster a cluster can be,
            edge to edge, in mm

      [-start] - start labeling clusters from a value other than 1
         <startval> - the value to give the first cluster found

      Outputs a cifti file with nonzero integers for all brainordinates within
      a large enough cluster, and zeros elsewhere.  The integers denote cluster
      membership (by default, first cluster found will use value 1, second
      cluster 2, etc).  Cluster values are not reused across maps of the
      output, but instead keep counting up.  The input cifti file must have a
      brain models mapping on the chosen dimension, columns for .dtseries, and
      either for .dconn.  The ROI should have a brain models mapping along
      columns, exactly matching the mapping of the chosen direction in the
      input file.  Data outside the ROI is ignored.


-cifti-gradient
TAKE GRADIENT OF A CIFTI FILE
   wb_command -cifti-gradient
      <cifti> - the input cifti
      <direction> - which dimension to take the gradient along, ROW or COLUMN
      <cifti-out> - output - the output cifti

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

         [-left-corrected-areas] - vertex areas to use instead of computing
            them from the left surface
            <area-metric> - the corrected vertex areas, as a metric

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

         [-right-corrected-areas] - vertex areas to use instead of computing
            them from the right surface
            <area-metric> - the corrected vertex areas, as a metric

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

         [-cerebellum-corrected-areas] - vertex areas to use instead of
            computing them from the cerebellum surface
            <area-metric> - the corrected vertex areas, as a metric

      [-surface-presmooth] - smooth on the surface before computing the
         gradient
         <surface-kernel> - the size of the gaussian surface smoothing kernel
            in mm, as sigma by default

      [-volume-presmooth] - smooth on the surface before computing the gradient
         <volume-kernel> - the size of the gaussian volume smoothing kernel in
            mm, as sigma by default

      [-presmooth-fwhm] - smoothing kernel sizes are FWHM, not sigma

      [-average-output] - output the average of the gradient magnitude maps
         instead of each gradient map separately

      [-vectors] - output gradient vectors
         <vectors-out> - output - the vectors, as a dscalar file

      Performs gradient calculation on each component of the cifti file, and
      optionally averages the resulting gradients.  The -vectors and
      -average-output options may not be used together.  You must specify a
      surface for each surface structure in the cifti file.  The COLUMN
      direction should be faster, and is the direction that works on dtseries.
      For dconn, you probably want ROW, unless you are using -average-output.


-cifti-label-adjacency
MAKE ADJACENCY MATRIX OF A CIFTI LABEL FILE
   wb_command -cifti-label-adjacency
      <label-in> - the input cifti label file
      <adjacency-out> - output - the output cifti pconn adjacency matrix

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

      Find face-adjacent voxels and connected vertices that have different
      label values, and count them for each pair.  Put the resulting counts
      into a parcellated connectivity file, with the diagonal being zero.  This
      gives a rough estimate of how long or expansive the border between two
      labels is.


-cifti-label-export-table
EXPORT LABEL TABLE FROM CIFTI AS TEXT
   wb_command -cifti-label-export-table
      <label-in> - the input cifti label file
      <map> - the number or name of the label map to use
      <table-out> - output - the output text file

      Takes the label table from the cifti label map, and writes it to a text
      format matching what is expected by -cifti-label-import.


-cifti-label-import
MAKE A CIFTI LABEL FILE FROM A CIFTI FILE
   wb_command -cifti-label-import
      <input> - the input cifti file
      <label-list-file> - text file containing the values and names for labels
      <output> - output - the output cifti label file

      [-discard-others] - set any values not mentioned in the label list to the
         ??? label

      [-unlabeled-value] - set the value that will be interpreted as unlabeled
         <value> - the numeric value for unlabeled (default 0)

      [-drop-unused-labels] - remove any unused label values from the label
         table

      Creates a cifti label file from a cifti file with label-like values.  You
      may specify the empty string (use "") for <label-list-file>, which will
      be treated as if it is an empty file.  The label list file must have the
      following format (2 lines per label):

      <labelname>
      <key> <red> <green> <blue> <alpha>
      ...

      Label names are specified on a separate line from their value and color,
      in order to let label names contain spaces.  Whitespace is trimmed from
      both ends of the label name, but is kept if it is in the middle of a
      label.  Do not specify the "unlabeled" key in the file, it is assumed
      that 0 means not labeled unless -unlabeled-value is specified.  The value
      of <key> specifies what value in the imported file should be used as this
      label (these same key values are also used in the output file).  The
      values of <red>, <green>, <blue> and <alpha> must be integers from 0 to
      255, and will specify the color the label is drawn as (alpha of 255 means
      fully opaque, which is probably what you want).

      By default, it will create new label names with names like LABEL_5 for
      any values encountered that are not mentioned in the list file, specify
      -discard-others to instead set these values to the "unlabeled" key.


-cifti-label-modify-keys
CHANGE KEY VALUES IN A DLABEL FILE
   wb_command -cifti-label-modify-keys
      <cifti-in> - the input dlabel file
      <remap-file> - text file with old and new key values
      <cifti-out> - output - the output dlabel file

      [-column] - select a single column to use
         <column> - the column number or name

      <remap-file> should have lines of the form 'oldkey newkey', like so:

      3 5
      5 8
      8 2

      This would change the current label with key '3' to use the key '5'
      instead, 5 would use 8, and 8 would use 2.  Any collision in key values
      results in the label that was not specified in the remap file getting
      remapped to an otherwise unused key.  Remapping more than one key to the
      same new key, or the same key to more than one new key, results in an
      error.  This will not change the appearance of the file when displayed,
      as it will change the key values in the data at the same time.


-cifti-label-probability
FIND FREQUENCY OF CIFTI LABELS
   wb_command -cifti-label-probability
      <label-maps> - cifti dlabel file containing individual label maps from
         many subjects
      <probability-dscalar-out> - output - the relative frequencies of each
         label at each vertex/voxel

      [-exclude-unlabeled] - don't make a probability map of the unlabeled key

      This command outputs a set of soft ROIs, one for each label in the input,
      where the value is how many of the input maps had that label at that
      vertex/voxel, divided by the number of input maps.


-cifti-label-to-border
DRAW BORDERS AROUND CIFTI LABELS
   wb_command -cifti-label-to-border
      <cifti-in> - the input cifti dlabel file

      [-placement] - set how far along the edge border points are drawn
         <fraction> - fraction along edge from inside vertex (default 0.33)

      [-column] - select a single column
         <column> - the column number or name

      [-border] - repeatable - specify output file for a surface structure
         <surface> - the surface to use for neighbor and structure information
         <border-out> - output - the output border file

      For each surface, takes the labels on the matching structure and draws
      borders around the labels.  Use -column to only draw borders around one
      label map.


-cifti-label-to-roi
MAKE A CIFTI LABEL INTO AN ROI
   wb_command -cifti-label-to-roi
      <label-in> - the input cifti label file
      <scalar-out> - output - the output cifti scalar file

      [-name] - select label by name
         <label-name> - the label name that you want an roi of

      [-key] - select label by key
         <label-key> - the label key that you want an roi of

      [-map] - select a single label map to use
         <map> - the map number or name

      For each map in <label-in>, a map is created in <scalar-out> where all
      locations labeled with <label-name> or with a key of <label-key> are
      given a value of 1, and all other locations are given 0.  Exactly one of
      -name and -key must be specified.  Specify -map to use only one map from
      <label-in>.


-cifti-math
EVALUATE EXPRESSION ON CIFTI FILES
   wb_command -cifti-math
      <expression> - the expression to evaluate, in quotes
      <cifti-out> - output - the output cifti file

      [-fixnan] - replace NaN results with a value
         <replace> - value to replace NaN with

      [-override-mapping-check] - don't check the mappings for compatibility,
         only check length

      [-var] - repeatable - a cifti file to use as a variable
         <name> - the name of the variable, as used in the expression
         <cifti> - the cifti file to use as this variable

         [-select] - repeatable - select a single index from a dimension
            <dim> - the dimension to select from (1-based)
            <index> - the index number (1-based) or map name to use

            [-repeat] - repeat the selected values for each index of output in
               this dimension

      This command evaluates <expression> at each matrix element independently.
      There must be at least one -var option (to get the output layout from),
      even if the <name> specified in it isn't used in <expression>.

      To select a single column from a 2D file (most cifti files are 2D), use
      -select 1 <index>, where <index> is 1-based.  To select a single row from
      a 2D file, use -select 2 <index>.  Where -select is not used, the cifti
      files must have compatible mappings (e.g., brain models and parcels
      mappings must match exactly except for parcel names).  Use
      -override-mapping-check to skip this checking.

      Filenames are not valid in <expression>, use a variable name and a -var
      option with matching <name> to specify an input file.  The format of
      <expression> is as follows:

      Expressions consist of constants, variables, operators, parentheses, and
      functions, in infix notation, such as 'exp(-x + 3) * scale'.  Variables
      are strings of any length, using the characters a-z, A-Z, 0-9, and _, but
      may not take the name of a named constant.  Currently, there is only one
      named constant, PI.  The operators are +, -, *, /, ^, >, <, >=, <=, ==,
      !=, !, &&, ||.  These behave as in C, except that ^ is exponentiation,
      i.e. pow(x, y), and takes higher precedence than other binary operators
      (also, '-3^-4^-5' means '-(3^(-(4^-5)))').  The <=, >=, ==, and !=
      operators are given a small amount of wiggle room, equal to one millionth
      of the smaller of the absolute values of the values being compared.

      Comparison and logical operators return 0 or 1, you can do masking with
      expressions like 'x * (mask > 0)'.  For all logical operators, an input
      is considered true iff it is greater than 0.  The expression '0 < x < 5'
      is not syntactically wrong, but it will NOT do what is desired, because
      it is evaluated left to right, i.e. '((0 < x) < 5)', which will always
      return 1, as both possible results of a comparison are less than 5.  A
      warning is generated if an expression of this type is detected.  Use
      something like 'x > 0 && x < 5' to get the desired behavior.

      Whitespace between elements is ignored, ' sin ( 2 * x ) ' is equivalent
      to 'sin(2*x)', but 's in(2*x)' is an error.  Implied multiplication is
      not allowed, the expression '2x' will be parsed as a variable.
      Parentheses are (), do not use [] or {}.  Functions require parentheses,
      the expression 'sin x' is an error.

      The following functions are supported:

         sin: 1 argument, the sine of the argument (units are radians)
         cos: 1 argument, the cosine of the argument (units are radians)
         tan: 1 argument, the tangent of the argument (units are radians)
         asin: 1 argument, the inverse of sine of the argument, in radians
         acos: 1 argument, the inverse of cosine of the argument, in radians
         atan: 1 argument, the inverse of tangent of the argument, in radians
         atan2: 2 arguments, atan2(y, x) returns the inverse of tangent of
      (y/x), in radians, determining quadrant by the sign of both arguments
         sinh: 1 argument, the hyperbolic sine of the argument
         cosh: 1 argument, the hyperbolic cosine of the argument
         tanh: 1 argument, the hyperbolic tangent of the argument
         asinh: 1 argument, the inverse hyperbolic sine of the argument
         acosh: 1 argument, the inverse hyperbolic cosine of the argument
         atanh: 1 argument, the inverse hyperbolic tangent of the argument
         sinc: 1 argument, sinc(0) = 1, sin(x) / x otherwise
         ln: 1 argument, the natural logarithm of the argument
         exp: 1 argument, the constant e raised to the power of the argument
         log: 1 argument, the base 10 logarithm of the argument
         log2: 1 argument, the base 2 logarithm of the argument
         sqrt: 1 argument, the square root of the argument
         abs: 1 argument, the absolute value of the argument
         floor: 1 argument, the largest integer not greater than the argument
         round: 1 argument, the nearest integer, with ties rounded away from
      zero
         ceil: 1 argument, the smallest integer not less than the argument
         min: 2 arguments, min(x, y) returns y if (x > y), x otherwise
         max: 2 arguments, max(x, y) returns y if (x < y), x otherwise
         mod: 2 arguments, mod(x, y) = x - y * floor(x / y), or 0 if y == 0
         clamp: 3 arguments, clamp(x, low, high) = min(max(x, low), high)


-cifti-merge
MERGE OR SPLIT ON SERIES, SCALAR, OR LABEL DIMENSIONS
   wb_command -cifti-merge
      <cifti-out> - output - output cifti file

      [-direction] - merge in a direction other than along rows
         <direction> - the dimension to split/concatenate along, default ROW

      [-mem-limit] - restrict memory used for file reading efficiency
         <limit-GB> - memory limit in gigabytes

      [-cifti] - repeatable - specify an input cifti file
         <cifti-in> - a cifti file to use data from

         [-index] - repeatable - select a single index to use
            <index> - the index number (starting from 1), or name

            [-up-to] - use an inclusive range of indices
               <last-index> - the number or name of the last index to include

               [-reverse] - use the range in reverse order

      Given input CIFTI files for which mappings along the selected direction
      are the same type, all either series, scalars, or labels, and the other
      dimensions are index-compatible, this command concatenates the data in
      the specified indices/ranges along the selected direction (by default, on
      typical 2D cifti, concatenate horizontally, so rows become longer).  The
      direction can be either an integer starting from 1, or the strings 'ROW'
      or 'COLUMN'.

      Example: wb_command -cifti-merge out.dtseries.nii -cifti
      first.dtseries.nii -index 1 -cifti second.dtseries.nii

      This example would take the first column from first.dtseries.nii,
      followed by all columns from second.dtseries.nii, and write these columns
      to out.dtseries.nii.  


-cifti-merge-dense
MERGE CIFTI FILES ALONG DENSE DIMENSION
   wb_command -cifti-merge-dense
      <direction> - which dimension to merge along, ROW or COLUMN
      <cifti-out> - output - the output cifti file

      [-label-collision] - how to handle conflicts between label keys
         <action> - 'ERROR', 'FIRST', or 'LEGACY', default 'ERROR', use
            'LEGACY' to match v1.4.2 and earlier

      [-cifti] - repeatable - specify an input cifti file
         <cifti-in> - a cifti file to merge

      The input cifti files must have matching mappings along the direction not
      specified, and the mapping along the specified direction must be brain
      models.


-cifti-merge-parcels
MERGE CIFTI FILES ALONG PARCELS DIMENSION
   wb_command -cifti-merge-parcels
      <direction> - which dimension to merge along (integer, 'ROW', or
         'COLUMN')
      <cifti-out> - output - the output cifti file

      [-cifti] - repeatable - specify an input cifti file
         <cifti-in> - a cifti file to merge

      The input cifti files must have matching mappings along the direction not
      specified, and the mapping along the specified direction must be parcels.
      The direction can be either an integer starting from 1, or the strings
      'ROW' or 'COLUMN'.


-cifti-pairwise-correlation
CORRELATE PAIRED ROWS BETWEEN TWO CIFTI FILES
   wb_command -cifti-pairwise-correlation
      <cifti-a> - first input cifti file
      <cifti-b> - second input cifti file
      <cifti-out> - output - output cifti file

      [-fisher-z] - apply fisher small z transform (ie, artanh) to correlation

      [-override-mapping-check] - don't check the mappings for compatibility,
         only check length

      For each row in <cifti-a>, correlate it with the same row in <cifti-b>,
      and put the result in the same row of <cifti-out>, which has only one
      column.


-cifti-palette
SET PALETTE ON A CIFTI FILE
   wb_command -cifti-palette
      <cifti-in> - the cifti input
      <mode> - the mapping mode
      <cifti-out> - output - the output cifti file

      [-column] - select a single column for scalar maps
         <column> - the column number or name

      [-pos-percent] - percentage min/max for positive data coloring
         <pos-min-%> - the percentile for the least positive data
         <pos-max-%> - the percentile for the most positive data

      [-neg-percent] - percentage min/max for negative data coloring
         <neg-min-%> - the percentile for the least negative data
         <neg-max-%> - the percentile for the most negative data

      [-pos-user] - user min/max values for positive data coloring
         <pos-min-user> - the value for the least positive data
         <pos-max-user> - the value for the most positive data

      [-neg-user] - user min/max values for negative data coloring
         <neg-min-user> - the value for the least negative data
         <neg-max-user> - the value for the most negative data

      [-interpolate] - interpolate colors
         <interpolate> - boolean, whether to interpolate

      [-disp-pos] - display positive data
         <display> - boolean, whether to display

      [-disp-neg] - display positive data
         <display> - boolean, whether to display

      [-disp-zero] - display data closer to zero than the min cutoff
         <display> - boolean, whether to display

      [-palette-name] - set the palette used
         <name> - the name of the palette

      [-thresholding] - set the thresholding
         <type> - thresholding setting
         <test> - show values inside or outside thresholds
         <min> - lower threshold
         <max> - upper threshold

      [-inversion] - specify palette inversion
         <type> - the type of inversion

      NOTE: The output file must be a different file than the input file.

      For scalar maps, by default the palette is changed for every map, specify
      -column to change only one map.  Palette settings not specified will be
      taken from the first column for scalar maps, and from the existing file
      palette for other mapping types.  The <mode> argument must be one of the
      following:

      MODE_AUTO_SCALE
      MODE_AUTO_SCALE_ABSOLUTE_PERCENTAGE
      MODE_AUTO_SCALE_PERCENTAGE
      MODE_USER_SCALE

      The <name> argument to -palette-name must be one of the following:

      ROY-BIG-BL
      videen_style
      Gray_Interp_Positive
      Gray_Interp
      PSYCH-FIXED
      RBGYR20
      RBGYR20P
      RYGBR4_positive
      RGRBR_mirror90_pos
      Orange-Yellow
      POS_NEG_ZERO
      red-yellow
      blue-lightblue
      FSL
      power_surf
      black-red
      black-green
      black-blue
      black-red-positive
      black-green-positive
      black-blue-positive
      blue-black-green
      blue-black-red
      red-black-green
      fsl_red
      fsl_green
      fsl_blue
      fsl_yellow
      RedWhiteBlue
      cool-warm
      spectral
      RY-BC-BL
      magma
      JET256
      PSYCH
      PSYCH-NO-NONE
      ROY-BIG
      clear_brain
      fidl
      raich4_clrmid
      raich6_clrmid
      HSB8_clrmid
      POS_NEG
      Special-RGB-Volume

      The <type> argument to -thresholding must be one of the following:

      THRESHOLD_TYPE_OFF
      THRESHOLD_TYPE_NORMAL
      THRESHOLD_TYPE_FILE

      The <test> argument to -thresholding must be one of the following:

      THRESHOLD_TEST_SHOW_OUTSIDE
      THRESHOLD_TEST_SHOW_INSIDE

      The <type> argument to -inversion must be one of the following:

      OFF
      POSITIVE_WITH_NEGATIVE
      POSITIVE_NEGATIVE_SEPARATE


-cifti-parcel-mapping-to-label
CREATE DLABEL FROM PARCELLATED FILE
   wb_command -cifti-parcel-mapping-to-label
      <cifti-in> - the input parcellated file
      <direction> - which dimension to take the parcel map from, ROW or COLUMN
      <template-cifti> - a cifti file with the desired dense mapping along
         column
      <dlabel-out> - output - the output dense label file

      This command will output a dlabel file, useful for doing the same
      parcellation to another dense file.

      For ptseries, pscalar, plabel, pconn, and pdconn, using COLUMN for
      <direction> will work.


-cifti-parcellate
PARCELLATE A CIFTI FILE
   wb_command -cifti-parcellate
      <cifti-in> - the cifti file to parcellate
      <cifti-label> - a cifti label file to use for the parcellation
      <direction> - which mapping to parcellate (integer, ROW, or COLUMN)
      <cifti-out> - output - output cifti file

      [-spatial-weights] - use voxel volume and either vertex areas or metric
         files as weights

         [-left-area-surf] - use a surface for left vertex areas
            <left-surf> - the left surface to use, areas are in mm^2

         [-right-area-surf] - use a surface for right vertex areas
            <right-surf> - the right surface to use, areas are in mm^2

         [-cerebellum-area-surf] - use a surface for cerebellum vertex areas
            <cerebellum-surf> - the cerebellum surface to use, areas are in
               mm^2

         [-left-area-metric] - use a metric file for left vertex weights
            <left-metric> - metric file containing left vertex weights

         [-right-area-metric] - use a metric file for right vertex weights
            <right-metric> - metric file containing right vertex weights

         [-cerebellum-area-metric] - use a metric file for cerebellum vertex
            weights
            <cerebellum-metric> - metric file containing cerebellum vertex
               weights

      [-cifti-weights] - use a cifti file containing weights
         <weight-cifti> - the weights to use, as a cifti file

      [-method] - specify method of parcellation (default MEAN, or MODE if
         label data)
         <method> - the method to use to assign parcel values from the values
            of member brainordinates

      [-exclude-outliers] - exclude non-numeric values and outliers from each
         parcel by standard deviation
         <sigma-below> - number of standard deviations below the mean to
            include
         <sigma-above> - number of standard deviations above the mean to
            include

      [-only-numeric] - exclude non-numeric values

      [-fill-value] - specify value to use in empty parcels (default 0)
         <value> - the value to fill empty parcels with

      [-nonempty-mask-out] - output a matching pscalar file that has 0s in
         empty parcels, and 1s elsewhere
         <mask-out> - output - the output mask file

      [-legacy-mode] - use the old behavior, parcels are defined by the
         intersection between labels and valid data, and empty parcels are
         discarded

      [-include-empty] - deprecated: now the default behavior

      Each label (other than the unlabeled key) in the cifti label file will be
      treated as a parcel, and all rows or columns of data within the parcel
      are averaged together to form the parcel's output row or column.  If
      -legacy-mode is specified, parcels will be defined as the overlap between
      a label and the data, with no errors for missing data vertices or voxels,
      and empty parcels discarded.  The direction can be either an integer
      starting from 1, or the strings 'ROW' or 'COLUMN'.  For dtseries or
      dscalar, use COLUMN.  If you are parcellating a dconn in both directions,
      parcellating by ROW first will use much less memory.

      NOTE: the parcels in the output file are sorted by the numeric label
      keys, in ascending order.

      The parameter to the -method option must be one of the following:

      MAX: the maximum value
      MIN: the minimum value
      INDEXMAX: the 1-based index of the maximum value
      INDEXMIN: the 1-based index of the minimum value
      SUM: add all values
      PRODUCT: multiply all values
      MEAN: the mean of the data
      STDEV: the standard deviation (N denominator)
      SAMPSTDEV: the sample standard deviation (N-1 denominator)
      VARIANCE: the variance of the data
      TSNR: mean divided by sample standard deviation (N-1 denominator)
      COV: sample standard deviation (N-1 denominator) divided by mean
      L2NORM: square root of sum of squares
      MEDIAN: the median of the data
      MODE: the mode of the data
      COUNT_NONZERO: the number of nonzero elements in the data

      The -*-weights options are mutually exclusive and may only be used with
      MEAN (default), SUM, STDEV, SAMPSTDEV, VARIANCE, MEDIAN, or MODE (default
      for label data).


-cifti-reduce
PERFORM REDUCTION OPERATION ON A CIFTI FILE
   wb_command -cifti-reduce
      <cifti-in> - the cifti file to reduce
      <operation> - the reduction operator to use
      <cifti-out> - output - the output cifti file

      [-direction] - specify what direction to reduce along
         <direction> - the direction (default ROW)

      [-exclude-outliers] - exclude non-numeric values and outliers by standard
         deviation
         <sigma-below> - number of standard deviations below the mean to
            include
         <sigma-above> - number of standard deviations above the mean to
            include

      [-only-numeric] - exclude non-numeric values

      For the specified direction (default ROW), perform a reduction operation
      along that direction.  The direction can be either an integer starting
      from 1, or the strings 'ROW' or 'COLUMN'.  The reduction operators are as
      follows:

      MAX: the maximum value
      MIN: the minimum value
      INDEXMAX: the 1-based index of the maximum value
      INDEXMIN: the 1-based index of the minimum value
      SUM: add all values
      PRODUCT: multiply all values
      MEAN: the mean of the data
      STDEV: the standard deviation (N denominator)
      SAMPSTDEV: the sample standard deviation (N-1 denominator)
      VARIANCE: the variance of the data
      TSNR: mean divided by sample standard deviation (N-1 denominator)
      COV: sample standard deviation (N-1 denominator) divided by mean
      L2NORM: square root of sum of squares
      MEDIAN: the median of the data
      MODE: the mode of the data
      COUNT_NONZERO: the number of nonzero elements in the data


-cifti-reorder
REORDER THE PARCELS OR SCALAR/LABEL MAPS IN A CIFTI FILE
   wb_command -cifti-reorder
      <cifti-in> - input cifti file
      <direction> - which dimension to reorder along, ROW or COLUMN
      <reorder-list> - a text file containing the desired order transformation
      <cifti-out> - output - the reordered cifti file

      The mapping along the specified direction must be parcels, scalars, or
      labels.  For pscalar or ptseries, use COLUMN to reorder the parcels.  For
      dlabel, use ROW.  The <reorder-list> file must contain 1-based indices
      separated by whitespace (spaces, newlines, tabs, etc), with as many
      indices as <cifti-in> has along the specified dimension.  These indices
      specify which current index should end up in that position, for instance,
      if the current order is 'A B C D', and the desired order is 'D A B C',
      the text file should contain '4 1 2 3'.


-cifti-replace-structure
REPLACE DATA IN A STRUCTURE IN A CIFTI FILE
   wb_command -cifti-replace-structure
      <cifti> - the cifti to modify
      <direction> - which dimension to interpret as a single map, ROW or COLUMN

      [-volume-all] - replace the data in all volume components
         <volume> - the input volume

         [-from-cropped] - the input is cropped to the size of the data

      [-discard-unused-labels] - when operating on a dlabel file, drop any
         unused label keys from the label table

      [-label-collision] - how to handle conflicts between label keys
         <action> - 'ERROR', 'LEFT_SURFACE_FIRST', or 'LEGACY', default
            'ERROR', use 'LEGACY' to match v1.4.2 and earlier

      [-label] - repeatable - replace the data in a surface label component
         <structure> - the structure to replace the data of
         <label> - the input label file

      [-metric] - repeatable - replace the data in a surface component
         <structure> - the structure to replace the data of
         <metric> - the input metric

      [-volume] - repeatable - replace the data in a volume component
         <structure> - the structure to replace the data of
         <volume> - the input volume

         [-from-cropped] - the input is cropped to the size of the component

      This is a fairly low-level command, you probably want to use
      -cifti-create-dense-from-template instead.

      You must specify at least one of -metric, -label, -volume, or -volume-all
      for this command to do anything.  Input volumes must line up with the
      output of -cifti-separate.  For dtseries/dscalar, use COLUMN, and if your
      dconn matrix will be fully symmetric, COLUMN is more efficient.  The
      -volume-all option must not be specified when using a -volume option.  A
      -metric option must not be specified when using a -label option, and is
      not recommended on a label-type cifti file.  For each <structure>
      argument, use one of the following strings:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-cifti-resample
RESAMPLE A CIFTI FILE TO A NEW CIFTI SPACE
   wb_command -cifti-resample
      <cifti-in> - the cifti file to resample
      <direction> - the direction of the input that should be resampled, ROW or
         COLUMN
      <cifti-template> - a cifti file containing the cifti space to resample to
      <template-direction> - the direction of the template to use as the
         resampling space, ROW or COLUMN
      <surface-method> - specify a surface resampling method
      <volume-method> - specify a volume interpolation method
      <cifti-out> - output - the output cifti file

      [-surface-largest] - use largest weight instead of weighted average or
         popularity when doing surface resampling

      [-volume-predilate] - dilate the volume components before resampling
         <dilate-mm> - distance, in mm, to dilate

         [-nearest] - use nearest value dilation

         [-weighted] - use weighted dilation (default)

            [-exponent] - specify exponent in weighting function
               <exponent> - exponent 'n' to use in (1 / (distance ^ n)) as the
                  weighting function (default 7)

            [-legacy-cutoff] - use v1.3.2 logic for the kernel cutoff

      [-surface-postdilate] - dilate the surface components after resampling
         <dilate-mm> - distance, in mm, to dilate

         [-nearest] - use nearest value dilation

         [-linear] - use linear dilation

         [-weighted] - use weighted dilation (default for non-label data)

            [-exponent] - specify exponent in weighting function
               <exponent> - exponent 'n' to use in (area / (distance ^ n)) as
                  the weighting function (default 6)

            [-legacy-cutoff] - use v1.3.2 logic for the kernel cutoff

      [-affine] - use an affine transformation on the volume components
         <affine-file> - the affine file to use

         [-flirt] - MUST be used if affine is a flirt affine
            <source-volume> - the source volume used when generating the affine
            <target-volume> - the target volume used when generating the affine

      [-warpfield] - use a warpfield on the volume components
         <warpfield> - the warpfield to use

         [-fnirt] - MUST be used if using a fnirt warpfield
            <source-volume> - the source volume used when generating the
               warpfield

      [-left-spheres] - specify spheres for left surface resampling
         <current-sphere> - a sphere with the same mesh as the current left
            surface
         <new-sphere> - a sphere with the new left mesh that is in register
            with the current sphere

         [-left-area-surfs] - specify left surfaces to do vertex area
            correction based on
            <current-area> - a relevant left anatomical surface with current
               mesh
            <new-area> - a relevant left anatomical surface with new mesh

         [-left-area-metrics] - specify left vertex area metrics to do area
            correction based on
            <current-area> - a metric file with vertex areas for the current
               mesh
            <new-area> - a metric file with vertex areas for the new mesh

      [-right-spheres] - specify spheres for right surface resampling
         <current-sphere> - a sphere with the same mesh as the current right
            surface
         <new-sphere> - a sphere with the new right mesh that is in register
            with the current sphere

         [-right-area-surfs] - specify right surfaces to do vertex area
            correction based on
            <current-area> - a relevant right anatomical surface with current
               mesh
            <new-area> - a relevant right anatomical surface with new mesh

         [-right-area-metrics] - specify right vertex area metrics to do area
            correction based on
            <current-area> - a metric file with vertex areas for the current
               mesh
            <new-area> - a metric file with vertex areas for the new mesh

      [-cerebellum-spheres] - specify spheres for cerebellum surface resampling
         <current-sphere> - a sphere with the same mesh as the current
            cerebellum surface
         <new-sphere> - a sphere with the new cerebellum mesh that is in
            register with the current sphere

         [-cerebellum-area-surfs] - specify cerebellum surfaces to do vertex
            area correction based on
            <current-area> - a relevant cerebellum anatomical surface with
               current mesh
            <new-area> - a relevant cerebellum anatomical surface with new mesh

         [-cerebellum-area-metrics] - specify cerebellum vertex area metrics to
            do area correction based on
            <current-area> - a metric file with vertex areas for the current
               mesh
            <new-area> - a metric file with vertex areas for the new mesh

      Resample cifti data to a different brainordinate space.  Use COLUMN for
      the direction to resample dscalar, dlabel, or dtseries.  Resampling both
      dimensions of a dconn requires running this command twice, once with
      COLUMN and once with ROW.  If you are resampling a dconn and your machine
      has a large amount of memory, you might consider using
      -cifti-resample-dconn-memory to avoid writing and rereading an
      intermediate file.  The <template-direction> argument should usually be
      COLUMN, as dtseries, dscalar, and dlabel all have brainordinates on that
      direction.  If spheres are not specified for a surface structure which
      exists in the cifti files, its data is copied without resampling or
      dilation.  Dilation is done with the 'nearest' method, and is done on
      <new-sphere> for surface data.  Volume components are padded before
      dilation so that dilation doesn't run into the edge of the component
      bounding box.  If neither -affine nor -warpfield are specified, the
      identity transform is assumed for the volume data.

      The recommended resampling methods are ADAP_BARY_AREA and CUBIC (cubic
      spline), except for label data which should use ADAP_BARY_AREA and
      ENCLOSING_VOXEL.  Using ADAP_BARY_AREA requires specifying an area option
      to each used -*-spheres option.

      The <volume-method> argument must be one of the following:

      CUBIC
      ENCLOSING_VOXEL
      TRILINEAR

      The <surface-method> argument must be one of the following:

      ADAP_BARY_AREA
      BARYCENTRIC


-cifti-resample-dconn-memory
USE LOTS OF MEMORY TO RESAMPLE DCONN
   wb_command -cifti-resample-dconn-memory
      <cifti-in> - the cifti file to resample
      <cifti-template> - a cifti file containing the cifti space to resample to
      <template-direction> - the direction of the template to use as the
         resampling space, ROW or COLUMN
      <surface-method> - specify a surface resampling method
      <volume-method> - specify a volume interpolation method
      <cifti-out> - output - the output cifti file

      [-surface-largest] - use largest weight instead of weighted average when
         doing surface resampling

      [-volume-predilate] - dilate the volume components before resampling
         <dilate-mm> - distance, in mm, to dilate

         [-nearest] - use nearest value dilation

         [-weighted] - use weighted dilation (default)

            [-exponent] - specify exponent in weighting function
               <exponent> - exponent 'n' to use in (1 / (distance ^ n)) as the
                  weighting function (default 7)

            [-legacy-cutoff] - use v1.3.2 logic for the kernel cutoff

      [-surface-postdilate] - dilate the surface components after resampling
         <dilate-mm> - distance, in mm, to dilate

         [-nearest] - use nearest value dilation

         [-linear] - use linear dilation

         [-weighted] - use weighted dilation (default)

            [-exponent] - specify exponent in weighting function
               <exponent> - exponent 'n' to use in (area / (distance ^ n)) as
                  the weighting function (default 6)

            [-legacy-cutoff] - use v1.3.2 logic for the kernel cutoff

      [-affine] - use an affine transformation on the volume components
         <affine-file> - the affine file to use

         [-flirt] - MUST be used if affine is a flirt affine
            <source-volume> - the source volume used when generating the affine
            <target-volume> - the target volume used when generating the affine

      [-warpfield] - use a warpfield on the volume components
         <warpfield> - the warpfield to use

         [-fnirt] - MUST be used if using a fnirt warpfield
            <source-volume> - the source volume used when generating the
               warpfield

      [-left-spheres] - specify spheres for left surface resampling
         <current-sphere> - a sphere with the same mesh as the current left
            surface
         <new-sphere> - a sphere with the new left mesh that is in register
            with the current sphere

         [-left-area-surfs] - specify left surfaces to do vertex area
            correction based on
            <current-area> - a relevant left anatomical surface with current
               mesh
            <new-area> - a relevant left anatomical surface with new mesh

         [-left-area-metrics] - specify left vertex area metrics to do area
            correction based on
            <current-area> - a metric file with vertex areas for the current
               mesh
            <new-area> - a metric file with vertex areas for the new mesh

      [-right-spheres] - specify spheres for right surface resampling
         <current-sphere> - a sphere with the same mesh as the current right
            surface
         <new-sphere> - a sphere with the new right mesh that is in register
            with the current sphere

         [-right-area-surfs] - specify right surfaces to do vertex area
            correction based on
            <current-area> - a relevant right anatomical surface with current
               mesh
            <new-area> - a relevant right anatomical surface with new mesh

         [-right-area-metrics] - specify right vertex area metrics to do area
            correction based on
            <current-area> - a metric file with vertex areas for the current
               mesh
            <new-area> - a metric file with vertex areas for the new mesh

      [-cerebellum-spheres] - specify spheres for cerebellum surface resampling
         <current-sphere> - a sphere with the same mesh as the current
            cerebellum surface
         <new-sphere> - a sphere with the new cerebellum mesh that is in
            register with the current sphere

         [-cerebellum-area-surfs] - specify cerebellum surfaces to do vertex
            area correction based on
            <current-area> - a relevant cerebellum anatomical surface with
               current mesh
            <new-area> - a relevant cerebellum anatomical surface with new mesh

         [-cerebellum-area-metrics] - specify cerebellum vertex area metrics to
            do area correction based on
            <current-area> - a metric file with vertex areas for the current
               mesh
            <new-area> - a metric file with vertex areas for the new mesh

      This command does the same thing as running -cifti-resample twice, but
      uses memory up to approximately 2x the size that the intermediate file
      would be.  This is because the intermediate dconn is kept in memory,
      rather than written to disk, and the components before and after
      resampling/dilation have to be in memory at the same time during the
      relevant computation.  The <template-direction> argument should usually
      be COLUMN, as dtseries, dscalar, and dlabel all have brainordinates on
      that direction.  If spheres are not specified for a surface structure
      which exists in the cifti files, its data is copied without resampling or
      dilation.  Dilation is done with the 'nearest' method, and is done on
      <new-sphere> for surface data.  Volume components are padded before
      dilation so that dilation doesn't run into the edge of the component
      bounding box.

      To get the v1.3.2 and earlier behavior of weighted dilation, specify
      exponent of 2 for surface and volume, and -legacy-cutoff for both surface
      and volume.

      The <volume-method> argument must be one of the following:

      CUBIC
      ENCLOSING_VOXEL
      TRILINEAR

      The <surface-method> argument must be one of the following:

      ADAP_BARY_AREA
      BARYCENTRIC


-cifti-restrict-dense-map
EXCLUDE BRAINORDINATES FROM A CIFTI FILE
   wb_command -cifti-restrict-dense-map
      <cifti-in> - the input cifti
      <direction> - which dimension to change the mapping on (integer, 'ROW',
         or 'COLUMN')
      <cifti-out> - output - the output cifti

      [-cifti-roi] - cifti file containing combined rois
         <roi-cifti> - the rois as a cifti file

      [-left-roi] - vertices to use from left hemisphere
         <roi-metric> - the left roi as a metric file

      [-right-roi] - vertices to use from right hemisphere
         <roi-metric> - the right roi as a metric file

      [-cerebellum-roi] - vertices to use from cerebellum
         <roi-metric> - the cerebellum roi as a metric file

      [-vol-roi] - voxels to use
         <roi-vol> - the roi volume file

      Writes a modified version of <cifti-in>, where all brainordinates outside
      the specified roi(s) are removed from the file.  The direction can be
      either an integer starting from 1, or the strings 'ROW' or 'COLUMN'.  If
      -cifti-roi is specified, no other -*-roi option may be specified.  If not
      using -cifti-roi, any -*-roi options not present will discard the
      relevant structure, if present in the input file.


-cifti-roi-average
AVERAGE ROWS IN A SINGLE CIFTI FILE
   wb_command -cifti-roi-average
      <cifti-in> - the cifti file to average rows from
      <text-out> - output text file of the average values

      [-cifti-roi] - cifti file containing combined rois
         <roi-cifti> - the rois as a cifti file

      [-left-roi] - vertices to use from left hemisphere
         <roi-metric> - the left roi as a metric file

      [-right-roi] - vertices to use from right hemisphere
         <roi-metric> - the right roi as a metric file

      [-cerebellum-roi] - vertices to use from cerebellum
         <roi-metric> - the cerebellum roi as a metric file

      [-vol-roi] - voxels to use
         <roi-vol> - the roi volume file

      Average the rows that are within the specified ROIs, and write the
      resulting average row to a text file, separated by newlines.  If
      -cifti-roi is specified, -left-roi, -right-roi, -cerebellum-roi, and
      -vol-roi must not be specified.


-cifti-rois-from-extrema
CREATE CIFTI ROI MAPS FROM EXTREMA MAPS
   wb_command -cifti-rois-from-extrema
      <cifti> - the input cifti
      <surf-limit> - geodesic distance limit from vertex, in mm
      <vol-limit> - euclidean distance limit from voxel center, in mm
      <direction> - which dimension an extrema map is along, ROW or COLUMN
      <cifti-out> - output - the output cifti

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

      [-gaussian] - generate gaussian kernels instead of flat ROIs
         <surf-sigma> - the sigma for the surface gaussian kernel, in mm
         <vol-sigma> - the sigma for the volume gaussian kernel, in mm

      [-overlap-logic] - how to handle overlapping ROIs, default ALLOW
         <method> - the method of resolving overlaps

      [-merged-volume] - treat volume components as if they were a single
         component

      For each nonzero value in each map, make a map with an ROI around that
      location.  If the -gaussian option is specified, then normalized gaussian
      kernels are output instead of ROIs.  The <method> argument to
      -overlap-logic must be one of ALLOW, CLOSEST, or EXCLUDE.  ALLOW is the
      default, and means that ROIs are treated independently and may overlap.
      CLOSEST means that ROIs may not overlap, and that no ROI contains
      vertices that are closer to a different seed vertex.  EXCLUDE means that
      ROIs may not overlap, and that any vertex within range of more than one
      ROI does not belong to any ROI.


-cifti-separate
WRITE A CIFTI STRUCTURE AS METRIC, LABEL OR VOLUME
   wb_command -cifti-separate
      <cifti-in> - the cifti to separate a component of
      <direction> - which direction to separate into components, ROW or COLUMN

      [-volume-all] - separate all volume structures into a volume file
         <volume-out> - output - the output volume

         [-roi] - also output the roi of which voxels have data
            <roi-out> - output - the roi output volume

         [-label] - output a volume label file indicating the location of
            structures
            <label-out> - output - the label output volume

         [-crop] - crop volume to the size of the data rather than using the
            original volume size

      [-label] - repeatable - separate a surface model into a surface label
         file
         <structure> - the structure to output
         <label-out> - output - the output label file

         [-roi] - also output the roi of which vertices have data
            <roi-out> - output - the roi output metric

      [-metric] - repeatable - separate a surface model into a metric file
         <structure> - the structure to output
         <metric-out> - output - the output metric

         [-roi] - also output the roi of which vertices have data
            <roi-out> - output - the roi output metric

      [-volume] - repeatable - separate a volume structure into a volume file
         <structure> - the structure to output
         <volume-out> - output - the output volume

         [-roi] - also output the roi of which voxels have data
            <roi-out> - output - the roi output volume

         [-crop] - crop volume to the size of the component rather than using
            the original volume size

      For dtseries, dscalar, and dlabel, use COLUMN for <direction>, and if you
      have a symmetric dconn, COLUMN is more efficient.

      You must specify at least one of -metric, -volume-all, -volume, or -label
      for this command to do anything.  Output volumes will spatially line up
      with their original positions, whether or not they are cropped.  Volume
      files produced by separating a dlabel file, or from the -label suboption
      of -volume-all, will be label volumes, see -volume-help.

      For each <structure> argument, use one of the following strings:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-cifti-smoothing
SMOOTH A CIFTI FILE
   wb_command -cifti-smoothing
      <cifti> - the input cifti
      <surface-kernel> - the size of the gaussian surface smoothing kernel in
         mm, as sigma by default
      <volume-kernel> - the size of the gaussian volume smoothing kernel in mm,
         as sigma by default
      <direction> - which dimension to smooth along, ROW or COLUMN
      <cifti-out> - output - the output cifti

      [-fwhm] - kernel sizes are FWHM, not sigma

      [-left-surface] - specify the left surface to use
         <surface> - the left surface file

         [-left-corrected-areas] - vertex areas to use instead of computing
            them from the left surface
            <area-metric> - the corrected vertex areas, as a metric

      [-right-surface] - specify the right surface to use
         <surface> - the right surface file

         [-right-corrected-areas] - vertex areas to use instead of computing
            them from the right surface
            <area-metric> - the corrected vertex areas, as a metric

      [-cerebellum-surface] - specify the cerebellum surface to use
         <surface> - the cerebellum surface file

         [-cerebellum-corrected-areas] - vertex areas to use instead of
            computing them from the cerebellum surface
            <area-metric> - the corrected vertex areas, as a metric

      [-cifti-roi] - smooth only within regions of interest
         <roi-cifti> - the regions to smooth within, as a cifti file

      [-fix-zeros-volume] - treat values of zero in the volume as missing data

      [-fix-zeros-surface] - treat values of zero on the surface as missing
         data

      [-merged-volume] - smooth across subcortical structure boundaries

      The input cifti file must have a brain models mapping on the chosen
      dimension, columns for .dtseries, and either for .dconn.  By default,
      data in different structures is smoothed independently (i.e., "parcel
      constrained" smoothing), so volume structures that touch do not smooth
      across this boundary.  Specify -merged-volume to ignore these boundaries.
      Surface smoothing uses the GEO_GAUSS_AREA smoothing method.

      The -*-corrected-areas options are intended for when it is unavoidable to
      smooth on group average surfaces, it is only an approximate correction
      for the reduction of structure in a group average surface.  It is better
      to smooth the data on individuals before averaging, when feasible.

      The -fix-zeros-* options will treat values of zero as lack of data, and
      not use that value when generating the smoothed values, but will fill
      zeros with extrapolated values.  The ROI should have a brain models
      mapping along columns, exactly matching the mapping of the chosen
      direction in the input file.  Data outside the ROI is ignored.


-cifti-stats
STATISTICS ALONG CIFTI COLUMNS
   wb_command -cifti-stats
      <cifti-in> - the input cifti

      [-reduce] - use a reduction operation
         <operation> - the reduction operation

      [-percentile] - give the value at a percentile
         <percent> - the percentile to find, must be between 0 and 100

      [-column] - only display output for one column
         <column> - the column index (starting from 1)

      [-roi] - only consider data inside an roi
         <roi-cifti> - the roi, as a cifti file

         [-match-maps] - each column of input uses the corresponding column
            from the roi file

      [-show-map-name] - print column index and name before each output

      For each column of the input, a line of text is printed, resulting from
      the specified reduction or percentile operation.  If -roi is specified
      without -match-maps, then each line will contain as many numbers as there
      are maps in the ROI file, separated by tab characters.  Use -column to
      only give output for a single data column.  Exactly one of -reduce or
      -percentile must be specified.

      The argument to the -reduce option must be one of the following:

      MAX: the maximum value
      MIN: the minimum value
      INDEXMAX: the 1-based index of the maximum value
      INDEXMIN: the 1-based index of the minimum value
      SUM: add all values
      PRODUCT: multiply all values
      MEAN: the mean of the data
      STDEV: the standard deviation (N denominator)
      SAMPSTDEV: the sample standard deviation (N-1 denominator)
      VARIANCE: the variance of the data
      TSNR: mean divided by sample standard deviation (N-1 denominator)
      COV: sample standard deviation (N-1 denominator) divided by mean
      L2NORM: square root of sum of squares
      MEDIAN: the median of the data
      MODE: the mode of the data
      COUNT_NONZERO: the number of nonzero elements in the data


-cifti-transpose
TRANSPOSE A CIFTI FILE
   wb_command -cifti-transpose
      <cifti-in> - the input cifti file
      <cifti-out> - output - the output cifti file

      [-mem-limit] - restrict memory usage
         <limit-GB> - memory limit in gigabytes

      The input must be a 2-dimensional cifti file.  The output is a cifti file
      where every row in the input is a column in the output.


-cifti-vector-operation
DO A VECTOR OPERATION ON CIFTI FILES
   wb_command -cifti-vector-operation
      <vectors-a> - first vector input file
      <vectors-b> - second vector input file
      <operation> - what vector operation to do
      <cifti-out> - output - the output file

      [-normalize-a] - normalize vectors of first input

      [-normalize-b] - normalize vectors of second input

      [-normalize-output] - normalize output vectors (not valid for dot
         product)

      [-magnitude] - output the magnitude of the result (not valid for dot
         product)

      Does a vector operation on two cifti files (that must have a multiple of
      3 columns).  Either of the inputs may have multiple vectors (more than 3
      columns), but not both (at least one must have exactly 3 columns).  The
      -magnitude and -normalize-output options may not be specified together,
      or with an operation that returns a scalar (dot product).  The
      <operation> parameter must be one of the following:

      DOT
      CROSS
      ADD
      SUBTRACT


-cifti-weighted-stats
WEIGHTED STATISTICS ALONG CIFTI COLUMNS
   wb_command -cifti-weighted-stats
      <cifti-in> - the input cifti

      [-spatial-weights] - use vertex area and voxel volume as weights

         [-left-area-surf] - use a surface for left vertex areas
            <left-surf> - the left surface to use, areas are in mm^2

         [-right-area-surf] - use a surface for right vertex areas
            <right-surf> - the right surface to use, areas are in mm^2

         [-cerebellum-area-surf] - use a surface for cerebellum vertex areas
            <cerebellum-surf> - the cerebellum surface to use, areas are in
               mm^2

         [-left-area-metric] - use a metric file for left vertex areas
            <left-metric> - metric file containing left vertex areas

         [-right-area-metric] - use a metric file for right vertex areas
            <right-metric> - metric file containing right vertex areas

         [-cerebellum-area-metric] - use a metric file for cerebellum vertex
            areas
            <cerebellum-metric> - metric file containing cerebellum vertex
               areas

      [-cifti-weights] - use a cifti file containing weights
         <weight-cifti> - the weights to use, as a cifti file

      [-column] - only display output for one column
         <column> - the column to use (1-based)

      [-roi] - only consider data inside an roi
         <roi-cifti> - the roi, as a cifti file

         [-match-maps] - each column of input uses the corresponding column
            from the roi file

      [-mean] - compute weighted mean

      [-stdev] - compute weighted standard deviation

         [-sample] - estimate population stdev from the sample

      [-percentile] - compute weighted percentile
         <percent> - the percentile to find, must be between 0 and 100

      [-sum] - compute weighted sum

      [-show-map-name] - print map index and name before each output

      If the mapping along column is brain models, for each column of the
      input, the specified operation is done on each surface and across all
      voxels, and the results are printed on separate lines.  For other mapping
      types, the operation is done on each column, and one line per map is
      printed.  Exactly one of -spatial-weights or -cifti-weights must be
      specified.  Use -column to only give output for a single column.  If the
      -roi option is used without -match-maps, then each line will contain as
      many numbers as there are maps in the ROI file, separated by tab
      characters.  Exactly one of -mean, -stdev, -percentile or -sum must be
      specified.

      Using -sum with -spatial-weights (or with -cifti-weights and a cifti
      containing weights of similar meaning) is equivalent to integrating with
      respect to area and volume.  When the input is binary ROIs, this will
      therefore output the area or volume of each ROI.


-class-add-member

Add members to class header (.h) and implementation (.cxx) files.

Usage:  <class-name> 
        [-add-to-files]
        [-m <member-name> <data-type> <description>]...

    If the -add-to-files is not specified, the code for the
    header and implementation files is printed to the 
    terminal.

    If the -add-to-files is specified, the class files are
    expected to be in the current directory and named
    <class-name>.h and <class-name>.cxx.  The header 
    file must contain this text in its private section:
        // ADD_NEW_MEMBERS_HERE
    The implementation file must contain this text in
    its public section:
        // ADD_NEW_METHODS_HERE
    If either of these text string are missing, the code 
    that would have been added to the file(s) is printed
    to the terminal.
    
    For each member, three text strings separated by a space
    must be provided and they are the name of the member
    its data type, and a description of the member.  If the
    description contains spaces the description must be
    enclosed in double quotes ("").
    
    If the data type begins with a capital letter, it is
    assumed to be the name of a class.  In this case, both
    const and non-const getters are created but not setter
    is created.  Otherwise, the data type is expected to be
    a primitive type and both a getter and a setter are
    created.  Note that AString and QString are treated as
    primitive types.
    


-class-create

Create class header (.h) and implementation (.cxx) files.

Usage:  <class-name> 
        [-copy] 
        [-equal] 
        [-event-class <event-type-enum>]
        [-event-listener] 
        [-no-parent] 
        [-parent <parent-class-name>] 
        [-scene] 
        [-scene-sub-class] 


Options: 
    -copy
        Adds copy constructor and assignment operator
    
    -equal
        Adds equality operator.
    
    -event-class <event-type-enum>
        When creating an Event subclass, using this
        option will automatically set the parent
        class to Event and place the given event
        enumerated type value into the parameter
        for the Event class constructor.
        
        For the <event-type-enum> there is no need
        to prepend it with "EventTypeEnum::".
        
    -event-listener 
        Implement the EventListenerInterface so
        that the class may listen for events.
        
    -no-parent
        Created class is not derived from any other
        class.  By default, the parent class is
        CaretObject.
    
    -parent <parent-class-name>
        Specify the parent (derived from) class.
        By default, the parent class is CaretObject.
    
    -scene
        Implement the SceneableInterface so that 
        instances of the class can be restored from 
        and saved to scenes. 
    
    -scene-sub-class
        Adds methods that can be called by the super- 
        class so that this sub-class can save and 
        restore data to and from scenes.  
        
        This option should only be used when creating
        a class whose super class implements the 
        SceneableInterface
        


-class-create-algorithm

Create Algorithm Class header (.h) and implementation (.cxx) files.

Usage:  <algorithm-class-name>
        <command-line-switch>
        <short-description>

    algorithm-class-name
        Required name of the algorithm class that MUST start with "Algorithm"
    
    command-line-switch
        Required command line switch for algorithm.
    
    short-description
        Required short description within double quotes.
    


-class-create-enum

Create enumerated type header (.h) and implementation (.cxx) files.

Usage:  <enum-class-name>
        <number-of-values>
        <auto-number>

    enum-class-name
        Name of the enumerated type.  Must end in "Enum"
    
    number-of-values
        Number of values in the enumerated type.
    
    auto-number
        Automatically generated integer codes corresponding
        to the enumerated values.  Value for this parameter
        are "true" and "false".
    
    [enum-name-1] [enum-name-2]...[enum-name-N]
        Optional names for the enumerated values.  
        
        If the number of names listed is greater than
        the "number-of-values" parameter, the "number-of-values"
        will become the number of names.  If the number
        of names is is less than the "number-of-values",
        empty entries will be created.
        


-class-create-operation

Create Operation Class header (.h) and implementation (.cxx) files.

Usage:  <operation-class-name>
        <command-line-switch>
        <short-description>
        [-no-parameters]

    operation-class-name
        Required name of the operation class that MUST start with "Operation"
    
    command-line-switch
        Required command line switch for operation.
    
    short-description
        Required short description within double quotes.
    
    -no-parameters
        Optional parameter if the operation does not use parameters.
    


-convert-affine
CONVERT AN AFFINE FILE BETWEEN CONVENTIONS
   wb_command -convert-affine

      [-from-world] - input is a NIFTI 'world' affine
         <input> - the input affine

         [-inverse] - for files that use 'target to source' convention

      [-from-itk] - input is an ITK matrix
         <input> - the input affine

      [-from-flirt] - input is a flirt matrix
         <input> - the input affine
         <source-volume> - the source volume used when generating the input
            affine
         <target-volume> - the target volume used when generating the input
            affine

      [-to-world] - write output as a NIFTI 'world' affine
         <output> - output - the output affine

         [-inverse] - write file using 'target to source' convention

      [-to-itk] - write output as an ITK affine
         <output> - output - the output affine

      [-to-flirt] - repeatable - write output as a flirt matrix
         <output> - output - the output affine
         <source-volume> - the volume you want to apply the transform to
         <target-volume> - the target space you want the transformed volume to
            match

      NIFTI world matrices can be used directly on mm coordinates via matrix
      multiplication, they use the NIFTI coordinate system, that is, positive X
      is right, positive Y is anterior, and positive Z is superior.  Note that
      wb_command assumes that world matrices transform source coordinates to
      target coordinates, while other tools may use affines that transform
      target coordinates to source coordinates.

      The ITK format is used by ANTS.

      You must specify exactly one -from option, but you may specify multiple
      -to options, and -to-flirt may be specified more than once.


-convert-fiber-orientations
CONVERT BINGHAM PARAMETER VOLUMES TO FIBER ORIENTATION FILE
   wb_command -convert-fiber-orientations
      <label-volume> - volume of cifti structure labels
      <fiber-out> - output - the output fiber orientation file

      [-fiber] - repeatable - specify the parameter volumes for a fiber
         <mean-f> - mean fiber strength
         <stdev-f> - standard deviation of fiber strength
         <theta> - theta angle
         <phi> - phi angle
         <psi> - psi angle
         <ka> - ka bingham parameter
         <kb> - kb bingham parameter

      Takes precomputed bingham parameters from volume files and converts them
      to the format workbench uses for display.  The <label-volume> argument
      must be a label volume, where the labels use these strings:


      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-convert-matrix4-to-matrix2
GENERATES A MATRIX2 CIFTI FROM MATRIX4 WBSPARSE
   wb_command -convert-matrix4-to-matrix2
      <matrix4-wbsparse> - a wbsparse matrix4 file
      <counts-out> - output - the total fiber counts, as a cifti file

      [-distances] - output average trajectory distance
         <distance-out> - output - the distances, as a cifti file

      [-individual-fibers] - output files for each fiber direction
         <fiber-1> - output - output file for first fiber
         <fiber-2> - output - output file for second fiber
         <fiber-3> - output - output file for third fiber

      This command makes a cifti file from the fiber counts in a matrix4
      wbsparse file, and optionally a second cifti file from the distances.
      Note that while the total count is stored exactly, the per-fiber counts
      are stored as approximate fractions, so the output of -individual-fibers
      will contain nonintegers.


-convert-matrix4-to-workbench-sparse
CONVERT A 3-FILE MATRIX4 TO A WORKBENCH SPARSE FILE
   wb_command -convert-matrix4-to-workbench-sparse
      <matrix4_1> - the first matrix4 file
      <matrix4_2> - the second matrix4 file
      <matrix4_3> - the third matrix4 file
      <orientation-file> - the .fiberTEMP.nii file this trajectory file applies
         to
      <voxel-list> - list of white matter voxel index triplets as used in the
         trajectory matrix
      <wb-sparse-out> - output - the output workbench sparse file

      [-surface-seeds] - specify the surface seed space
         <seed-roi> - metric roi file of all vertices used in the seed space

      [-volume-seeds] - specify the volume seed space
         <cifti-template> - cifti file to use the volume mappings from
         <direction> - dimension along the cifti file to take the mapping from,
            ROW or COLUMN

      Converts the matrix 4 output of probtrackx to workbench sparse file
      format.  Exactly one of -surface-seeds and -volume-seeds must be
      specified.


-convert-warpfield
CONVERT A WARPFIELD BETWEEN CONVENTIONS
   wb_command -convert-warpfield

      [-from-world] - input is a NIFTI 'world' warpfield
         <input> - the input warpfield

         [-absolute] - warpfield was written in absolute convention, rather
            than relative

      [-from-itk] - input is an ITK warpfield
         <input> - the input warpfield

      [-from-fnirt] - input is a fnirt warpfield
         <input> - the input warpfield
         <source-volume> - the source volume used when generating the input
            warpfield

         [-absolute] - warpfield was written in absolute convention, rather
            than relative

      [-to-world] - write output as a NIFTI 'world' warpfield
         <output> - output - the output warpfield

      [-to-itk] - write output as an ITK warpfield
         <output> - output - the output warpfield

      [-to-fnirt] - repeatable - write output as a fnirt warpfield
         <output> - output - the output warpfield
         <source-volume> - the volume you want to apply the warpfield to

      NIFTI world warpfields can be used directly on mm coordinates via
      sampling the three subvolumes at the coordinate and adding the sampled
      values to the coordinate vector.  They use the NIFTI coordinate system,
      that is, X is left to right, Y is posterior to anterior, and Z is
      inferior to superior.

      NOTE: this command does not invert the warpfield, and to warp a surface,
      you must use the inverse of the warpfield that warps the corresponding
      volume.

      The ITK format is used by ANTS.

      You must specify exactly one -from option, but you may specify multiple
      -to options, and -to-fnirt may be specified more than once.


-create-signed-distance-volume
CREATE SIGNED DISTANCE VOLUME FROM SURFACE
   wb_command -create-signed-distance-volume
      <surface> - the input surface
      <refspace> - a volume in the desired output space (dims, spacing, origin)
      <outvol> - output - the output volume

      [-roi-out] - output an roi volume of where the output has a computed
         value
         <roi-vol> - output - the output roi volume

      [-fill-value] - specify a value to put in all voxels that don't get
         assigned a distance
         <value> - value to fill with (default 0)

      [-exact-limit] - specify distance for exact output
         <dist> - distance in mm (default 5)

      [-approx-limit] - specify distance for approximate output
         <dist> - distance in mm (default 20)

      [-approx-neighborhood] - voxel neighborhood for approximate calculation
         <num> - size of neighborhood cube measured from center to face, in
            voxels (default 2 = 5x5x5)

      [-winding] - winding method for point inside surface test
         <method> - name of the method (default EVEN_ODD)

      Computes the signed distance function of the surface.  Exact distance is
      calculated by finding the closest point on any surface triangle to the
      center of the voxel.  Approximate distance is calculated starting with
      these distances, using dijkstra's method with a neighborhood of voxels.
      Specifying too small of an exact distance may produce unexpected results.
      Valid specifiers for winding methods are as follows:

      EVEN_ODD (default)
      NEGATIVE
      NONZERO
      NORMALS

      The NORMALS method uses the normals of triangles and edges, or the
      closest triangle hit by a ray from the point.  This method may be
      slightly faster, but is only reliable for a closed surface that does not
      cross through itself.  All other methods count entry (positive) and exit
      (negative) crossings of a vertical ray from the point, then counts as
      inside if the total is odd, negative, or nonzero, respectively.


-estimate-fiber-binghams
ESTIMATE FIBER ORIENTATION DISTRIBUTIONS FROM BEDPOSTX SAMPLES
   wb_command -estimate-fiber-binghams
      <merged_f1samples> - fiber 1 strength samples
      <merged_th1samples> - fiber 1 theta samples
      <merged_ph1samples> - fiber 1 phi samples
      <merged_f2samples> - fiber 2 strength samples
      <merged_th2samples> - fiber 2 theta samples
      <merged_ph2samples> - fiber 2 phi samples
      <merged_f3samples> - fiber 3 strength samples
      <merged_th3samples> - fiber 3 theta samples
      <merged_ph3samples> - fiber 3 phi samples
      <label-volume> - volume of cifti structure labels
      <cifti-out> - output - output cifti fiber distributons file

      This command does an estimation of a bingham distribution for each fiber
      orientation in each voxel which is labeled a structure identifier.  These
      labelings come from the <label-volume> argument, which must have labels
      that match the following strings:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-fiber-dot-products
COMPUTE DOT PRODUCTS OF FIBER ORIENTATIONS WITH SURFACE NORMALS
   wb_command -fiber-dot-products
      <white-surf> - the white/gray boundary surface
      <fiber-file> - the fiber orientation file
      <max-dist> - the maximum distance from any surface vertex a fiber
         population may be, in mm
      <direction> - test against surface for whether a fiber population should
         be used
      <dot-metric> - output - the metric of dot products
      <f-metric> - output - a metric of the f values of the fiber distributions

      For each vertex, this command finds the closest fiber population that
      satisfies the <direction> test, and computes the absolute value of the
      dot product of the surface normal and the normalized mean direction of
      each fiber.  The <direction> test must be one of INSIDE, OUTSIDE, or ANY,
      which causes the command to only use fiber populations that are inside
      the surface, outside the surface, or to not care which direction it is
      from the surface.  Each fiber population is output in a separate metric
      column.


-file-convert
CHANGE VERSION OF FILE FORMAT
   wb_command -file-convert

      [-border-version-convert] - write a border file with a different version
         <border-in> - the input border file
         <out-version> - the format version to write as, 1 or 3 (2 doesn't
            exist)
         <border-out> - output - the output border file

         [-surface] - must be specified if the input is version 1
            <surface> - use this surface file for structure and number of
               vertices, ignore borders on other structures

      [-nifti-version-convert] - write a nifti file with a different version
         <input> - the input nifti file
         <version> - the nifti version to write as
         <output> - output - the output nifti file

      [-cifti-version-convert] - write a cifti file with a different version
         <cifti-in> - the input cifti file
         <version> - the cifti version to write as
         <cifti-out> - output - the output cifti file

      You may only specify one top-level option.


-file-information
LIST INFORMATION ABOUT A FILE'S CONTENT
   wb_command -file-information
      <data-file> - data file

      [-no-map-info] - do not show map information for files that support maps

      [-only-step-interval] - suppress normal output, print the interval
         between maps

      [-only-number-of-maps] - suppress normal output, print the number of maps

      [-only-map-names] - suppress normal output, print the names of all maps

      [-only-metadata] - suppress normal output, print file metadata

         [-key] - only print the metadata for one key, with no formatting
            <key> - the metadata key

      [-only-cifti-xml] - suppress normal output, print the cifti xml if the
         file type has it

      [-czi] - For a CZI file, show information from the libCZI Info Command
         instead of the Workbench CZI File

      [-czi-all-sub-blocks] - show all sub-blocks in CZI file (may produce long
         output)

      [-czi-xml] - show XML from CZI file

      List information about the content of a data file.  Only one -only option
      may be specified.  The information listed when no -only option is present
      is dependent upon the type of data file.

      Library paths:
         /usr/local/qt-install/plugins
         /mnt/workspace/release/CommandLine


      File and extensions for reading and writing:
         Annotation: wb_annot
         Annotation Text Substitution: wb_annsub.csv
         Border: border, wb_border
         CIFTI - Dense: dconn.nii
         CIFTI - Dense Label: dlabel.nii
         CIFTI - Dense Parcel: dpconn.nii
         CIFTI - Dense Scalar: dscalar.nii
         CIFTI - Dense Data Series: dtseries.nii
         CIFTI - Fiber Orientations TEMPORARY: fiberTEMP.nii
         CIFTI - Fiber Trajectory TEMPORARY: trajTEMP.wbsparse
         CIFTI - Parcel: pconn.nii
         CIFTI - Parcel Dense: pdconn.nii
         CIFTI - Parcel Label: plabel.nii
         CIFTI - Parcel Scalar: pscalar.nii
         CIFTI - Parcel Series: ptseries.nii
         CIFTI - Scalar Data Series: sdseries.nii
         CZI Image: czi
         Foci: foci, wb_foci
         Histology Slices: metaczi, meta-image
         Image Read: bmp, gif, jpeg, jpg, png, ppm, tif, tiff
              Write: bmp, jpeg, jpg, png, ppm, tif, tiff
         Label: label.gii
         Metric: func.gii, shape.gii
         Palette: palette, wb_palette
         RGBA: rgba.gii
         Samples: wb_samples
         Scene: scene, wb_scene
         Specification: spec, wb_spec
         Surface: surf.gii
         Volume: nii, nii.gz


-foci-create
CREATE A FOCI FILE
   wb_command -foci-create
      <output> - output - the output foci file

      [-class] - repeatable - specify class input data
         <class-name> - name of class
         <foci-list-file> - text file containing foci names, coordinates, and
            colors
         <surface> - surface file for projection of foci list file

      Creates a foci file from names, coordinates, and RGB values in a text
      file.  The text file must have the following format (2 lines per focus):

      <focus-name>
      <red> <green> <blue> <x> <y> <z> 
      ...

      Foci names are specified on a separate line from their coordinates and
      color, in order to let foci names contain spaces.  Whitespace is trimmed
      from both ends of the foci name, but is kept if it is in the middle of a
      name.  The values of <red>, <green>, <blue> and must be integers from 0
      to 255, and will specify the color the foci is drawn as.

      Foci are grouped into classes and the name for the class is specified
      using the <class-name> parameter.

      All foci within one text file must be associated with the structure
      contained in the <surface> parameter and are projected to that surface.


-foci-get-projection-vertex
GET PROJECTION VERTEX FOR FOCI
   wb_command -foci-get-projection-vertex
      <foci> - the foci file
      <surface> - the surface related to the foci file
      <metric-out> - output - the output metric file

      [-name] - select a focus by name
         <name> - the name of the focus

      For each focus, a column is created in <metric-out>, and the vertex with
      the most influence on its projection is assigned a value of 1 in that
      column, with all other vertices 0.  If -name is used, only one focus will
      be used.


-foci-list-coords
OUTPUT FOCI COORDINATES IN A TEXT FILE
   wb_command -foci-list-coords
      <foci-file> - input foci file
      <coord-file-out> - output - the output coordinate text file

      [-names-out] - output the foci names
         <names-file-out> - output - text file to put foci names in

      Output the coordinates for every focus in the foci file, and optionally
      the focus names in a second text file.


-foci-resample
PROJECT FOCI TO A DIFFERENT SURFACE
   wb_command -foci-resample
      <foci-in> - the input foci file
      <foci-out> - output - the output foci file

      [-left-surfaces] - the left surfaces for resampling
         <current-surf> - the surface the foci are currently projected on
         <new-surf> - the surface to project the foci onto

      [-right-surfaces] - the right surfaces for resampling
         <current-surf> - the surface the foci are currently projected on
         <new-surf> - the surface to project the foci onto

      [-cerebellum-surfaces] - the cerebellum surfaces for resampling
         <current-surf> - the surface the foci are currently projected on
         <new-surf> - the surface to project the foci onto

      [-discard-distance-from-surface] - ignore the distance the foci are above
         or below the current surface

      [-restore-xyz] - put the original xyz coordinates into the foci, rather
         than the coordinates obtained from unprojection

      Unprojects foci from the <current-surf> for the structure, then projects
      them to <new-surf>.  If the foci have meaningful distances above or below
      the surface, use anatomical surfaces.  If the foci should be on the
      surface, use registered spheres and the options
      -discard-distance-from-surface and -restore-xyz.


-gifti-all-labels-to-rois
MAKE ROIS FROM ALL LABELS IN A GIFTI COLUMN
   wb_command -gifti-all-labels-to-rois
      <label-in> - the input gifti label file
      <map> - the number or name of the label map to use
      <metric-out> - output - the output metric file

      The output metric file has a column for each label in the specified input
      map, other than the ??? label, each of which contains an ROI of all
      vertices that are set to the corresponding label.


-gifti-convert
CONVERT A GIFTI FILE TO A DIFFERENT ENCODING
   wb_command -gifti-convert
      <gifti-encoding> - what the output encoding should be
      <input-gifti-file> - the input gifti file
      <output-gifti-file> - output - the output gifti file

      The value of <gifti-encoding> must be one of the following:

      ASCII
      BASE64_BINARY
      GZIP_BASE64_BINARY
      EXTERNAL_FILE_BINARY


-gifti-label-add-prefix
ADD PREFIX TO ALL LABEL NAMES IN A GIFTI LABEL FILE
   wb_command -gifti-label-add-prefix
      <label-in> - the input label file
      <prefix> - the prefix string to add
      <label-out> - output - the output label file

      For each label other than '???', prepend <prefix> to the label name.


-gifti-label-to-roi
MAKE A GIFTI LABEL INTO AN ROI METRIC
   wb_command -gifti-label-to-roi
      <label-in> - the input gifti label file
      <metric-out> - output - the output metric file

      [-name] - select label by name
         <label-name> - the label name that you want an roi of

      [-key] - select label by key
         <label-key> - the label key that you want an roi of

      [-map] - select a single label map to use
         <map> - the map number or name

      For each map in <label-in>, a map is created in <metric-out> where all
      locations labeled with <label-name> or with a key of <label-key> are
      given a value of 1, and all other locations are given 0.  Exactly one of
      -name and -key must be specified.  Specify -map to use only one map from
      <label-in>.


-label-dilate
DILATE A LABEL FILE
   wb_command -label-dilate
      <label> - the input label
      <surface> - the surface to dilate on
      <dilate-dist> - distance in mm to dilate the labels
      <label-out> - output - the output label file

      [-bad-vertex-roi] - specify an roi of vertices to overwrite, rather than
         vertices with the unlabeled key
         <roi-metric> - metric file, positive values denote vertices to have
            their values replaced

      [-column] - select a single column to dilate
         <column> - the column number or name

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      Fills in label information for all vertices designated as bad, up to the
      specified distance away from other labels.  If -bad-vertex-roi is
      specified, all vertices, including those with the unlabeled key, are
      good, except for vertices with a positive value in the ROI.  If it is not
      specified, only vertices with the unlabeled key are bad.


-label-erode
ERODE A LABEL FILE
   wb_command -label-erode
      <label> - the input label
      <surface> - the surface to erode on
      <erode-dist> - distance in mm to erode the labels
      <label-out> - output - the output label file

      [-roi] - assume values outside this roi are labeled
         <roi-metric> - metric file, positive values denote vertices that have
            data

      [-column] - select a single column to erode
         <column> - the column number or name

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      Around each vertex that is unlabeled, set surrounding vertices to
      unlabeled.  The surrounding vertices are all immediate neighbors and all
      vertices within the specified distance.

      Note that the -corrected-areas option uses an approximate correction for
      distance along the surface.


-label-export-table
EXPORT LABEL TABLE FROM GIFTI AS TEXT
   wb_command -label-export-table
      <label-in> - the input label file
      <table-out> - output - the output text file

      Takes the label table from the gifti label file, and writes it to a text
      format matching what is expected by -metric-label-import.


-label-mask
MASK A LABEL FILE
   wb_command -label-mask
      <label> - the label file to mask
      <mask> - the mask metric
      <label-out> - output - the output label file

      [-column] - select a single column
         <column> - the column number or name

      By default, the output label is a copy of the input label, but with the
      'unused' label wherever the mask metric is zero or negative.  if -column
      is specified, the output contains only one column, the masked version of
      the specified input column.


-label-merge
MERGE LABEL FILES INTO A NEW FILE
   wb_command -label-merge
      <label-out> - output - the output label

      [-label] - repeatable - specify an input label
         <label-in> - a label file to use columns from

         [-column] - repeatable - select a single column to use
            <column> - the column number or name

            [-up-to] - use an inclusive range of columns
               <last-column> - the number or name of the last column to include

               [-reverse] - use the range in reverse order

      Takes one or more label files and constructs a new label file by
      concatenating columns from them.  The input files must have the same
      number of vertices and the same structure.

      Example: wb_command -label-merge out.label.gii -label first.label.gii
      -column 1 -label second.label.gii

      This example would take the first column from first.label.gii and all
      subvolumes from second.label.gii, and write these to out.label.gii.


-label-modify-keys
CHANGE KEY VALUES IN A LABEL FILE
   wb_command -label-modify-keys
      <label-in> - the input label file
      <remap-file> - text file with old and new key values
      <label-out> - output - output label file

      [-column] - select a single column to use
         <column> - the column number or name

      <remap-file> should have lines of the form 'oldkey newkey', like so:

      3 5
      5 8
      8 2

      This would change the current label with key '3' to use the key '5'
      instead, 5 would use 8, and 8 would use 2.  Any collision in key values
      results in the label that was not specified in the remap file getting
      remapped to an otherwise unused key.  Remapping more than one key to the
      same new key, or the same key to more than one new key, results in an
      error.  This will not change the appearance of the file when displayed,
      as it will change the key values in the data at the same time.


-label-probability
FIND FREQUENCY OF SURFACE LABELS
   wb_command -label-probability
      <label-maps> - label file containing individual label maps from many
         subjects
      <probability-metric-out> - output - the relative frequencies of each
         label at each vertex

      [-exclude-unlabeled] - don't make a probability map of the unlabeled key

      This command outputs a set of soft ROIs, one for each label in the input,
      where the value is how many of the input maps had that label at that
      vertex, divided by the number of input maps.


-label-resample
RESAMPLE A LABEL FILE TO A DIFFERENT MESH
   wb_command -label-resample
      <label-in> - the label file to resample
      <current-sphere> - a sphere surface with the mesh that the label file is
         currently on
      <new-sphere> - a sphere surface that is in register with <current-sphere>
         and has the desired output mesh
      <method> - the method name
      <label-out> - output - the output label file

      [-area-surfs] - specify surfaces to do vertex area correction based on
         <current-area> - a relevant anatomical surface with <current-sphere>
            mesh
         <new-area> - a relevant anatomical surface with <new-sphere> mesh

      [-area-metrics] - specify vertex area metrics to do area correction based
         on
         <current-area> - a metric file with vertex areas for <current-sphere>
            mesh
         <new-area> - a metric file with vertex areas for <new-sphere> mesh

      [-current-roi] - use an input roi on the current mesh to exclude non-data
         vertices
         <roi-metric> - the roi, as a metric file

      [-valid-roi-out] - output the ROI of vertices that got data from valid
         source vertices
         <roi-out> - output - the output roi as a metric

      [-largest] - use only the label of the vertex with the largest weight

      [-bypass-sphere-check] - ADVANCED: allow the current and new 'spheres' to
         have arbitrary shape as long as they follow the same contour

      Resamples a label file, given two spherical surfaces that are in
      register.  If ADAP_BARY_AREA is used, exactly one of -area-surfs or
      -area-metrics must be specified.

      The ADAP_BARY_AREA method is recommended for label data, because it
      should be better at resolving vertices that are near multiple labels, or
      in case of downsampling.  Midthickness surfaces are recommended for the
      vertex areas for most data.

      The -largest option results in nearest vertex behavior when used with
      BARYCENTRIC, as it uses the value of the source vertex that has the
      largest weight.

      When -largest is not specified, the vertex weights are summed according
      to which label they correspond to, and the label with the largest sum is
      used.

      The <method> argument must be one of the following:

      ADAP_BARY_AREA
      BARYCENTRIC


-label-to-border
DRAW BORDERS AROUND LABELS
   wb_command -label-to-border
      <surface> - the surface to use for neighbor information
      <label-in> - the input label file
      <border-out> - output - the output border file

      [-placement] - set how far along the edge border points are drawn
         <fraction> - fraction along edge from inside vertex (default 0.33)

      [-column] - select a single column
         <column> - the column number or name

      For each label, finds all edges on the mesh that cross the boundary of
      the label, and draws borders through them.  By default, this is done on
      all columns in the input file, using the map name as the class name for
      the border.


-label-to-volume-mapping
MAP LABEL FILE TO VOLUME
   wb_command -label-to-volume-mapping
      <label> - the input label file
      <surface> - the surface to use coordinates from
      <volume-space> - a volume file in the desired output volume space
      <volume-out> - output - the output volume file

      [-nearest-vertex] - use the label from the vertex closest to the voxel
         center
         <distance> - how far from the surface to map labels to voxels, in mm

      [-ribbon-constrained] - use ribbon constrained mapping algorithm
         <inner-surf> - the inner surface of the ribbon
         <outer-surf> - the outer surface of the ribbon

         [-voxel-subdiv] - voxel divisions while estimating voxel weights
            <subdiv-num> - number of subdivisions, default 3

         [-greedy] - also put labels in voxels with less than 50% partial
            volume (legacy behavior)

         [-thick-columns] - use overlapping columns (legacy method)

      Maps labels from a gifti label file into a volume file.  You must specify
      exactly one mapping method option.  The -nearest-vertex method uses the
      label from the vertex closest to the voxel center.  The
      -ribbon-constrained method uses the same method as in
      -volume-to-surface-mapping, then uses the weights in reverse, with
      popularity logic to decide on a label to use.


-metadata-remove-provenance
REMOVE PROVENANCE INFORMATION FROM FILE METADATA
   wb_command -metadata-remove-provenance
      <input-file> - the file to remove provenance information from
      <output-file> - output - the name to save the modified file as

      Removes the provenance metadata fields added by workbench during
      processing.


-metadata-string-replace
REPLACE A STRING IN ALL METADATA OF A FILE
   wb_command -metadata-string-replace
      <input-file> - the file to replace metadata in
      <find-string> - the string to find
      <replace-string> - the string to replace <find-string> with
      <output-file> - output - the name to save the modified file as

      [-case-insensitive] - match with case variation also

      Replaces all occurrences of <find-string> in the metadata and map names
      of <input-file> with <replace-string>.


-metric-convert
CONVERT METRIC FILE TO FAKE NIFTI
   wb_command -metric-convert

      [-to-nifti] - convert metric to nifti
         <metric-in> - the metric to convert
         <nifti-out> - output - the output nifti file

      [-from-nifti] - convert nifti to metric
         <nifti-in> - the nifti file to convert
         <surface-in> - surface file to use number of vertices and structure
            from
         <metric-out> - output - the output metric file

      The purpose of this command is to convert between metric files and nifti1
      so that gifti-unaware programs can operate on the data.  You must specify
      exactly one of the options.


-metric-dilate
DILATE A METRIC FILE
   wb_command -metric-dilate
      <metric> - the metric to dilate
      <surface> - the surface to compute on
      <distance> - distance in mm to dilate
      <metric-out> - output - the output metric

      [-bad-vertex-roi] - specify an roi of vertices to overwrite, rather than
         vertices with value zero
         <roi-metric> - metric file, positive values denote vertices to have
            their values replaced

      [-data-roi] - specify an roi of where there is data
         <roi-metric> - metric file, positive values denote vertices that have
            data

      [-column] - select a single column to dilate
         <column> - the column number or name

      [-nearest] - use the nearest good value instead of a weighted average

      [-linear] - fill in values with linear interpolation along strongest
         gradient

      [-exponent] - use a different exponent in the weighting function
         <exponent> - exponent 'n' to use in (area / (distance ^ n)) as the
            weighting function (default 6)

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      [-legacy-cutoff] - use the v1.3.2 method of choosing how many vertices to
         use when calulating the dilated value with weighted method

      For all metric vertices that are designated as bad, if they neighbor a
      non-bad vertex with data or are within the specified distance of such a
      vertex, replace the value with a distance-based weighted average of
      nearby non-bad vertices that have data, otherwise set the value to zero.
      No matter how small <distance> is, dilation will always use at least the
      immediate neighbor vertices.  If -nearest is specified, it will use the
      value from the closest non-bad vertex with data within range instead of a
      weighted average.

      If -bad-vertex-roi is specified, all vertices with a positive ROI value
      are bad.  If it is not specified, only vertices that have data, with a
      value of zero, are bad.  If -data-roi is not specified, all vertices are
      assumed to have data.

      Note that the -corrected-areas option uses an approximate correction for
      the change in distances along a group average surface.

      To get the behavior of version 1.3.2 or earlier, use '-legacy-cutoff
      -exponent 2'.


-metric-erode
ERODE A METRIC FILE
   wb_command -metric-erode
      <metric> - the metric file to erode
      <surface> - the surface to compute on
      <distance> - distance in mm to erode
      <metric-out> - output - the output metric

      [-roi] - assume values outside this roi are nonzero
         <roi-metric> - metric file, positive values denote vertices that have
            data

      [-column] - select a single column to erode
         <column> - the column number or name

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      Around each vertex with a value of zero, set surrounding vertices to
      zero.  The surrounding vertices are all immediate neighbors and all
      vertices within the specified distance.

      Note that the -corrected-areas option uses an approximate correction for
      distance along the surface.


-metric-estimate-fwhm
ESTIMATE FWHM SMOOTHNESS OF A METRIC FILE
   wb_command -metric-estimate-fwhm
      <surface> - the surface to use for distance and neighbor information
      <metric-in> - the input metric

      [-roi] - use only data within an ROI
         <roi-metric> - the metric file to use as an ROI

      [-column] - select a single column to estimate smoothness of
         <column> - the column number or name

      [-whole-file] - estimate for the whole file at once, not each column
         separately

         [-demean] - subtract the mean image before estimating smoothness

      Estimates the smoothness of the metric columns, printing the estimates to
      standard output.  These estimates ignore variation in vertex spacing.


-metric-extrema
FIND EXTREMA IN A METRIC FILE
   wb_command -metric-extrema
      <surface> - the surface to use for distance information
      <metric-in> - the metric to find the extrema of
      <distance> - the minimum distance between identified extrema of the same
         type
      <metric-out> - output - the output extrema metric

      [-presmooth] - smooth the metric before finding extrema
         <kernel> - the size of the gaussian smoothing kernel in mm, as sigma
            by default

         [-fwhm] - kernel size is FWHM, not sigma

      [-roi] - ignore values outside the selected area
         <roi-metric> - the area to find extrema in, as a metric

      [-threshold] - ignore small extrema
         <low> - the largest value to consider for being a minimum
         <high> - the smallest value to consider for being a maximum

      [-sum-columns] - output the sum of the extrema columns instead of each
         column separately

      [-consolidate-mode] - use consolidation of local minima instead of a
         large neighborhood

      [-only-maxima] - only find the maxima

      [-only-minima] - only find the minima

      [-column] - select a single column to find extrema in
         <column> - the column number or name

      Finds extrema in a metric file, such that no two extrema of the same type
      are within <distance> of each other.  The extrema are labeled as -1 for
      minima, 1 for maxima, 0 otherwise.  If -only-maxima or -only-minima is
      specified, then it will ignore extrema not of the specified type.  These
      options are mutually exclusive.

      If -roi is specified, not only is data outside the roi not used, but any
      vertex on the edge of the ROI will never be counted as an extrema, in
      case the ROI cuts across a gradient, which would otherwise generate
      extrema where there should be none.

      If -sum-columns is specified, these extrema columns are summed, and the
      output has a single column with this result.

      By default, a datapoint is an extrema only if it is more extreme than
      every other datapoint that is within <distance> from it.  If
      -consolidate-mode is used, it instead starts by finding all datapoints
      that are more extreme than their immediate neighbors, then while there
      are any extrema within <distance> of each other, take the two extrema
      closest to each other and merge them into one by a weighted average based
      on how many original extrema have been merged into each.

      By default, all input columns are used with no smoothing, use -column to
      specify a single column to use, and -presmooth to smooth the input before
      finding the extrema.


-metric-false-correlation
COMPARE CORRELATION LOCALLY AND ACROSS/THROUGH SULCI/GYRI
   wb_command -metric-false-correlation
      <surface> - the surface to compute geodesic and 3D distance with
      <metric-in> - the metric to correlate
      <3D-dist> - maximum 3D distance to check around each vertex
      <geo-outer> - maximum geodesic distance to use for neighboring
         correlation
      <geo-inner> - minimum geodesic distance to use for neighboring
         correlation
      <metric-out> - output - the output metric

      [-roi] - select a region of interest that has data
         <roi-metric> - the region, as a metric file

      [-dump-text] - dump the raw measures used to a text file
         <text-out> - the output text file

      For each vertex, compute the average correlation within a range of
      geodesic distances that don't cross a sulcus/gyrus, and the correlation
      to the closest vertex crossing a sulcus/gyrus.  A vertex is considered to
      cross a sulcus/gyrus if the 3D distance is less than a third of the
      geodesic distance.  The output file contains the ratio between these
      correlations, and some additional maps to help explain the ratio.


-metric-fill-holes
FILL HOLES IN AN ROI METRIC
   wb_command -metric-fill-holes
      <surface> - the surface to use for neighbor information
      <metric-in> - the input ROI metric
      <metric-out> - output - the output ROI metric

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      Finds all connected areas that are not included in the ROI, and writes
      ones into all but the largest one, in terms of surface area.


-metric-find-clusters
FILTER CLUSTERS BY SURFACE AREA
   wb_command -metric-find-clusters
      <surface> - the surface to compute on
      <metric-in> - the input metric
      <value-threshold> - threshold for data values
      <minimum-area> - threshold for cluster area, in mm^2
      <metric-out> - output - the output metric

      [-less-than] - find values less than <value-threshold>, rather than
         greater

      [-roi] - select a region of interest
         <roi-metric> - the roi, as a metric

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      [-column] - select a single column
         <column> - the column number or name

      [-size-ratio] - ignore clusters smaller than a given fraction of the
         largest cluster in map
         <ratio> - fraction of the largest cluster's area

      [-distance] - ignore clusters further than a given distance from the
         largest cluster
         <distance> - how far from the largest cluster a cluster can be, edge
            to edge, in mm

      [-start] - start labeling clusters from a value other than 1
         <startval> - the value to give the first cluster found

      Outputs a metric with nonzero integers for all vertices within a large
      enough cluster, and zeros elsewhere.  The integers denote cluster
      membership (by default, first cluster found will use value 1, second
      cluster 2, etc).  Cluster values are not reused across maps of the
      output, but instead keep counting up.  By default, values greater than
      <value-threshold> are considered to be in a cluster, use -less-than to
      test for values less than the threshold.  To apply this as a mask to the
      data, or to do more complicated thresholding, see -metric-math.


-metric-gradient
SURFACE GRADIENT OF A METRIC FILE
   wb_command -metric-gradient
      <surface> - the surface to compute the gradient on
      <metric-in> - the metric to compute the gradient of
      <metric-out> - output - the magnitude of the gradient

      [-presmooth] - smooth the metric before computing the gradient
         <kernel> - the size of the gaussian smoothing kernel in mm, as sigma
            by default

         [-fwhm] - kernel size is FWHM, not sigma

      [-roi] - select a region of interest to take the gradient of
         <roi-metric> - the area to take the gradient within, as a metric

         [-match-columns] - for each input column, use the corresponding column
            from the roi

      [-vectors] - output gradient vectors
         <vector-metric-out> - output - the vectors as a metric file

      [-column] - select a single column to compute the gradient of
         <column> - the column number or name

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      [-average-normals] - average the normals of each vertex with its
         neighbors before using them to compute the gradient

      At each vertex, the immediate neighbors are unfolded onto a plane tangent
      to the surface at the vertex (specifically, perpendicular to the normal).
      The gradient is computed using a regression between the unfolded
      positions of the vertices and their values.  The gradient is then given
      by the slopes of the regression, and reconstructed as a 3D gradient
      vector.  By default, takes the gradient of all columns, with no
      presmoothing, across the whole surface, without averaging the normals of
      the surface among neighbors.

      When using -corrected-areas, note that it is an approximate correction.
      Doing smoothing on individual surfaces before averaging/gradient is
      preferred, when possible, in order to make use of the original surface
      structure.

      Specifying an ROI will restrict the gradient to only use data from where
      the ROI metric is positive, and output zeros anywhere the ROI metric is
      not positive.

      By default, the first column of the roi metric is used for all input
      columns.  When -match-columns is specified to the -roi option, the input
      and roi metrics must have the same number of columns, and for each input
      column's index, the same column index is used in the roi metric.  If the
      -match-columns option to -roi is used while the -column option is also
      used, the number of columns of the roi metric must match the input
      metric, and it will use the roi column with the index of the selected
      input column.

      The vector output metric is organized such that the X, Y, and Z
      components from a single input column are consecutive columns.


-metric-label-import
IMPORT A GIFTI LABEL FILE FROM A METRIC FILE
   wb_command -metric-label-import
      <input> - the input metric file
      <label-list-file> - text file containing the values and names for labels
      <output> - output - the output gifti label file

      [-discard-others] - set any values not mentioned in the label list to the
         ??? label

      [-unlabeled-value] - set the value that will be interpreted as unlabeled
         <value> - the numeric value for unlabeled (default 0)

      [-column] - select a single column to import
         <column> - the column number or name

      [-drop-unused-labels] - remove any unused label values from the label
         table

      Creates a gifti label file from a metric file with label-like values.
      You may specify the empty string (use "") for <label-list-file>, which
      will be treated as if it is an empty file.  The label list file must have
      the following format (2 lines per label):

      <labelname>
      <key> <red> <green> <blue> <alpha>
      ...

      Label names are specified on a separate line from their value and color,
      in order to let label names contain spaces.  Whitespace is trimmed from
      both ends of the label name, but is kept if it is in the middle of a
      label.  Do not specify the "unlabeled" key in the file, it is assumed
      that 0 means not labeled unless -unlabeled-value is specified.  The value
      of <key> specifies what value in the imported file should be used as this
      label (these same key values are also used in the output file).  The
      values of <red>, <green>, <blue> and <alpha> must be integers from 0 to
      255, and will specify the color the label is drawn as (alpha of 255 means
      fully opaque, which is probably what you want).

      By default, it will create new label names with names like LABEL_5 for
      any values encountered that are not mentioned in the list file, specify
      -discard-others to instead set these values to the "unlabeled" key.


-metric-mask
MASK A METRIC FILE
   wb_command -metric-mask
      <metric> - the input metric
      <mask> - the mask metric
      <metric-out> - output - the output metric

      [-column] - select a single column
         <column> - the column number or name

      By default, the output metric is a copy of the input metric, but with
      zeros wherever the mask metric is zero or negative.  if -column is
      specified, the output contains only one column, the masked version of the
      specified input column.


-metric-math
EVALUATE EXPRESSION ON METRIC FILES
   wb_command -metric-math
      <expression> - the expression to evaluate, in quotes
      <metric-out> - output - the output metric

      [-fixnan] - replace NaN results with a value
         <replace> - value to replace NaN with

      [-var] - repeatable - a metric to use as a variable
         <name> - the name of the variable, as used in the expression
         <metric> - the metric file to use as this variable

         [-column] - select a single column
            <column> - the column number or name

         [-repeat] - reuse a single column for each column of calculation

      This command evaluates <expression> at each surface vertex independently.
      There must be at least one -var option (to get the structure, number of
      vertices, and number of columns from), even if the <name> specified in it
      isn't used in <expression>.  All metrics must have the same number of
      vertices.  Filenames are not valid in <expression>, use a variable name
      and a -var option with matching <name> to specify an input file.  If the
      -column option is given to any -var option, only one column is used from
      that file.  If -repeat is specified, the file must either have only one
      column, or have the -column option specified.  All files that don't use
      -repeat must have the same number of columns requested to be used.  The
      format of <expression> is as follows:

      Expressions consist of constants, variables, operators, parentheses, and
      functions, in infix notation, such as 'exp(-x + 3) * scale'.  Variables
      are strings of any length, using the characters a-z, A-Z, 0-9, and _, but
      may not take the name of a named constant.  Currently, there is only one
      named constant, PI.  The operators are +, -, *, /, ^, >, <, >=, <=, ==,
      !=, !, &&, ||.  These behave as in C, except that ^ is exponentiation,
      i.e. pow(x, y), and takes higher precedence than other binary operators
      (also, '-3^-4^-5' means '-(3^(-(4^-5)))').  The <=, >=, ==, and !=
      operators are given a small amount of wiggle room, equal to one millionth
      of the smaller of the absolute values of the values being compared.

      Comparison and logical operators return 0 or 1, you can do masking with
      expressions like 'x * (mask > 0)'.  For all logical operators, an input
      is considered true iff it is greater than 0.  The expression '0 < x < 5'
      is not syntactically wrong, but it will NOT do what is desired, because
      it is evaluated left to right, i.e. '((0 < x) < 5)', which will always
      return 1, as both possible results of a comparison are less than 5.  A
      warning is generated if an expression of this type is detected.  Use
      something like 'x > 0 && x < 5' to get the desired behavior.

      Whitespace between elements is ignored, ' sin ( 2 * x ) ' is equivalent
      to 'sin(2*x)', but 's in(2*x)' is an error.  Implied multiplication is
      not allowed, the expression '2x' will be parsed as a variable.
      Parentheses are (), do not use [] or {}.  Functions require parentheses,
      the expression 'sin x' is an error.

      The following functions are supported:

         sin: 1 argument, the sine of the argument (units are radians)
         cos: 1 argument, the cosine of the argument (units are radians)
         tan: 1 argument, the tangent of the argument (units are radians)
         asin: 1 argument, the inverse of sine of the argument, in radians
         acos: 1 argument, the inverse of cosine of the argument, in radians
         atan: 1 argument, the inverse of tangent of the argument, in radians
         atan2: 2 arguments, atan2(y, x) returns the inverse of tangent of
      (y/x), in radians, determining quadrant by the sign of both arguments
         sinh: 1 argument, the hyperbolic sine of the argument
         cosh: 1 argument, the hyperbolic cosine of the argument
         tanh: 1 argument, the hyperbolic tangent of the argument
         asinh: 1 argument, the inverse hyperbolic sine of the argument
         acosh: 1 argument, the inverse hyperbolic cosine of the argument
         atanh: 1 argument, the inverse hyperbolic tangent of the argument
         sinc: 1 argument, sinc(0) = 1, sin(x) / x otherwise
         ln: 1 argument, the natural logarithm of the argument
         exp: 1 argument, the constant e raised to the power of the argument
         log: 1 argument, the base 10 logarithm of the argument
         log2: 1 argument, the base 2 logarithm of the argument
         sqrt: 1 argument, the square root of the argument
         abs: 1 argument, the absolute value of the argument
         floor: 1 argument, the largest integer not greater than the argument
         round: 1 argument, the nearest integer, with ties rounded away from
      zero
         ceil: 1 argument, the smallest integer not less than the argument
         min: 2 arguments, min(x, y) returns y if (x > y), x otherwise
         max: 2 arguments, max(x, y) returns y if (x < y), x otherwise
         mod: 2 arguments, mod(x, y) = x - y * floor(x / y), or 0 if y == 0
         clamp: 3 arguments, clamp(x, low, high) = min(max(x, low), high)


-metric-merge
MERGE METRIC FILES INTO A NEW FILE
   wb_command -metric-merge
      <metric-out> - output - the output metric

      [-metric] - repeatable - specify an input metric
         <metric-in> - a metric file to use columns from

         [-column] - repeatable - select a single column to use
            <column> - the column number or name

            [-up-to] - use an inclusive range of columns
               <last-column> - the number or name of the last column to include

               [-reverse] - use the range in reverse order

      Takes one or more metric files and constructs a new metric file by
      concatenating columns from them.  The input metric files must have the
      same number of vertices and same structure.

      Example: wb_command -metric-merge out.func.gii -metric first.func.gii
      -column 1 -metric second.func.gii

      This example would take the first column from first.func.gii, followed by
      all columns from second.func.gii, and write these columns to
      out.func.gii.


-metric-palette
SET THE PALETTE OF A METRIC FILE
   wb_command -metric-palette
      <metric> - the metric to modify
      <mode> - the mapping mode

      [-column] - select a single column
         <column> - the column number or name

      [-pos-percent] - percentage min/max for positive data coloring
         <pos-min-%> - the percentile for the least positive data
         <pos-max-%> - the percentile for the most positive data

      [-neg-percent] - percentage min/max for negative data coloring
         <neg-min-%> - the percentile for the least negative data
         <neg-max-%> - the percentile for the most negative data

      [-pos-user] - user min/max values for positive data coloring
         <pos-min-user> - the value for the least positive data
         <pos-max-user> - the value for the most positive data

      [-neg-user] - user min/max values for negative data coloring
         <neg-min-user> - the value for the least negative data
         <neg-max-user> - the value for the most negative data

      [-interpolate] - interpolate colors
         <interpolate> - boolean, whether to interpolate

      [-disp-pos] - display positive data
         <display> - boolean, whether to display

      [-disp-neg] - display positive data
         <display> - boolean, whether to display

      [-disp-zero] - display data closer to zero than the min cutoff
         <display> - boolean, whether to display

      [-palette-name] - set the palette used
         <name> - the name of the palette

      [-thresholding] - set the thresholding
         <type> - thresholding setting
         <test> - show values inside or outside thresholds
         <min> - lower threshold
         <max> - upper threshold

      [-inversion] - specify palette inversion
         <type> - the type of inversion

      The original metric file is overwritten with the modified version.  By
      default, all columns of the metric file are adjusted to the new settings,
      use the -column option to change only one column.  Mapping settings not
      specified in options will be taken from the first column.  The <mode>
      argument must be one of the following:

      MODE_AUTO_SCALE
      MODE_AUTO_SCALE_ABSOLUTE_PERCENTAGE
      MODE_AUTO_SCALE_PERCENTAGE
      MODE_USER_SCALE

      The <name> argument to -palette-name must be one of the following:

      ROY-BIG-BL
      videen_style
      Gray_Interp_Positive
      Gray_Interp
      PSYCH-FIXED
      RBGYR20
      RBGYR20P
      RYGBR4_positive
      RGRBR_mirror90_pos
      Orange-Yellow
      POS_NEG_ZERO
      red-yellow
      blue-lightblue
      FSL
      power_surf
      black-red
      black-green
      black-blue
      black-red-positive
      black-green-positive
      black-blue-positive
      blue-black-green
      blue-black-red
      red-black-green
      fsl_red
      fsl_green
      fsl_blue
      fsl_yellow
      RedWhiteBlue
      cool-warm
      spectral
      RY-BC-BL
      magma
      JET256
      PSYCH
      PSYCH-NO-NONE
      ROY-BIG
      clear_brain
      fidl
      raich4_clrmid
      raich6_clrmid
      HSB8_clrmid
      POS_NEG
      Special-RGB-Volume

      The <type> argument to -thresholding must be one of the following:

      THRESHOLD_TYPE_OFF
      THRESHOLD_TYPE_NORMAL
      THRESHOLD_TYPE_FILE

      The <test> argument to -thresholding must be one of the following:

      THRESHOLD_TEST_SHOW_OUTSIDE
      THRESHOLD_TEST_SHOW_INSIDE

      The <type> argument to -inversion must be one of the following:

      OFF
      POSITIVE_WITH_NEGATIVE
      POSITIVE_NEGATIVE_SEPARATE


-metric-reduce
PERFORM REDUCTION OPERATION ACROSS METRIC COLUMNS
   wb_command -metric-reduce
      <metric-in> - the metric to reduce
      <operation> - the reduction operator to use
      <metric-out> - output - the output metric

      [-exclude-outliers] - exclude non-numeric values and outliers by standard
         deviation
         <sigma-below> - number of standard deviations below the mean to
            include
         <sigma-above> - number of standard deviations above the mean to
            include

      [-only-numeric] - exclude non-numeric values

      For each surface vertex, takes the data across columns as a vector, and
      performs the specified reduction on it, putting the result into the
      single output column at that vertex.  The reduction operators are as
      follows:

      MAX: the maximum value
      MIN: the minimum value
      INDEXMAX: the 1-based index of the maximum value
      INDEXMIN: the 1-based index of the minimum value
      SUM: add all values
      PRODUCT: multiply all values
      MEAN: the mean of the data
      STDEV: the standard deviation (N denominator)
      SAMPSTDEV: the sample standard deviation (N-1 denominator)
      VARIANCE: the variance of the data
      TSNR: mean divided by sample standard deviation (N-1 denominator)
      COV: sample standard deviation (N-1 denominator) divided by mean
      L2NORM: square root of sum of squares
      MEDIAN: the median of the data
      MODE: the mode of the data
      COUNT_NONZERO: the number of nonzero elements in the data


-metric-regression
REGRESS SPATIAL MAP OUT OF A METRIC FILE
   wb_command -metric-regression
      <metric-in> - the metric to regress from
      <metric-out> - output - the output metric

      [-roi] - only regress inside an roi
         <roi-metric> - the area to use for regression, as a metric

      [-column] - select a single column to regress from
         <column> - the column number or name

      [-remove] - repeatable - specify a metric to regress out
         <metric> - the metric file to use

         [-remove-column] - select a column to use, rather than all
            <column> - the column number or name

      [-keep] - repeatable - specify a metric to include in regression, but not
         remove
         <metric> - the metric file to use

         [-keep-column] - select a column to use, rather than all
            <column> - the column number or name

      For each regressor, its mean across the surface is subtracted from its
      data.  Each input map is then regressed against these, and a constant
      term.  The resulting regressed slopes of all regressors specified with
      -remove are multiplied with their respective regressor maps, and these
      are subtracted from the input map.


-metric-remove-islands
REMOVE ISLANDS FROM AN ROI METRIC
   wb_command -metric-remove-islands
      <surface> - the surface to use for neighbor information
      <metric-in> - the input ROI metric
      <metric-out> - output - the output ROI metric

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      Finds all connected areas in the ROI, and zeros out all but the largest
      one, in terms of surface area.


-metric-resample
RESAMPLE A METRIC FILE TO A DIFFERENT MESH
   wb_command -metric-resample
      <metric-in> - the metric file to resample
      <current-sphere> - a sphere surface with the mesh that the metric is
         currently on
      <new-sphere> - a sphere surface that is in register with <current-sphere>
         and has the desired output mesh
      <method> - the method name
      <metric-out> - output - the output metric

      [-area-surfs] - specify surfaces to do vertex area correction based on
         <current-area> - a relevant anatomical surface with <current-sphere>
            mesh
         <new-area> - a relevant anatomical surface with <new-sphere> mesh

      [-area-metrics] - specify vertex area metrics to do area correction based
         on
         <current-area> - a metric file with vertex areas for <current-sphere>
            mesh
         <new-area> - a metric file with vertex areas for <new-sphere> mesh

      [-current-roi] - use an input roi on the current mesh to exclude non-data
         vertices
         <roi-metric> - the roi, as a metric file

      [-valid-roi-out] - output the ROI of vertices that got data from valid
         source vertices
         <roi-out> - output - the output roi as a metric

      [-largest] - use only the value of the vertex with the largest weight

      [-bypass-sphere-check] - ADVANCED: allow the current and new 'spheres' to
         have arbitrary shape as long as they follow the same contour

      Resamples a metric file, given two spherical surfaces that are in
      register.  If ADAP_BARY_AREA is used, exactly one of -area-surfs or
      -area-metrics must be specified.

      The ADAP_BARY_AREA method is recommended for ordinary metric data,
      because it should use all data while downsampling, unlike BARYCENTRIC.
      The recommended areas option for most data is individual midthicknesses
      for individual data, and averaged vertex area metrics from individual
      midthicknesses for group average data.

      The -current-roi option only masks the input, the output may be slightly
      dilated in comparison, consider using -metric-mask on the output when
      using -current-roi.

      The -largest option results in nearest vertex behavior when used with
      BARYCENTRIC.  When resampling a binary metric, consider thresholding at
      0.5 after resampling rather than using -largest.

      The <method> argument must be one of the following:

      ADAP_BARY_AREA
      BARYCENTRIC


-metric-rois-from-extrema
CREATE METRIC ROI MAPS FROM EXTREMA MAPS
   wb_command -metric-rois-from-extrema
      <surface> - the surface to use for geodesic distance
      <metric> - the input metric file
      <limit> - geodesic distance limit from vertex, in mm
      <metric-out> - output - the output metric file

      [-gaussian] - generate a gaussian kernel instead of a flat ROI
         <sigma> - the sigma for the gaussian kernel, in mm

      [-roi] - select a region of interest to use
         <roi-metric> - the area to use, as a metric

      [-overlap-logic] - how to handle overlapping ROIs, default ALLOW
         <method> - the method of resolving overlaps

      [-column] - select a single input column to use
         <column> - the column number or name

      For each nonzero value in each map, make a map with an ROI around that
      location.  If the -gaussian option is specified, then normalized gaussian
      kernels are output instead of ROIs.  The <method> argument to
      -overlap-logic must be one of ALLOW, CLOSEST, or EXCLUDE.  ALLOW is the
      default, and means that ROIs are treated independently and may overlap.
      CLOSEST means that ROIs may not overlap, and that no ROI contains
      vertices that are closer to a different seed vertex.  EXCLUDE means that
      ROIs may not overlap, and that any vertex within range of more than one
      ROI does not belong to any ROI.


-metric-rois-to-border
DRAW BORDERS AROUND METRIC ROIS
   wb_command -metric-rois-to-border
      <surface> - the surface to use for neighbor information
      <metric> - the input metric containing ROIs
      <class-name> - the name to use for the class of the output borders
      <border-out> - output - the output border file

      [-placement] - set how far along the edge border points are drawn
         <fraction> - fraction along edge from inside vertex (default 0.33)

      [-column] - select a single column
         <column> - the column number or name

      For each ROI column, finds all edges on the mesh that cross the boundary
      of the ROI, and draws borders through them.  By default, this is done on
      all columns in the input file, using the map name as the name for the
      border.


-metric-smoothing
SMOOTH A METRIC FILE
   wb_command -metric-smoothing
      <surface> - the surface to smooth on
      <metric-in> - the metric to smooth
      <smoothing-kernel> - the size of the gaussian smoothing kernel in mm, as
         sigma by default
      <metric-out> - output - the output metric

      [-fwhm] - kernel size is FWHM, not sigma

      [-roi] - select a region of interest to smooth
         <roi-metric> - the roi to smooth within, as a metric

         [-match-columns] - for each input column, use the corresponding column
            from the roi

      [-fix-zeros] - treat zero values as not being data

      [-column] - select a single column to smooth
         <column> - the column number or name

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      [-method] - select smoothing method, default GEO_GAUSS_AREA
         <method> - the name of the smoothing method

      Smooth a metric file on a surface.  By default, smooths all input columns
      on the entire surface, specify -column to use only one input column, and
      -roi to smooth only where the roi metric is greater than 0, outputting
      zeros elsewhere.

      When using -roi, input data outside the ROI is not used to compute the
      smoothed values.  By default, the first column of the roi metric is used
      for all input columns.  When -match-columns is specified to the -roi
      option, the input and roi metrics must have the same number of columns,
      and for each input column's index, the same column index is used in the
      roi metric.  If the -match-columns option to -roi is used while the
      -column option is also used, the number of columns must match between the
      roi and input metric, and it will use the roi column with the index of
      the selected input column.

      The -fix-zeros option causes the smoothing to not use an input value if
      it is zero, but still write a smoothed value to the vertex.  This is
      useful for zeros that indicate lack of information, preventing them from
      pulling down the intensity of nearby vertices, while giving the zero an
      extrapolated value.

      The -corrected-areas option is intended for when it is unavoidable to
      smooth on a group average surface, it is only an approximate correction
      for the reduction of structure in a group average surface.  It is better
      to smooth the data on individuals before averaging, when feasible.

      Valid values for <method> are:

      GEO_GAUSS_AREA - uses a geodesic gaussian kernel, and normalizes based on
      vertex area in order to work more reliably on irregular surfaces

      GEO_GAUSS_EQUAL - uses a geodesic gaussian kernel, and normalizes
      assuming each vertex has equal importance

      GEO_GAUSS - matches geodesic gaussian smoothing from caret5, but does not
      check kernels for having unequal importance

      The GEO_GAUSS_AREA method is the default because it is usually the
      correct choice.  GEO_GAUSS_EQUAL may be the correct choice when the sum
      of vertex values is more meaningful then the surface integral (sum of
      values .* areas), for instance when smoothing vertex areas (the sum is
      the total surface area, while the surface integral is the sum of squares
      of the vertex areas).  The GEO_GAUSS method is not recommended, it exists
      mainly to replicate methods of studies done with caret5's geodesic
      smoothing.


-metric-stats
SPATIAL STATISTICS ON A METRIC FILE
   wb_command -metric-stats
      <metric-in> - the input metric

      [-reduce] - use a reduction operation
         <operation> - the reduction operation

      [-percentile] - give the value at a percentile
         <percent> - the percentile to find, must be between 0 and 100

      [-column] - only display output for one column
         <column> - the column number or name

      [-roi] - only consider data inside an roi
         <roi-metric> - the roi, as a metric file

         [-match-maps] - each column of input uses the corresponding column
            from the roi file

      [-show-map-name] - print map index and name before each output

      For each column of the input, a line of text is printed, resulting from
      the specified reduction or percentile operation.  Use -column to only
      give output for a single column.  If the -roi option is used without
      -match-maps, then each line will contain as many numbers as there are
      maps in the ROI file, separated by tab characters.  Exactly one of
      -reduce or -percentile must be specified.

      The argument to the -reduce option must be one of the following:

      MAX: the maximum value
      MIN: the minimum value
      INDEXMAX: the 1-based index of the maximum value
      INDEXMIN: the 1-based index of the minimum value
      SUM: add all values
      PRODUCT: multiply all values
      MEAN: the mean of the data
      STDEV: the standard deviation (N denominator)
      SAMPSTDEV: the sample standard deviation (N-1 denominator)
      VARIANCE: the variance of the data
      TSNR: mean divided by sample standard deviation (N-1 denominator)
      COV: sample standard deviation (N-1 denominator) divided by mean
      L2NORM: square root of sum of squares
      MEDIAN: the median of the data
      MODE: the mode of the data
      COUNT_NONZERO: the number of nonzero elements in the data


-metric-tfce
DO TFCE ON A METRIC FILE
   wb_command -metric-tfce
      <surface> - the surface to compute on
      <metric-in> - the metric to run TFCE on
      <metric-out> - output - the output metric

      [-presmooth] - smooth the metric before running TFCE
         <kernel> - the size of the gaussian smoothing kernel in mm, as sigma
            by default

         [-fwhm] - kernel size is FWHM, not sigma

      [-roi] - select a region of interest to run TFCE on
         <roi-metric> - the area to run TFCE on, as a metric

      [-parameters] - set parameters for TFCE integral
         <E> - exponent for cluster area (default 1.0)
         <H> - exponent for threshold value (default 2.0)

      [-column] - select a single column
         <column> - the column number or name

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      This command does not do any statistical analysis.  Please use something
      like PALM if you are just trying to do statistics on your data.

      Threshold-free cluster enhancement is a method to increase the relative
      value of regions that would form clusters in a standard thresholding
      test.  This is accomplished by evaluating the integral of:

      e(h, p)^E * h^H * dh

      at each vertex p, where h ranges from 0 to the maximum value in the data,
      and e(h, p) is the extent of the cluster containing vertex p at threshold
      h.  Negative values are similarly enhanced by negating the data, running
      the same process, and negating the result.

      When using -presmooth with -corrected-areas, note that it is an
      approximate correction within the smoothing algorithm (the TFCE
      correction is exact).  Doing smoothing on individual surfaces before
      averaging/TFCE is preferred, when possible, in order to better tie the
      smoothing kernel size to the original feature size.

      The TFCE method is explained in: Smith SM, Nichols TE., "Threshold-free
      cluster enhancement: addressing problems of smoothing, threshold
      dependence and localisation in cluster inference." Neuroimage. 2009 Jan
      1;44(1):83-98. PMID: 18501637


-metric-to-volume-mapping
MAP METRIC FILE TO VOLUME
   wb_command -metric-to-volume-mapping
      <metric> - the input metric file
      <surface> - the surface to use coordinates from
      <volume-space> - a volume file in the desired output volume space
      <volume-out> - output - the output volume file

      [-nearest-vertex] - use the value from the vertex closest to the voxel
         center
         <distance> - how far from the surface to map values to voxels, in mm

      [-ribbon-constrained] - use ribbon constrained mapping algorithm
         <inner-surf> - the inner surface of the ribbon
         <outer-surf> - the outer surface of the ribbon

         [-voxel-subdiv] - voxel divisions while estimating voxel weights
            <subdiv-num> - number of subdivisions, default 3

         [-greedy] - instead of antialiasing partial-volumed voxels, put full
            metric values (legacy behavior)

         [-thick-columns] - use overlapping columns (legacy method)

      Maps values from a metric file into a volume file.  You must specify
      exactly one mapping method option.  The -nearest-vertex method uses the
      value from the vertex closest to the voxel center (useful for integer
      values).  The -ribbon-constrained method uses the same method as in
      -volume-to-surface-mapping, then uses the weights in reverse.  Mapping to
      lower resolutions than the mesh may require a larger -voxel-subdiv value
      in order to have all of the surface data participate.


-metric-vector-operation
DO A VECTOR OPERATION ON METRIC FILES
   wb_command -metric-vector-operation
      <vectors-a> - first vector input file
      <vectors-b> - second vector input file
      <operation> - what vector operation to do
      <metric-out> - output - the output file

      [-normalize-a] - normalize vectors of first input

      [-normalize-b] - normalize vectors of second input

      [-normalize-output] - normalize output vectors (not valid for dot
         product)

      [-magnitude] - output the magnitude of the result (not valid for dot
         product)

      Does a vector operation on two metric files (that must have a multiple of
      3 columns).  Either of the inputs may have multiple vectors (more than 3
      columns), but not both (at least one must have exactly 3 columns).  The
      -magnitude and -normalize-output options may not be specified together,
      or with an operation that returns a scalar (dot product).  The
      <operation> parameter must be one of the following:

      DOT
      CROSS
      ADD
      SUBTRACT


-metric-vector-toward-roi
FIND IF VECTORS POINT TOWARD AN ROI
   wb_command -metric-vector-toward-roi
      <surface> - the surface to compute on
      <target-roi> - the roi to find the shortest path to
      <metric-out> - output - the output metric

      [-roi] - don't compute for vertices outside an roi
         <roi-metric> - the region to compute inside, as a metric

      At each vertex, compute the vector along the start of the shortest path
      to the ROI.


-metric-weighted-stats
WEIGHTED SPATIAL STATISTICS ON A METRIC FILE
   wb_command -metric-weighted-stats
      <metric-in> - the input metric

      [-area-surface] - use vertex areas as weights
         <area-surface> - the surface to use for vertex areas

      [-weight-metric] - use weights from a metric file
         <weight-metric> - metric file containing the weights

      [-column] - only display output for one column
         <column> - the column number or name

      [-roi] - only consider data inside an roi
         <roi-metric> - the roi, as a metric file

         [-match-maps] - each column of input uses the corresponding column
            from the roi file

      [-mean] - compute weighted mean

      [-stdev] - compute weighted standard deviation

         [-sample] - estimate population stdev from the sample

      [-percentile] - compute weighted percentile
         <percent> - the percentile to find, must be between 0 and 100

      [-sum] - compute weighted sum

      [-show-map-name] - print map index and name before each output

      For each column of the input, a line of text is printed, resulting from
      the specified operation.  You must specify exactly one of -area-surface
      or -weight-metric.  Use -column to only give output for a single column.
      If the -roi option is used without -match-maps, then each line will
      contain as many numbers as there are maps in the ROI file, separated by
      tab characters.  Exactly one of -mean, -stdev, -percentile or -sum must
      be specified.

      Using -sum with -area-surface (or -weight-metric with a metric containing
      similar data) is equivalent to integrating with respect to surface area.
      For example, if you want to find the surface area within an roi, do this:

      $ wb_command -metric-weighted-stats roi.func.gii -sum -area-surface
      midthickness.surf.gii


-nifti-information
DISPLAY INFORMATION ABOUT A NIFTI/CIFTI FILE
   wb_command -nifti-information
      <nifti-file> - the nifti/cifti file to examine

      [-print-header] - display the header contents

         [-allow-truncated] - print the header even if the data is truncated

      [-print-matrix] - output the values in the matrix (cifti only)

      [-print-xml] - print the cifti XML (cifti only)

         [-version] - convert the XML to a specific CIFTI version (default is
            the file's cifti version)
            <version> - the CIFTI version to use

      You must specify at least one -print-* option.


-probtrackx-dot-convert
CONVERT A .DOT FILE FROM PROBTRACKX TO CIFTI
   wb_command -probtrackx-dot-convert
      <dot-file> - input .dot file
      <cifti-out> - output - output cifti file

      [-row-voxels] - the output mapping along a row will be voxels
         <voxel-list-file> - a text file containing IJK indices for the voxels
            used
         <label-vol> - a label volume with the dimensions and sform used, with
            structure labels

      [-row-surface] - the output mapping along a row will be surface vertices
         <roi-metric> - a metric file with positive values on all vertices used

      [-row-cifti] - take the mapping along a row from a cifti file
         <cifti> - the cifti file to take the mapping from
         <direction> - which dimension to take the mapping along, ROW or COLUMN

      [-col-voxels] - the output mapping along a column will be voxels
         <voxel-list-file> - a text file containing IJK indices for the voxels
            used
         <label-vol> - a label volume with the dimensions and sform used, with
            structure labels

      [-col-surface] - the output mapping along a column will be surface
         vertices
         <roi-metric> - a metric file with positive values on all vertices used

      [-col-cifti] - take the mapping along a column from a cifti file
         <cifti> - the cifti file to take the mapping from
         <direction> - which dimension to take the mapping along, ROW or COLUMN

      [-transpose] - transpose the input matrix

      [-make-symmetric] - transform half-square input into full matrix output

      NOTE: exactly one -row option and one -col option must be used.

      If the input file does not have its indexes sorted in the correct
      ordering, this command may take longer than expected.  Specifying
      -transpose will transpose the input matrix before trying to put its
      values into the cifti file, which is currently needed for at least
      matrix2 in order to display it as intended.  How the cifti file is
      displayed is based on which -row option is specified: if -row-voxels is
      specified, then it will display data on volume slices.  The label names
      in the label volume(s) must have the following names, other names are
      ignored:


      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT


-scene-capture-image
OFFSCREEN RENDERING OF SCENE TO AN IMAGE FILE
   wb_command -scene-capture-image
      <scene-file> - scene file
      <scene-name-or-number> - name or number (starting at one) of the scene in
         the scene file
      <image-file-name> - output - image file name
         The file name must end with a valid extension that identifies the
         image file format.  Valid extensions on this system are: (.bmp .jpeg
         .jpg .png .ppm .tif .tiff).

         If there is more than one window in the scene, multiple image files
         are output with the window's number inserted into the name of the
         image file immediately before the image file's extension.

      [-size-window] - Output image is size of window's graphics region from
         when scene was created.

      [-size-capture] - Output image uses size from Capture Dialog when scene
         was created

      [-size-width-height] - Width and height for output image
         <width> - Width for output image
         <height> - Height for output image

      [-size-width] - Width for output image.  Height is computed using the
         aspect ratio from the window's width and height saved in the scene.
         <width> - Width for output image

      [-size-height] - Height for output image.  Width is computed using the
         aspect ratio from the window's width and height saved in the scene.
         <height> - Height for output image

      [-units] - Units for image width/height
            Default is PIXELS
         <units> - Name of units for image width/height.  Valid units are:
            INCHES
            CENTIMETERS
            MILLIMETERS
            METERS
            PIXELS

      [-resolution] - Image resolution (number pixels per size unit)
            Default is 300 PIXELS_PER_INCH
         <Number of pixels> - number of pixels
         <Units Name> - Name of resolution units.  Valid resolution unit names
            are:
            PIXELS_PER_INCH
            PIXELS_PER_CENTIMETER
            PIXELS_PER_METER
            PIXELS_PER_MILLIMETER

      [-margin] - Add a margin to sides of the image using the window's
         background color.
         <size> - size of margin, in pixels, added to all sides of output image

      [-no-scene-colors] - Do not use background and foreground colors in scene

      [-set-map-yoke] - Override selected map index for a map yoking group.
         <map yoking roman numeral> - Roman numeral identifying the map yoking
            group (I, II, III, IV, V, VI, VII, VIII, IX, X)
         <map undex> - Map index for yoking group.  Indices start at 1 (one)

      [-conn-db-login] - Login for scenes with files in Connectome Database.
         If this option is not specified, the login and password stored in the
         user's preferences is used.
         <username> - Connectome DB Username
         <password> - Connectome DB Password

      [-show-capture-settings] - Print settings from Capture Dialog only, DO
         NOT create image file(s)

      [-renderer] - Select renderer for drawing image
         <Renderer> - Name of renderer to use for drawing image
            Available renderers are (first is default):
            OSMesa - Mesa3D OSMesa software renderer

      [-print-image-info] - Print the size and other information about output
         images only and DO NOT create any output images

      ----------------------------------------------------------------------

      Render content of browser windows displayed in a scene into image
      file(s).

      If none of the "-size" options are specified, the default is
      "-size-window" (Output image is size of the window that was saved in the
      scene).

      For the "-size" options that accept a width and/or height, the values
      default to number of pixels.  To express the width and/or height in
      physical units (inches, centimeters, etc.), use the "-units" option.
      When physical units are used, the pixel width and height are derived
      using the physical width/height and the image resolution (see the
      "-resolution" option).

      Note that scenes created prior to version 1.2 (May 2016) do not contain
      information about the size of the window.  Therefore, one must use the
      "-size-width-height" option.

      Examples:

      Generate an image of the second scene.  Width and height of image is
      width and height of window saved in the scene.  
         wb_command -scene-capture-image myscene.scene 2 image2.jpg

      Generate an image of the second scene with a margin around sides of the
      image. Width and height of image is width and height of window saved in
      the scene.  
         wb_command -scene-capture-image myscene.scene 2 image2.jpg  -margin 10

      Generate an image of the second scene that is 6 inches width with 300
      pixels per inch.  The resulting width is 1800 pixels.  The resulting
      height of the image is a function of the width and the aspect ratio
      (height divided by width) of the window size saved in the scene.
         wb_command -scene-capture-image myscene.scene 2 image21.jpg \ 
         -size-width 6 -units INCHES -resolution 300 PIXELS_PER_INCH

      Print information about the size of the output image for the second scene
      (no image file is created) using a width of 4.5 centimeters. 
         wb_command -scene-capture-image myscene.scene 2 test.jpg \ 
         -size-width 4.5 -units CENTIMETERS -print-image-info




-scene-file-merge
REARRANGE SCENES INTO A NEW FILE
   wb_command -scene-file-merge
      <scene-file-out> - output - the output scene file

      [-scene-file] - repeatable - specify a scene file to use scenes from
         <scene-file> - the input scene file

         [-scene] - repeatable - specify a scene to use
            <scene> - the scene number or name

            [-up-to] - use an inclusive range of scenes
               <last-column> - the number or name of the last scene to include

               [-reverse] - use the range in reverse order

      Takes one or more scene files and constructs a new scene file by
      concatenating specified scenes from them.

      Example: wb_command -scene-file-merge out.scene -scene-file first.scene
      -scene 1 -scene-file second.scene

      This example would take the first scene from first.scene, followed by all
      scenes from second.scene, and write these scenes to out.scene.


-scene-file-relocate
RECREATE SCENE FILE IN NEW LOCATION
   wb_command -scene-file-relocate
      <input-scene> - the scene file to use
      <output-scene> - output - the new scene file to create

      Scene files contain internal relative paths, such that moving or copying
      a scene file will cause it to lose track of the files it refers to.  This
      command makes a modified copy of the scene file, changing the relative
      paths to refer to the new relative locations of the files.


-scene-file-update
UPDATE SCENE FILE
   wb_command -scene-file-update
      <input-scene-file> - the input scene file
      <output-scene-file> - the new scene file to create
      <scene-name-or-number> - name or number (starting at one) of the scene in
         the scene file

      [-fix-map-palette-settings] - Fix palette settings for files with change
         in number of maps

      [-remove-missing-files] - Remove missing files from SpecFile

      [-error] - Abort command if there is an error performing any of the
         operations on the scene file

      [-verbose] - Print names of files that have palettes updated

      [-copy-map-one-palette] - repeatable - Copy palettes settings from first
         map to all maps in a data file
         <Data File Name Suffix> - Name of palette mapped data file (cifti,
            metric, volume)

      [-data-file-add] - repeatable - Add a data file to scene's loaded files
         <Name of data file> - Name of data file.  If a data file not in the
            current directory, it is best to use an absolute path (a relative
            path may work).  Instead of a data file, this value may be the name
            of a text file (must end in ".txt") that contains the names of one
            or more data files, one per line.
         Example on UNIX to create a text file containing all CIFTI scalar
            files in the current directory with absolute paths:
            ls -d $PWD/*dscalar.nii  > file.txt

      [-data-file-remove] - repeatable - Remove a data file from scene's loaded
         files
         <Name of data file> - Name of data file.  If a data file not in the
            current directory, it is best to use an absolute path (a relative
            path may work).  Instead of a data file, this value may be the name
            of a text file (must end in ".txt") that contains the names of one
            or more data files, one per line.
         Example on UNIX to create a text file containing all CIFTI scalar
            files in the current directory with absolute paths:
            ls -d $PWD/*dscalar.nii  > file.txt

      This command will update a scene for specific changes in data files.

      "-fix-map-palette-settings" will find all data files that have had a
      change in the number of maps since the scene scene was created.  If the
      file has its "Apply to All Maps" property enabled, the palette setting in
      the first map is copied to all maps in the file.  Note: This modifies the
      palette settings for the file in the scene (data file is NOT modified).

      "-copy-map-one-palette" will copy the palette settings from the first map
      to all other maps in a data file.  This option is typically used when the
      number of maps in a data file changes.  It changes the palette settings
      in the scene that are applied to the data file when the scene is loaded
      (the data file is not modified).  The name of the data file specified on
      the command line is matched to the end of file names in the scene.  This
      allows matching multiple files if their names end with the same
      characters.  It also allows including a relative path when there is more
      than one file with the same name but in different paths and only one of
      the files to be updated.

      "-remove-missing-files" Any files that fail to load when the scene is
      read will be removed from the scene.  Thus, if one deletes files prior to
      running with this option, the deleted files are removed from the scene.  

      "-error" If this option is provided and there is an error while
      performing any of the scene operations, the command will immediately
      cease processing and the output scene file will not be created.
      Otherwise any errors will be listed after the command finishes.


-set-map-names
SET THE NAME OF ONE OR MORE MAPS IN A FILE
   wb_command -set-map-names
      <data-file> - the file to set the map names of

      [-name-file] - use a text file to replace all map names
         <file> - text file containing map names, one per line

      [-from-data-file] - use the map names from another data file
         <file> - a data file with the same number of maps

      [-map] - repeatable - specify a map to set the name of
         <index> - the map index to change the name of
         <new-name> - the name to set for the map

      Sets the name of one or more maps for metric, shape, label, volume, cifti
      scalar or cifti label files.  You must specify either -name-file, or
      -from-data-file, or at least one -map option.  The three option types are
      mutually exclusive.


-set-structure
SET STRUCTURE OF A DATA FILE
   wb_command -set-structure
      <data-file> - the file to set the structure of
      <structure> - the structure to set the file to

      [-surface-type] - set the type of a surface (only used if file is a
         surface file)
         <type> - name of surface type

      [-surface-secondary-type] - set the secondary type of a surface (only
         used if file is a surface file)
         <secondary type> - name of surface secondary type

      The existing file is modified and rewritten to the same filename.  Valid
      values for the structure name are:

      CORTEX_LEFT
      CORTEX_RIGHT
      CEREBELLUM
      ACCUMBENS_LEFT
      ACCUMBENS_RIGHT
      ALL_GREY_MATTER
      ALL_WHITE_MATTER
      AMYGDALA_LEFT
      AMYGDALA_RIGHT
      BRAIN_STEM
      CAUDATE_LEFT
      CAUDATE_RIGHT
      CEREBELLAR_WHITE_MATTER_LEFT
      CEREBELLAR_WHITE_MATTER_RIGHT
      CEREBELLUM_LEFT
      CEREBELLUM_RIGHT
      CEREBRAL_WHITE_MATTER_LEFT
      CEREBRAL_WHITE_MATTER_RIGHT
      CORTEX
      DIENCEPHALON_VENTRAL_LEFT
      DIENCEPHALON_VENTRAL_RIGHT
      HIPPOCAMPUS_LEFT
      HIPPOCAMPUS_RIGHT
      INVALID
      OTHER
      OTHER_GREY_MATTER
      OTHER_WHITE_MATTER
      PALLIDUM_LEFT
      PALLIDUM_RIGHT
      PUTAMEN_LEFT
      PUTAMEN_RIGHT
      THALAMUS_LEFT
      THALAMUS_RIGHT

      Valid names for the surface type are:

      UNKNOWN
      RECONSTRUCTION
      ANATOMICAL
      INFLATED
      VERY_INFLATED
      SPHERICAL
      SEMI_SPHERICAL
      ELLIPSOID
      FLAT
      HULL

      Valid names for the surface secondary type are:

      INVALID
      GRAY_WHITE
      MIDTHICKNESS
      PIAL


-signed-distance-to-surface
COMPUTE SIGNED DISTANCE FROM ONE SURFACE TO ANOTHER
   wb_command -signed-distance-to-surface
      <surface-comp> - the comparison surface to measure the signed distance on
      <surface-ref> - the reference surface that defines the signed distance
         function
      <metric> - output - the output metric

      [-winding] - winding method for point inside surface test
         <method> - name of the method (default EVEN_ODD)

      Compute the signed distance function of the reference surface at every
      vertex on the comparison surface.  NOTE: this relation is NOT symmetric,
      the line from a vertex to the closest point on the 'ref' surface (the one
      that defines the signed distance function) will only align with the
      normal of the 'ref' surface.  Valid specifiers for winding methods are as
      follows:

      EVEN_ODD (default)
      NEGATIVE
      NONZERO
      NORMALS

      The NORMALS method uses the normals of triangles and edges, or the
      closest triangle hit by a ray from the point.  This method may be
      slightly faster, but is only reliable for a closed surface that does not
      cross through itself.  All other methods count entry (positive) and exit
      (negative) crossings of a vertical ray from the point, then counts as
      inside if the total is odd, negative, or nonzero, respectively.


-spec-file-merge
MERGE TWO SPEC FILES INTO ONE
   wb_command -spec-file-merge
      <spec-1> - first spec file to merge
      <spec-2> - second spec file to merge
      <out-spec> - output - output spec file

      The output spec file contains every file that is in either of the input
      spec files.


-spec-file-relocate
RECREATE SPEC FILE IN NEW LOCATION
   wb_command -spec-file-relocate
      <input-spec> - the spec file to use
      <output-spec> - output - the new spec file to create

      Spec files contain internal relative paths, such that moving or copying a
      spec file will cause it to lose track of the files it refers to.  This
      command makes a modified copy of the spec file, changing the relative
      paths to refer to the new relative locations of the files.


-surface-affine-regression
REGRESS THE AFFINE TRANSFORM BETWEEN SURFACES ON THE SAME MESH
   wb_command -surface-affine-regression
      <source> - the surface to warp
      <target> - the surface to match the coordinates of
      <affine-out> - output - the output affine file

      Use linear regression to compute an affine that minimizes the sum of
      squares of the coordinate differences between the target surface and the
      warped source surface.  Note that this has a bias to shrink the surface
      that is being warped.  The output is written as a NIFTI 'world' matrix,
      see -convert-affine to convert it for use in other software.


-surface-apply-affine
APPLY AFFINE TRANSFORM TO SURFACE FILE
   wb_command -surface-apply-affine
      <in-surf> - the surface to transform
      <affine> - the affine file
      <out-surf> - output - the output transformed surface

      [-flirt] - MUST be used if affine is a flirt affine
         <source-volume> - the source volume used when generating the affine
         <target-volume> - the target volume used when generating the affine

      For flirt matrices, you must use the -flirt option, because flirt
      matrices are not a complete description of the coordinate transform they
      represent.  If the -flirt option is not present, the affine must be a
      nifti 'world' affine, which can be obtained with the -convert-affine
      command, or aff_conv from the 4dfp suite.


-surface-apply-warpfield
APPLY WARPFIELD TO SURFACE FILE
   wb_command -surface-apply-warpfield
      <in-surf> - the surface to transform
      <warpfield> - the INVERSE warpfield
      <out-surf> - output - the output transformed surface

      [-fnirt] - MUST be used if using a fnirt warpfield
         <forward-warp> - the forward warpfield

      NOTE: warping a surface requires the INVERSE of the warpfield used to
      warp the volume it lines up with.  The header of the forward warp is
      needed by the -fnirt option in order to correctly interpret the
      displacements in the fnirt warpfield.

      If the -fnirt option is not present, the warpfield must be a nifti
      'world' warpfield, which can be obtained with the -convert-warpfield
      command.


-surface-average
AVERAGE SURFACE FILES TOGETHER
   wb_command -surface-average
      <surface-out> - output - the output averaged surface

      [-stddev] - compute 3D sample standard deviation
         <stddev-metric-out> - output - the output metric for 3D sample
            standard deviation

      [-uncertainty] - compute caret5 'uncertainty'
         <uncert-metric-out> - output - the output metric for uncertainty

      [-surf] - repeatable - specify a surface to include in the average
         <surface> - a surface file to average

         [-weight] - specify a weighted average
            <weight> - the weight to use (default 1)

      The 3D sample standard deviation is computed as
      'sqrt(sum(squaredlength(xyz - mean(xyz)))/(n - 1))'.

      Uncertainty is a legacy measure used in caret5, and is computed as
      'sum(length(xyz - mean(xyz)))/n'.

      When weights are used, the 3D sample standard deviation treats them as
      reliability weights.


-surface-closest-vertex
FIND CLOSEST SURFACE VERTEX TO COORDINATES
   wb_command -surface-closest-vertex
      <surface> - the surface to use
      <coord-list-file> - text file with coordinates
      <vertex-list-out> - output - the output text file with vertex numbers

      For each coordinate XYZ triple, find the closest vertex in the surface,
      and output its vertex number into a text file.  The input file should
      only use whitespace to separate coordinates (spaces, newlines, tabs), for
      instance:

      20 30 25
      30 -20 10


-surface-coordinates-to-metric
MAKE METRIC FILE OF SURFACE COORDINATES
   wb_command -surface-coordinates-to-metric
      <surface> - the surface to use the coordinates of
      <metric-out> - output - the output metric

      Puts the coordinates of the surface into a 3-map metric file, as x, y, z.


-surface-cortex-layer
CREATE SURFACE APPROXIMATING A CORTICAL LAYER
   wb_command -surface-cortex-layer
      <white-surface> - the white matter surface
      <pial-surface> - the pial surface
      <location> - what volume fraction to place the layer at
      <out-surface> - output - the output surface

      [-placement-out] - output the placement as a volume fraction from pial to
         white
         <placement-metric> - output - output metric

      The input surfaces must have vertex correspondence.  The output surface
      is generated by placing vertices between the two surfaces such that the
      enclosed volume within any small patch of the new and white surfaces is
      the given fraction of the volume of the same patch between the pial and
      white surfaces (i.e., specifying 0 would give the white surface, 1 would
      give the pial surface).  


-surface-create-sphere
GENERATE A SPHERE WITH CONSISTENT VERTEX AREAS
   wb_command -surface-create-sphere
      <num-vertices> - desired number of vertices
      <sphere-out> - output - the output sphere

      Generates a sphere by regularly dividing the triangles of an icosahedron,
      to come as close to the desired number of vertices as possible, and
      modifying it to have very similar vertex areas for all vertices.  To
      generate a pair of vertex-matched left and right spheres, use this
      command, then -surface-flip-lr to generate the other sphere, then
      -set-structure on each.  For example:

      $ wb_command -surface-create-sphere 6000 Sphere.6k.R.surf.gii
      $ wb_command -surface-flip-lr Sphere.6k.R.surf.gii Sphere.6k.L.surf.gii
      $ wb_command -set-structure Sphere.6k.R.surf.gii CORTEX_RIGHT
      $ wb_command -set-structure Sphere.6k.L.surf.gii CORTEX_LEFT


-surface-curvature
CALCULATE CURVATURE OF SURFACE
   wb_command -surface-curvature
      <surface> - the surface to compute the curvature of

      [-mean] - output mean curvature
         <mean-out> - output - mean curvature metric

      [-gauss] - output gaussian curvature
         <gauss-out> - output - gaussian curvature metric

      Compute the curvature of the surface, using the method from:
      Interactive Texture Mapping by J. Maillot, Yahia, and Verroust, 1993.
      ACM-0-98791-601-8/93/008


-surface-cut-resample
RESAMPLE A CUT SURFACE
   wb_command -surface-cut-resample
      <surface-in> - the surface file to resample
      <current-sphere> - a sphere surface with the mesh that the input surface
         is currently on
      <new-sphere> - a sphere surface that is in register with <current-sphere>
         and has the desired output mesh
      <surface-out> - output - the output surface file

      Resamples a surface file, given two spherical surfaces that are in
      register.  Barycentric resampling is used, because it is usually better
      for resampling surfaces, and because it is needed to figure out the new
      topology anyway.


-surface-distortion
MEASURE DISTORTION BETWEEN SURFACES
   wb_command -surface-distortion
      <surface-reference> - the reference surface
      <surface-distorted> - the distorted surface
      <metric-out> - output - the output distortion metric

      [-smooth] - smooth the area data
         <sigma> - the size of the smoothing kernel in mm, as sigma by default

         [-fwhm] - kernel size is FWHM, not sigma

      [-caret5-method] - use the surface distortion method from caret5

      [-edge-method] - calculate distortion of edge lengths rather than areas

      [-local-affine-method] - calculate distortion by the local affines
         between triangles

         [-log2] - apply base-2 log transform

      This command, when not using -caret5-method, -edge-method, or
      -local-affine-method, is equivalent to using -surface-vertex-areas on
      each surface, smoothing both output metrics with the GEO_GAUSS_EQUAL
      method on the surface they came from if -smooth is specified, and then
      using the formula 'ln(distorted/reference)/ln(2)' on the smoothed
      results.

      When using -caret5-method, it uses the surface distortion method from
      caret5, which takes the base 2 log of the ratio of tile areas, then
      averages those results at each vertex, and then smooths the result on the
      reference surface.

      When using -edge-method, the -smooth option is ignored, and the output at
      each vertex is the average of 'abs(ln(refEdge/distortEdge)/ln(2))' over
      all edges connected to the vertex.

      When using -local-affine-method, the -smooth option is ignored.  The
      output is two columns, the first is the area distortion ratio, and the
      second is anisotropic strain.  These are calculated by an affine
      transform between matching triangles, and then averaged across the
      triangles of a vertex.


-surface-flip-lr
MIRROR A SURFACE THROUGH THE YZ PLANE
   wb_command -surface-flip-lr
      <surface> - the surface to flip
      <surface-out> - output - the output flipped surface

      This command negates the x coordinate of each vertex, and flips the
      surface normals, so that you have a surface of opposite handedness with
      the same features and vertex correspondence, with normals consistent with
      the original surface.  That is, if the input surface has normals facing
      outward, the output surface will also have normals facing outward.


-surface-flip-normals
FLIP ALL TILES ON A SURFACE
   wb_command -surface-flip-normals
      <surface> - the surface to flip the normals of
      <surface-out> - output - the output surface

      Flips all triangles on a surface, resulting in surface normals being
      flipped the other direction (inward vs outward).  If you transform a
      surface with an affine that has negative determinant, or a warpfield that
      similarly flips the surface, you may end up with a surface that has
      normals pointing inwards, which may have display problems.  Using this
      command will solve that problem.


-surface-generate-inflated
SURFACE GENERATE INFLATED
   wb_command -surface-generate-inflated
      <anatomical-surface-in> - the anatomical surface
      <inflated-surface-out> - output - the output inflated surface
      <very-inflated-surface-out> - output - the output very inflated surface

      [-iterations-scale] - optional iterations scaling
         <iterations-scale-value> - iterations-scale value

      Generate inflated and very inflated surfaces. The output surfaces are
      'matched' (have same XYZ range) to the anatomical surface. In most cases,
      an iterations-scale of 1.0 (default) is sufficient.  However, if the
      surface contains a large number of vertices (150,000), try an
      iterations-scale of 2.5.


-surface-geodesic-distance
COMPUTE GEODESIC DISTANCE FROM ONE VERTEX TO THE ENTIRE SURFACE
   wb_command -surface-geodesic-distance
      <surface> - the surface to compute on
      <vertex> - the vertex to compute geodesic distance from
      <metric-out> - output - the output metric

      [-naive] - use only neighbors, don't crawl triangles (not recommended)

      [-limit] - stop at a certain distance
         <limit-mm> - distance in mm to stop at

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      Unless -limit is specified, computes the geodesic distance from the
      specified vertex to all others.  The result is output as a single column
      metric file, with a value of -1 for vertices that the distance was not
      computed for.

      The -corrected-areas option should be used when the input is a group
      average surface - group average surfaces have significantly less surface
      area than individual surfaces do, and therefore distances measured on
      them would be smaller than measuring them on individual surfaces.  In
      this case, the input to this option should be a group average of the
      output of -surface-vertex-areas for each subject.

      If -naive is not specified, the algorithm uses not just immediate
      neighbors, but also neighbors derived from crawling across pairs of
      triangles that share an edge.


-surface-geodesic-distance-all-to-all
COMPUTE GEODESIC DISTANCES FROM ALL VERTICES
   wb_command -surface-geodesic-distance-all-to-all
      <surface> - the surface to compute on
      <cifti-out> - output - single-hemisphere dconn containing the distances

      [-roi] - only output distances for vertices inside an ROI
         <roi-metric> - the ROI as a metric file

      [-limit] - stop at a specified distance
         <limit-mm> - distance in mm to stop at

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      [-naive] - use only neighbors, don't crawl triangles (not recommended)

      Computes geodesic distance from every vertex to every vertex, outputting
      a single-hemisphere dconn file.  If you are only interested in a few
      vertices, see -surface-geodesic-distance.  When -limit is specified, any
      vertex beyond the limit is assigned the value -1.

      The -roi option makes the output file smaller by not outputting distances
      to or from vertices outside the ROI, but paths are still allowed to go
      outside the ROI when finding distances to other vertices.

      The -corrected-areas option should be used when the input is a group
      average surface - group average surfaces have significantly less surface
      area than individual surfaces do, and therefore distances measured on
      them would be smaller than measuring them on individual surfaces.  In
      this case, the input to this option should be a group average of the
      output of -surface-vertex-areas for each subject.

      If -naive is not specified, the algorithm uses not just immediate
      neighbors, but also neighbors derived from crawling across pairs of
      triangles that share an edge.


-surface-geodesic-rois
DRAW GEODESIC LIMITED ROIS AT VERTICES
   wb_command -surface-geodesic-rois
      <surface> - the surface to draw on
      <limit> - geodesic distance limit from vertex, in mm
      <vertex-list-file> - a text file containing the vertices to draw ROIs
         around
      <metric-out> - output - the output metric

      [-gaussian] - generate a gaussian kernel instead of a flat ROI
         <sigma> - the sigma for the gaussian kernel, in mm

      [-overlap-logic] - how to handle overlapping ROIs, default ALLOW
         <method> - the method of resolving overlaps

      [-names] - name the columns from text file
         <name-list-file> - a text file containing column names, one per line

      [-corrected-areas] - vertex areas to use instead of computing them from
         the surface
         <area-metric> - the corrected vertex areas, as a metric

      For each vertex in the list file, a column in the output metric is
      created, and an ROI around that vertex is drawn in that column.  Each
      metric column will have zeros outside the geodesic distance spacified by
      <limit>, and by default will have a value of 1.0 inside it.  If the
      -gaussian option is specified, the values inside the ROI will instead
      form a gaussian with the specified value of sigma, normalized so that the
      sum of the nonzero values in the metric column is 1.0.  The <method>
      argument to -overlap-logic must be one of ALLOW, CLOSEST, or EXCLUDE.
      ALLOW is the default, and means that ROIs are treated independently and
      may overlap.  CLOSEST means that ROIs may not overlap, and that no ROI
      contains vertices that are closer to a different seed vertex.  EXCLUDE
      means that ROIs may not overlap, and that any vertex within range of more
      than one ROI does not belong to any ROI.


-surface-inflation
SURFACE INFLATION
   wb_command -surface-inflation
      <anatomical-surface-in> - the anatomical surface
      <surface-in> - the surface file to inflate
      <number-of-smoothing-cycles> - number of smoothing cycles
      <smoothing-strength> - smoothing strength (ranges [0.0 - 1.0])
      <smoothing-iterations> - smoothing iterations
      <inflation-factor> - inflation factor
      <surface-out> - output - output surface file

      Inflate a surface by performing cycles that consist of smoothing
      followed by inflation (to correct shrinkage caused by smoothing).


-surface-information
DISPLAY INFORMATION ABOUT A SURFACE
   wb_command -surface-information
      <Surface File> - Surface for which information is displayed

      Information about surface is displayed including vertices, 
      triangles, bounding box, and spacing.


-surface-match
SURFACE MATCH
   wb_command -surface-match
      <Match Surface File> - Match (Reference) Surface
      <Input Surface File> - File containing surface that will be transformed
      <Output Surface Name> - Surface File after transformation

      The Input Surface File will be transformed so that its coordinate ranges
      (bounding box) match that of the Match Surface File


-surface-modify-sphere
CHANGE RADIUS AND OPTIONALLY RECENTER A SPHERE
   wb_command -surface-modify-sphere
      <sphere-in> - the sphere to modify
      <radius> - the radius the output sphere should have
      <sphere-out> - output - the output sphere

      [-recenter] - recenter the sphere by means of the bounding box

      This command may be useful if you have used -surface-resample to resample
      a sphere, which can suffer from problems generally not present in
      -surface-sphere-project-unproject.  If the sphere should already be
      centered around the origin, using -recenter may still shift it slightly
      before changing the radius, which is likely to be undesireable.

      If <sphere-in> is not close to spherical, or not centered around the
      origin and -recenter is not used, a warning is printed.


-surface-normals
OUTPUT VERTEX NORMALS AS METRIC FILE
   wb_command -surface-normals
      <surface> - the surface to output the normals of
      <metric-out> - output - the normal vectors

      Computes the normal vectors of the surface file, and outputs them as a 3
      column metric file.


-surface-resample
RESAMPLE A SURFACE TO A DIFFERENT MESH
   wb_command -surface-resample
      <surface-in> - the surface file to resample
      <current-sphere> - a sphere surface with the mesh that the input surface
         is currently on
      <new-sphere> - a sphere surface that is in register with <current-sphere>
         and has the desired output mesh
      <method> - the method name
      <surface-out> - output - the output surface file

      [-area-surfs] - specify surfaces to do vertex area correction based on
         <current-area> - a relevant surface with <current-sphere> mesh
         <new-area> - a relevant surface with <new-sphere> mesh

      [-area-metrics] - specify vertex area metrics to do area correction based
         on
         <current-area> - a metric file with vertex areas for <current-sphere>
            mesh
         <new-area> - a metric file with vertex areas for <new-sphere> mesh

      [-bypass-sphere-check] - ADVANCED: allow the current and new 'spheres' to
         have arbitrary shape as long as they follow the same contour

      Resamples a surface file, given two spherical surfaces that are in
      register.  If ADAP_BARY_AREA is used, exactly one of -area-surfs or
      -area-metrics must be specified.  This method is not generally
      recommended for surface resampling, but is provided for completeness.

      The BARYCENTRIC method is generally recommended for anatomical surfaces,
      in order to minimize smoothing.

      For cut surfaces (including flatmaps), use -surface-cut-resample.

      Instead of resampling a spherical surface, the
      -surface-sphere-project-unproject command is recommended.

      The <method> argument must be one of the following:

      ADAP_BARY_AREA
      BARYCENTRIC


-surface-set-coordinates
MODIFY COORDINATES OF A SURFACE
   wb_command -surface-set-coordinates
      <surface-in> - the surface to use for the topology
      <coord-metric> - the new coordinates, as a 3-column metric file
      <surface-out> - output - the new surface

      Takes the topology from an existing surface file, and uses values from a
      metric file as coordinates to construct a new surface file.

      See -surface-coordinates-to-metric for how to get surface coordinates as
      a metric file, such that you can then modify them via metric commands,
      etc.


-surface-smoothing
SURFACE SMOOTHING
   wb_command -surface-smoothing
      <surface-in> - the surface file to smooth
      <smoothing-strength> - smoothing strength (ranges [0.0 - 1.0])
      <smoothing-iterations> - smoothing iterations
      <surface-out> - output - output surface file

      Smooths a surface by averaging vertex coordinates with those of the
      neighboring vertices.


-surface-sphere-project-unproject
COPY REGISTRATION DEFORMATIONS TO DIFFERENT SPHERE
   wb_command -surface-sphere-project-unproject
      <sphere-in> - a sphere with the desired output mesh
      <sphere-project-to> - a sphere that aligns with sphere-in
      <sphere-unproject-from> - <sphere-project-to> deformed to the desired
         output space
      <sphere-out> - output - the output sphere

      Background: A surface registration starts with an input sphere, and moves
      its vertices around on the sphere until it matches the template data.
      This means that the registration deformation is actually represented as
      the difference between two separate files - the starting sphere, and the
      registered sphere.  Since the starting sphere of the registration may not
      have vertex correspondence to any other sphere (often, it is a native
      sphere), it can be inconvenient to manipulate or compare these
      deformations across subjects, etc.

      The purpose of this command is to be able to apply these deformations
      onto a new sphere of the user's choice, to make it easier to compare or
      manipulate them.  Common uses are to concatenate two successive separate
      registrations (e.g. Human to Chimpanzee, and then Chimpanzee to Macaque)
      or inversion (for dedrifting or symmetric registration schemes).

      <sphere-in> must already be considered to be in alignment with one of the
      two ends of the registration (if your registration is Human to
      Chimpanzee, <sphere-in> must be in register with either Human or
      Chimpanzee).  The 'project-to' sphere must be the side of the
      registration that is aligned with <sphere-in> (if your registration is
      Human to Chimpanzee, and <sphere-in> is aligned with Human, then
      'project-to' should be the original Human sphere).  The 'unproject-from'
      sphere must be the remaining sphere of the registration (original vs
      deformed/registered).  The output is as if you had run the same
      registration with <sphere-in> as the starting sphere, in the direction of
      deforming the 'project-to' sphere to create the 'unproject-from' sphere.

      Note that this command cannot check for you what spheres are aligned with
      other spheres, and using the wrong spheres or in the incorrect order will
      not necessarily cause an error message.  In some cases, it may be useful
      to use a new, arbitrary sphere as the input, which can be created with
      the -surface-create-sphere command.

      Example 1: You have a Human to Chimpanzee registration, and a Chimpanzee
      to Macaque registration, and want to combine them.  If you use the Human
      sphere registered to Chimpanzee as sphere-in, the Chimpanzee standard
      sphere as project-to, and the Chimpanzee sphere registered to Macaque as
      unproject-from, the output will be the Human sphere in register with the
      Macaque.

      Example 2: You have a Human to Chimpanzee registration, but what you
      really want is the inverse, that is, the sphere as if you had run the
      registration from Chimpanzee to Human.  If you use the Chimpanzee
      standard sphere as sphere-in, the Human sphere registered to Chimpanzee
      as project-to, and the standard Human sphere as unproject-from, the
      output will be the Chimpanzee sphere in register with the Human.

      Technical details: Each vertex of <sphere-in> is projected to a triangle
      of <sphere-project-to>, and its new position is determined by the
      position of the corresponding triangle in <sphere-unproject-from>.  The
      output is a sphere with the topology of <sphere-in>, but coordinates
      shifted by the deformation from <sphere-project-to> to
      <sphere-unproject-from>.  <sphere-project-to> and <sphere-unproject-from>
      must have the same topology as each other, but <sphere-in> may have any
      topology.


-surface-sphere-triangular-patches
DIVIDE STANDARD SPHERE INTO PATCHES
   wb_command -surface-sphere-triangular-patches
      <sphere> - an undistorted, regularly divided icosahedral sphere
      <divisions> - how many pieces to divide each icosahedral edge into, must
         divide perfectly into the given sphere
      <text-out> - output - text file for the vertex numbers of the patches

      Divide the given undistorted sphere into equally-sized triangular
      patches.  Patches overlap by a border of 1 vertex.


-surface-to-surface-3d-distance
COMPUTE DISTANCE BETWEEN CORRESPONDING VERTICES
   wb_command -surface-to-surface-3d-distance
      <surface-comp> - the surface to compare to the reference
      <surface-ref> - the surface to use as the reference
      <dists-out> - output - the output distances

      [-vectors] - output the displacement vectors
         <vectors-out> - output - the output vectors

      Computes the vector difference between the vertices of each surface with
      the same index, as (comp - ref), and output the magnitudes, and
      optionally the displacement vectors.


-surface-vertex-areas
MEASURE SURFACE AREA EACH VERTEX IS RESPONSIBLE FOR
   wb_command -surface-vertex-areas
      <surface> - the surface to measure
      <metric> - output - the output metric

      Each vertex gets one third of the area of each triangle it is a part of.
      Units are mm^2.


-surface-wedge-volume
MEASURE PER-VERTEX VOLUME BETWEEN SURFACES
   wb_command -surface-wedge-volume
      <inner-surface> - the inner surface
      <outer-surface> - the outer surface
      <metric> - output - the output metric

      Compute the volume of each vertex's area from one surface to another.
      The surfaces must have vertex correspondence, and have consistent
      triangle orientation.


-unit-test
 

-volume-all-labels-to-rois
MAKE ROIS FROM ALL LABELS IN A VOLUME FRAME
   wb_command -volume-all-labels-to-rois
      <label-in> - the input volume label file
      <map> - the number or name of the label map to use
      <volume-out> - output - the output volume file

      The output volume has a frame for each label in the specified input
      frame, other than the ??? label, each of which contains an ROI of all
      voxels that are set to the corresponding label.


-volume-capture-plane
INTERPOLATE IMAGE FROM PLANE THROUGH VOLUME
   wb_command -volume-capture-plane
      <volume> - the volume file to interpolate from
      <subvolume> - the name or number of the subvolume to use
      <interp> - interpolation type
      <h-dim> - width of output image, in pixels
      <v-dim> - height of output image, in pixels
      <scale-min> - value to render as black
      <scale-max> - value to render as white
      <bottom-left-x> - x-coordinate of the bottom left of the output image
      <bottom-left-y> - y-coordinate of the bottom left of the output image
      <bottom-left-z> - z-coordinate of the bottom left of the output image
      <bottom-right-x> - x-coordinate of the bottom right of the output image
      <bottom-right-y> - y-coordinate of the bottom right of the output image
      <bottom-right-z> - z-coordinate of the bottom right of the output image
      <top-left-x> - x-coordinate of the top left of the output image
      <top-left-y> - y-coordinate of the top left of the output image
      <top-left-z> - z-coordinate of the top left of the output image
      <image> - output - the output image

      NOTE: If you want to generate an image with all of the capabilities of
      the GUI rendering, see -show-scene.

      Renders an image of an arbitrary plane through the volume file, with a
      simple linear grayscale palette.  The parameter <interp> must be one of:

      CUBIC
      ENCLOSING_VOXEL
      TRILINEAR


-volume-components-to-frames
CONVERT RGB/COMPLEX VOLUME TO FRAMES
   wb_command -volume-components-to-frames
      <input> - the RGB/complex-type volume
      <output> - output - the input volume converted to multiple frames of
         scalar type

      RGB and complex datatypes are not always well supported, this command
      allows separating them into standard subvolumes for better support.


-volume-copy-extensions
COPY EXTENDED DATA TO ANOTHER VOLUME FILE
   wb_command -volume-copy-extensions
      <data-volume> - the volume file containing the voxel data to use
      <extension-volume> - the volume file containing the extensions to use
      <volume-out> - output - the output volume

      [-drop-unknown] - don't copy extensions that workbench doesn't understand

      This command copies the information in a volume file that isn't a
      critical part of the standard header or data matrix, e.g. map names,
      palette settings, label tables.  If -drop-unknown is not specified, it
      also copies similar kinds of information set by other software.


-volume-create
CREATE A BLANK VOLUME FILE
   wb_command -volume-create
      <i-dim> - length of first dimension
      <j-dim> - length of second dimension
      <k-dim> - length of third dimension
      <volume-out> - output - the output volume

      [-plumb] - set via axis order and spacing/offset
         <axis-order> - a string like 'XYZ' that specifies which index is along
            which spatial dimension
         <x-spacing> - change in x-coordinate from incrementing the relevant
            index
         <y-spacing> - change in y-coordinate from incrementing the relevant
            index
         <z-spacing> - change in z-coordinate from incrementing the relevant
            index
         <x-offset> - the x-coordinate of the center of the first voxel
         <y-offset> - the y-coordinate of the center of the first voxel
         <z-offset> - the z-coordinate of the center of the first voxel

      [-sform] - set via a nifti sform
         <xi-spacing> - increase in x coordinate from incrementing the i index
         <xj-spacing> - increase in x coordinate from incrementing the j index
         <xk-spacing> - increase in x coordinate from incrementing the k index
         <x-offset> - x coordinate of first voxel
         <yi-spacing> - increase in y coordinate from incrementing the i index
         <yj-spacing> - increase in y coordinate from incrementing the j index
         <yk-spacing> - increase in y coordinate from incrementing the k index
         <y-offset> - y coordinate of first voxel
         <zi-spacing> - increase in z coordinate from incrementing the i index
         <zj-spacing> - increase in z coordinate from incrementing the j index
         <zk-spacing> - increase in z coordinate from incrementing the k index
         <z-offset> - z coordinate of first voxel

      Creates a volume file full of zeros.  Exactly one of -plumb or -sform
      must be specified.


-volume-dilate
DILATE A VOLUME FILE
   wb_command -volume-dilate
      <volume> - the volume to dilate
      <distance> - distance in mm to dilate
      <method> - dilation method to use
      <volume-out> - output - the output volume

      [-exponent] - use a different exponent in the weighting function
         <exponent> - exponent 'n' to use in (1 / (distance ^ n)) as the
            weighting function (default 7)

      [-bad-voxel-roi] - specify an roi of voxels to overwrite, rather than
         voxels with value zero
         <roi-volume> - volume file, positive values denote voxels to have
            their values replaced

      [-data-roi] - specify an roi of where there is data
         <roi-volume> - volume file, positive values denote voxels that have
            data

      [-subvolume] - select a single subvolume to dilate
         <subvol> - the subvolume number or name

      [-legacy-cutoff] - use the v1.3.2 method of excluding voxels further than
         the dilation distance when calculating the dilated value

      [-grad-extrapolate] - additionally use the gradient to extrapolate,
         intended to be used with WEIGHTED

         [-presmooth] - apply presmoothing before computing gradient vectors,
            not recommended
            <kernel> - the size of gaussian smoothing kernel in mm, as sigma by
               default

            [-fwhm] - kernel size is FWHM, not sigma

      For all voxels that are designated as bad, if they neighbor a non-bad
      voxel with data or are within the specified distance of such a voxel,
      replace the value in the bad voxel with a value calculated from nearby
      non-bad voxels that have data, otherwise set the value to zero.  No
      matter how small <distance> is, dilation will always use at least the
      face neighbor voxels.

      By default, voxels that have data with the value 0 are bad, specify
      -bad-voxel-roi to only count voxels as bad if they are selected by the
      roi.  If -data-roi is not specified, all voxels are assumed to have data.

      To get the behavior of version 1.3.2 or earlier, use '-legacy-cutoff
      -exponent 2'.

      Valid values for <method> are:

      NEAREST - use the value from the nearest good voxel
      WEIGHTED - use a weighted average based on distance


-volume-distortion
CALCULATE VOLUME WARPFIELD DISTORTION
   wb_command -volume-distortion
      <warpfield> - the warpfield to compute the distortion of
      <volume-out> - output - the output distortion measures

      [-fnirt] - MUST be used if using a fnirt warpfield
         <source-volume> - the source volume used when generating the warpfield

      [-circular] - use the circle-based formula for the anisotropic measure

      [-log2] - apply base-2 log transform

      Calculates isotropic and anisotropic distortions in the volume warpfield.
      At each voxel, the gradient of the absolute warpfield is computed to
      obtain the local affine transforms for each voxel (jacobian matrices),
      and strain tensors are derived from them.  The isotropic component
      (volumetric expansion ratio) is the product of the three principal
      strains.  The default measure ('elongation') for the anisotropic
      component is the largest principal strain divided by the smallest.

      The -circular option instead calculates the anisotropic component by
      transforming the principal strains into log space, considering them as
      x-values of points on a circle 120 degrees apart, finds the circle's
      diameter, and transforms that back to a ratio.


-volume-erode
ERODE A VOLUME FILE
   wb_command -volume-erode
      <volume> - the volume to erode
      <distance> - distance in mm to erode
      <volume-out> - output - the output volume

      [-roi] - assume voxels outside this roi are nonzero
         <roi-volume> - volume file, positive values denote voxels that have
            data

      [-subvolume] - select a single subvolume to dilate
         <subvol> - the subvolume number or name

      Around each voxel with a value of zero, set surrounding voxels to zero.
      The surrounding voxels are all face neighbors and all voxels within the
      specified distance (center to center).


-volume-estimate-fwhm
ESTIMATE FWHM SMOOTHNESS OF A VOLUME
   wb_command -volume-estimate-fwhm
      <volume> - the input volume

      [-roi] - use only data within an ROI
         <roivol> - the volume to use as an ROI

      [-subvolume] - select a single subvolume to estimate smoothness of
         <subvol> - the subvolume number or name

      [-whole-file] - estimate for the whole file at once, not each subvolume
         separately

         [-demean] - subtract the mean image before estimating smoothness

      Estimates the smoothness of the input volume in X, Y, and Z directions
      separately, printing the estimates to standard output, in mm as FWHM.  If
      -subvolume or -whole-file are not specified, each subvolume is estimated
      and displayed separately.


-volume-extrema
FIND EXTREMA IN A VOLUME FILE
   wb_command -volume-extrema
      <volume-in> - volume file to find the extrema of
      <distance> - the minimum distance between identified extrema of the same
         type
      <volume-out> - output - the output extrema volume

      [-presmooth] - smooth the volume before finding extrema
         <kernel> - the size of the gaussian smoothing kernel in mm, as sigma
            by default

         [-fwhm] - kernel size is FWHM, not sigma

      [-roi] - ignore values outside the selected area
         <roi-volume> - the area to find extrema in

      [-threshold] - ignore small extrema
         <low> - the largest value to consider for being a minimum
         <high> - the smallest value to consider for being a maximum

      [-sum-subvols] - output the sum of the extrema subvolumes instead of each
         subvolume separately

      [-consolidate-mode] - use consolidation of local minima instead of a
         large neighborhood

      [-only-maxima] - only find the maxima

      [-only-minima] - only find the minima

      [-subvolume] - select a single subvolume to find extrema in
         <subvolume> - the subvolume number or name

      Finds extrema in a volume file, such that no two extrema of the same type
      are within <distance> of each other.  The extrema are labeled as -1 for
      minima, 1 for maxima, 0 otherwise.  If -only-maxima or -only-minima is
      specified, then it will ignore extrema not of the specified type.  These
      options are mutually exclusive.

      If -sum-subvols is specified, these extrema subvolumes are summed, and
      the output has a single subvolume with this result.

      By default, a datapoint is an extrema only if it is more extreme than
      every other datapoint that is within <distance> from it.  If
      -consolidate-mode is used, it instead starts by finding all datapoints
      that are more extreme than their immediate neighbors, then while there
      are any extrema within <distance> of each other, take the two extrema
      closest to each other and merge them into one by a weighted average based
      on how many original extrema have been merged into each.

      By default, all input subvolumes are used with no smoothing, use
      -subvolume to specify a single subvolume to use, and -presmooth to smooth
      the input before finding the extrema.


-volume-fill-holes
FILL HOLES IN AN ROI VOLUME
   wb_command -volume-fill-holes
      <volume-in> - the input ROI volume
      <volume-out> - output - the output ROI volume

      Finds all face-connected parts that are not included in the ROI, and
      fills all but the largest one with ones.


-volume-find-clusters
FILTER CLUSTERS BY VOLUME
   wb_command -volume-find-clusters
      <volume-in> - the input volume
      <value-threshold> - threshold for data values
      <minimum-volume> - threshold for cluster volume, in mm^3
      <volume-out> - output - the output volume

      [-less-than] - find values less than <value-threshold>, rather than
         greater

      [-roi] - select a region of interest
         <roi-volume> - the roi, as a volume file

      [-subvolume] - select a single subvolume
         <subvol> - the subvolume number or name

      [-size-ratio] - ignore clusters smaller than a given fraction of the
         largest cluster in map
         <ratio> - fraction of the largest cluster's volume

      [-distance] - ignore clusters further than a given distance from the
         largest cluster
         <distance> - how far from the largest cluster a cluster can be, edge
            to edge, in mm

      [-start] - start labeling clusters from a value other than 1
         <startval> - the value to give the first cluster found

      Outputs a volume with nonzero integers for all voxels within a large
      enough cluster, and zeros elsewhere.  The integers denote cluster
      membership (by default, first cluster found will use value 1, second
      cluster 2, etc).  Cluster values are not reused across frames of the
      output, but instead keep counting up.  By default, values greater than
      <value-threshold> are considered to be in a cluster, use -less-than to
      test for values less than the threshold.  To apply this as a mask to the
      data, or to do more complicated thresholding, see -volume-math.


-volume-gradient
GRADIENT OF A VOLUME FILE
   wb_command -volume-gradient
      <volume-in> - the input volume
      <volume-out> - output - the output gradient magnitude volume

      [-presmooth] - smooth the volume before computing the gradient
         <kernel> - the size of the gaussian smoothing kernel in mm, as sigma
            by default

         [-fwhm] - kernel size is FWHM, not sigma

      [-roi] - select a region of interest to take the gradient of
         <roi-volume> - the region to take the gradient within

      [-vectors] - output vectors
         <vector-volume-out> - output - the vectors as a volume file

      [-subvolume] - select a single subvolume to take the gradient of
         <subvol> - the subvolume number or name

      Computes the gradient of the volume by doing linear regressions for each
      voxel, considering only its face neighbors unless too few face neighbors
      exist.  The gradient vector is constructed from the partial derivatives
      of the resulting linear function, and the magnitude of this vector is the
      output.  If specified, the volume vector output is arranged with the x,
      y, and z components from a subvolume as consecutive subvolumes.


-volume-label-export-table
EXPORT LABEL TABLE FROM VOLUME AS TEXT
   wb_command -volume-label-export-table
      <label-in> - the input volume label file
      <map> - the number or name of the label map to use
      <table-out> - output - the output text file

      Takes the label table from the volume label map, and writes it to a text
      format matching what is expected by -volume-label-import.


-volume-label-import
IMPORT A LABEL VOLUME TO WORKBENCH FORMAT
   wb_command -volume-label-import
      <input> - the input volume file
      <label-list-file> - text file containing the values and names for labels
      <output> - output - the output workbench label volume

      [-discard-others] - set any voxels with values not mentioned in the label
         list to the ??? label

      [-unlabeled-value] - set the value that will be interpreted as unlabeled
         <value> - the numeric value for unlabeled (default 0)

      [-subvolume] - select a single subvolume to import
         <subvol> - the subvolume number or name

      [-drop-unused-labels] - remove any unused label values from the label
         table

      Creates a label volume from an integer-valued volume file.  The label
      name and color information is stored in the volume header in a nifti
      extension, with a similar format as in caret5, see -volume-help.  You may
      specify the empty string (use "") for <label-list-file>, which will be
      treated as if it is an empty file.  The label list file must have the
      following format (2 lines per label):

      <labelname>
      <key> <red> <green> <blue> <alpha>
      ...

      Label names are specified on a separate line from their value and color,
      in order to let label names contain spaces.  Whitespace is trimmed from
      both ends of the label name, but is kept if it is in the middle of a
      label.  Do not specify the "unlabeled" key in the file, it is assumed
      that 0 means not labeled unless -unlabeled-value is specified.  The value
      of <key> specifies what value in the imported file should be used as this
      label (these same key values are also used in the output file).  The
      values of <red>, <green>, <blue> and <alpha> must be integers from 0 to
      255, and will specify the color the label is drawn as (alpha of 255 means
      fully opaque, which is probably what you want).

      By default, it will create new label names with names like LABEL_5 for
      any values encountered that are not mentioned in the list file, specify
      -discard-others to instead set these values to the "unlabeled" key.


-volume-label-modify-keys
CHANGE KEY VALUES IN A VOLUME LABEL FILE
   wb_command -volume-label-modify-keys
      <volume-in> - the input volume label file
      <remap-file> - text file with old and new key values
      <volume-out> - output - the output volume label file

      [-subvolume] - select a single subvolume
         <subvolume> - the subvolume number or name

      <remap-file> should have lines of the form 'oldkey newkey', like so:

      3 5
      5 8
      8 2

      This would change the current label with key '3' to use the key '5'
      instead, 5 would use 8, and 8 would use 2.  Any collision in key values
      results in the label that was not specified in the remap file getting
      remapped to an otherwise unused key.  Remapping more than one key to the
      same new key, or the same key to more than one new key, results in an
      error.  This will not change the appearance of the file when displayed,
      as it will change the key values in the data at the same time.


-volume-label-probability
FIND FREQUENCY OF VOLUME LABELS
   wb_command -volume-label-probability
      <label-maps> - volume label file containing individual label maps from
         many subjects
      <probability-out> - output - the relative frequencies of each label at
         each voxel

      [-exclude-unlabeled] - don't make a probability map of the unlabeled key

      This command outputs a set of soft ROIs, one for each label in the input,
      where the value is how many of the input maps had that label at that
      voxel, divided by the number of input maps.


-volume-label-to-roi
MAKE A VOLUME LABEL INTO AN ROI VOLUME
   wb_command -volume-label-to-roi
      <label-in> - the input volume label file
      <volume-out> - output - the output volume file

      [-name] - select label by name
         <label-name> - the label name that you want an roi of

      [-key] - select label by key
         <label-key> - the label key that you want an roi of

      [-map] - select a single label map to use
         <map> - the map number or name

      For each map in <label-in>, a map is created in <volume-out> where all
      locations labeled with <label-name> or with a key of <label-key> are
      given a value of 1, and all other locations are given 0.  Exactly one of
      -name and -key must be specified.  Specify -map to use only one map from
      <label-in>.


-volume-label-to-surface-mapping
MAP A LABEL VOLUME TO A SURFACE LABEL FILE
   wb_command -volume-label-to-surface-mapping
      <volume> - the volume to map data from
      <surface> - the surface to map the data onto
      <label-out> - output - the output gifti label file

      [-ribbon-constrained] - use ribbon constrained mapping algorithm
         <inner-surf> - the inner surface of the ribbon
         <outer-surf> - the outer surface of the ribbon

         [-volume-roi] - use a volume roi
            <roi-volume> - the volume file

         [-voxel-subdiv] - voxel divisions while estimating voxel weights
            <subdiv-num> - number of subdivisions, default 3

         [-thin-columns] - use non-overlapping polyhedra

      [-subvol-select] - select a single subvolume to map
         <subvol> - the subvolume number or name

      Map label volume data to a surface.  If -ribbon-constrained is not
      specified, uses the enclosing voxel method.  The ribbon mapping method
      constructs a polyhedron from the vertex's neighbors on each surface, and
      estimates the amount of this polyhedron's volume that falls inside any
      nearby voxels, to use as the weights for a popularity comparison.  If
      -thin-columns is specified, the polyhedron uses the edge midpoints and
      triangle centroids, so that neighboring vertices do not have overlapping
      polyhedra.  This may require increasing -voxel-subdiv to get enough
      samples in each voxel to reliably land inside these smaller polyhedra.
      The volume ROI is useful to exclude partial volume effects of voxels the
      surfaces pass through, and will cause the mapping to ignore voxels that
      don't have a positive value in the mask.  The subdivision number
      specifies how it approximates the amount of the volume the polyhedron
      intersects, by splitting each voxel into NxNxN pieces, and checking
      whether the center of each piece is inside the polyhedron.  If you have
      very large voxels, consider increasing this if you get unexpected
      unlabeled vertices in your output.


-volume-math
EVALUATE EXPRESSION ON VOLUME FILES
   wb_command -volume-math
      <expression> - the expression to evaluate, in quotes
      <volume-out> - output - the output volume

      [-fixnan] - replace NaN results with a value
         <replace> - value to replace NaN with

      [-var] - repeatable - a volume file to use as a variable
         <name> - the name of the variable, as used in the expression
         <volume> - the volume file to use as this variable

         [-subvolume] - select a single subvolume
            <subvol> - the subvolume number or name

         [-repeat] - reuse a single subvolume for each subvolume of calculation

      This command evaluates <expression> at each voxel independently.  There
      must be at least one -var option (to get the volume space from), even if
      the <name> specified in it isn't used in <expression>.  All volumes must
      have the same volume space.  Filenames are not valid in <expression>, use
      a variable name and a -var option with matching <name> to specify an
      input file.  If the -subvolume option is given to any -var option, only
      one subvolume is used from that file.  If -repeat is specified, the file
      must either have only one subvolume, or have the -subvolume option
      specified.  All files that don't use -repeat must have the same number of
      subvolumes requested to be used.  The format of <expression> is as
      follows:

      Expressions consist of constants, variables, operators, parentheses, and
      functions, in infix notation, such as 'exp(-x + 3) * scale'.  Variables
      are strings of any length, using the characters a-z, A-Z, 0-9, and _, but
      may not take the name of a named constant.  Currently, there is only one
      named constant, PI.  The operators are +, -, *, /, ^, >, <, >=, <=, ==,
      !=, !, &&, ||.  These behave as in C, except that ^ is exponentiation,
      i.e. pow(x, y), and takes higher precedence than other binary operators
      (also, '-3^-4^-5' means '-(3^(-(4^-5)))').  The <=, >=, ==, and !=
      operators are given a small amount of wiggle room, equal to one millionth
      of the smaller of the absolute values of the values being compared.

      Comparison and logical operators return 0 or 1, you can do masking with
      expressions like 'x * (mask > 0)'.  For all logical operators, an input
      is considered true iff it is greater than 0.  The expression '0 < x < 5'
      is not syntactically wrong, but it will NOT do what is desired, because
      it is evaluated left to right, i.e. '((0 < x) < 5)', which will always
      return 1, as both possible results of a comparison are less than 5.  A
      warning is generated if an expression of this type is detected.  Use
      something like 'x > 0 && x < 5' to get the desired behavior.

      Whitespace between elements is ignored, ' sin ( 2 * x ) ' is equivalent
      to 'sin(2*x)', but 's in(2*x)' is an error.  Implied multiplication is
      not allowed, the expression '2x' will be parsed as a variable.
      Parentheses are (), do not use [] or {}.  Functions require parentheses,
      the expression 'sin x' is an error.

      The following functions are supported:

         sin: 1 argument, the sine of the argument (units are radians)
         cos: 1 argument, the cosine of the argument (units are radians)
         tan: 1 argument, the tangent of the argument (units are radians)
         asin: 1 argument, the inverse of sine of the argument, in radians
         acos: 1 argument, the inverse of cosine of the argument, in radians
         atan: 1 argument, the inverse of tangent of the argument, in radians
         atan2: 2 arguments, atan2(y, x) returns the inverse of tangent of
      (y/x), in radians, determining quadrant by the sign of both arguments
         sinh: 1 argument, the hyperbolic sine of the argument
         cosh: 1 argument, the hyperbolic cosine of the argument
         tanh: 1 argument, the hyperbolic tangent of the argument
         asinh: 1 argument, the inverse hyperbolic sine of the argument
         acosh: 1 argument, the inverse hyperbolic cosine of the argument
         atanh: 1 argument, the inverse hyperbolic tangent of the argument
         sinc: 1 argument, sinc(0) = 1, sin(x) / x otherwise
         ln: 1 argument, the natural logarithm of the argument
         exp: 1 argument, the constant e raised to the power of the argument
         log: 1 argument, the base 10 logarithm of the argument
         log2: 1 argument, the base 2 logarithm of the argument
         sqrt: 1 argument, the square root of the argument
         abs: 1 argument, the absolute value of the argument
         floor: 1 argument, the largest integer not greater than the argument
         round: 1 argument, the nearest integer, with ties rounded away from
      zero
         ceil: 1 argument, the smallest integer not less than the argument
         min: 2 arguments, min(x, y) returns y if (x > y), x otherwise
         max: 2 arguments, max(x, y) returns y if (x < y), x otherwise
         mod: 2 arguments, mod(x, y) = x - y * floor(x / y), or 0 if y == 0
         clamp: 3 arguments, clamp(x, low, high) = min(max(x, low), high)


-volume-merge
MERGE VOLUME FILES INTO A NEW FILE
   wb_command -volume-merge
      <volume-out> - output - the output volume file

      [-volume] - repeatable - specify an input volume file
         <volume-in> - a volume file to use subvolumes from

         [-subvolume] - repeatable - select a single subvolume to use
            <subvol> - the subvolume number or name

            [-up-to] - use an inclusive range of subvolumes
               <last-subvol> - the number or name of the last subvolume to
                  include

               [-reverse] - use the range in reverse order

      Takes one or more volume files and constructs a new volume file by
      concatenating subvolumes from them.  The input volume files must have the
      same volume space.

      Example: wb_command -volume-merge out.nii -volume first.nii -subvolume 1
      -volume second.nii

      This example would take the first subvolume from first.nii, followed by
      all subvolumes from second.nii, and write these to out.nii.


-volume-palette
SET THE PALETTE OF A VOLUME FILE
   wb_command -volume-palette
      <volume> - the volume file to modify
      <mode> - the mapping mode

      [-subvolume] - select a single subvolume
         <subvolume> - the subvolume number or name

      [-pos-percent] - percentage min/max for positive data coloring
         <pos-min-%> - the percentile for the least positive data
         <pos-max-%> - the percentile for the most positive data

      [-neg-percent] - percentage min/max for negative data coloring
         <neg-min-%> - the percentile for the least negative data
         <neg-max-%> - the percentile for the most negative data

      [-pos-user] - user min/max values for positive data coloring
         <pos-min-user> - the value for the least positive data
         <pos-max-user> - the value for the most positive data

      [-neg-user] - user min/max values for negative data coloring
         <neg-min-user> - the value for the least negative data
         <neg-max-user> - the value for the most negative data

      [-interpolate] - interpolate colors
         <interpolate> - boolean, whether to interpolate

      [-disp-pos] - display positive data
         <display> - boolean, whether to display

      [-disp-neg] - display positive data
         <display> - boolean, whether to display

      [-disp-zero] - display data closer to zero than the min cutoff
         <display> - boolean, whether to display

      [-palette-name] - set the palette used
         <name> - the name of the palette

      [-thresholding] - set the thresholding
         <type> - thresholding setting
         <test> - show values inside or outside thresholds
         <min> - lower threshold
         <max> - upper threshold

      [-inversion] - specify palette inversion
         <type> - the type of inversion

      The original volume file is overwritten with the modified version.  By
      default, all columns of the volume file are adjusted to the new settings,
      use the -subvolume option to change only one subvolume.  Mapping settings
      not specified in options will be taken from the first subvolume.  The
      <mode> argument must be one of the following:

      MODE_AUTO_SCALE
      MODE_AUTO_SCALE_ABSOLUTE_PERCENTAGE
      MODE_AUTO_SCALE_PERCENTAGE
      MODE_USER_SCALE

      The <name> argument to -palette-name must be one of the following:

      ROY-BIG-BL
      videen_style
      Gray_Interp_Positive
      Gray_Interp
      PSYCH-FIXED
      RBGYR20
      RBGYR20P
      RYGBR4_positive
      RGRBR_mirror90_pos
      Orange-Yellow
      POS_NEG_ZERO
      red-yellow
      blue-lightblue
      FSL
      power_surf
      black-red
      black-green
      black-blue
      black-red-positive
      black-green-positive
      black-blue-positive
      blue-black-green
      blue-black-red
      red-black-green
      fsl_red
      fsl_green
      fsl_blue
      fsl_yellow
      RedWhiteBlue
      cool-warm
      spectral
      RY-BC-BL
      magma
      JET256
      PSYCH
      PSYCH-NO-NONE
      ROY-BIG
      clear_brain
      fidl
      raich4_clrmid
      raich6_clrmid
      HSB8_clrmid
      POS_NEG
      Special-RGB-Volume

      The <type> argument to -thresholding must be one of the following:

      THRESHOLD_TYPE_OFF
      THRESHOLD_TYPE_NORMAL
      THRESHOLD_TYPE_FILE

      The <test> argument to -thresholding must be one of the following:

      THRESHOLD_TEST_SHOW_OUTSIDE
      THRESHOLD_TEST_SHOW_INSIDE

      The <type> argument to -inversion must be one of the following:

      OFF
      POSITIVE_WITH_NEGATIVE
      POSITIVE_NEGATIVE_SEPARATE


-volume-parcel-resampling
SMOOTH AND RESAMPLE VOLUME PARCELS
   wb_command -volume-parcel-resampling
      <volume-in> - the input data volume
      <cur-parcels> - label volume of where the parcels currently are
      <new-parcels> - label volume of where the parcels should be
      <kernel> - gaussian kernel size in mm to smooth by during resampling, as
         sigma by default
      <volume-out> - output - output volume

      [-fix-zeros] - treat zero values as not being data

      [-fwhm] - smoothing kernel size is FWHM, not sigma

      [-subvolume] - select a single subvolume as input
         <subvol> - the subvolume number or name

      Smooths and resamples the region inside each label in cur-parcels to the
      region of the same label name in new-parcels.  Any voxels in the output
      label region but outside the input label region will be extrapolated from
      nearby data.  The -fix-zeros option causes the smoothing to not use an
      input value if it is zero, but still write a smoothed value to the voxel,
      and after smoothing is complete, it will check for any remaining values
      of zero, and fill them in with extrapolated values.

      Note: all volumes must have the same dimensions and spacing.  To use a
      different output space, see -volume-parcel-resampling-generic.


-volume-parcel-resampling-generic
SMOOTH AND RESAMPLE VOLUME PARCELS FROM DIFFERENT VOLUME SPACE
   wb_command -volume-parcel-resampling-generic
      <volume-in> - the input data volume
      <cur-parcels> - label volume of where the parcels currently are
      <new-parcels> - label volume of where the parcels should be
      <kernel> - gaussian kernel size in mm to smooth by during resampling, as
         sigma by default
      <volume-out> - output - output volume

      [-fwhm] - smoothing kernel size is FWHM, not sigma

      [-fix-zeros] - treat zero values as not being data

      [-subvolume] - select a single subvolume as input
         <subvol> - the subvolume number or name

      Smooths and resamples the region inside each label in cur-parcels to the
      region of the same label name in new-parcels.  Any voxels in the output
      label region but outside the input label region will be extrapolated from
      nearby data.  The -fix-zeros option causes the smoothing to not use an
      input value if it is zero, but still write a smoothed value to the voxel,
      and after smoothing is complete, it will check for any remaining values
      of zero, and fill them in with extrapolated values.  The output volume
      will use the volume space of new-parcels, which does not need to be in
      the same volume space as the input.


-volume-parcel-smoothing
SMOOTH PARCELS IN A VOLUME SEPARATELY
   wb_command -volume-parcel-smoothing
      <data-volume> - the volume to smooth
      <label-volume> - a label volume containing the parcels to smooth
      <kernel> - the size of the gaussian smoothing kernel in mm, as sigma by
         default
      <volume-out> - output - the output volume

      [-fwhm] - smoothing kernel size is FWHM, not sigma

      [-fix-zeros] - treat zero values as not being data

      [-subvolume] - select a single subvolume to smooth
         <subvol> - the subvolume number or name

      The volume is smoothed within each label in the label volume using data
      only from within the label.  Equivalent to running volume smoothing with
      ROIs matching each label separately, then adding the resulting volumes,
      but faster.


-volume-reduce
PERFORM REDUCTION OPERATION ACROSS SUBVOLUMES
   wb_command -volume-reduce
      <volume-in> - the volume file to reduce
      <operation> - the reduction operator to use
      <volume-out> - output - the output volume

      [-exclude-outliers] - exclude non-numeric values and outliers by standard
         deviation
         <sigma-below> - number of standard deviations below the mean to
            include
         <sigma-above> - number of standard deviations above the mean to
            include

      [-only-numeric] - exclude non-numeric values

      For each voxel, takes the data across subvolumes as a vector, and
      performs the specified reduction on it, putting the result into the
      single output volume at that voxel.  The reduction operators are as
      follows:

      MAX: the maximum value
      MIN: the minimum value
      INDEXMAX: the 1-based index of the maximum value
      INDEXMIN: the 1-based index of the minimum value
      SUM: add all values
      PRODUCT: multiply all values
      MEAN: the mean of the data
      STDEV: the standard deviation (N denominator)
      SAMPSTDEV: the sample standard deviation (N-1 denominator)
      VARIANCE: the variance of the data
      TSNR: mean divided by sample standard deviation (N-1 denominator)
      COV: sample standard deviation (N-1 denominator) divided by mean
      L2NORM: square root of sum of squares
      MEDIAN: the median of the data
      MODE: the mode of the data
      COUNT_NONZERO: the number of nonzero elements in the data


-volume-remove-islands
REMOVE ISLANDS FROM AN ROI VOLUME
   wb_command -volume-remove-islands
      <volume-in> - the input ROI volume
      <volume-out> - output - the output ROI volume

      Finds all face-connected parts of the ROI, and zeros out all but the
      largest one.


-volume-reorient
CHANGE VOXEL ORDER OF A VOLUME FILE
   wb_command -volume-reorient
      <volume> - the volume to reorient
      <orient-string> - the desired orientation
      <volume-out> - out - the reoriented volume

      Changes the voxel order and the header spacing/origin information such
      that the value of any spatial point is unchanged.  Orientation strings
      look like 'LPI', which means first index is left to right, second is
      posterior to anterior, and third is inferior to superior.  The valid
      characters are:

      L      left to right
      R      right to left
      P      posterior to anterior
      A      anterior to posterior
      I      inferior to superior
      S      superior to inferior


-volume-resample
TRANSFORM AND RESAMPLE A VOLUME FILE
   wb_command -volume-resample
      <volume-in> - volume to resample
      <volume-space> - a volume file in the volume space you want for the
         output
      <method> - the resampling method
      <volume-out> - output - the output volume

      [-affine] - repeatable - add an affine transform
         <affine> - the affine file to use

         [-flirt] - MUST be used if affine is a flirt affine
            <source-volume> - the source volume used when generating the affine
            <target-volume> - the target volume used when generating the affine

      [-affine-series] - repeatable - add an independent affine per-frame
         <affine-series> - text file containing 12 or 16 numbers per line, each
            being a row-major flattened affine

         [-flirt] - MUST be used if the affines are flirt affines
            <source-volume> - the source volume used when generating the affine
            <target-volume> - the target volume used when generating the affine

      [-warp] - repeatable - add a nonlinear warpfield transform
         <warpfield> - the warpfield file

         [-fnirt] - MUST be used if using a fnirt warpfield
            <source-volume> - the source volume used when generating the
               warpfield

      Resample a volume file with an arbitrary list of transformations.  You
      may specify -affine, -warp, and -affine-series multiple times each, and
      they will be used in the order specified.  For instance, for rigid motion
      correction followed by nonlinear atlas registration, specify
      -affine-series first, then -warp.  The recommended methods are CUBIC
      (cubic spline) for most data, and ENCLOSING_VOXEL for label data.  The
      parameter <method> must be one of:

      CUBIC
      ENCLOSING_VOXEL
      TRILINEAR


-volume-rois-from-extrema
CREATE VOLUME ROI MAPS FROM EXTREMA MAPS
   wb_command -volume-rois-from-extrema
      <volume-in> - the input volume
      <limit> - distance limit from voxel center, in mm
      <volume-out> - output - the output volume

      [-gaussian] - generate a gaussian kernel instead of a flat ROI
         <sigma> - the sigma for the gaussian kernel, in mm

      [-roi] - select a region of interest to use
         <roi-volume> - the region to use

      [-overlap-logic] - how to handle overlapping ROIs, default ALLOW
         <method> - the method of resolving overlaps

      [-subvolume] - select a single subvolume to take the gradient of
         <subvol> - the subvolume number or name

      For each nonzero value in each map, make a map with an ROI around that
      location.  If the -gaussian option is specified, then normalized gaussian
      kernels are output instead of ROIs.  The <method> argument to
      -overlap-logic must be one of ALLOW, CLOSEST, or EXCLUDE.  ALLOW is the
      default, and means that ROIs are treated independently and may overlap.
      CLOSEST means that ROIs may not overlap, and that no ROI contains
      vertices that are closer to a different seed vertex.  EXCLUDE means that
      ROIs may not overlap, and that any vertex within range of more than one
      ROI does not belong to any ROI.


-volume-set-space
CHANGE VOLUME SPACE INFORMATION
   wb_command -volume-set-space
      <volume-in> - the input volume
      <volume-out> - output - the output volume

      [-plumb] - set via axis order and spacing/offset
         <axis-order> - a string like 'XYZ' that specifies which index is along
            which spatial dimension
         <x-spacing> - change in x-coordinate from incrementing the relevant
            index
         <y-spacing> - change in y-coordinate from incrementing the relevant
            index
         <z-spacing> - change in z-coordinate from incrementing the relevant
            index
         <x-offset> - the x-coordinate of the first voxel
         <y-offset> - the y-coordinate of the first voxel
         <z-offset> - the z-coordinate of the first voxel

      [-sform] - set via a nifti sform
         <xi-spacing> - increase in x coordinate from incrementing the i index
         <xj-spacing> - increase in x coordinate from incrementing the j index
         <xk-spacing> - increase in x coordinate from incrementing the k index
         <x-offset> - x coordinate of first voxel
         <yi-spacing> - increase in y coordinate from incrementing the i index
         <yj-spacing> - increase in y coordinate from incrementing the j index
         <yk-spacing> - increase in y coordinate from incrementing the k index
         <y-offset> - y coordinate of first voxel
         <zi-spacing> - increase in z coordinate from incrementing the i index
         <zj-spacing> - increase in z coordinate from incrementing the j index
         <zk-spacing> - increase in z coordinate from incrementing the k index
         <z-offset> - z coordinate of first voxel

      [-file] - copy spacing info from volume file with matching dimensions
         <volume-ref> - volume file to use for reference space

         [-ignore-dims] - copy the spacing info even if the dimensions don't
            match

      Writes a copy of the volume file, with the spacing information changed as
      specified.  No reordering of the voxel data occurs, see -volume-reorient
      to change the volume indexing order and reorder the voxels to match.
      Exactly one of -plumb, -sform, or -file must be specified.


-volume-smoothing
SMOOTH A VOLUME FILE
   wb_command -volume-smoothing
      <volume-in> - the volume to smooth
      <kernel> - the size of the gaussian smoothing kernel in mm, as sigma by
         default
      <volume-out> - output - the output volume

      [-fwhm] - kernel size is FWHM, not sigma

      [-roi] - smooth only from data within an ROI
         <roivol> - the volume to use as an ROI

      [-fix-zeros] - treat zero values as not being data

      [-subvolume] - select a single subvolume to smooth
         <subvol> - the subvolume number or name

      Gaussian smoothing for volumes.  By default, smooths all subvolumes with
      no ROI, if ROI is given, only positive voxels in the ROI volume have
      their values used, and all other voxels are set to zero.  Smoothing a
      non-orthogonal volume will be significantly slower, because the operation
      cannot be separated into 1-dimensional smoothings without distorting the
      kernel shape.

      The -fix-zeros option causes the smoothing to not use an input value if
      it is zero, but still write a smoothed value to the voxel.  This is
      useful for zeros that indicate lack of information, preventing them from
      pulling down the intensity of nearby voxels, while giving the zero an
      extrapolated value.


-volume-stats
SPATIAL STATISTICS ON A VOLUME FILE
   wb_command -volume-stats
      <volume-in> - the input volume

      [-reduce] - use a reduction operation
         <operation> - the reduction operation

      [-percentile] - give the value at a percentile
         <percent> - the percentile to find, must be between 0 and 100

      [-subvolume] - only display output for one subvolume
         <subvolume> - the subvolume number or name

      [-roi] - only consider data inside an roi
         <roi-volume> - the roi, as a volume file

         [-match-maps] - each subvolume of input uses the corresponding
            subvolume from the roi file

      [-show-map-name] - print map index and name before each output

      For each subvolume of the input, a line of text is printed, resulting
      from the specified reduction or percentile operation.  Use -subvolume to
      only give output for a single subvolume.  If the -roi option is used
      without -match-maps, then each line will contain as many numbers as there
      are maps in the ROI file, separated by tab characters.  Exactly one of
      -reduce or -percentile must be specified.

      The argument to the -reduce option must be one of the following:

      MAX: the maximum value
      MIN: the minimum value
      INDEXMAX: the 1-based index of the maximum value
      INDEXMIN: the 1-based index of the minimum value
      SUM: add all values
      PRODUCT: multiply all values
      MEAN: the mean of the data
      STDEV: the standard deviation (N denominator)
      SAMPSTDEV: the sample standard deviation (N-1 denominator)
      VARIANCE: the variance of the data
      TSNR: mean divided by sample standard deviation (N-1 denominator)
      COV: sample standard deviation (N-1 denominator) divided by mean
      L2NORM: square root of sum of squares
      MEDIAN: the median of the data
      MODE: the mode of the data
      COUNT_NONZERO: the number of nonzero elements in the data


-volume-tfce
DO TFCE ON A VOLUME FILE
   wb_command -volume-tfce
      <volume-in> - the volume to run TFCE on
      <volume-out> - output - the output volume

      [-presmooth] - smooth the volume before running TFCE
         <kernel> - the size of the gaussian smoothing kernel in mm, as sigma
            by default

         [-fwhm] - smoothing kernel size is FWHM, not sigma

      [-roi] - select a region of interest to run TFCE on
         <roi-volume> - the area to run TFCE on, as a volume

      [-parameters] - set parameters for TFCE integral
         <E> - exponent for cluster volume (default 0.5)
         <H> - exponent for threshold value (default 2.0)

      [-subvolume] - select a single subvolume
         <subvolume> - the subvolume number or name

      This command does not do any statistical analysis.  Please use something
      like PALM if you are just trying to do statistics on your data.

      Threshold-free cluster enhancement is a method to increase the relative
      value of regions that would form clusters in a standard thresholding
      test.  This is accomplished by evaluating the integral of:

      e(h, p)^E * h^H * dh

      at each voxel p, where h ranges from 0 to the maximum value in the data,
      and e(h, p) is the extent of the cluster containing voxel p at threshold
      h.  Negative values are similarly enhanced by negating the data, running
      the same process, and negating the result.

      This method is explained in: Smith SM, Nichols TE., "Threshold-free
      cluster enhancement: addressing problems of smoothing, threshold
      dependence and localisation in cluster inference." Neuroimage. 2009 Jan
      1;44(1):83-98. PMID: 18501637


-volume-to-surface-mapping
MAP VOLUME TO SURFACE
   wb_command -volume-to-surface-mapping
      <volume> - the volume to map data from
      <surface> - the surface to map the data onto
      <metric-out> - output - the output metric file

      [-trilinear] - use trilinear volume interpolation

      [-enclosing] - use value of the enclosing voxel

      [-cubic] - use cubic splines

      [-ribbon-constrained] - use ribbon constrained mapping algorithm
         <inner-surf> - the inner surface of the ribbon
         <outer-surf> - the outer surface of the ribbon

         [-volume-roi] - use a volume roi
            <roi-volume> - the roi volume file

            [-weighted] - treat the roi values as weightings rather than binary

         [-voxel-subdiv] - voxel divisions while estimating voxel weights
            <subdiv-num> - number of subdivisions, default 3

         [-thin-columns] - use non-overlapping polyhedra

         [-gaussian] - reduce weight to voxels that aren't near <surface>
            <scale> - value to multiply the local thickness by, to get the
               gaussian sigma

         [-interpolate] - instead of a weighted average of voxels, interpolate
            at subpoints inside the ribbon
            <method> - interpolation method, must be CUBIC, ENCLOSING_VOXEL, or
               TRILINEAR

         [-bad-vertices-out] - output an ROI of which vertices didn't intersect
            any valid voxels
            <roi-out> - output - the output metric file of vertices that have
               no data

         [-output-weights] - write the voxel weights for a vertex to a volume
            file
            <vertex> - the vertex number to get the voxel weights for, 0-based
            <weights-out> - output - volume to write the weights to

         [-output-weights-text] - write the voxel weights for all vertices to a
            text file
            <text-out> - output - the output text filename

      [-myelin-style] - use the method from myelin mapping
         <ribbon-roi> - an roi volume of the cortical ribbon for this
            hemisphere
         <thickness> - a metric file of cortical thickness
         <sigma> - gaussian kernel in mm for weighting voxels within range

         [-legacy-bug] - emulate old v1.2.3 and earlier code that didn't follow
            a cylinder cutoff

      [-subvol-select] - select a single subvolume to map
         <subvol> - the subvolume number or name

      You must specify exactly one mapping method.  Enclosing voxel uses the
      value from the voxel the vertex lies inside, while trilinear does a 3D
      linear interpolation based on the voxels immediately on each side of the
      vertex's position.

      The ribbon mapping method constructs a polyhedron from the vertex's
      neighbors on each surface, and estimates the amount of this polyhedron's
      volume that falls inside any nearby voxels, to use as the weights for
      sampling.  If -thin-columns is specified, the polyhedron uses the edge
      midpoints and triangle centroids, so that neighboring vertices do not
      have overlapping polyhedra.  This may require increasing -voxel-subdiv to
      get enough samples in each voxel to reliably land inside these smaller
      polyhedra.  The volume ROI is useful to exclude partial volume effects of
      voxels the surfaces pass through, and will cause the mapping to ignore
      voxels that don't have a positive value in the mask.  The subdivision
      number specifies how it approximates the amount of the volume the
      polyhedron intersects, by splitting each voxel into NxNxN pieces, and
      checking whether the center of each piece is inside the polyhedron.  If
      you have very large voxels, consider increasing this if you get zeros in
      your output.  The -gaussian option makes it act more like the myelin
      method, where the distance of a voxel from <surface> is used to
      downweight the voxel.  The -interpolate suboption, instead of doing a
      weighted average of voxels, interpolates from the volume at the
      subdivided points inside the ribbon.  If using both -interpolate and the
      -weighted suboption to -volume-roi, the roi volume weights are linearly
      interpolated, unless the -interpolate method is ENCLOSING_VOXEL, in which
      case ENCLOSING_VOXEL is also used for sampling the roi volume weights.

      The myelin style method uses part of the caret5 myelin mapping command to
      do the mapping: for each surface vertex, take all voxels that are in a
      cylinder with radius and height equal to cortical thickness, centered on
      the vertex and aligned with the surface normal, and that are also within
      the ribbon ROI, and apply a gaussian kernel with the specified sigma to
      them to get the weights to use.  The -legacy-bug flag reverts to the
      unintended behavior present from the initial implementation up to and
      including v1.2.3, which had only the tangential cutoff and a bounding box
      intended to be larger than where the cylinder cutoff should have been.


-volume-vector-operation
DO A VECTOR OPERATION ON VOLUME FILES
   wb_command -volume-vector-operation
      <vectors-a> - first vector input file
      <vectors-b> - second vector input file
      <operation> - what vector operation to do
      <volume-out> - output - the output file

      [-normalize-a] - normalize vectors of first input

      [-normalize-b] - normalize vectors of second input

      [-normalize-output] - normalize output vectors (not valid for dot
         product)

      [-magnitude] - output the magnitude of the result (not valid for dot
         product)

      Does a vector operation on two volume files (that must have a multiple of
      3 subvolumes).  Either of the inputs may have multiple vectors (more than
      3 subvolumes), but not both (at least one must have exactly 3
      subvolumes).  The -magnitude and -normalize-output options may not be
      specified together, or with the DOT operation.  The <operation> parameter
      must be one of the following:

      DOT
      CROSS
      ADD
      SUBTRACT


-volume-warpfield-affine-regression
REGRESS AFFINE FROM WARPFIELD
   wb_command -volume-warpfield-affine-regression
      <warpfield> - the input warpfield
      <affine-out> - output - the output affine file

      [-roi] - only consider voxels within a mask (e.g., a brain mask)
         <roi-vol> - the mask volume

      [-fnirt] - input is a fnirt warpfield
         <source-volume> - the source volume used when generating the fnirt
            warpfield

      [-flirt-out] - write output as a flirt matrix rather than a world
         coordinate transform
         <source-volume> - the volume you want to apply the transform to
         <target-volume> - the target space you want the transformed volume to
            match

      For all voxels in the warpfield, do a regression that predicts the
      post-warp coordinate from the source coordinate.  When -roi is specified,
      only consider voxels with a value greater than 0 in <roi-vol>.

      The default is to expect the warpfield to be in relative world
      coordinates (mm space), and to write the output as a world affine (mm
      space to mm space).  If you are using FSL-created files and utilities,
      specify -fnirt and -flirt as needed, as their coordinate conventions are
      different.


-volume-weighted-stats
WEIGHTED SPATIAL STATISTICS ON A VOLUME FILE
   wb_command -volume-weighted-stats
      <volume-in> - the input volume

      [-weight-volume] - use weights from a volume file
         <weight-volume> - volume file containing the weights

         [-match-maps] - each subvolume of input uses the corresponding
            subvolume from the weights file

      [-subvolume] - only display output for one subvolume
         <subvolume> - the subvolume number or name

      [-roi] - only consider data inside an roi
         <roi-volume> - the roi, as a volume file

         [-match-maps] - each subvolume of input uses the corresponding
            subvolume from the roi file

      [-mean] - compute weighted mean

      [-stdev] - compute weighted standard deviation

         [-sample] - estimate population stdev from the sample

      [-percentile] - compute weighted percentile
         <percent> - the percentile to find, must be between 0 and 100

      [-sum] - compute weighted sum

      [-show-map-name] - print map index and name before each output

      For each subvolume of the input, a line of text is printed, resulting
      from the specified operation.  If -weight-volume is not specified, each
      voxel's volume is used.  Use -subvolume to only give output for a single
      subvolume.  If the -roi option is used without -match-maps, then each
      line will contain as many numbers as there are maps in the ROI file,
      separated by tab characters.  Exactly one of -mean, -stdev, -percentile
      or -sum must be specified.

      Using -sum without -weight-volume is equivalent to integrating with
      respect to volume.


-wbsparse-merge-dense
MERGE WBSPARSE FILES ALONG DENSE DIMENSION
   wb_command -wbsparse-merge-dense
      <direction> - which dimension to merge along, ROW or COLUMN
      <wbsparse-out> - output - the output wbsparse file

      [-wbsparse] - repeatable - specify an input wbsparse file
         <wbsparse-in> - a wbsparse file to merge

      The input wbsparse files must have matching mappings along the direction
      not specified, and the mapping along the specified direction must be
      brain models.


-zip-scene-file
ZIP A SCENE FILE AND ITS DATA FILES
   wb_command -zip-scene-file
      <scene-file> - the scene file to make the zip file from
      <extract-folder> - the name of the folder created when the zip file is
         unzipped
      <zip-file> - out - the zip file that will be created

      [-base-dir] - specify a directory that all data files are somewhere
         within, this will become the root of the zipfile's directory structure
         <directory> - the directory

      [-skip-missing] - any missing files will generate only warnings, and the
         zip file will be created anyway

      [-write-scene-file] - rewrite the scene file before zipping, to store a
         new base path or fix extra '..'s in paths that might break

      If zip-file already exists, it will be overwritten.  If -base-dir is not
      specified, the base directory will be automatically set to the lowest
      level directory containing all files.  The scene file must contain only
      relative paths, and no data files may be outside the base directory.


-zip-spec-file
ZIP A SPEC FILE AND ITS DATA FILES
   wb_command -zip-spec-file
      <spec-file> - the specification file to add to zip file
      <extract-folder> - the name of the folder created when the zip file is
         unzipped
      <zip-file> - out - the zip file that will be created

      [-base-dir] - specify a directory that all data files are somewhere
         within, this will become the root of the zipfile's directory structure
         <directory> - the directory

      [-skip-missing] - any missing files will generate only warnings, and the
         zip file will be created anyway

      If zip-file already exists, it will be overwritten.  If -base-dir is not
      specified, the directory containing the spec file is used for the base
      directory.  The spec file must contain only relative paths, and no data
      files may be outside the base directory.  Scene files inside spec files
      are not checked for what files they reference, ensure that all data files
      referenced by the scene files are also referenced by the spec file.