Description
Rather than submit a PR for this, as it's probably premature, I wanted to share/discuss a branch (https://github.com/rheiland/PhysiCell/tree/custom-division) that implements:
- a new custom function,
cell_division_function
, that gets invoked when a cell divides - cell attributes
generation
andparentID
for cell lineage tracking
To test, rather than add another directory in sample_projects
(which requires editing all of those Makefiles), I opted to add a sample_division_lineage
to user_projects
. Yes, I know this sort of violates its original purpose, but thought we could discuss this practice (with the sample_
prefix).
So, to test:
- clone/download the branch
make -j2
make load PROJ=sample_division_lineage
make
Some results from the Studio are shown. Note that the model defines 2 cell types: default
and ctype1
. At the beginning, only 2 default
cells are created (in cells.csv). When the custom cell_division_function
for this model is invoked (from divide()
), it does a coin flip to decide if a daughter cell should differentiate. The 2 cell types have different phenotypes - the ctype1
chemotaxes to oxygen; default
does not.
The following image shows results of being able to do asymmetric division, using the new custom function (rf. custom.cpp). However, note that it requires providing the custom function in create_cell_types
(in custom.cpp); rf. #265 .
And these screenshots show the outcome of displaying the new cells' generation
and parentID
scalars.