MiNA - ImageJ Tools for Mitochondrial Morphology Research
About the Project
MiNA (Mitochondrial Network Analysis) is a ImageJ based utility to aid in quantitatively describing the appearance of mitochondrial morphology in fluorescence micrographs of well resolved and labelled mitochondrial structures. The tool was developed as a result of adherent mammalian cell culture work in the laboratory of Dr. Jeff Stuart at Brock University and is based off of other analysis pipelines. It has since been altered to provide a more intuitive interface, additional options, and output.
Project Road Map
The links listed below provide a starting point for using, modifying, and discussing the project.
📖The Publication - The publication regarding the original macros. Look at Processing Pipeline and Usage for more up to date and thorough information. 💻Source Code - Fork the project and get hacking. ❓Issue Tracking - Submit bugs or feature requests here. Be sure to check the closed issues as well! We may have addressed a concern already.
Processing Pipeline and Usage
Determing the Area/Volume of Mitochondria
MiNA extracts morphological information from two simplifications of the image. One is a binary representation, which simply represents pixels as containing signal or being background. This is generated by automatic thresholding, a good overview of which available on the Auto Threshold page. There are many thresholding methods available through ImageJ Ops. The methods included are listed below. If you find an issue arises using a specific thresholding method, please open an issue using the GitHub issue tracker (only a subset were tested).
Once the image has been binarized, the area or volume can be estimated by simply counting the number of signal positive pixels/voxels and multiplying by the area or volume of the pixel/voxel approximated as a rectangle or rectangular prism. In the binarized image, magenta represents the signal positive pixels, while the background pixels are black. This binarized copy is overlaid upon the original image after processing as an accuracy/artifact check measure. The area or volume of the image occupied by signal is returned as the mitochondrial footprint, the units of which will depend on how the image has been calibrated. You can check the image calibration under Image → Properties.
A second simplification is made to the image for the purpose of estimating the lengths of the midlines extracted from segmented mitochondrial structures and the extend of branching. The simplification is the generation of a morphological skeleton from which polylines can be extracted and analyzed (as is accomplished by the Analyze Skeleton  plugin). The skeleton itself can be generated in two ways. The first, iterative thinning, is the method used in the original macros and produces a skeleton by iteratively removing outer pixels until a one pixel wide structure remains. This is accomplished through the Skeletonize (2D/3D) plugin's methods and has the added benefit of operating on 3D datasets as well as 2D. To use this method, mitochondria must be well resolved such that the individual mitochondria can be completely segmented from each other when the binary is generated.
Ridge detection has also been incorporated and generates a skeleton not from a binary but by using the fluorescence intensity itself. This is accomplished through the methods afforded by the Ridge Detection  plugin. Ridge detection requires additional parameters, which are to be supplied at the prompt. It is easier to tune the parameters in the Ridge Detection plugin itself as it provides a preview mode. The parameters used are high contrast, low contrast, line width, and minimum length. Note that for Ridge Detection preview, images must be 8-bit. If your image is not 8-bit you must convert it using Image → Type. If using MiNA, there is no need to convert; it will be done automatically.
The information extracted from the morphological skeleton is the mean, median and standard deviation of the branch lengths for each independent feature and the number of branches in each network. No data is removed, so a feature that is simply a vertex, a rod without any branching points, or a complicated highly branched network will all be used when determining the length and branch count parameters. The information is summarized from the output of the Analyze Skeleton plugin methods. Once processed, the skeleton is overlaid in green for assessing the faithfulness of the skeleton. Yellow and blue dots are also overlaid, representing the end points and junctions of the skeleton respectively.
It is mandatory that users ensure the morphological skeleton can be accurately generated for their system of interest. The analysis tool is typically not suitable for extremely clumped mitochondria, poorly resolved images, or images with low contrast. The overlay (or 3D render) is intended as a means to assess whether the model from which the parameters are generated will be meaningful or not.
|Pre-processor path (optional)||The path to an ImageJ script or macro to run before the analysis is run. This is typically used to run user defined preprocessing operations on the image before it is analyzed, such as expanding the histogram range, reducing noise by filtering, or deconvolving the image. It is optional|
|Post-processor path (optional)||The path to an ImageJ compatible script or macro to be run when the analysis completes. This can be used to trigger saving a copy of the data, plotting the current data stored in the ResultsTable window, and much more. It is optional.|
|Threshold method||The algorithm used to determine the threshold value. Note that the analysis expects a positive signal. The analysis will fail if the intensity is inverted.|
|User comment||A user comment to store in the table. This supports key-value pairs, which is useful for storing condition information. For example, if I wanted a column "oxygen" and a column "glucose" to store the culture conditions, I could use the comment "oxygen=18,glucose=high" to add the value 18 to a column titled oxygen and the value high to another column titled glucose.|
|Use ridge detection (2D only)||Check if ridge detection is to be used. If it is unchecked, the analysis will proceed with iterative thinning to generate the morphological skeleton. Note that ridge detection is only available for 2D images currently.|
|This defines the High Contrast value for the ridge detection plugin.|
|Low contrast||This defines the Low Contrast value for the ridge detection plugin.|
|Line width||The expected width of the line like mitochondrial features.|
|Line length||The minimum line length to be included in the analysis. Setting this above 0 can aid in removing spurious small lines.|
Smooths each pixel by replacing each pixel with the neighbourhood median.
|Radius||Size of the neighbourhood|
Sharpens and enhances edges by subtracting a blurred version of the image (the unsharp mask) from the original. The unsharp mask is created by Gaussian blurring the original image and then multiplying by the “Mask Weight” parameter.
|Radius (sigma)||Increase the Guassian blur radius sigma to increase contrast|
|Mask weigth||increase value for additional edge enhancement|
Enhance Local Contrast CLAHE
Enhances local contrast of the image.
|block size||the size of the local region around a pixel for which the histogram is equalized. This size should be larger than the size of features to be preserved.|
|histogram bins||the number of histogram bins used for histogram equalization. The implementation internally works with byte resolution, so values larger than 256 are not meaningful. This value also limits the quantification of the output when processing 8bit gray or 24bit RGB images. The number of histogram bins should be smaller than the number of pixels in a block.|
|max slope||limits the contrast stretch in the intensity transfer function. Very large values will let the histogram equalization do whatever it wants to do, that is result in maximal local contrast. The value 1 will result in the original image.|
|mask||choose, from the currently opened images, one that should be used as a mask for the filter application.|
|image title||The title of the image window that was processed.|
|mitochondrial footprint||The area or volume of the image consumed by mitochondrial signal.|
|branch length mean||The mean length of all the lines used to represent the mitochondrial structures.|
|branch length median||The median length of all the lines used to represent the mitochondrial structures.|
|branch length stdevp||The standard deviation (population) of the length of all the lines used to represent the mitochondrial structures.|
|summed branch lengths mean||The mean of the sum of the lengths of branches for each independent structure (as represented by the morphological/topological skeleton). This is the sum of all branch lengths divided by the number of independent skeletons.|
|summed branch lengths median||The median of the sum of the lengths of branches for each independent structure (as represented by the morphological/topological skeleton).|
|summed branch lengths stdevp||The standard deviation of the sum of the lengths of branches for each independent structure (as represented by the morphological/topological skeleton).|
|network branches mean||The mean number of attached lines used to represent each structure.|
|network branches median||The median number of attached lines used to represent each structure.|
|network branches stdevp||The standard deviation (population) of the numper of connected lines used to represent each of the mitochondrial structures.|
|donuts||The number of mitochondrial 'donuts' present in the image. A mitochondrial donut is a ring-shaped structure with no other structures attached.|
|user comment||The comment supplied by the user. If key value pairs are provided, they will be put in an appropriate column.|
Running the Tool
1. Open an image. MiNA expects an 8-bit or 16-bit single channel image that can be 2D or 3D (with limited options).
2. Select a single cell using the rectangular ROI tool. You may make a copy of the cropped region if you wish.
3. Run the script by navigating to Plugins -> StuartLab -> MiNA Analyze Morphology. The user interface will pop up. Fill in the parameters as desired and select OK to run the analysis.
4. An overlay will be generated for you to visually inspect the faithfulness of the analysis. The magenta region is the binarized signal used for calculating the area or volume. The green lines are the morphological skeleton. The yellow dots represent the end points of the skeleton and the blue dots represen the junctions.
5. To save a copy of the image with overlays, save the image as a PNG or flatten the image and save it in whatever format you wish.
Previewing preprocessing options
To preview how the preprocessing options will affect the image being analyzed, you can use the "Preview" button located near the middle of MiNA's graphic interface.
If the image is 2 Dimensional, the preview button will pop up a new window containing two images and a table. The image to the right will show how the image looks once the preprocessing options are applied it. The image to the left will show the original image with the overlays (positive pixels, skeleton, end points and junctions). The table below the two images will show the options chosen from the interface to process the image.
You can zoom in and out of the images with the "+", "-" buttons in order to get a closer look at the image and decide if the overlays faithfully represent the properties of the mitochondrial network. If you are unsatisfied, adjust the parameter settings and repeat.
If the image is 3 Dimensional, a new image will simply pop up with the preprocessing options applied to it.
Frequently Asked Questions (FAQ)
1. Will MiNA work for my purposes/cells/images?
This is not a question we can definitively answer or one we will try to answer. In general, try it out and see if the skeleton and binary representations are faithful to the structures you see. You may want to do some preprocessing as well, but keep in mind how the preprocessing may be altering your images and the measurements (ex. blurring to reduce noise will often increase the measured footprint). In general, the tool is typically not suitable for extremely clumped mitochondria, poorly resolved images, or images with low contrast. The accuracy of the tool will be dependent on how well resolved the mitochondrial structures are. With fluorescence microscopy for certain cell lines where mitochondria severely clump together, it may not be possible to obtain the required resolution. It is the responsibility of the researcher to understand and validate MiNA for their purposes and decide if it is suitable.
2. The parameters returned by the tool are not the same as in the paper. Where are the number of individuals and number of networks?
The parameters are slightly different. Some of the additional parameters had been requested by users and interested individuals. The list of all current parameters returned and how they are calculated is provided under Processing Pipeline and Usage
Two parameters, the number of individuals and number of networks, were removed. These parameters were deduced from the number of junction points in each skeleton (or "graph"). Since the only requirement for an object to be a network was a single junction point, when larger networks break down into smaller ones, the number of networks often increases as the objects often still have at least one junction point. This could easily misinterpreted as a more "fused" structure even though it has obviously become a more "fragmented" one because of how the jargon is interpreted. To avoid such confusion, we removed it.
3. How can I familiarize myself with ImageJ/Fiji and image analysis first?
There are many resources in print and online to help with getting started with ImageJ and image analysis in general. Below is a list of some to get started with.
- ImageJ Tutorials Wiki
- Bankhead, Peter. (2014). Analyzing fluorescence microscopy images with ImageJ.
- Vebjorn Ljosa and Anne E. Carpenter. 2009. Introduction to the Quantitative Analysis of Two-Dimensional Fluorescence Microscopy Images for Cell-Based Screening. PLOS Comput Biol. doi: 10.1371/journal.pcbi.1000603.
Points to keep in mind before using MiNA
For measurements to be accurate and thus meaningful and possible to interpret, the data must demonstrate:
- Mitochondria that have been independently resolved and can be segmented from each other.
- No (or very minimal) overlap of structures or 3D complexity, especially in the case of 2D analysis.
- Very clean and bright sample labelling.
If this is not achieved, the analysis is likely unsuitable for the particular purpose.
More details on image suitability
|Likely Suitable||Potentially Suitable||Likely Unsuitable|
You should have FIJI installed.
1. Download the contents of this repository as a zipped folder
2. Go to your FIJI installation and go to the "Fiji.app" folder. If you're using mac, right click on the FIJI icon and select "Show Package Contents".
3. Move the folder with the name "mina" located in "src" of this repository to jars>Lib (create the folder Lib if it does not already exist).
4. Move the file "MiNA_Analyze_Morphology.py" located at "src>scripts" to "scripts".
5. Move the folder "mina_icons" inside "images".
6. In the "build" folder of this repository you will see a jar file. Move it inside "plugins".
7. Finally, start ImageJ and if you don't have the Biomedroup site installed then click on Help->Update...
Navigate to the update site manager (Manage update sites). Add the "Biomedgroup" site by checking the checkbox beside the site.
Close the site manager dialog (Close) and apply the changes (Apply changes)
- 1.0 1.1 1.2 Ignacio Arganda-Carreras, Rodrigo Fernandez-Gonzalez, Arrate Munoz-Barrutia, Carlos Ortiz-De-Solorzano, "3D reconstruction of histological sections: Application to mammary gland tissue", Microscopy Research and Technique, Volume 73, Issue 11, pages 1019–1029, October 2010.
- 2.0 2.1 Steger, C., 1998. "An unbiased detector of curvilinear structures." IEEE Transactions on Pattern Analysis and Machine Intelligence, 20(2), pp.113–125.
- 3.0 3.1 Thorsten Wagner, Mark Hiner, & xraynaud. (2017, August 20). thorstenwagner/ij-ridgedetection: Ridge Detection 1.4.0 (Version v1.4.0). Zenodo. http://doi.org/10.5281/zenodo.845874.
- L.K. Huang and M.J.J. Wang. Image thresholding by minimizing the measures of fuzziness. Pattern recognition, 28(1):41–51, 1995. https://doi.org/10.1016/0031-3203(94)E0043-K
- Auto Threshold: Default https://imagej.net/Auto_Threshold#Default 6.6.0 6.1 Prewitt, JMS & Mendelsohn, ML (1966), "The analysis of cell images", Annals of the New York Academy of Sciences 128: 1035-1053, https://doi.org/10.1111/j.1749-6632.1965.tb11715.x
- Ridler, TW & Calvard, S (1978), "Picture thresholding using an iterative selection method", IEEE Transactions on Systems, Man and Cybernetics 8: 630-632, [10.1109/TSMC.1978.4310039 10.1109/TSMC.1978.4310039]
- Li, CH & Tam, PKS (1998), "An Iterative Algorithm for Minimum Cross Entropy Thresholding", Pattern Recognition Letters 18(8): 771-776, https://doi.org/10.1016/S0167-8655(98)00057-9
- 9.0 9.1 Kapur, JN; Sahoo, PK & Wong, ACK (1985), "A New Method for Gray-Level Picture Thresholding Using the Entropy of the Histogram", Graphical Models and Image Processing 29(3): 273-285 https://doi.org/10.1016/0734-189X(85)90125-2
- Glasbey, CA (1993), "An analysis of histogram-based thresholding algorithms", CVGIP: Graphical Models and Image Processing 55: 532-537, https://doi.org/10.1006/cgip.1993.1040
- Kittler, J & Illingworth, J (1986), "Minimum error thresholding", Pattern Recognition 19: 41-47, https://doi.org/10.1016/0031-3203(86)90030-0
- Tsai, W (1985), "Moment-preserving thresholding: a new approach", Computer Vision, Graphics, and Image Processing 29: 377-393
- Otsu, N (1979), "A threshold selection method from gray-level histograms", IEEE Trans. Sys., Man., Cyber. 9: 62-66, [10.1109/TSMC.1979.4310076 10.1109/TSMC.1979.4310076]
- Doyle, W (1962), "Operation useful for similarity-invariant pattern recognition", Journal of the Association for Computing Machinery 9: 259-267, doi:10.1145/321119.321123
- Shanbhag, Abhijit G. (1994), "Utilization of information measure as a means of image thresholding", Graph. Models Image Process. (Academic Press, Inc.) 56 (5): 414--419, ISSN 1049-9652, https://doi.org/10.1006/cgip.1994.1037
- Zack GW, Rogers WE, Latt SA (1977), "Automatic measurement of sister chromatid exchange frequency", J. Histochem. Cytochem. 25 (7): 741–53, PMID 70454, https://doi.org/10.1177/25.7.70454
- Yen JC, Chang FJ, Chang S (1995), "A New Criterion for Automatic Multilevel Thresholding", IEEE Trans. on Image Processing 4 (3): 370-378, ISSN 1057-7149, https://doi.org/10.1109/83.366472