MiToBo – A Toolbox for Image Processing and Analysis

[5] segments fluorescently labeled neurons, characterizes the cell morphology and extracts profiles from labeled molecules within the cell. The MTBCellCounter [1] is dedicated to semi-automatic SOFTWARE


Introduction
The Microscope Image Analysis Toolbox MiToBo is an extendable collection of basic as well as more sophisticated image processing operators. Additionally, it offers several pipelines for analyzing specific microscopy based experimental setups [1,2,5,6].
Although the focus is on biomedical image processing, it is also applicable to other image analysis tasks. Since it integrates into the popular image processing platforms ImageJ and Fiji, respectively, it automatically benefits from the capability of these programs to process a huge variety of input image types. MiToBo provides an elaborated infrastructure for development and rapid prototyping. Besides its usage in biomedical research, e.g. [4,12,13], it is also actively used for teaching. Its implementation focuses on easy and unified (re-)usability as well as modularity. MiToBo operators can be configured to be executed via a graphical user interface as well as from command line. Furthermore, the integrated graphical programming platform Grappa [3] can be used to create complex analysis pipelines by simply combining existing operators inside a workbench area.

Algorithms and Applications
Basic image processing algorithms implemented in MiToBo comprise, for example, linear and non-linear filters, morphological operations, image arithmetics, connected component labeling or several automatic thresholding methods.
Among the more complex operators are segmentation algorithms like snakes or level set methods, which are highly configurable, e.g., by offering different energy functionals or initialization methods [7]. Furthermore, MiToBo contains operators for contrast enhancement, illumination correction or feature extraction as well as operators to segment cell nuclei or boundaries, for example. Some processing pipelines tailored for the analysis of specific biomedical experiments are also included in MiToBo and its number increases constantly. The ScratchAssayAnalyzer [2] is designed for quantifiying the development of the cell-free area in scratch/wound closure assays. With the ActinAnalyzer2D [6] the distribution of actin microfilament patterns inside cells can be quantified and compared. The NeuronAnalyzer2D [5] segments fluorescently labeled neurons, characterizes the cell morphology and extracts profiles from labeled molecules within the cell. The MTBCellCounter [1] is dedicated to semi-automatic labeling and counting of spot-like structures and small cells. The migratory behavior of fluorescently labeled cells can be analyzed using the CellMigrationAnalyzer. The MiToBo Cell Image Analyzer (MiCA) [9] is conceptualized for segmenting cell boundaries and sub-cellular particles in fluorescence microscopy images. In total, the current release (MiToBo 1.7) contains more than 150 distinct operators.
General features MiToBo's capacities to supply easy usability, generic user interfaces and graphical programming for image processing applications are mainly taken from Alida (see Section Implementation). Building on Alida's concept, each image data analysis action is realized in terms of an operator where each operator implements a common interface definition. As furthermore their input and output parameters are accessible in a standardized manner each operator can be invoked in a uniform way. This is exploited to automatically generate command line and graphical user interfaces for each operator implemented in MiToBo without any additional burden on the programmer (see Figs. 1 and 2 for examples). The graphical user interface includes the option for batch mode operation which, e.g., allows to apply an operation to all files of a given directory or for a range of parameter values.
While developing image analysis pipelines and also with regard to the reproducibility of image analysis results it is usually of interest to thoroughly document parameter settings and analysis steps. To simplify such logging procedures MiToBo offers an automatic process documentation where the invocation of an operator not only produces image analysis results, but at the same time registers within the framework along with all input and output objects as well as parameters settings. These data acquired during an image analysis process and the order of operator calls form a directed graph containing all relevant information for later reconstruction or verification of the analysis procedure. This processing graph is made explicit in terms of an XML representation which can be visually explored with appropriate graphical frontends like Chipory (see the Alida home page) or might be stored in data bases for archival purposes. Fig. 3 gives an example processing graph for an image processing pipeline.
In most cases several image analysis operations, e.g., filters, thresholding, or segmentation algorithms, have to be applied in a sequential, parallel or nested fashion to achieve desired image processing results. The graphical programming editor Grappa included in MiToBo facilitates the design of such processing pipelines or workflows  in an intuitive way. All image processing algorithms implemented as an Alida operator are right away available as operator nodes in Grappa and form the building blocks for workflows. Their input and output parameters may be connected interactively by user-friendly mouse actions where compatibility of data types is enforced and automatic data type conversion is applied if appropriate converts are available (see Fig. 4 for an example).

Implementation
The MiToBo library, implemented in Java, uses and strongly builds on Alida, an Advanced Library for Integrated Development of Data Analysis Applications, which defines and implements a concept for designing libraries and toolkits in data analysis (see [8] and http://www.informatik. uni-halle.de/alida). On the other hand MiToBo builds upon ImageJ, a Java toolkit for image processing and analysis [11] widely used, but not confined to biomedical applications. ImageJ provides the user with flexible means to interactively process, modify, and display images, with a large variety of basic built-in image processing operations, and also with a huge collection of optional plugins downloadable from the web. While MiToBo is compatible with ImageJ it significantly improves data access and exchange between more complex processing modules exploiting Alida's operator concept. Furthermore, MiToBo extends ImageJ's image data types and provides more sophisticated data structures for, e.g., regions and contours. MiToBo's facilities are available within ImageJ either via the MiToBo OpRunner plugin or as dedicated ImageJ plugins. The former allows to configure and run each data analysis procedure implemented as an Alida operator (c.f. Subsection General features and Fig. 1).

Quality Control
The MiToBo core library and the plugin collection currently consist of about 500 Java class files. Approximately 10% of them regularly undergo automatic tests based on JUnit test classes, while the bigger part of the testing is done by manual verification. MiToBo is developed on different operating systems (e.g., Ubuntu Linux 12.04 and 14.04, Microsoft Windows 7 and 8). While the officially supported Java version is still 1.6 (for compatibility reasons with ImageJ/Fiji), developers and users also run MiToBo frequently with additional Java versions (OpenJDK and Oracle Java 1.7/1.8) to ensure a maximum degree of portability.
MiToBo's operators and applications are usually developed in close collaboration with users mainly from Computer Science, Biology and Medicine. They particularly provide feedback on software usability and the plausibility of computed results. Thanks to the update  MiToBo and ImageJ/Fiji run on different versions of Unix, Linux, Mac OS, and Windows.

Programming Language
Java, version 1.6

Additional system requirements
None.

Dependencies
MiToBo builds upon ImageJ/Fiji and its operators can best be run in ImageJ or Fiji, but usage as a library and on command line is also possible. For usage as a library or with ImageJ all required dependencies are shipped as part of the MiToBo distribution. In Fiji MiToBo is available via an update site which automatically resolves the dependencies (http://sites.imagej.net/MiToBo/). To activate MiToBo in Fiji the entry of MiToBo's update site in Fiji's built-in list of available sites just needs to be checked and the updater run (for further details refer to the Fiji documentation at http://fiji.sc/Update_Sites).   English.

(3) Reuse Potential
One of the explicit goals of MiToBo is reusability. As pointed out in Section 1 MiToBo includes implementations of algorithms and operators with varying complexity. Most algorithms and concepts are independent of concrete applications. Expert as well as non-expert users can easily apply them to image processing and analysis problems in a large variety of domains, not necessarily restricted to microscopy images or biomedical scenarios. In addition, also the more specialized operators built on top of these basic ones and being integral part of MiToBo demonstrate the reuse potential. They cover applications from biology, biomedicine and ecology. Complementary the set of different user interfaces which Alida and MiToBo offer, i.e., graphical and command line interfaces, support efficient reuse of MiToBo not only with regard to concrete image processing problems, but also in different usage scenarios ranging from rapid-prototyping and development with tied userdeveloper feedback loops to scripting and high-throughput processing. Finally, reusability of the MiToBo toolbox and its operators is not restricted to the user side. Also for developers reusing operators and implemented algorithms is easy. Based on Alida's concepts for generic implementation of functionality and user interfaces [8] all operators provide unified interfaces for reusing them on the code level in a modular fashion. Likewise new operators and also data types can easily be added to MiToBo's core and take immediate advantage of the rich set of built-in features in Alida and MiToBo. To ease the first steps with MiToBo for own developments a pre-configured Maven project containing a demo operator can be found on MiToBo's project website.