chaynes2019 / CellSpacer

0 stars 0 forks source link

Modeling Cancer #1

Open chaynes2019 opened 2 weeks ago

chaynes2019 commented 2 weeks ago

There is a need to be able to introduce a cancerous phenotype into the model: a phenotype which proliferates in spite of homeostatic mechanisms. Thus, if homeostatic mechanisms are enforced through thresholds -- that is, parameters that govern the logical decision-making process of the agent -- then one might change their behavior through changing these thresholds. Immortalization of the cells could be obtained through increasing omega to infinity or to some otherwise tremendously large value. Overcoming contact inhibition requires some thought. Currently, I have the cells check to see which open neighbors they have and then proliferate into one of those spots. That has to change. Cells need to be able to proliferate into any of their neighboring spots, even if it be filled. It is not to say that one couldn't code up a different cell type with a different proliferative behavior and leave the normal cell type the way it is. It's just that, with the model as it is, in order to achieve different behavior solely through modification of the parameters of the agent and not teleologically tweaking its logical framework, this would work a lot better. Now, one can give another parameter, perhaps eta, that is the maximum number of neighbors that a cell can have and still proliferate.

For normal cells, this will be the maximum number of neighbors that the spatial architecture allows them to have: 4 or 9. But if you raise the threshold to 5 or 10, for example, then the cell will never be inhibited from proliferating because it will never have 5 or 10 neighbors, respectively. I think this sort of thing is the way to go. But, on the whole, there may yet be better ways of modeling these things in the future.

chaynes2019 commented 2 weeks ago

So... the idea works! But it showed me a current flaw that has a lot to do with the next issue: when the cells are replaced by having a cell proliferate on top of them, the current cell does not actually die... Actually, interestingly enough, I'm not really sure why the refreshCellPopulation method would ever return an array of cells that has more than the grid size, because the method starts with an empty cells list and then appends at most 1 cell per grid space.

chaynes2019 commented 2 weeks ago

Never mind! The error is not in the code but in my mental logic in figuring out how large the space really was. Onwards to treatment!