Smooth Surface of a Cell

8 months ago by

I'm trying do create a 3D morphogenesis Simulation of the urothelium. I'm draw more or less spehrish cells like this:

        for xr in range(xStart, xEnd):
            for yr in range(yStart, yEnd):
                for zr in range(zStart, zEnd):
                    rd = sqrt((xr - x0) ** 2 + (yr - y0) ** 2 + (zr - z0) ** 2)
                    if (rd <= radiusPx):
                        steppable.cellField[xr, yr, zr] = cell

With this function I'm able to get some sperish cells, but without a smooth surface (see first picture).
Furthermore, during the growth of a cell, they have sometimes pixels outside of the cell (see second picture). I place the cells just somewhere in the lattice, in the second picture, to see more details of the growth process.
Since, I want to create sperish cells I use formulas of a sphere to calculate the TargetVolume and the TargetSurface (the TargetSurface is doubled, so that the cell will growth). I use the following lambda values: LambdaVolume = 1.0 and LambdaSurface = 2.0

Do you know any tips or tricks about how to get a smooth surface on a cell?

Thank you

3 Answers

8 months ago by
A couple suggestions;
* In the Potts section, set the NeighborOrder to 5 to reduce pinning to the lattice.
* The rough surface of the cells is probably caused by the targetSurface being 2X bigger than it should be for the current cell target volume. Try increasing both the target surface and target volume properly for the increasing radius. (Or, if you are changing the volume, recalculate the surface every time.)  Instead of setting the targetSurface much too big simply reduce the lambdaSurface significantly.
if cell.targetVolume <= cell.volume:
    cell.targetVolume += 1
    radius = (3./4./3.14159*cell.targetVolume)**(1./3.)
    cell.targetSurface = 4.*3.14159*radius**2 * 1.1  # 10% extra surface​

the drawn cells look way better.

Since it is not possible to provide another picture in the comment I use the answer function to show them!
written 8 months ago by Thorsten Mueller 
8 months ago by
One problem I still have is that during the simulation become cubic again. I just checked the volume - TargetVolume and the surface - TargetSurface values and saw that the Surface is way to large regarding the volume value (see second picture, at the console the line at the cursor position).

Every MCS the TargetVolume and the TargetSurface, regarding TargetVolume, are calculated, with the provided formula.
I tried to simulate with LambdaVolume=1.0 and LambdaSurface=0.2 and 0.05 (the pictures are of the second simulation with LambdaSurface=0.05).

Since there is no way to set the surface value of a cell, are there other possibilities to influence these values of a cell than to calculate the TargetSurface and set the LambdaSurface? Where could those large surface values come from?

8 months ago by
It might be due to your adhesion energies. For example, if the cell's surface is at the target surface value and then the cell grows by a pixel (or voxel) then you often add 2 (in 2D, 4 in 3D) to the surface and that number of values of the cell to medium adhesion. So adhesion energy will play into the surface and volume behavior of a cell.

Another thing that makes getting spherical cells tricky is that the surface on a square lattice is always greater than for a real sphere. You need to have a somewhat larger targetSurface than the simple volume vs. surface equations for a sphere.

One thing you might consider is doing a parameter scan to find the set of parameters that works best for your size cells. I would scan targetVolume, lambdaVolume, LamdaSurface, the adhesion j values and a parameter/function that converts targetVolume into a suitable targetSurface, perhaps also the Potts temperature.
Thanks, these are valuable facts.
Your right with the second point. I have to find a value where the TargetSurface of cell is not too larger, as it was with the initial problem, and not too small.

I tried different adhesion values but in a range of 0 to 50, for every adhesionValue in the energy Matrix it did not change the behavior of the cells, as they still become cubes sooner or later.

I wonder how the initial Volume and Surface is calculated:
The cells are drawn with a radius of 4px:
    Therefore the Volume of the cube around the cell is 512vx3 and the surface are 384vx2
    Whereas the Volume of the drawn sphere should be 268vx3 and the surface 201vx2
CC3D calculates a Volume of around 255(vx3 - should be the right unit) and a surface of around 283vx2 -> The given values vary a bit with +-2
   Why can the given surface value already be larger than the volume? Moreover the surface value is not near the surface value of the cubic neither the surface, how does this happen?
written 8 months ago by Thorsten Mueller 
Please login to add an answer/comment or follow this question.

Similar posts:
Search »