Balloon Plugin

An ImageJ plugin that allows the segmentation off cell wall boundaries from microscopy images. The plugin is now available on Fiji. Please visit the [[http://fiji.sc/wiki/index.php/Balloon|Fiji]] web pages for updated information on the plugin

Author: Lionel Dupuy

balloon gui

 

Download
Please visit the Fiji webpage http://fiji.sc/wiki/index.php/Balloon|Fiji for updated information on the plugin


Description
This ImageJ plugin has been developed to extract cell architectures from live imaging datasets. It uses a physical “balloon inflation” algorithm for finding the cell boundaries from RGB images

- Extraction of lists of individual cell shapes
- The determination of the cells being in contact each other
- The cells architecture can be exported and analysed using other software
- All previous segmentation steps are automatic, but it is possible to make manual modifications at each step;
- Settings can be saved in properties files for different types of images to be segmented

Installing the plugin
Installed with the Fiji distribution


Pre-processing of the image

balloon coleo026

Fig. 1 initial image

1. Image filtering: a smooth image is very important for the algorithm to work because. Different filters can be found in imageJ. Classically, a Gaussian filter can be used to process the image

2. Background subtraction: It is often useful to reduce long-range modulations of the background intensity. This can be achieved with ImageJ’s background subtraction function.

3. Enhance contrast: it is generally useful to find the right setting for the balloon inflation to normalized the range of pixel intensity. This can be done using the enhance contrast function of imageJ.

balloon coleo026 restored

Fig. 2 restored image


Segmentation
1. Choose the channel: this option determines which channel is used for the segmentation of cells. This option will be used in the future to couple cell boundary detection with nucleus detection / tracking for a better integration of genetic and physical analysis of cell growth.

2. Find image boundaries: this stage is compulsory, even if a pixel limit of 0 can be set if boundaries are those of the image. The function is based on a watershed algorithm to find the boundaries of the tissue to be segmented. It is used for example in the automatic sampling of cell interior point (3.b) or to stop balloons from expanding outside the region.

balloon coleo26 boundaries

Fig. 3 Tissue boundaries


3. Find cell centres: the algorithm needs to be initiated with a seed placed inside each cell of interest. There are three options to carry out this step:

   a.select the cells manually with the mouse by pressing the edit button and choosing one of the options add / move / delete points.

   b.use the automatic sampling algorithm provided by the plugin. It uses the path between a of pair point to determine if they are contained within the same cell (in which case one of them is removed). This decision is based on the indicator h*l. h is the peak of image intensity along the path and l is the distance between the points. Therefore, if the value entered is too small, more than one point will be allowed to be in the same cell. If the value is too large, some cells won’t be detected. Running the algorithm several time can improve the results and find cells that were not detected in the first instance

   c. import points from a file. The file is simply be a list of X Y values separated by a tabulation, one set of coordinate per line and saved with the .tab extension. You can download the text file of the cell center for fig. 2 {{navigation:balloon:centers.tab| here}}.

Once the position of cells have been identified, the connect button is used to initialize the contact detection before balloons are inflated.

balloon coleo026 center

Fig. 4 Cell centres


4. Inflate the balloon: Inflation of the balloons is achieved by specifying a pressure inside balloons (equivalent to pixel intensity) and pressing the inflate button. This operation can be repeated until the balloon occupies the area of the cell. The optimisation step is then use to subdivide the edges of the balloon and use a snake type of algorithm to find the optimal boundaries around the cell.

5. Visualize the results. The results of the segmentation (cell centres, neighbouring cells ...) can be visualized using the show button. The report option prints the geometrical properties of balloons for the list of balloons. This can be use for further analysis of the segmented data.

balloon coleo026 segmented

Fig 5. Segmentation result


6. Save the results. The segmented data can be saved into a specific text file (.txt). The file contains a complete description of the cell architecture and can be read and reloaded by the plugin for further use.

7. Setting the properties of the algorithms**. The plugin is started with a set of predefined parameter values. e.g. initial number of balloon verticies, number of neighbours to check for contact, default values in the interface etc… The values are specified in the BalloonSegmentation.properties file, in the same folder than the plugin, and are read once at the start of the plugin. This file can be edited with any text editor, and it is recommended to keep a copy of the settings obtained for a specific type of image for further reuse. {{navigation:balloon:balloonsegmentation_coleochaete.properties|Here}} is an example of properties file

8. TODOS: there are still many things that need to be done with the plugin. This includes threading of the algorithm to boost the segmentation time, or to connect the boundary segmentation with a particle search algorithm in order to use the plugin with multi-fluorescent lines. Any comments to improve the plugin are much welcome.