Secondary Plugins

This section contians definitions and user instructions for the following plugins

  • Surface Area

  • Skeletonise

  • Analyze Skeleton

  • Intertrabecular Angles

  • Fractal Dimension

All the plugins require 3D 8 bit binary images, the files are written and read as numpy arrays.

Surface Area

Estimates surface area of a 3D volume.

Function = def SurfaceArea(array, voxel_size, fiji_path):

array = Numpy array of the image

voxel_size = Size of the voxels in the image, ex. [51.2,51.2,51.2]. Module assumes microns.

fiji_path = Path to the users local Fiji installation

Results

Surface Area = surface area of resultant mesh in units of microns.

Skeletonise

Computes topological skeleton of input image. Noise in the image should be reduced.

Function = def Skeletonise(array, voxel_size, fiji_path):

Results

Returns skeleton of binary image as a tiff file.

Analzye Skeleton

Measure the number of branches and junctiuons of a skeletonized image.

Function = def Analyze_Skeleton(array,voxel_size,fiji_path,pruneCycleMethod,pruneEnds, excludeRoi,calculateShortestPaths,verbose=True,displaySkeletons):

array = Numpy array of the image

voxel_size = Size of the voxels in the image, ex. [51.2,51.2,51.2]. Module assumes microns.

fiji_path = Path to the users local Fiji installation

pruneCycleMethod = Prune loops in the skeleton. Options are None, Shortest branch, Lowest intensity voxel, or Lowest intensity branch. None indicates no pruning. Shortest branch indicates the middle point of the shortest branch will be cut. Lowest intensity voxel indicates the darkest voxel will be set to 0. Lowest intensity branch indicates the darkest average branch of the loop branches will be cut in the darkest voxel.

pruneEnds = If True, the ends of branches with endpoints will be cut.

excludeRoi = If True, if an ROI is selected it will be excluded from pruning.

calculateShortestPath = If True, the shortest path of the skeleton will be computed and displayed in the skeleton.

verbose = If True, the following information is displayed. skeleton ID,calibrated branch length,3D coordinates of the extremes of the branch, and the Euclidean distance between the extreme points.

displaySkeletons= If True, the skeleton of the image will be displayed as a tiff image.

Results

Image stack of labelled branches and junctions

If show trees is selected, an image stack of labelled tree is saved. Each individual tree will appear in red.

Table will display:

Image= Name of image

Tree= Identifier

Branches: Number of branches

Junctions: Number of junctions

End Points: Number of end points, if pruned this is equal to 0

Junction Voxels: The number of voxels in each junction

Triple Points: Junctions with 3 branches

Slab Voxels: Ordinary branch voxels

Mean Branch Length: Branch average length

Max Branch Length: Longest branch length

Total Branch Length: Branch length sum

Fractal Dimension

This plugin uses the box-counting algorithm to estimate the fractal dimension of a binary image. Boxes of decreasing size are scanned over the image. The number of bones that contain bone are denoted foreground and counted. A fractural structure is where the proportion fo boxes with foreground voxels increases as the box size in turn decreases.

Function = def Fractal_Dimension(array,voxel_size,fiji_path,startBoxSize=48,smallestBoxSize=6,scaleFactor=1.2,autoParam=True):

array = Numpy array of the image

voxel_size = Size of the voxels in the image, ex. [51.2,51.2,51.2]. Module assumes microns.

fiji_path = Path to the users local Fiji installation

startBoxSize = The size in pixels of the box in the sampling grid in the first iteration of the plugin. Default = 48.

smallestBoxSize = The minimum size in pixels of a box in the grid. If the box size becomes smaller than this value, the plugin will iterate one final time, and then cease. Default = 6.

scaleFactor = The value used to divide the box after each iteration of the plugin. A value of 2.0 will decrease the box by half after each step. Default = 1.2.

autoParam = If True, default parameters will be used.

Results

A plot display box count and box size is genreated. The plot is on a log scale.

Fractal Dimension = Represented as the slope from linear regression fit to box size vs box count.

$r^2$ = The goodness of fit for the regression line ofthe box size vs box count plot. Values closer to 1 are considered stronger.

Intertrabecular Angles

This plugin computes the angles between trabeculae in bone images. The input image is skeletonised. A graph of the largest skeleton by number of nodes is generated. THe skeleton is composed of nodes(vertices) and connecting edges(branches).The edges correspond to trabeculae with the nodes corresponding to where the trabeculae meet in the bone.

Function = Intertrabecular_Angles(array,voxel_size,fiji_path,minimumValence,maximumValence,marginCutOff ,minimumTrabecularLength,iteratePruning,printCentroids,useClusters,printCulledEdgePercentages):

minimumValence = The minimum number of branches for a node to be analyzed.

maximumValence = The maximum number of branches for a node to be analyzed.

minimumTrabecularLength = The minimum length to retain a branch following pruning. The length is in the units of image calibration, microns, mm, etc.

marginCutOff = The minimum distance of a node from from the image edge to be analyzed. Too many nodes close to the edges can result in decreasing accuracy.

iteratePruning = If True, the skeleton will be prunted until there are no more short branches.

useClusters = If True, results are pruned independently of graph transversal order.

printCentroids = If True, the centroids of the node pairs on the ends of each edge in the skeleton will be displayed. .

PrintCulledEdgePercentages = If True, statistics of the pruned edges will be displayed.

Results

Intertrabecular angles = The angles in radians between each branch of each node that was analyzed by the plugin. The results are sorted into columns based on the number of branches per individual node.

Centroids = If printCentroids is True, the table of the center coordinates of the node pairs at the ends of each edge.

Culled edge percentages = If PrintCulledEdgePercentages is True, percentages of the different types of pruned edges is displayed.