Model
Bacteria exist in many physical shapes such as spheroidal, rod-shaped or spiral [6, 7].
To model the spatial mechanics of elongated bacteria [8], we represent them as a collection of auxiliary vertices \(\{\vec{v}_i\}\) which are connected by springs in ascending order. Furthermore, we assume that the cells are flexible described by their stiffness property. A force \(\vec{F}\) interacting between cellular agents determines the radius (thickness) of the rods and an attractive component can model adhesion between cells.
Mechanics
In principle we can assign individual lengths \(\{l_i\}\) and strengths \(\{\gamma\}_i\) to each spring. The internal force acting on vertex \(\vec{v}_i\) can be divided into 2 contributions coming from the 2 springs pulling on it. In the case when \(i=0,N_\text{vertices}\), this is reduced to only one internal component. We denote with \(\vec{c}_{i}\) the connection between two vertices
and can write down the resulting force
In addition to springs between individual vertices \(\vec{v}_i\), we assume that each angle at a vertex between two other is subject to a stiffening force. Assuming that \(\alpha_i\) is the angle between the connections and \(\vec{d}_i=\vec{c}_i/|\vec{c}_i|\) is the normalized connection, we can write down the forces acting on vertices \(\vec{v}_i,\vec{v}_{i-1},\vec{v}_{i+1}\)
where \(\eta_i\) is the angle stiffness at vertex \(\vec{v}_i\). We can see that the stiffening force does not move the overall center of the cell in space. The total force is the sum of external and interal forces.
and are integrated via
where \(D\) is the diffusion constant and \(\vec{\xi}\) is the wiener process (compare with brownian motion such as given by the Brownian3D struct of cellular-raza.
Interaction
When calculating forces acting between the cells, we can use a simplified model to circumvent the numerically expensive integration over the complete length of the rod. Given a vertex \(\vec{v}_i\) on one cell, we calculate the closest point \(\vec{p}\) on the polygonal line given by the vertices \(\{\vec{w}_j\}\) of the interacting cell. Furthermore we determine the value \(q\in[0,1]\) such that
for some specific \(j\). The force is then calculated between the points \(\vec{v}_i\) and \(\vec{p}_i\) and acts on the vertex \(\vec{w}_i,\vec{w}_{i+1}\) with relative strength \((1-q)\) and \(q\).
Cycle
To simulate proliferation, we introduce a growth term for the spring lengths \(l_i\)
which will increase the length of the cell indefenitely unless we introduce a division event. We define a threshold (in our case double of the original length) for the total length of the cell at which it divides. To construct a new cell, we cannot simply copy the existing one twice, but we also need to adjust internal parameters in the process. The following actions need to be taken for the old and new agent.
Assign a new growth rate (pick randomly from uniform distribution in \([0.8\mu_0,1.2\mu_0]\) where \(\mu_0\) is some fixed value)
- Assign new positions
- Calculate new spring lengths
\(\tilde{l}_i = l_i\left(\frac{1}{2} - \frac{r}{\sum\limits_i l_i}\right)\)
- Calculate middle of old cell
\(\vec{m} = \frac{1}{N_\text{vertices}}\sum\limits_i\vec{v}_i\)
- Calculate positions of new vertices \(\vec{w}_i\)
- \[\begin{split}q_i &= \frac{i}{N_\text{vertices}}\\ \vec{w}_{i,\text{new},\pm} &= (1-q_i)\vec{m} + q_i(\vec{v}_{\pm\text{start}} - \vec{m})\end{split}\]