BoneJ

Trabecular bone thickness BoneJ is a plugin for bone image analysis in ImageJ. It provides free, open source tools for trabecular geometry and whole bone shape analysis.

BoneJ is preparing for its next phase of development: please tell us what you want to see with the BoneJ community survey.

Development on BoneJ started for a number of practical and ethical reasons:

Citation

If you use BoneJ in your work, please cite:

Doube M, Kłosowski MM, Arganda-Carreras I, Cordeliéres F, Dougherty RP, Jackson J, Schmid B, Hutchinson JR, Shefelbine SJ. (2010) BoneJ: free and extensible bone image analysis in ImageJ. Bone 47:1076-9. doi: 10.1016/j.bone.2010.08.023

Remember to list the version numbers of BoneJ (Help > About Plugins... > BoneJ) and ImageJ (Help > About ImageJ) because these represent defined states of the programs, which can be looked up and examined thanks to Git tagging.

The author manuscript is available here.

Who's citing BoneJ?

Install BoneJ

To install BoneJ, make sure you have a recent version of ImageJ and drag this link to BoneJ_.jar onto ImageJ, or save it in your ImageJ/plugins directory and refresh ImageJ's plugins with Help->Refresh Menus.

There is one important dependency - Benjamin Schmid's 3D Viewer. Installation is the same as for BoneJ; drag the link to the .jar file onto ImageJ or save the .jar in your ImageJ/plugins directory. Make sure to run ImageJ 3D Viewer, which will prompt you to install Java's 3D libraries if you don't already have them.

BoneJ has been downloaded 11766 times by 6877 unique hosts since March 2010, and is now version 1.3.11 (25 June 2013).

For Trabeculae

Analyse Skeleton
Classify, count and measure skeleton branches and junctions. Based on Ignacio Arganda Carreras' AnalyzeSkeleton_.
Anisotropy
Use the mean intercept length (MIL) method to determine degree of anisotropy.
Connectivity
Calculates the Euler characteristic of an image, and works out the connectivity density (Conn.D), which can be interpreted as trabecular number per mm3.
Fractal Count
Uses the box counting method to calculate fractal dimension.
Plateness
Fits star volumes to the structure using a skeleton as starting points. An experimental replacement for the structure model index (SMI).
Isosurface
Creates and optionally displays a 3D surface mesh and measures the surface area, to calculate bone surface (BS).
Purify
Prepares an image for connectivity analysis.
Skeletonise 3D
Find the skeleton of a structure using a topology-maintaining medial axis thinning algorithm implemented by Ignacio Arganda Carreras.
Structure Model Index
Calculates the structure model index (SMI), a measure of how rod- or plate-like trabeculae are. The user can choose between mesh-based (Hildebrand & Rüegsegger method, preferred) and voxel-based (SkyScan) structure dilation.
Optimise Threshold
Uses a histogram from whole stack (rather than the current slice) to autothreshold, and optionally attempts to choose a threshold that minimises connectivity.
Thickness
Calculates the thickness of foreground and background to give trabecular thickness (Tb.Th) and separation (Tb.Sp). Based on Bob Dougherty's Local Thickness plugin.
Volume Fraction
Determines the proportion of the image volume that is foreground (BV/TV).

For Whole Bones

Fit Ellipsoid
Finds the best-fitting ellipsoid from a set of point ROI's in the ROI Manager.
Fit Sphere
Finds the best-fitting sphere from a set of point ROI's in the ROI Manager.
Moments 3D
Calculates the moments of inertia of a structure, such as a whole bone.
Neck Shaft Angle
Works out the neck-shaft angle and curvature of the femur.
Slice Geometry
Calculates cross-sectional parameters such as second moment of area and section modulus.

For Particles

Particle Analyser

Particle Analyser
Finds and measures particles in a 3D binary image stack. Draws interactive 3D graphical output. Installs under Plugins->Analyze->Particle Analyser. Particle Analyser is an experimental branch of the 3D Object Counter, which is being maintained at Fiji and on the Wiki.

Running in Batch Mode

BoneJ plugins are designed to be called from ImageJ macros, to make them easy to run on a whole directory of images. This is an example batch macro that measures BV/TV, Tb.N, Tb.Sp and Tb.Th on a directory of cropped, binary image stacks.

dir1 = getDirectory("Choose Source Directory ");
list = getFileList(dir1);
setBatchMode(true);
for (i=0; i<list.length; i++) {
     showProgress(i+1, list.length);
     open(dir1+list[i]);
     title = getTitle();
     run("Volume Fraction", "start=1 end="+nSlices());
     run("Purify");
     run("Connectivity");
     run("Thickness", "thickness spacing");
     close();
}

The easiest way to modify this script is to record your desired sequence of menu commands with ImageJ's macro recorder (Plugins-Macros-Record), and copy-paste the new commands into the macro.

User Group

If you'd like to be kept up to date with news relating to BoneJ, please sign up for the Google group here:

Subscribe to the BoneJ Users and Developers Google group

Email: Visit this group

Changes

BoneJ is in active development. If you'd like to help develop BoneJ or you just want to see the code, have a look at BoneJ at github. The Java source code is included in BoneJ_.jar, if you would like to see where your results come from. If you want to know the version of BoneJ you have, run Help > About Plugins > BoneJ.

Debugging and Feature Requests

If there's something that's broken:

  1. Make sure you have the latest BoneJ_.jar
  2. Make sure your Java and ImageJ installations are up to date
  3. Ensure you are using a recent ImageJ 3D Viewer, and that you have run the 3D Viewer to install Java's 3D libraries
  4. Read the BoneJ User Guide
  5. Search the mailing list
  6. Use the power of Google, or other search engine
  7. Then, send a message to the mailing list describing what you're trying to do and what actually happened. Attach any error or exception messages to your email.

If there's something that you think BoneJ could do, but doesn't, please write me an email describing your study's objectives, your images and the data you want to get, and I might be able to help you out.

Licences and Authorship

BoneJ is intended to be transparent and free. All the new code is Copyright Michael Doube and licensed under GNU General Public License version 3. Code incorporated in BoneJ has come from several sources. Use of BoneJ implies that you accept the terms of the licenses of all the individual plugins. Terms are generally not onerous, but it's worth checking them out so you know where you stand.

Plugin Author Licence
Fractal Count Per Christian Henden and Jens Bache-Wiig Public Domain
Skeletonize 3D
Analyze Skeleton
Ignacio Arganda-Carreras GNU GPL
3D Erode and Dilate Benjamin Schmid Public Domain
Local Thickness Bob Dougherty BSD Licence
JAMA Joe Hicklin, Cleve Moler and Peter Webb from The MathWorks, and Ronald F. Boisvert, Bruce Miller, Roldan Pozo and Karin Remington from NIST. Public Domain
3D Object Counter Fabrice Cordelières and Jonathan Jackson Public Domain

Valid XHTML 1.0 Strict Valid CSS! This file last modified 1839hrs 25 June 2013 © Michael Doube 2004-2014 :: Designed to be interoperable and standards-compliant