![]() |
Chaste Commit::333233612e3dcc941d260418acd7b5ccdc30390e
|
#include <AbstractOdeBasedCellCycleModel.hpp>
Protected Member Functions | |
AbstractOdeBasedCellCycleModel (const AbstractOdeBasedCellCycleModel &rModel) | |
![]() | |
AbstractCellCycleModel (const AbstractCellCycleModel &rModel) | |
![]() | |
CellCycleModelOdeHandler (const CellCycleModelOdeHandler &rHandler) | |
bool | SolveOdeToTime (double currentTime) |
virtual void | AdjustOdeParameters (double currentTime) |
Protected Attributes | |
double | mDivideTime |
![]() | |
CellPtr | mpCell |
double | mBirthTime |
bool | mReadyToDivide |
unsigned | mDimension |
![]() | |
double | mDt |
AbstractOdeSystem * | mpOdeSystem |
boost::shared_ptr< AbstractCellCycleModelOdeSolver > | mpOdeSolver |
double | mLastTime |
bool | mFinishedRunningOdes |
Private Member Functions | |
template<class Archive > | |
void | serialize (Archive &archive, const unsigned int version) |
Friends | |
class | boost::serialization::access |
This class contains all the functionality shared by 'ODE-based' cell-cycle models, where the duration of the cell cycle is evaluated 'on the fly' as the cell ages, according to a system of ordinary differential equations (ODEs) governing (for example) the concentrations of key intracellular proteins. To determine when cell division should occur, one or more stopping conditions for this ODE system may be specified.
This class of cell-cycle models is distinct from 'simple' cell-cycle models, where the duration of the cell cycle is determined when the cell-cycle model is created.
Definition at line 61 of file AbstractOdeBasedCellCycleModel.hpp.
|
protected |
Protected copy-constructor for use by CreateCellCycleModel. The only way for external code to create a copy of a cell cycle model is by calling that method, to ensure that a model of the correct subclass is created. This copy-constructor helps subclasses to ensure that all member variables are correctly copied when this happens.
This method is called by child classes to set member variables for a daughter cell upon cell division. Note that the parent cell cycle model will have had ResetForDivision() called just before CreateCellCycleModel() is called, so performing an exact copy of the parent is suitable behaviour. Any daughter-cell-specific initialisation can be done in InitialiseDaughterCell().
rModel | the cell cycle model to copy. |
Definition at line 50 of file AbstractOdeBasedCellCycleModel.cpp.
AbstractOdeBasedCellCycleModel::AbstractOdeBasedCellCycleModel | ( | double | lastTime = SimulationTime::Instance()->GetTime() , |
boost::shared_ptr< AbstractCellCycleModelOdeSolver > | pOdeSolver = boost::shared_ptr<AbstractCellCycleModelOdeSolver>() |
||
) |
Creates an AbstractOdeBasedCellCycleModel, calls SetBirthTime on the AbstractPhaseBasedCellCycleModel to make sure that can be set 'back in time' for cells which did not divide at the current time.
lastTime | The birth time of the cell / last time model was evaluated (defaults to the current SimulationTime) |
pOdeSolver | An optional pointer to a cell-cycle model ODE solver object (allows the use of different ODE solvers) |
Definition at line 38 of file AbstractOdeBasedCellCycleModel.cpp.
References AbstractCellCycleModel::SetBirthTime().
|
virtual |
Destructor.
Definition at line 46 of file AbstractOdeBasedCellCycleModel.cpp.
double AbstractOdeBasedCellCycleModel::GetOdeStopTime | ( | ) |
Get the time at which the ODE stopping event occurred. Only called in those subclasses for which stopping events are defined.
Definition at line 115 of file AbstractOdeBasedCellCycleModel.cpp.
References DOUBLE_UNSET, and CellCycleModelOdeHandler::mpOdeSolver.
Referenced by ReadyToDivide().
|
virtual |
Outputs cell cycle model parameters to file.
rParamsFile | the file stream to which the parameters are output |
Implements AbstractCellCycleModel.
Reimplemented in TysonNovakCellCycleModel.
Definition at line 125 of file AbstractOdeBasedCellCycleModel.cpp.
References AbstractCellCycleModel::OutputCellCycleModelParameters().
Referenced by TysonNovakCellCycleModel::OutputCellCycleModelParameters().
|
virtual |
See AbstractCellCycleModel::ResetForDivision()
Implements AbstractCellCycleModel.
Definition at line 70 of file AbstractOdeBasedCellCycleModel.cpp.
References EXCEPTION, AbstractUntemplatedParameterisedSystem::GetNumberOfStateVariables(), GetOdeStopTime(), SimulationTime::GetTime(), SimulationTime::Instance(), mDivideTime, CellCycleModelOdeHandler::mLastTime, AbstractCellCycleModel::mpCell, CellCycleModelOdeHandler::mpOdeSystem, AbstractCellCycleModel::mReadyToDivide, AbstractParameterisedSystem< VECTOR >::rGetStateVariables(), and CellCycleModelOdeHandler::SolveOdeToTime().
|
virtual |
For a naturally cycling model this does not need to be overridden in the subclasses. But most models should override this function and then call AbstractOdeBasedCellCycleModel::ResetForDivision() from inside their version.
Reimplemented from AbstractCellCycleModel.
Reimplemented in TysonNovakCellCycleModel.
Definition at line 106 of file AbstractOdeBasedCellCycleModel.cpp.
References AbstractCellCycleModel::mBirthTime, mDivideTime, CellCycleModelOdeHandler::mLastTime, AbstractCellCycleModel::mReadyToDivide, and AbstractCellCycleModel::ResetForDivision().
Referenced by TysonNovakCellCycleModel::ResetForDivision().
|
inlineprivate |
Archive the cell-cycle model and member variables.
archive | the archive |
version | the current version of this class |
Definition at line 74 of file AbstractOdeBasedCellCycleModel.hpp.
References mDivideTime.
|
virtual |
This overrides the AbstractCellCycleModel::SetBirthTime(double birthTime) because an ODE based cell-cycle model has more to reset...
birthTime | the simulation time when the cell was born |
Reimplemented from AbstractCellCycleModel.
Definition at line 63 of file AbstractOdeBasedCellCycleModel.cpp.
References mDivideTime, CellCycleModelOdeHandler::mLastTime, and AbstractCellCycleModel::SetBirthTime().
|
friend |
Needed for serialization.
Definition at line 66 of file AbstractOdeBasedCellCycleModel.hpp.
|
protected |
The time at which the cell should divide - Set this to DBL_MAX in constructor.
Definition at line 84 of file AbstractOdeBasedCellCycleModel.hpp.
Referenced by ReadyToDivide(), ResetForDivision(), serialize(), and SetBirthTime().