Skip to main content
Advertisement

< Back to Article

Fig 1.

(A) Comparison of two data structures for tracking cell locations: an array and a kd-tree. The array is a simple linear data structure where cell positions are stored sequentially, requiring direct access to each cell location for overlap detection, which can become computationally expensive for large datasets. The kd-tree, on the other hand, is a hierarchical binary tree structure used to organize points in a k-dimensional space. The construction of a kd-tree involves recursively partitioning the space into two halves along an axis-aligned plane. The process starts by choosing a dimension (e.g., x-axis) and finding the median point along that dimension to serve as the root. Subsequent layers of the tree alternate the dimension used for partitioning (e.g., switching to the y-axis for the next split), and this process continues recursively until all points are organized into leaf nodes. This hierarchical structure allows efficient querying of cell positions and neighbors, reducing the number of comparisons needed to identify overlaps. (B) Illustration of overlap calculation between two cells with radii r1 and r2 and the distance d between their centers. Overlap is determined when the sum of the radii exceeds the distance between the centers, indicating a need for resolution through cell shoving.

More »

Fig 1 Expand

Fig 2.

Conceptual illustration of the Discretized Overlap Resolution Algorithm (DORA).

It shows the three main phases of the algorithm: Forward Translation, where the occupancy matrix is constructed from the spatial attributes of cells; Overlap Resolution, where overlaps are identified and resolved through a diffusion-like solution process of occupancy matrix; and Backward Translation, where the computed displacements are translated back to individual cell movements to achieve a non-overlapping cellular arrangement.

More »

Fig 2 Expand

Fig 3.

Illustration of the geometric aspects of the algorithm.

(A) Occupancy calculation for a cell, showing the boundaries , , , and relative to the grid units. (B) Redistribution of excess occupancy during the diffusion step, visualized with arrows indicating the directions of movement. The four-dimensional motion tensor, which stores directional displacements for each grid unit in the cardinal directions, is displayed on the right. (C) Back-translation and movement, demonstrating how movement vectors are derived from the displacements stored in the motion tensor and applied to adjust the positions of individual cells to resolve overlaps.

More »

Fig 3 Expand

Fig 4.

Simulation of colony growth at a high nutrient concentration of , with overlap resolution managed by the DORA algorithm.

(A) Shows snapshots of the simulation at various time points, ending with a final population of cells, and includes a close-up of the final colony illustrating DORA’s effective overlap resolution; however, some minor residual overlaps remain, which are highlighted by rectangles. (B) Depicts the evolution of the resolution time step (in blue) and the cell population growth (in red) over the course of the experiment using the DORA algorithm. (C) Depicts the same relationship as (b) but with the overlap resolution occurring via the kd-tree approach for comparison. (D) Displays the progression of the overlap ratio during the simulation using the DORA algorithm. For all the plots, a line represents the mean of the results across 30 simulations while the thickness of a line represents the standard deviation.

More »

Fig 4 Expand

Fig 5.

Simulation of colony growth at a medium nutrient concentration of 10 mg/L.

(A) Presents snapshots of the simulation at various time points using the DORA algorithm. (B) Displays snapshots from the simulation at different time points while using the kd-tree approach. (C) Compares the resolution time step at each iteration of the simulation (on the y-axis) with the experiment time (on the x-axis) for DORA (in green) and kd-tree (in magenta). (D) Shows the evolution of the overlap ratio over time when using the DORA algorithm.

More »

Fig 5 Expand

Fig 6.

Simulation of colony growth at a scarce nutrient concentration of 1 mg/L.

(A) Shows snapshots of the simulation at various time points using the DORA algorithm. (B) Displays snapshots from the simulation at different time points using the kd-tree approach. (C) Compares the resolution time step at each iteration of the simulation (on the y-axis) with the experiment time (on the x-axis) for DORA (in green) and the kd-tree (in magenta). (D) Shows the evolution of the overlap ratio over time when using the DORA algorithm.

More »

Fig 6 Expand

Fig 7.

Simulation of biofilm growth at a high nutrient concentration of 100 mg/L.

(A) Snapshots of biofilm development at different time points using the DORA algorithm. (B) Similar snapshots using the kd-tree approach. (C) Comparison the resolution time step at each iteration of the simulation for DORA (in green) and kd-tree (in magenta) against the experiment time. (D) Evolution of the overlap ratio over time when using the DORA algorithm.

More »

Fig 7 Expand

Fig 8.

Simulation of biofilm growth at an intermediate nutrient concentration of 10 mg/L.

(A) and (B) Biofilm development using DORA and kd-tree approaches, respectively, at various time points. (C) Comparison of the time required for overlap resolution in each iteration of the simulation between DORA (green) and kd-tree (magenta). (D) Evolution of the overlap ratio using DORA over the simulation duration.

More »

Fig 8 Expand

Fig 9.

Simulation of biofilm growth at a low nutrient concentration of 1 mg/L.

(A) and (B) Depiction of the progression of biofilm formation using the DORA and kd-tree methods, respectively. (C) Comparison of the time required of each algorithm in resolving overlaps during each simulation iteration, with DORA shown in green and kd-tree in magenta. (D) Overlap ratio evolution during the simulation with DORA.

More »

Fig 9 Expand