#include <TysonNovakCellCycleModel.hpp>
Public Member Functions | |
TysonNovakCellCycleModel () | |
TysonNovakCellCycleModel (const TysonNovakCellCycleModel &rOtherModel) | |
void | ResetForDivision () |
AbstractCellCycleModel * | CreateCellCycleModel () |
bool | SolveOdeToTime (double currentTime) |
double | GetOdeStopTime () |
double | GetSDuration () |
double | GetG2Duration () |
double | GetMDuration () |
void | InitialiseDaughterCell () |
Private Member Functions | |
template<class Archive> | |
void | serialize (Archive &archive, const unsigned int version) |
Static Private Attributes | |
static BackwardEulerIvpOdeSolver | msSolver |
Friends | |
class | TestOdeBasedCellCycleModels |
class | boost::serialization::access |
Note that this is not a model for murine or human colonic-cell cycling, but is included in chaste as one of the most commonly known ODE based cell cycle models.
Time taken to progress through the cycle is deterministic and given by an ODE system independent of external factors.
Note that this class uses C++'s default copying semantics, and so doesn't implement a copy constructor or operator=.
Definition at line 56 of file TysonNovakCellCycleModel.hpp.
TysonNovakCellCycleModel::TysonNovakCellCycleModel | ( | ) |
Default constructor.
Definition at line 39 of file TysonNovakCellCycleModel.cpp.
References AbstractOdeSystem::GetInitialConditions(), AbstractOdeBasedCellCycleModel::mpOdeSystem, msSolver, and AbstractOdeSystem::SetStateVariables().
Referenced by CreateCellCycleModel().
TysonNovakCellCycleModel::TysonNovakCellCycleModel | ( | const TysonNovakCellCycleModel & | rOtherModel | ) |
Copy constructor.
Also creates a copy of our ODE system.
rOtherModel | the instance being copied. |
Definition at line 50 of file TysonNovakCellCycleModel.cpp.
References AbstractOdeBasedCellCycleModel::mpOdeSystem.
void TysonNovakCellCycleModel::serialize | ( | Archive & | archive, | |
const unsigned int | version | |||
) | [inline, private] |
Archive the cell cycle model, never used directly - boost uses this.
archive | the archive | |
version | the current version of this class |
Reimplemented from AbstractOdeBasedCellCycleModel.
Definition at line 79 of file TysonNovakCellCycleModel.hpp.
void TysonNovakCellCycleModel::ResetForDivision | ( | ) | [virtual] |
Reset cell cycle model by calling AbstractOdeBasedCellCycleModel::ResetForDivision() and setting initial conditions for protein concentrations.
This model needs the protein concentrations and phase resetting to G0/G1.
In theory, the solution to the Tyson-Novak equations should exhibit stable oscillations, and we only need to halve the mass of the cell each period.
However, the backward Euler solver used to solve the equations currently returns a solution that diverges after long times, so we must reset the initial conditions each period.
When running with CVODE however we can use the halving the mass of the cell method.
Reimplemented from AbstractOdeBasedCellCycleModel.
Definition at line 60 of file TysonNovakCellCycleModel.cpp.
References AbstractOdeSystem::GetInitialConditions(), AbstractOdeBasedCellCycleModel::mpOdeSystem, AbstractOdeBasedCellCycleModel::ResetForDivision(), AbstractOdeSystem::rGetStateVariables(), and AbstractOdeSystem::SetStateVariables().
AbstractCellCycleModel * TysonNovakCellCycleModel::CreateCellCycleModel | ( | ) | [virtual] |
Overridden builder method to create new copies of this cell cycle model.
Implements AbstractCellCycleModel.
Definition at line 94 of file TysonNovakCellCycleModel.cpp.
References TysonNovakCellCycleModel().
bool TysonNovakCellCycleModel::SolveOdeToTime | ( | double | currentTime | ) | [virtual] |
Solve the ODEs up to the current time and return whether a stopping event occurred.
currentTime | the current time |
Implements AbstractOdeBasedCellCycleModel.
Definition at line 100 of file TysonNovakCellCycleModel.cpp.
References AbstractOdeBasedCellCycleModel::mLastTime, AbstractOdeBasedCellCycleModel::mpOdeSystem, msSolver, AbstractIvpOdeSolver::SolveAndUpdateStateVariable(), and AbstractIvpOdeSolver::StoppingEventOccurred().
double TysonNovakCellCycleModel::GetOdeStopTime | ( | ) | [virtual] |
Get the time at which the ODE stopping event occured.
Implements AbstractOdeBasedCellCycleModel.
Definition at line 110 of file TysonNovakCellCycleModel.cpp.
References AbstractIvpOdeSolver::GetStoppingTime(), msSolver, and AbstractIvpOdeSolver::StoppingEventOccurred().
double TysonNovakCellCycleModel::GetSDuration | ( | ) | [virtual] |
Get the duration of the cell's S phase.
Tyson & Novak pretends it is running ODEs in just G1, but they really represent the whole cell cycle, so we set the other phases to zero.
Reimplemented from AbstractCellCycleModel.
Definition at line 117 of file TysonNovakCellCycleModel.cpp.
double TysonNovakCellCycleModel::GetG2Duration | ( | ) | [virtual] |
Get the duration of the cell's G2 phase.
Tyson & Novak pretends it is running ODEs in just G1, but they really represent the whole cell cycle so we set the other phases to zero.
Reimplemented from AbstractCellCycleModel.
Definition at line 128 of file TysonNovakCellCycleModel.cpp.
double TysonNovakCellCycleModel::GetMDuration | ( | ) | [virtual] |
Get the duration of the cell's M phase.
Tyson & Novak pretends it is running ODEs in just G1, but they really represent the whole cell cycle so we set the other phases to zero.
Reimplemented from AbstractCellCycleModel.
Definition at line 139 of file TysonNovakCellCycleModel.cpp.
void TysonNovakCellCycleModel::InitialiseDaughterCell | ( | ) | [virtual] |
If the daughter cell type is stem, change it to transit.
Reimplemented from AbstractCellCycleModel.
Definition at line 86 of file TysonNovakCellCycleModel.cpp.
References TissueCell::GetCellType(), AbstractCellCycleModel::mpCell, and TissueCell::SetCellType().
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented from AbstractOdeBasedCellCycleModel.
Definition at line 71 of file TysonNovakCellCycleModel.hpp.
BackwardEulerIvpOdeSolver TysonNovakCellCycleModel::msSolver [static, private] |
A solver object for the ODE system - in this case a chaste Backward Euler solver
Definition at line 67 of file TysonNovakCellCycleModel.hpp.
Referenced by GetOdeStopTime(), SolveOdeToTime(), and TysonNovakCellCycleModel().