Skip to content

ShapeWorks Command

ShapeWorks provides a single shapeworks command with subcommands for grooming, optimization, and other operations. Each subcommand has interactive --help documentation.

The codebase is organized as shared libraries rather than independent executables, providing a common backbone for both command-line and GUI-based tools. This also enables ShapeWorks functionality to be linked into new applications.

Example: ResampleVolumesToBeIsotropic

Old command-line: ResampleVolumesToBeIsotropic

./ResampleVolumesToBeIsotropic --inFilename <input-file> --outFilename <output-file> --isoSpacing <voxel-spacing> [--isBinaryImage] [--isCenterImageOn]

Resampling images

Command-line: isoresample (for images)

shapeworks readimage --name <input-file> recenter isoresample --isospacing <voxel-spacing> writeimage --name <output-file>

C++ (without chaining): isoresample (for images)

c++ Image img(<input-file>); img.recenter(); img.isoresample(<voxel-spacing>); img.write(<output-file>);

C++ (with chaining): isoresample (for images)

c++ Image img(<input-file>).recenter().isoresample(<voxel-spacing>).write(<output-file>);

Isoresampling for images

Resampling segmentations

The resampling functionalities are broken down into modular subcommands:

  • Antialias using shapeworks antialias
  • Recenter using shapeworks recenter
  • Binarize using shapeworks binarize

This allows the user to choose the set of commands to run, modify parameters at each step, and save intermediate outputs for troubleshooting.

Command-line: isoresample (for segmentations)

shapeworks readimage --name <input-file> recenter antialias --iterations <num-iter> isoresample --isospacing <voxel-spacing> binarize writeimage --name <output-file>

C++ (without chaining): isoresample (for segmentations)

c++ Image img(<input-file>); img.recenter(); img.antialias(<num-iter>); img.isoresample(<voxel-spacing>); img.binarize(); img.write(<output-file>);

C++ (with chaining): isoresample (for segmentations)

c++ Image img(<input-file>).recenter().antialias(<num-iter>).isoresample(<voxel-spacing>).binarize().write(<output-file>);

Isoresampling for segmentations