MitoSeg is a tool developed for mitochondria detection and segmentation based on the algorithm proposed in:
Tasel, F.S., Çiftci, E. (2025). MitoSeg: Mitochondria segmentation tool. SoftwareX, 30, 102081. https://doi.org/10.1016/j.softx.2025.102081
Tasel, S.F., Mumcuoglu, E.U., Hassanpour, R.Z. and Perkins, G., 2016. A validated active contour method driven by parabolic arc model for detection and segmentation of mitochondria. Journal of structural biology, 194(3), pp.253-271.
Please cite these papers if you use MitoSeg in your research.
MitoSeg uses the following libraries:
To compile and use MitoSeg, development files for OpenCV4, Boost, and yaml-cpp must be installed. For GNU/Linux distributions based on Debian (e.g., Ubuntu):
apt install libopencv-dev libboost-dev libboost-program-options-dev libyaml-cpp-dev
Optionally, Python Tkinter is needed for launching graphical user interface:
apt install python3-tk
Please refer to respective user guides for other GNU/Linux distributions or operating systems.
MitoSeg can be compiled with:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc)
mitoseg [OPTION] --zrange # # --psize # FILENAME_PATTERN
Argument | Description |
---|---|
--zrange <start slice #> <end slice #> |
Slice z-range start / end. |
--psize <pixel size> |
Pixel size in nm/px. |
FILENAME_PATTERN |
Filename of slice images and slice number tag. %d indicates the position of the slice number tag. For example, mito%d.bmp generates file names such as mito0.bmp , mito1.bmp , etc. and mito%03d.bmp generates file names such as mito000.bmp , mito001.bmp , etc. |
Argument | Description |
---|---|
--roi <left> <top> <width> <height> |
Specifies the left and top pixel coordinates and the width and height of the bounding rectangle of the interested region of segmentation. If not used, ROI will be determined automatically. |
--src <directory> |
Specifies the path of the dataset image files. |
--dst <directory> |
Specifies the directory where the outputs (intermediate data and image files, final segmentation image files, an IMOD model file (.mod), and a 3D mesh file (.ply)) are stored. |
--valid <validity threshold> |
Specifies the validity threshold that is explained in the paper. Must be between 0 and 1 (default: 0.75). |
--thick <z-thickness> |
Specifies the snake z-thickness. The given value must be between 5 and 500 (default: 20). Can be set to full to use the whole z-range specified by the --zrange argument. Snake thickness affects the segmentation accuracy; thicker snakes provide continuous smooth segmentation along the z-range, but can also produce more false negatives. |
--phase <phase #> |
Specifies a specific phase to be executed (1, 2, or 3). The --valid and --thick arguments affect the 2nd and 3rd phases, respectively. Hence, if the same portion of the dataset is to be segmented by changing only these arguments, the --phase argument can be used to restart a particular phase to avoid redundant computation manually. If not used, MitoSeg will execute all phases in order. |
--cores |
Specifies the number of CPU cores that work in collaboration to speed up the process. |
--settings-file <file path> |
Specifies the path of a YAML file containing custom segmentation variables. Details can be found here. |
-
Process the files dataset_slice0030.tif to dataset_slice0100.tif assuming that pixel size is 2.0nm:
./mitoseg --zrange 30 100 --psize 2.0 dataset_slice%04d.tif
-
Process the files mito40.bmp to mito120.bmp from the slices directory, assuming that pixel size is 1.1nm:
./mitoseg --src slices --zrange 40 120 --psize 1.1 mito%d.bmp
-
Load custom settings from settings.yaml, process the files slice0020.bmp to slice0080.bmp, assuming the pixel size is 2.1nm, and save the results in the outputs directory:
./mitoseg --settings-file settings.yaml --dst outputs --zrange 20 80 --psize 2.1 slice00%d.bmp
MitoSeg can also be used within a Docker environment, which eliminates the need to prepare the building environment on your computer, and allows MitoSeg to run on various operating systems easily. A sample Dockerfile is provided under the docker
directory, which can be used for building a Docker image by executing the following command within the docker
directory:
docker build -t mitoseg .
After the image is built, it can be run by executing the provided docker-mitoseg.sh
(for Linux/Mac) or docker-mitoseg.cmd
(for Windows) scripts. These scripts include instructions and guidelines, and can be modified according to specific needs.
MitoSeg also includes a simple graphical user interface (GUI) developed using the Python Tkinter library. After building MitoSeg, the GUI can be launched by executing mitoseg-gui.py
from the build directory.
Prior to using the graphical interface, ensure that MitoSeg is properly set up. To execute MitoSeg natively, compile it as explained in Setup. For Docker execution, create a MitoSeg image as described in Running MitoSeg as a Docker Application.