Chaste  Release::2018.1
AbstractOdeBasedCellCycleModel Class Reference

#include <AbstractOdeBasedCellCycleModel.hpp>

+ Inheritance diagram for AbstractOdeBasedCellCycleModel:
+ Collaboration diagram for AbstractOdeBasedCellCycleModel:

Public Member Functions

 AbstractOdeBasedCellCycleModel (double lastTime=SimulationTime::Instance() ->GetTime(), boost::shared_ptr< AbstractCellCycleModelOdeSolver > pOdeSolver=boost::shared_ptr< AbstractCellCycleModelOdeSolver >())
 
virtual ~AbstractOdeBasedCellCycleModel ()
 
double GetOdeStopTime ()
 
void SetBirthTime (double birthTime)
 
virtual bool ReadyToDivide ()
 
virtual void ResetForDivision ()
 
virtual void OutputCellCycleModelParameters (out_stream &rParamsFile)
 
- 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 ()
 
virtual double GetAverageTransitCellCycleTime ()=0
 
virtual double GetAverageStemCellCycleTime ()=0
 
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
< AbstractCellCycleModelOdeSolver
GetOdeSolver () 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

 AbstractOdeBasedCellCycleModel (const AbstractOdeBasedCellCycleModel &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
 
- Protected Attributes inherited from AbstractCellCycleModel
CellPtr mpCell
 
double mBirthTime
 
bool mReadyToDivide
 
unsigned mDimension
 
- Protected Attributes inherited from CellCycleModelOdeHandler
double mDt
 
AbstractOdeSystemmpOdeSystem
 
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
 

Detailed Description

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.

Constructor & Destructor Documentation

AbstractOdeBasedCellCycleModel::AbstractOdeBasedCellCycleModel ( const AbstractOdeBasedCellCycleModel 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 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.

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 AbstractOdeBasedCellCycleModel.cpp.

References AbstractCellCycleModel::SetBirthTime().

AbstractOdeBasedCellCycleModel::~AbstractOdeBasedCellCycleModel ( )
virtual

Destructor.

Definition at line 46 of file AbstractOdeBasedCellCycleModel.cpp.

Member Function Documentation

double AbstractOdeBasedCellCycleModel::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 115 of file AbstractOdeBasedCellCycleModel.cpp.

References DOUBLE_UNSET, and CellCycleModelOdeHandler::mpOdeSolver.

Referenced by ReadyToDivide().

void AbstractOdeBasedCellCycleModel::OutputCellCycleModelParameters ( out_stream &  rParamsFile)
virtual

Outputs cell cycle model parameters to file.

Parameters
rParamsFilethe 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().

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 TysonNovakCellCycleModel.

Definition at line 106 of file AbstractOdeBasedCellCycleModel.cpp.

References AbstractCellCycleModel::mBirthTime, mDivideTime, CellCycleModelOdeHandler::mLastTime, AbstractCellCycleModel::mReadyToDivide, and AbstractCellCycleModel::ResetForDivision().

Referenced by TysonNovakCellCycleModel::ResetForDivision().

template<class Archive >
void AbstractOdeBasedCellCycleModel::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 AbstractOdeBasedCellCycleModel.hpp.

References mDivideTime.

void AbstractOdeBasedCellCycleModel::SetBirthTime ( double  birthTime)
virtual

This overrides the AbstractCellCycleModel::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 63 of file AbstractOdeBasedCellCycleModel.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 AbstractOdeBasedCellCycleModel.hpp.

Member Data Documentation

double AbstractOdeBasedCellCycleModel::mDivideTime
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().


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