Cell Numbering

If you are unfamiliar with the data output format of Microbetracker, read the Output Format page first for a description.

Each cell is assigned an individual number, which corresponds to the location of the corresponding information in the cellList structure. To access the data structure, which corresponds to cell number c on frame f, load cellList into MATLAB workspace and type: cellList{f}{c}.

Cell numbering is different depending on whether the Timelapse or Individual Frames mode was selected.

Cell numbering in Individual Frames mode

In the Individual frames mode and on the first frame of the Timelapse mode MicrobeTracker assigns consecuitive integer numbers to the cells in the order of their detection. Typically the order depends on the cell position in the image (left-to-right), except for the cases when a cell was created by division of an previously detected cell.

When the user manualy deletes a cell, the numbering of other cells does not change, and the data structure corresponding to the deleted cell becomes empty. Therefore, cellList{f}{c} will display an empty array ([]) and accessing individual fields in this array will generate an error. In data processing code you should check if the particular cell is not empty, i.e. only proceed if for cell c on frame f the expression ~isempty(cellList{f}{c}) is true.

Cell numbering in Timelapse mode

Cell numbering is the same as above on the first frame of the Timelapse mode. However, the program will keep the number of each cell as the time progresses. Therefore, if some cells are lost over time, some elements of cellList become empty.

When a cell divides, one of the new cells, the "mother cell", keeps the number of the original cell. The other cell, the "daughter cell", acquires a new number. In order to generate this number, the program keeps the total number of cells on the first frame as CellListN array. The daughter's cell number d is generated according to the formula:

    d = c + N·2(g-1)

where c is the mother's cell number, N is the base number of cells (typically the number of cells on the first frame), and g is the generation number, i.e. 1 for the 1st division in the history of the cell, 2 for 2 divisions, etc. An example of cell numbering is shown in the figure (on the right), assuming that the starting cell number is 3 (arbitrarily chosen) and the number of cells on the first frame is 10 (also arbitrarily chosen).

The data structure of each cell contains four fields, which store the cell's history. These fields are:

  • birthframe - the frame when the cell with this number first appeared.
  • divisions - frame numbers of the divisions the cell with this number has gone through. The division, which gave birth to this cell counts, but the 1st frame, when the cell's appearance did not result from a division, does not.
  • ancestors - the numbers of all direct ancestors of the cell in the order of division.
  • descendants - the numbers of all direct descendants of the cell in the order of division.

When the old pole of the cell is known (marked with a solid "stalk" on the figure), it is labeled with the field polarity=1 in the corresponding data structure. In this case, at the next division the mother cell appears on the old pole side of the cell. When the orientation is unknown, it is selected randomly (dashed "stalk" on the figure).