Code (GitHub) | Paper (bioRxiv)

MatBots are primitive AIs, 'assistants' if you will, that use minimalistic GUI dialogs to guide the user through a data processing pipeline in Matlab.

Isn't that an 'app'? Bots are much more restrictive than apps. Users are, to a greater extent than in an app, guided through the correct steps to perform a task. A bot usually performs a much more limited task than an app.

When possible, bots have a 'headless' mode, which allows them to execute a processing pipeline as a typical Matlab function, either on an image or a folder of images.

The first crop of bots perform selected biological-image-analysis pipelines, such as nuclei segmentation and point-source scoring. Source code and more details are available on GitHub. Below is a list of currently implemented bots, with links to video tutorials and sample datasets when available.

For even more details, and to cite this work, please refer to the bioRxiv manuscript.


A bot to count point sources (spots) in nuclei.

Video Tutorial | Sample Data


Assists in training a Machine Learning model to segment nuclei.

Video Tutorial | Sample Data

For Machine Learning experts: the source code to train a stacked Random Forest for nuclei segmentation, using circularity features, is available here. This algorithm is used as the back-end for pixel classification in NucleiSegmentationBot.


Assists in training a Machine Learning model to segment grayscale images. This is a more general implementation of NucleiSegmentationBot.

Video Tutorial | Sample Data


A stand-alone bot to annotate images (the same used as a module in PixelClassificationBot and NucleiSegmentationBot).


Analogous to ImageAnnotationBot for 3D volumes.


A bot to make stacks out of image planes. This can be used to assemble stacks for SpotsInNucleiBot.

Video Tutorial | Sample Data


A bot to measure the size of spot-like (including diffraction-limited) objects.


Assists in segmenting objects using a simple 3-step pipeline consisting of (1) smoothing, (2) thresholding, and (3) watershed on distance transform. Allows post-processing operations to filter masks based on area/eccentricity, and grow or shrink objects by a constant amount.

Video Tutorial | Sample Data

For questions and feedback, contact Marcelo.