General code structure#
The code is composed of a series of components, allowing for a complete analysis from data conversion to output figures.
Processing algorithms:
A segmentation module which contains code for cell segmentation and tracking.
A windowing module which handles all questions related to turning a binary mask into a grid of windows.
A displacementestimation module which handles all questions related to the modeling of the contour as a spline and it’s deformation across frames (this uses also the functionaldefinition module).
Post-processing algorithms:
A correlation module that computes time correlations between signals
A sub-package plots that provides tools to produce analysis results plots.
Analysis pipeline: The analysis_par provides a series of functions to perform analysis using the packages described above. Computing heavy functions are designed to work with Dask, a library that makes parallelization easy and deployable on a computing cluster.
A series of data structures that are passed to functions:
A dataset module that implements a series of classes handling various data formats (tif series, H5 etc.). All classes offer the same methods, e.g. to load an image, so that their usage is independent from the underlying format.
A parameters module that implement the Param structure which stores all important parameters used in an analysis (window size, number of frames, algorithm used etc.). This structure is exported in a human readable (and editable) yml when saving the processing result.
A results module that implements a structure to store segmentation and windowing results.