Skip to content
Marwan Abdellah edited this page Jul 27, 2022 · 1 revision

About

Every application in Ultraliser will create a set of resulting data in the output directory defined by the end user setting the command line argument --output-directory. The content of this directory is organized in several subdirectories to make it easy to find the resulting data. The structure of this output directory depends on the types of resulting data (or artefacts) created by the application. For instance, if the user specified any of the mesh export flags (for example: --export-obj-mesh), the output directory will contain a meshes subdirectory that would potentially contain the resulting mesh(es).

Output Directory Structure

Assuming that an executable will create all the artifacts that can be produced by Ultraliser, the output directory should have the following structure:

output directory 
|
+--> meshes
| 
+--> volumes
| 
+--> projections
|
+--> stacks
|
+--> morphologies
| 
+--> stats
|
+--> distributions 

Naming Convention & Prefix

The base name of every file produced by Ultraliser will be basically derived from the base name of the principal input data. For example, in ultraMesh2Mesh, if the absolute path of the input mesh is defined in the following command as follows --mesh /root/path/input/neuron.obj --output-directory /root/path/output --export-obj-mesh --project-xy, the base names of the output meshes and projections should have neuron. If the --prefix=VALUE option is used, then VALUE will be used to label the resulting data instead of the base name of the input mesh.

Meshes Directory

This directory (meshes) will contain all the resulting meshes, including all the meshes created to represent the volumes grid used to voxelize an input mesh or morphology. The directory will be automatically created if one of the following command line options are used:

  • --export-obj-mesh,
  • --export-stl-mesh,
  • --export--off-mesh, or
  • --export-ply-mesh.

By default, the re-meshing pipeline creates 4 subsequent meshes that represent the following stages:

  1. polygonization, using marching cubes or dual marching cubes,
  2. surface smoothing, using the Laplacian smoothing algorithm,
  3. topology optimization, using surface optimization kernels, and
  4. watertightness verification, in which all the self-intersections of the optimized mesh are removed.

The polygonization mesh results from applying either the basic marching cube (mc) algorithm or the advanced dual marching cubes (dmc) algorithm on the volume grid created from the voxelization of the input mesh. If this mesh is stored to disk, the suffix -mc or -dmc will be used to label the output mesh. For the smoothed mesh that results from the Laplacian smoothing stage, the suffix -laplacian will be used to label the output mesh. Similarly, the resulting mesh from the optimization stage will be tagged with the suffix -optimized and the final mesh that results from the watertightness verification stage will have the following suffix -watertight.

Therefore, the previous command line will produce the following artifacts:

output  
|
+--> meshes
|  |
|  +--> neuron-dmc.obj
|  |
|  +--> neuron-laplacian.obj
|  |
|  +--> neuron-watertight.obj
|
+--> projections
|  |
|  +--> neuron-xy.ppm

Note that the default isosurface extraction technique used to polygonize the mesh from the intermediate volume is the dual marching cubes and the default number of laplacian iterations is 5. This is why the -dmc and -laplacian meshes are created. The -optimized mesh is not created becuase the neither the --optimize-mesh nor --adaptive-optimization flags were used.

Projctions Directory

This directory (projections) will contain all the projections of the intermediate volume that is used to voxelize the input mesh. The directory will be created if any of the following flags are used:

  • --project-xy,
  • --project-xz, or
  • --project-zy.

The previous arguments create gray-scale projections. To create color-coded projections, users can use the option --color-coded-projections. Further details are availabiel at this link.

Volumes Directory

This directory (volumes) will contain all the resulting volumes. The directory will be created if any of the following flags are used:

  • --export-bit-volume,
  • --export-unsigned-volume,
  • --export-nrrd-volume, or
  • --export-raw-volume.

Stacks Directory

Statistics Directory

Distributions Directory