In a 3D model - How can I let cells grow along a wall?

11 months ago by
In my model, I set a wall and let cells grow on it. If I don't set specific condition, cell will growing to a lump. I tried to use plugin 'Focal Point Plasticity' to restrain cell growth along the wall but it's not effective enough. I wonder whether I should use this plugin according with in vitro anchorage-dependent cell growth status?

5 Answers

11 months ago by
FPP will do it but you might first try:

1. Have the cells sticker to the wall than to themselves. Use low stickyness to medium, with medium-wall being the least sticky of all. The magnitudes will need to be adjusted differently in 2D vs. 3D.
(assuming wall is fixed so wall-wall adhesion doesn't matter)
-3 wall-cell
-2 cell-cell
0 cell-medium
2 wall-medium
0 medium-medium
Note that the adhesion energy will tend to flatten the cells out. We can take advantage of that in the next suggestion.

2. When dividing cells divide along the major axis. This will usually keep both the parent and daughter cells in contact with the surface. Search for "major axis" in the documentation, it is one of the options for the mitosis plugin and steppable.
I used FPP and the method above together to help cells stick to wall. It seems to have worked, but I found that cell is fragmented after a few steps even if I used Connectivity Plugins.
written 11 months ago by dali Zan 
Could you post your simulation showing how connectivity plugin leads to fragmentation? This should not happen so we would like to investigate the cause
written 11 months ago by Maciek Swat 
the problem of fragmentation is fixed, Connectivity Plugin's invalid maybe because of I set the value of Penalty is out of threshold. Now the model is basically achieved expectations. But when cells grow to relatively high density, it's hard to avoid cell overlap and some cells will tend to growing away from wall. So I wonder how can i know the cell neighbor's cell type that can help me to eliminate cells which do not contact the wall. The CompuCell3D 3.7.4 Reference Manual only tell us how to get cell neighbor' id but not their type.
written 11 months ago by dali Zan 
You can visit all cells of a particular type and then check the contact area for that cells neighbors of particular types with something like;

for cell in self.cellListByType(self.CULTUREDCELLS): ### list of  cell types (capitalized)
    cell_neighbors = self.getCellNeighborDataList(cell)  ### list of this cell’s neighbors
    neighbor_count_by_type = cell_neighbors.neighborCountByType()
        ### neighbor_count_by_type is a hash indexed by cell type IDs,
        ### so neighbor_count_by_type{1} gives the number of neighbors of cell type 1
        ### if no neighbors of a particular type you could do something here

    if  (cell_neighbors.commonSurfaceAreaWithCellTypes([self.HYDROGEL]) < (cellWidth**2/4.)):
        # this cell has very little contact with hydrogel so kill it
        cell.targetVolume  = 0.
        cell.targetSurface = 0.
        cell.lambdaVolume  = 0.01  # small lambda's so the cell shrinks slowly
        cell.lambdaSurface = 0.01
        print("KILL {}: {}, tv={} ts={} v={} s={}".format(,cell.type,cell.targetVolume,cell.targetSurface,cell.volume,cell.surface))

In the main xml you need;
<Plugin Name="NeighborTracker">
   <!-- Module tracking neighboring cells of each cell -->
written 11 months ago by James Sluka 
It works, truely thanks for your help.
written 11 months ago by dali Zan 
11 months ago by
If you are still having problems we should be able to come up with a demo of using FPP to help keep cells sticking to a wall or surface.
11 months ago by
I am not sure if this feature already exist in CC3D but ideally what you should be able to do is to use elongation plugin - it elongates cells AND specify the direction of elongation -  i.e. a vector of a major axis of the cell. There is a plugin called "OrientedGrowth" which probably does what you want. We do not have examples of how to use this plugin in our demo suite but I can reach out to a person who contributed this plugin and find out. 

Another option to explore is to use compartmentalized cells (i.e. your biological cell is a collection of CompuCell3D cells - compartments) and then you could use Focal Point Plasticity to connect the compartments together. Of course the compartments would still remain "blobs" but you could get elongated cells this way.
11 months ago by
This demo was contributed by Jeremy Fisher ( who also coded up the OrientedGrowth plugin. Take a looks and see if this looks closer to what you are looking for

File attached: (2 KB)


11 months ago by
Oriented growth should impose an arbitrarily large energy penalty on growth perpendicular to the wall, which I believe this would address the issue. However, it only supports 2D simulations as of the moment.

It wouldn't be too difficult to add support for 3D simulations. Is this an approach you would be interested in?
Please login to add an answer/comment or follow this question.

Similar posts:
Search »