Using Plugins

Going beyond basic ImageJ functionality : Using plugins

Plugins add to the core ImageJ functionality and provide many of the more specialized functions useful for more advanced image processing tasks.

Installation

The NIH maintain a repository of hundreds of ImageJ plugins here: http://rsbweb.nih.gov/ij/plugins/.

Installation of plugins is straightforward and can usually be achieved by saving the plugin into the ‘plugin’ folder in the ImageJ directory.

Useful plugins and ImageJ distributions

Below is a short list of very useful plugins.

Bioformats

The bioformats plugin contains import functionality for a large range (apparently numbering over 100) of proprietary biological data filetypes.

It also supports 4-d and 5-d data sets, i.e. xyztc, meaning three spatial dimensions, time, and channel information.

Colocalization

The colocalization functionality in ImageJ is not actively maintained, and apparently buggy [http://fiji.sc/Colocalization_Analysis]. Instead Coloc_2 or JACoP imageJ plugin provide extensive colocalization tools, such as

“…pixel intensity correlation over space methods of Pearson, Manders, Costes, Li and more, for scatterplots, analysis, automatic thresholding and statistical significance testing.”.

3D Viewer

This plugin enables 3D data visualization from within ImageJ including ortho-slices, isosurfaces, and addition of simple 3d primitive shapes (e.g. spheres).

See http://rsbweb.nih.gov/ij/plugins/3d-viewer/

Fiji

Fiji is not a plugin, but a redistribution of ImageJ (as the name FIJI: Fiji is just imagej implies!) with many useful plugins included. This includes the bio-formats plugins for reading a large variety of microscopy files, as well as a large range of filters and analysis plugins.

BoneJ

BoneJ http://bonej.org/ is a collection of plugins developed for tubular geometry and whole bone shape analysis.

Exercise 2.3

Note

If you are already using FIJI, you should already have the following plugins installed - in which case only practice using these plugins.

Download and install the bioformats and 3d Viewer plugins mentioned above. Use them to visualize a 3d data set of your choice, adding an isosurface representation that makes the structures in the data set visible (Note that you may need to apply some background filtering to achieve good isosurface segmentation!).

If you’re feeling adventerous, also try downloading and installing any additional plugins that might be interesting for your work.

Memory usage

When working with larger datasets, you will need to consider the memory used to store the data in memory (RAM) - including intermediate processing.

For most standard images this is not an issue, but when working with large three or four dimensional datasets (e.g. time-series or z-stacks with multiple channels), you will likely run into memory issues.

There are two common strategies for dealing with memory issues when using large datasets

  • Increase the amount of memory available to ImageJ (see below)
  • Chunk the data

ImageJ is configured to use a relatively small amount of memory (usually 128-640 MB). If this is not enough to process your images, you will get a memory error. To increase the amount of memory available, go to Edit > Options > memory and increase the amount available. You will want to keep this less than 75% of your available system memory. If you are using a 32 bit OS (All older windows installations except XP64 and Vista64), you must set it to less than 1700 mb, or ImageJ will crash when launched.

Note

You will probably not be able to change the amount of memory ImageJ uses on the computing suite computers. However, navigate to the appropriate menu option to familiarize yourself with the location of this very useful option!

Chunking data is only applicable in some scenarios, and a basic form of this is available through using ImageJ’s virtual stack loading option.

In general, chunking means to work on small chunks of data at a time, thereby only loading small amounts of data into memory at a time while leaving the majority of the data on disk. For stacks, this is straight-forward to understand in terms of loading a frame or slice at a time. Similar approaches include tiling data, and multi-resolution loading, but go beyond the capabilities of standard ImageJ.