### How can I simulate the mitosis of a sphere cell?

143

views

0

Hi, I want to simulate the mitosis process of a sphere cell on a substrate. How can I set the initial sphere shape with square or hexagonal lattice? Thank you~

Community: CompuCell3D

### 1 Answer

3

To generate spherical cells, use the function self.cellField whose arguments are coordinates in the lattice space. If your radius is r, and center of the sphere at say (x0,y0,z0) the coordinates (x0-r,x0+r),(y0-r,y0+r) and (z0-r,z0+r) will span a bigger cube. Then the value of r can be used as a distance cutoff to determine which voxels will lie inside the boundary of the sphere. Example code:

#generate cell

cella=self.newCell(some cell type);

#set up the center of sphere say (x0,y0,z0)

#set up the boundaries of the bigger cube

xi = x0 - r

xf = x0 + r

yi = y0-r

yf = y0+r

zi=z0-r

zf=z0+r

#loop over the points to determine boundaries of the circle

for xr in range(xi, xf):

for yr in range(yi, yf):

for zr in range(zi,zf):

rd = sqrt((xr - x0) ** 2 + (yr - y0) ** 2+(zr-z0)**2)

if (rd < r):

self.cellField[xr, yr, zr] = cella

#generate cell

cella=self.newCell(some cell type);

#set up the center of sphere say (x0,y0,z0)

#set up the boundaries of the bigger cube

xi = x0 - r

xf = x0 + r

yi = y0-r

yf = y0+r

zi=z0-r

zf=z0+r

#loop over the points to determine boundaries of the circle

for xr in range(xi, xf):

for yr in range(yi, yf):

for zr in range(zi,zf):

rd = sqrt((xr - x0) ** 2 + (yr - y0) ** 2+(zr-z0)**2)

if (rd < r):

self.cellField[xr, yr, zr] = cella

Thank you so much, I can set up the sphere shape in this way. But how to let the shape of the daughter cells keep sphere after the mitosis. I am going to simulate many times of mitosis.

written
7 months ago by
Yuan

1

Your daughter cells will tend to stay spherical if they have the proper target surface for their current and target volumes. So periodically change individual cell's target surface to;

import math

cell.targetSurface=((cell.targetVolume)**(1./3.))**2*4./3.*math.pi

The above is just a starting point for what you want to do. The surface of a "sphere" in a lattice representation is often a fair bit bigger than in a non-lattice situation. Often though if the target surface is too small that will tend to make the cell as spherical as possible. You then have to worry about the lambda for surface and volume and make sure that when you want to grow the cell's volume that lambdaVolume is big enough to overwhelm lambdaSurface amd you'll need to periodically increase the targetSurface.

You might want to make the target surface a bit bigger than it should be to give the cells some flexibility.

import math

cell.targetSurface=((cell.targetVolume)**(1./3.))**2*4./3.*math.pi

The above is just a starting point for what you want to do. The surface of a "sphere" in a lattice representation is often a fair bit bigger than in a non-lattice situation. Often though if the target surface is too small that will tend to make the cell as spherical as possible. You then have to worry about the lambda for surface and volume and make sure that when you want to grow the cell's volume that lambdaVolume is big enough to overwhelm lambdaSurface amd you'll need to periodically increase the targetSurface.

You might want to make the target surface a bit bigger than it should be to give the cells some flexibility.

written
7 months ago by
James Sluka

Yeah，I have tried this method. In my try, the results is good when the cell is large enough. When the cell is small, tens of lattices long for example, the cell tends to be polyhedron. If I simulate the process that one cell divides several times into hundreds of daughter cells, the cost will be expensive.How to realize that? Thank you~

written
7 months ago by
Yuan

Please login to add an answer/comment or follow this question.