Chaste  Release::2017.1
AbstractOdeBasedPhaseBasedCellCycleModel Class Reference

#include <AbstractOdeBasedPhaseBasedCellCycleModel.hpp>

+ Inheritance diagram for AbstractOdeBasedPhaseBasedCellCycleModel:
+ Collaboration diagram for AbstractOdeBasedPhaseBasedCellCycleModel:

Public Member Functions

 AbstractOdeBasedPhaseBasedCellCycleModel (double lastTime=SimulationTime::Instance() ->GetTime(), boost::shared_ptr< AbstractCellCycleModelOdeSolver > pOdeSolver=boost::shared_ptr< AbstractCellCycleModelOdeSolver >())
 
virtual ~AbstractOdeBasedPhaseBasedCellCycleModel ()
 
virtual void UpdateCellCyclePhase ()
 
double GetOdeStopTime ()
 
void SetBirthTime (double birthTime)
 
virtual void ResetForDivision ()
 
virtual void OutputCellCycleModelParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from AbstractPhaseBasedCellCycleModel
 AbstractPhaseBasedCellCycleModel ()
 
virtual ~AbstractPhaseBasedCellCycleModel ()
 
virtual bool ReadyToDivide ()
 
CellCyclePhase GetCurrentCellCyclePhase () const
 
virtual double GetG1Duration () const
 
double GetStemCellG1Duration () const
 
double GetTransitCellG1Duration () const
 
double GetSG2MDuration () const
 
virtual double GetSDuration () const
 
virtual double GetG2Duration () const
 
virtual double GetMDuration () const
 
virtual void SetStemCellG1Duration (double stemCellG1Duration)
 
virtual void SetTransitCellG1Duration (double transitCellG1Duration)
 
void SetSDuration (double sDuration)
 
void SetG2Duration (double g2Duration)
 
void SetMDuration (double mDuration)
 
virtual double GetAverageTransitCellCycleTime ()
 
virtual double GetAverageStemCellCycleTime ()
 
double GetMinimumGapDuration () const
 
void SetMinimumGapDuration (double minimumGapDuration)
 
- Public Member Functions inherited from AbstractCellCycleModel
 AbstractCellCycleModel ()
 
virtual ~AbstractCellCycleModel ()
 
void SetCell (CellPtr pCell)
 
virtual void Initialise ()
 
virtual void InitialiseDaughterCell ()
 
CellPtr GetCell ()
 
void SetDimension (unsigned dimension)
 
unsigned GetDimension () const
 
double GetBirthTime () const
 
double GetAge ()
 
virtual AbstractCellCycleModelCreateCellCycleModel ()=0
 
virtual bool CanCellTerminallyDifferentiate ()
 
void OutputCellCycleModelInfo (out_stream &rParamsFile)
 
- Public Member Functions inherited from Identifiable
virtual ~Identifiable ()
 
std::string GetIdentifier () const
 
- Public Member Functions inherited from CellCycleModelOdeHandler
 CellCycleModelOdeHandler (double lastTime=SimulationTime::Instance() ->GetTime(), boost::shared_ptr< AbstractCellCycleModelOdeSolver > pOdeSolver=boost::shared_ptr< AbstractCellCycleModelOdeSolver >())
 
virtual ~CellCycleModelOdeHandler ()
 
AbstractOdeSystemGetOdeSystem () const
 
void SetOdeSystem (AbstractOdeSystem *pOdeSystem)
 
const boost::shared_ptr< AbstractCellCycleModelOdeSolverGetOdeSolver () const
 
void SetLastTime (double lastTime)
 
double GetDt ()
 
void SetDt (double timeStep)
 
void SetStateVariables (const std::vector< double > &rStateVariables)
 
std::vector< doubleGetProteinConcentrations () const
 
void SetProteinConcentrationsForTestsOnly (double lastTime, std::vector< double > proteinConcentrations)
 

Protected Member Functions

 AbstractOdeBasedPhaseBasedCellCycleModel (const AbstractOdeBasedPhaseBasedCellCycleModel &rModel)
 
- Protected Member Functions inherited from AbstractPhaseBasedCellCycleModel
 AbstractPhaseBasedCellCycleModel (const AbstractPhaseBasedCellCycleModel &rModel)
 
- Protected Member Functions inherited from AbstractCellCycleModel
 AbstractCellCycleModel (const AbstractCellCycleModel &rModel)
 
- Protected Member Functions inherited from CellCycleModelOdeHandler
 CellCycleModelOdeHandler (const CellCycleModelOdeHandler &rHandler)
 
bool SolveOdeToTime (double currentTime)
 
virtual void AdjustOdeParameters (double currentTime)
 

Protected Attributes

double mDivideTime
 
double mG2PhaseStartTime
 
- Protected Attributes inherited from AbstractPhaseBasedCellCycleModel
CellCyclePhase mCurrentCellCyclePhase
 
double mG1Duration
 
double mMinimumGapDuration
 
double mStemCellG1Duration
 
double mTransitCellG1Duration
 
double mSDuration
 
double mG2Duration
 
double mMDuration
 
- Protected Attributes inherited from AbstractCellCycleModel
CellPtr mpCell
 
double mBirthTime
 
bool mReadyToDivide
 
unsigned mDimension
 
- Protected Attributes inherited from CellCycleModelOdeHandler
double mDt
 
AbstractOdeSystemmpOdeSystem
 
boost::shared_ptr< AbstractCellCycleModelOdeSolvermpOdeSolver
 
double mLastTime
 
bool mFinishedRunningOdes
 

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 

Friends

class boost::serialization::access
 

Detailed Description

This class contains all the functionality shared by 'ODE-based' cell-cycle models, where the duration of one or more cell cycle phases are 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 each cell cycle phase is determined when the cell-cycle model is created.

Definition at line 61 of file AbstractOdeBasedPhaseBasedCellCycleModel.hpp.

Constructor & Destructor Documentation

AbstractOdeBasedPhaseBasedCellCycleModel::AbstractOdeBasedPhaseBasedCellCycleModel ( const AbstractOdeBasedPhaseBasedCellCycleModel rModel)
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().

Parameters
rModelthe cell cycle model to copy.

Definition at line 51 of file AbstractOdeBasedPhaseBasedCellCycleModel.cpp.

AbstractOdeBasedPhaseBasedCellCycleModel::AbstractOdeBasedPhaseBasedCellCycleModel ( double  lastTime = SimulationTime::Instance()->GetTime(),
boost::shared_ptr< AbstractCellCycleModelOdeSolver pOdeSolver = boost::shared_ptr<AbstractCellCycleModelOdeSolver>() 
)

Creates an AbstractOdeBasedPhaseBasedCellCycleModel, 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.

Parameters
lastTimeThe birth time of the cell / last time model was evaluated (defaults to the current SimulationTime)
pOdeSolverAn optional pointer to a cell-cycle model ODE solver object (allows the use of different ODE solvers)

Definition at line 38 of file AbstractOdeBasedPhaseBasedCellCycleModel.cpp.

References AbstractCellCycleModel::SetBirthTime().

AbstractOdeBasedPhaseBasedCellCycleModel::~AbstractOdeBasedPhaseBasedCellCycleModel ( )
virtual

Destructor.

Definition at line 47 of file AbstractOdeBasedPhaseBasedCellCycleModel.cpp.

Member Function Documentation

double AbstractOdeBasedPhaseBasedCellCycleModel::GetOdeStopTime ( )

Get the time at which the ODE stopping event occurred. Only called in those subclasses for which stopping events are defined.

Returns
the time at which the ODE system reached its stopping event

Definition at line 159 of file AbstractOdeBasedPhaseBasedCellCycleModel.cpp.

References DOUBLE_UNSET, and CellCycleModelOdeHandler::mpOdeSolver.

Referenced by AbstractWntOdeBasedCellCycleModel::UpdateCellCyclePhase(), and UpdateCellCyclePhase().

template<class Archive >
void AbstractOdeBasedPhaseBasedCellCycleModel::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Archive the cell-cycle model and member variables.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 74 of file AbstractOdeBasedPhaseBasedCellCycleModel.hpp.

References mDivideTime, and mG2PhaseStartTime.

void AbstractOdeBasedPhaseBasedCellCycleModel::SetBirthTime ( double  birthTime)
virtual

This overrides the AbstractPhaseBasedCellCycleModel::SetBirthTime(double birthTime) because an ODE based cell-cycle model has more to reset...

Parameters
birthTimethe simulation time when the cell was born

Reimplemented from AbstractCellCycleModel.

Definition at line 70 of file AbstractOdeBasedPhaseBasedCellCycleModel.cpp.

References mDivideTime, CellCycleModelOdeHandler::mLastTime, and AbstractCellCycleModel::SetBirthTime().

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 66 of file AbstractOdeBasedPhaseBasedCellCycleModel.hpp.

Member Data Documentation

double AbstractOdeBasedPhaseBasedCellCycleModel::mDivideTime
protected

The time at which the cell should divide - Set this to DBL_MAX in constructor.

Definition at line 85 of file AbstractOdeBasedPhaseBasedCellCycleModel.hpp.

Referenced by ResetForDivision(), serialize(), SetBirthTime(), and UpdateCellCyclePhase().

double AbstractOdeBasedPhaseBasedCellCycleModel::mG2PhaseStartTime
protected

The start time for the G2 phase.

Definition at line 88 of file AbstractOdeBasedPhaseBasedCellCycleModel.hpp.

Referenced by serialize(), and UpdateCellCyclePhase().


The documentation for this class was generated from the following files: