void ApoptoticCellKiller<SPACE_DIM>::CheckAndLabelSingleCellForApoptosis(CellPtr pCell) { if (pCell->HasCellProperty<ApoptoticCellProperty>() && !(pCell->HasApoptosisBegun())) { pCell->StartApoptosis(); } }
void RandomCellKiller<DIM>::CheckAndLabelSingleCellForApoptosis(CellPtr pCell) { /* * We assume a constant time step and that there are an integer number (n = 1/dt) * of time steps per hour. We also assume that this method is called every time step * and that the probabilities of dying at different times are independent. * * Let q=mProbabilityOfDeathInAnHour and p="probability of death in a given time step". * * Probability of not dying in an hour: * (1-q) = (1-p)^n = (1-p)^(1/dt). * * Rearranging for p: * p = 1 - (1-q)^dt. */ double death_prob_this_timestep = 1.0 - pow((1.0 - mProbabilityOfDeathInAnHour), SimulationTime::Instance()->GetTimeStep()); if (!pCell->HasApoptosisBegun() && RandomNumberGenerator::Instance()->ranf() < death_prob_this_timestep) { pCell->StartApoptosis(); } }