# CompuCell to Model Osmotic Engine

176
views
1
10 months ago by
I am a 4th year undergraduate student at Colorado State University studying chemical & biological engineering and biomedical engineering. Currently, I'm in a group working on a class project that requires us to learn a new software package and apply it to a transport phenomena problem. We are working on modeling cancer cells as an osmotic engine in CompuCell. Based on the research we've done so far on the osmotic engine, we are thinking the chemotaxis module would suit our needs. The principle behind the osmotic engine is that a cancer cell can polarize itself in order to move independent of actin and myosin filaments, absorbing water at the leading edge and expelling water out the back, thereby creating movement. Our ultimate goal is to model cancer cell movement as well as volume (and other properties) of cancer cells when exposed to different osmotic environments. Might anyone have any suggestions on how to go about this? We are all very new to using CompuCell, and have been able to create very simple models (i.e. case where water is attracted to cancer cells) but are not sure how to proceed in terms of getting the cancer cells to move in response to the presence of water. We also had emailed Dr. Swat who recommended we look into using compartmentalized cells as well as using toy-mechanism to apply force to cells and thereby simulate movement, depending on the cell's environment. In any case, any advice would be much appreciated.

Thanks,
Elliot

1
10 months ago by
How are you planning to model water in this case? If you are considering a field' like approach, where there are low and high concentrations of water you can probably use one of the diffusion solvers in CC3D. You can specify diffusion rates etc depending on your osmosis. Since the arguments of the field are coordinates in the lattice space, you can use it to specify any form of initial conditions. Now you can attach chemotaxis like attributes to your cell towards this field and you can simulate motion. To measure polarization in response to the chemotaxis you can use the moment of inertia plugin which will give you a major and minor axis indicating how the cell might have changed shape.
Yes, we were planning on modeling water as a field. This is probably a really rudimentary question, but is specifying the initial conditions of a field similar to specifying that of a cell? In the xml file, it looks like you can import a txt file that would have the information for the initial concentration field, but I'm not sure what the contents of that txt file would be. Thanks!
written 9 months ago by Elliot Djokic
So the format of the text file is (x_coordinate,y_coordinate,z_coordinate,value). The x,y,z are coordinates between the minimum and maximum positions in your lattice. An example has been provided in the manual. If however you have initial conditions that could be created easily (like don't have to be read from a file) you can specify them in the start function of any class in the python steppable file as well. Something like:

def __init__(self,_simulator,_frequency):
SteppableBasePy.__init__(self,_simulator,_frequency)
self.somefield=self.getConcentrationField("field")

def start(self):
for x in range(0,self.dim.x):
for y in range(0,self.dim.y):
self.somefield[x,y,0]=some_value​

written 9 months ago by priyomadhyapok
We have been able to get the basic layout we want setup, however I was wondering how we would get about adding chemotaxis like attributes to the cell. Currently, we are using the chemotaxis plugin, however that is the chemotaxis of water towards our cancer cells, and we would like it to be the other way around. It seems there's not a way to reverse this within the plugin, so we will likely need to make changes elsewhere. Might you have any advice on what plugins/parameters we would need to modify. Thank you very much for all your help.
written 9 months ago by Elliot Djokic
So water has the form of a field and you have cancer cells in the simulation. Does something like this not work? This would be the cancer cell responding to water 'concentration' and moving towards or away from it depending on the sign for value.
def start(self):
for cell in self.cellListByType(self.CANCERCELL):
​`