#include <AbstractOdeBasedCellCycleModel.hpp>
Inherits AbstractCellCycleModel.
Inherited by AbstractOdeBasedCellCycleModelWithStoppingEvent.
Public Member Functions | |
AbstractOdeBasedCellCycleModel (double lastTime=SimulationTime::Instance()->GetTime()) | |
AbstractOdeBasedCellCycleModel (const AbstractOdeBasedCellCycleModel &rOtherModel) | |
virtual | ~AbstractOdeBasedCellCycleModel () |
virtual void | UpdateCellCyclePhase () |
virtual bool | SolveOdeToTime (double currentTime)=0 |
virtual double | GetOdeStopTime ()=0 |
void | SetBirthTime (double birthTime) |
std::vector< double > | GetProteinConcentrations () const |
void | SetProteinConcentrationsForTestsOnly (double lastTime, std::vector< double > proteinConcentrations) |
virtual void | ResetForDivision () |
Protected Attributes | |
AbstractOdeSystem * | mpOdeSystem |
double | mLastTime |
double | mDivideTime |
bool | mFinishedRunningOdes |
double | mG2PhaseStartTime |
Private Member Functions | |
template<class Archive > | |
void | serialize (Archive &archive, const unsigned int version) |
Friends | |
class | boost::serialization::access |
This class contains all the things common to standard cell cycle ODE models for intracellular protein concentrations (along the lines of Tyson & Novak), such as solving the ODEs until a stopping condition is met.
Definition at line 44 of file AbstractOdeBasedCellCycleModel.hpp.
AbstractOdeBasedCellCycleModel::AbstractOdeBasedCellCycleModel | ( | double | lastTime = SimulationTime::Instance()->GetTime() |
) |
Creates an AbstractOdeBasedCellCycleModel, calls SetBirthTime on the AbstractCellCycleModel 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) |
Definition at line 31 of file AbstractOdeBasedCellCycleModel.cpp.
References SetBirthTime().
AbstractOdeBasedCellCycleModel::AbstractOdeBasedCellCycleModel | ( | const AbstractOdeBasedCellCycleModel & | rOtherModel | ) |
Copy constructor.
This is needed because we store and manage a pointer to an ODE system. Note that this class doesn't actually copy the ODE system, because each subclass will use a different type. Hence subclasses *must* copy their own ODE system in their copy constructor.
rOtherModel | the cell cycle model being copied. |
Definition at line 42 of file AbstractOdeBasedCellCycleModel.cpp.
AbstractOdeBasedCellCycleModel::~AbstractOdeBasedCellCycleModel | ( | ) | [virtual] |
This destructor deletes the mpOdeSystem.
Definition at line 53 of file AbstractOdeBasedCellCycleModel.cpp.
References mpOdeSystem.
virtual double AbstractOdeBasedCellCycleModel::GetOdeStopTime | ( | ) | [pure virtual] |
This method must be implemented by each subclass
When the ODEs have reached a stopping event it returns the time at which the ODEs stopped running so a delay can be added in for S-G2-M phases if necessary.
Implemented in AbstractWntOdeBasedCellCycleModel, and TysonNovakCellCycleModel.
Referenced by UpdateCellCyclePhase().
std::vector< double > AbstractOdeBasedCellCycleModel::GetProteinConcentrations | ( | ) | const |
Returns the protein concentrations at the current time (useful for tests)
NB: Will copy the vector - you can't use this to modify the concentrations.
Definition at line 70 of file AbstractOdeBasedCellCycleModel.cpp.
References mpOdeSystem, and AbstractOdeSystem::rGetStateVariables().
void AbstractOdeBasedCellCycleModel::ResetForDivision | ( | ) | [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 AbstractWntOdeBasedCellCycleModel, StochasticWntCellCycleModel, and TysonNovakCellCycleModel.
Definition at line 158 of file AbstractOdeBasedCellCycleModel.cpp.
References AbstractCellCycleModel::mBirthTime, mDivideTime, mFinishedRunningOdes, AbstractCellCycleModel::mG1Duration, and mLastTime.
void AbstractOdeBasedCellCycleModel::serialize | ( | Archive & | archive, | |
const unsigned int | version | |||
) | [inline, private] |
Archive the cell cycle model and member variables.
archive | the archive | |
version | the current version of this class |
Reimplemented from AbstractCellCycleModel.
Reimplemented in AbstractWntOdeBasedCellCycleModel, StochasticWntCellCycleModel, VanLeeuwen2009WntSwatCellCycleModelHypothesisOne, VanLeeuwen2009WntSwatCellCycleModelHypothesisTwo, AbstractOdeBasedCellCycleModelWithStoppingEvent, and TysonNovakCellCycleModel.
Definition at line 57 of file AbstractOdeBasedCellCycleModel.hpp.
References mDivideTime, mFinishedRunningOdes, mG2PhaseStartTime, mLastTime, mpOdeSystem, and AbstractOdeSystem::rGetStateVariables().
void AbstractOdeBasedCellCycleModel::SetBirthTime | ( | double | birthTime | ) | [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 62 of file AbstractOdeBasedCellCycleModel.cpp.
References mDivideTime, and mLastTime.
Referenced by AbstractOdeBasedCellCycleModel().
void AbstractOdeBasedCellCycleModel::SetProteinConcentrationsForTestsOnly | ( | double | lastTime, | |
std::vector< double > | proteinConcentrations | |||
) |
Sets the protein concentrations and time when the model was last evaluated - should only be called by tests
lastTime | the SimulationTime at which the protein concentrations apply | |
proteinConcentrations | a standard vector of doubles of protein concentrations |
Definition at line 77 of file AbstractOdeBasedCellCycleModel.cpp.
References mLastTime, mpOdeSystem, AbstractOdeSystem::rGetStateVariables(), and AbstractOdeSystem::SetStateVariables().
This method must be implemented by each subclass - solves the ODEs to a given time.
currentTime | the current time |
Implemented in AbstractVanLeeuwen2009WntSwatCellCycleModel, WntCellCycleModel, and TysonNovakCellCycleModel.
Referenced by UpdateCellCyclePhase().
void AbstractOdeBasedCellCycleModel::UpdateCellCyclePhase | ( | ) | [virtual] |
Default UpdateCellCyclePhase() method for an ODE-based cell cycle model. This method calls SolveOdeToTime() for G1 phase and adds time for the other phases.
Can be overridden if they should do something more subtle.
Implements AbstractCellCycleModel.
Definition at line 86 of file AbstractOdeBasedCellCycleModel.cpp.
References AbstractCellCycleModel::GetAge(), AbstractCellCycleModel::GetG2Duration(), AbstractCellCycleModel::GetMDuration(), AbstractOdeSystem::GetNumberOfStateVariables(), GetOdeStopTime(), AbstractCellCycleModel::GetSDuration(), SimulationTime::GetTime(), SimulationTime::Instance(), AbstractCellCycleModel::mBirthTime, AbstractCellCycleModel::mCurrentCellCyclePhase, mDivideTime, mFinishedRunningOdes, AbstractCellCycleModel::mG1Duration, mG2PhaseStartTime, mLastTime, mpOdeSystem, AbstractOdeSystem::rGetStateVariables(), and SolveOdeToTime().
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented from AbstractCellCycleModel.
Reimplemented in AbstractVanLeeuwen2009WntSwatCellCycleModel, AbstractWntOdeBasedCellCycleModel, StochasticWntCellCycleModel, VanLeeuwen2009WntSwatCellCycleModelHypothesisOne, VanLeeuwen2009WntSwatCellCycleModelHypothesisTwo, WntCellCycleModel, AbstractOdeBasedCellCycleModelWithStoppingEvent, and TysonNovakCellCycleModel.
Definition at line 49 of file AbstractOdeBasedCellCycleModel.hpp.
double AbstractOdeBasedCellCycleModel::mDivideTime [protected] |
The time at which the cell should divide - Set this to DBL_MAX in constructor.
Definition at line 77 of file AbstractOdeBasedCellCycleModel.hpp.
Referenced by ResetForDivision(), serialize(), SetBirthTime(), and UpdateCellCyclePhase().
Whether the cell cycle model is currently in a delay (not solving ODEs).
Definition at line 80 of file AbstractOdeBasedCellCycleModel.hpp.
Referenced by ResetForDivision(), serialize(), and UpdateCellCyclePhase().
The start time for the G2 phase
Definition at line 83 of file AbstractOdeBasedCellCycleModel.hpp.
Referenced by serialize(), and UpdateCellCyclePhase().
double AbstractOdeBasedCellCycleModel::mLastTime [protected] |
The last time the cell cycle ODEs were evaluated.
Definition at line 74 of file AbstractOdeBasedCellCycleModel.hpp.
Referenced by ResetForDivision(), serialize(), SetBirthTime(), SetProteinConcentrationsForTestsOnly(), TysonNovakCellCycleModel::SolveOdeToTime(), WntCellCycleModel::SolveOdeToTime(), AbstractVanLeeuwen2009WntSwatCellCycleModel::SolveOdeToTime(), UpdateCellCyclePhase(), and AbstractWntOdeBasedCellCycleModel::UpdateCellProliferativeType().
The system of ODEs for the cell cycle model.
Definition at line 71 of file AbstractOdeBasedCellCycleModel.hpp.
Referenced by AbstractVanLeeuwen2009WntSwatCellCycleModel::AbstractVanLeeuwen2009WntSwatCellCycleModel(), WntCellCycleModel::ChangeCellProliferativeTypeDueToCurrentBetaCateninLevel(), AbstractVanLeeuwen2009WntSwatCellCycleModel::ChangeCellProliferativeTypeDueToCurrentBetaCateninLevel(), AbstractVanLeeuwen2009WntSwatCellCycleModel::GetCytoplasmicBetaCateninLevel(), AbstractVanLeeuwen2009WntSwatCellCycleModel::GetMembraneBoundBetaCateninLevel(), AbstractVanLeeuwen2009WntSwatCellCycleModel::GetNuclearBetaCateninLevel(), GetProteinConcentrations(), WntCellCycleModel::Initialise(), AbstractVanLeeuwen2009WntSwatCellCycleModel::Initialise(), VanLeeuwen2009WntSwatCellCycleModelHypothesisTwo::InitialiseOdeSystem(), VanLeeuwen2009WntSwatCellCycleModelHypothesisOne::InitialiseOdeSystem(), WntCellCycleModel::load(), AbstractVanLeeuwen2009WntSwatCellCycleModel::load(), TysonNovakCellCycleModel::ResetForDivision(), AbstractWntOdeBasedCellCycleModel::ResetForDivision(), WntCellCycleModel::save(), AbstractVanLeeuwen2009WntSwatCellCycleModel::save(), serialize(), SetProteinConcentrationsForTestsOnly(), TysonNovakCellCycleModel::SolveOdeToTime(), WntCellCycleModel::SolveOdeToTime(), AbstractVanLeeuwen2009WntSwatCellCycleModel::SolveOdeToTime(), TysonNovakCellCycleModel::TysonNovakCellCycleModel(), UpdateCellCyclePhase(), AbstractWntOdeBasedCellCycleModel::UpdateCellProliferativeType(), WntCellCycleModel::WntCellCycleModel(), and ~AbstractOdeBasedCellCycleModel().