molyso Developer Documentation

See README/and documentation for end user information. See License for license information. (Or string molyso.__license__).

A short starting point to understanding molyso’s internal structure:

The molyso.mm module contains the Mother Machine specific code, as well as the main function (see highlevel.py). Analysis code is basically split into two levels: an OOP representation of the data analyzed, as well as some core functions (functional) which perform individual processing step.

E.g., a molyso.mm.channel_detection.Channel class calls a molyso.mm.cell_detection.find_cells_in_channel() function, which returns mere numbers, of which the class constructs molyso.mm.cell_detection.Cell objects.

molyso.generic contains a mix of library functions necessary to perform these tasks, coarsely these can be separated into signal processing etc. functionality, and general utility functions.

molyso.debugging contains the DebugPlot class, a thin abstraction layer over matplotlib which allows for conditional, context manager based plot generation.

molyso.imageio contains the image reading functionality. The MultiImageStack is a base class and factory for opening, multi dimensional images. molyso contains reading code to open plain TIFF and OME-TIFF files, using tifffile.py. MultiImageStack acts as a implementation registry as well, if other formats should be supported, a reader subclass has to be generated, and registered at MultiImageStack. It then can automatically be used by molyso to open the format.

As mentioned earlier, the main function is within highlevel.py. It can divert program flow to two additional modes, which overtake if called: ground truth or interactive mode.

Processing itself is handled within highlevel.py.

Doctests can be called by calling the molyso.test module.