Chaste  Release::3.4
AbstractCellCycleModel Class Referenceabstract

#include <AbstractCellCycleModel.hpp>

+ Inheritance diagram for AbstractCellCycleModel:
+ Collaboration diagram for AbstractCellCycleModel:

Public Member Functions

 AbstractCellCycleModel ()
 
virtual ~AbstractCellCycleModel ()
 
void SetCell (CellPtr pCell)
 
virtual void Initialise ()
 
virtual void InitialiseDaughterCell ()
 
CellPtr GetCell ()
 
virtual void SetBirthTime (double birthTime)
 
void SetDimension (unsigned dimension)
 
unsigned GetDimension ()
 
double GetBirthTime () const
 
double GetAge ()
 
virtual bool ReadyToDivide ()
 
virtual void UpdateCellCyclePhase ()=0
 
virtual void ResetForDivision ()
 
virtual AbstractCellCycleModelCreateCellCycleModel ()=0
 
CellCyclePhase GetCurrentCellCyclePhase ()
 
virtual double GetG1Duration ()
 
double GetStemCellG1Duration ()
 
double GetTransitCellG1Duration ()
 
double GetSG2MDuration ()
 
virtual double GetSDuration ()
 
virtual double GetG2Duration ()
 
virtual double GetMDuration ()
 
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 ()
 
virtual bool CanCellTerminallyDifferentiate ()
 
double GetMinimumGapDuration ()
 
void SetMinimumGapDuration (double minimumGapDuration)
 
void OutputCellCycleModelInfo (out_stream &rParamsFile)
 
virtual void OutputCellCycleModelParameters (out_stream &rParamsFile)=0
 
- Public Member Functions inherited from Identifiable
virtual ~Identifiable ()
 
std::string GetIdentifier () const
 

Protected Attributes

CellPtr mpCell
 
double mBirthTime
 
CellCyclePhase mCurrentCellCyclePhase
 
double mG1Duration
 
bool mReadyToDivide
 
unsigned mDimension
 
double mMinimumGapDuration
 
double mStemCellG1Duration
 
double mTransitCellG1Duration
 
double mSDuration
 
double mG2Duration
 
double mMDuration
 

Private Member Functions

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

Friends

class boost::serialization::access
 

Detailed Description

The AbstractCellCycleModel contains basic information to all cell-cycle models. It handles assignment of birth time, cell cycle phase and a Cell.

Cell-cycle models are noncopyable since cells are noncopyable.

Definition at line 61 of file AbstractCellCycleModel.hpp.

Constructor & Destructor Documentation

AbstractCellCycleModel::AbstractCellCycleModel ( )

Sets up a new AbstractCellCycleModel, gives it a birth time of the present simulation time (which is overwritten by some subclasses)

Definition at line 38 of file AbstractCellCycleModel.cpp.

AbstractCellCycleModel::~AbstractCellCycleModel ( )
virtual

Base class with virtual methods needs a virtual destructor. The destructor does not delete mpCell. Instead, the cell takes responsibility for deleting the cell-cycle model when it is destroyed.

Definition at line 54 of file AbstractCellCycleModel.cpp.

Member Function Documentation

bool AbstractCellCycleModel::CanCellTerminallyDifferentiate ( )
virtual
Returns
whether a cell with this cell-cycle model is able to fully (terminally) differentiate.

Reimplemented in SimpleWntCellCycleModel, TysonNovakCellCycleModel, and AbstractWntOdeBasedCellCycleModel.

Definition at line 213 of file AbstractCellCycleModel.cpp.

virtual AbstractCellCycleModel* AbstractCellCycleModel::CreateCellCycleModel ( )
pure virtual

Builder method to create new instances of the cell-cycle model. Each concrete subclass must implement this method to create an instance of that subclass.

This method is called by Cell::Divide() to create a cell cycle model for the daughter cell. 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().

Returns
new cell-cycle model

Implemented in SimpleWntCellCycleModel, SimpleOxygenBasedCellCycleModel, SingleOdeWntCellCycleModel, ContactInhibitionCellCycleModel, StochasticOxygenBasedCellCycleModel, ExponentiallyDistributedStochasticDurationGenerationBasedCellCycleModel, WntCellCycleModel, TysonNovakCellCycleModel, Alarcon2004OxygenBasedCellCycleModel, StochasticWntCellCycleModel, StochasticDurationCellCycleModel, GammaDistributedStochasticDurationCellCycleModel, StochasticDurationGenerationBasedCellCycleModel, VanLeeuwen2009WntSwatCellCycleModelHypothesisTwo, VanLeeuwen2009WntSwatCellCycleModelHypothesisOne, and FixedDurationGenerationBasedCellCycleModel.

Referenced by Cell::Divide().

double AbstractCellCycleModel::GetAverageStemCellCycleTime ( )
virtual
Returns
the typical cell cycle duration for a stem cell, in hours. This method is overridden in some subclasses.

Reimplemented in TysonNovakCellCycleModel, and AbstractWntOdeBasedCellCycleModel.

Definition at line 208 of file AbstractCellCycleModel.cpp.

References GetSG2MDuration(), and mStemCellG1Duration.

double AbstractCellCycleModel::GetAverageTransitCellCycleTime ( )
virtual
Returns
the typical cell cycle duration for a transit cell, in hours. This method is overridden in some subclasses.

Reimplemented in TysonNovakCellCycleModel, and AbstractWntOdeBasedCellCycleModel.

Definition at line 203 of file AbstractCellCycleModel.cpp.

References GetSG2MDuration(), and mTransitCellG1Duration.

double AbstractCellCycleModel::GetBirthTime ( ) const
Returns
the time at which the cell was born.

Definition at line 82 of file AbstractCellCycleModel.cpp.

References mBirthTime.

Referenced by Cell::GetBirthTime().

CellPtr AbstractCellCycleModel::GetCell ( )
Returns
The cell which plays host to this cell-cycle model.

Definition at line 71 of file AbstractCellCycleModel.cpp.

References mpCell.

Referenced by MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::CheckCellPointers().

CellCyclePhase AbstractCellCycleModel::GetCurrentCellCyclePhase ( )
Returns
the current cell cycle phase

Definition at line 92 of file AbstractCellCycleModel.cpp.

References mCurrentCellCyclePhase.

unsigned AbstractCellCycleModel::GetDimension ( )
Returns
the dimension this cell-cycle model thinks the simulation is in.

Definition at line 198 of file AbstractCellCycleModel.cpp.

References mDimension.

double AbstractCellCycleModel::GetG1Duration ( )
virtual
Returns
the duration of the G1 phase of the cell cycle

Definition at line 104 of file AbstractCellCycleModel.cpp.

References mG1Duration.

Referenced by ReadyToDivide(), and FarhadifarTypeModifier< DIM >::UpdateTargetAreaOfCell().

double AbstractCellCycleModel::GetMDuration ( )
virtual
double AbstractCellCycleModel::GetMinimumGapDuration ( )
Returns
mMinimumGapDuration

Definition at line 224 of file AbstractCellCycleModel.cpp.

References mMinimumGapDuration.

double AbstractCellCycleModel::GetSDuration ( )
virtual
double AbstractCellCycleModel::GetSG2MDuration ( )
Returns
mSDuration + mG2Duration + mMDuration

Definition at line 123 of file AbstractCellCycleModel.cpp.

References mG2Duration, mMDuration, and mSDuration.

Referenced by GetAverageStemCellCycleTime(), and GetAverageTransitCellCycleTime().

void AbstractCellCycleModel::Initialise ( void  )
virtual

Initialise the cell-cycle model at the start of a simulation.

This method will be called precisely once per cell set up in the initial cell population. It is not called on cell division; use ResetForDivision(), CreateCellCycleModel() and InitialiseDaughterCell() for that.

By the time this is called, a CellPopulation will have been set up, so the model can know where its cell is located in space. If relevant to the simulation, any singletons will also have been initialised.

Reimplemented in WntCellCycleModel, StochasticWntCellCycleModel, SingleOdeWntCellCycleModel, AbstractSimpleCellCycleModel, Alarcon2004OxygenBasedCellCycleModel, StochasticOxygenBasedCellCycleModel, AbstractVanLeeuwen2009WntSwatCellCycleModel, and TysonNovakCellCycleModel.

Definition at line 58 of file AbstractCellCycleModel.cpp.

Referenced by TysonNovakCellCycleModel::Initialise(), and Cell::InitialiseCellCycleModel().

void AbstractCellCycleModel::InitialiseDaughterCell ( )
virtual

Initialise the new daughter cell's cycle model after a cell division.

This is called by Cell::Divide once the new cell object has been fully created, to perform any initialisation of the cell cycle which requires access to the cell.

Note that much initialisation can be performed using the combination of ResetForDivision() (called on the parent prior to division) and CreateCellCycleModel() (called on the reset parent to create the new cell-cycle model object).

Reimplemented in SimpleWntCellCycleModel, TysonNovakCellCycleModel, AbstractSimpleCellCycleModel, StochasticWntCellCycleModel, AbstractSimpleGenerationBasedCellCycleModel, and StochasticOxygenBasedCellCycleModel.

Definition at line 62 of file AbstractCellCycleModel.cpp.

Referenced by AbstractSimpleCellCycleModel::InitialiseDaughterCell(), and StochasticWntCellCycleModel::InitialiseDaughterCell().

void AbstractCellCycleModel::OutputCellCycleModelInfo ( out_stream &  rParamsFile)

Outputs cell-cycle model used in the simulation to file and then calls OutputCellCyclemodelParameters to output all relevant parameters.

Parameters
rParamsFilethe file stream to which the parameters are output

Definition at line 229 of file AbstractCellCycleModel.cpp.

References Identifiable::GetIdentifier(), and OutputCellCycleModelParameters().

bool AbstractCellCycleModel::ReadyToDivide ( )
virtual
Returns
whether the cell is ready to divide (enter M phase).

The intention is that this method is called precisely once at each timestep of the simulation. However this does not appear to always be the case at present, and so it can cope with more unusual usage patterns.

Definition at line 173 of file AbstractCellCycleModel.cpp.

References GetAge(), GetG1Duration(), GetG2Duration(), GetMDuration(), GetSDuration(), mCurrentCellCyclePhase, mpCell, mReadyToDivide, and UpdateCellCyclePhase().

Referenced by Cell::ReadyToDivide().

void AbstractCellCycleModel::ResetForDivision ( )
virtual

Each cell-cycle model must be able to be reset 'after' a cell division.

Actually, this method is called from Cell::Divide() to reset the cell cycle just before the daughter cell is created. CreateCellCycleModel() can then clone our state to generate a cell-cycle model instance for the daughter cell.

Reimplemented in AbstractOdeBasedCellCycleModel, StochasticWntCellCycleModel, AbstractWntOdeBasedCellCycleModel, StochasticOxygenBasedCellCycleModel, TysonNovakCellCycleModel, AbstractSimpleCellCycleModel, Alarcon2004OxygenBasedCellCycleModel, and AbstractSimpleGenerationBasedCellCycleModel.

Definition at line 97 of file AbstractCellCycleModel.cpp.

References mCurrentCellCyclePhase, and mReadyToDivide.

Referenced by Cell::Divide(), AbstractSimpleCellCycleModel::ResetForDivision(), and AbstractOdeBasedCellCycleModel::ResetForDivision().

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

Archive the object and its member variables.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 74 of file AbstractCellCycleModel.hpp.

References SerializableSingleton< SINGLETON_CLASS >::GetSerializationWrapper(), SimulationTime::Instance(), mBirthTime, mCurrentCellCyclePhase, mDimension, mG1Duration, mG2Duration, mMDuration, mMinimumGapDuration, mReadyToDivide, mSDuration, mStemCellG1Duration, and mTransitCellG1Duration.

void AbstractCellCycleModel::SetCell ( CellPtr  pCell)

Gives the cell-cycle model a pointer to its host cell.

Some cell-cycle models pass this pointer to other classes, which use this information to determine other information based upon the location of the cell (e.g. the Wnt concentration at this location).

Parameters
pCellpointer to the cell

Definition at line 66 of file AbstractCellCycleModel.cpp.

References mpCell.

Referenced by Cell::Cell(), and Cell::SetCellCycleModel().

virtual void AbstractCellCycleModel::UpdateCellCyclePhase ( )
pure virtual

This method must be implemented by subclasses in order to set the phase the cell-cycle model is currently in. It is called from ReadyToDivide() just prior to deciding whether to divide the cell based on how far through the cell cycle it is, i.e. whether it has completed M, G1, S and G2 phases.

Implemented in SimpleWntCellCycleModel, SingleOdeWntCellCycleModel, AbstractOdeBasedCellCycleModel, SimpleOxygenBasedCellCycleModel, ContactInhibitionCellCycleModel, AbstractSimpleCellCycleModel, and AbstractWntOdeBasedCellCycleModel.

Referenced by ReadyToDivide().

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 66 of file AbstractCellCycleModel.hpp.

Member Data Documentation

double AbstractCellCycleModel::mMinimumGapDuration
protected

Minimum possible duration of either of the gap phases (G1 or G2). Has units of hours.

Used to guarantee a strictly positive duration in cell-cycle models that use normal random deviates for G1 or G2 phases.

Definition at line 132 of file AbstractCellCycleModel.hpp.

Referenced by FixedDurationGenerationBasedCellCycleModel::CreateCellCycleModel(), VanLeeuwen2009WntSwatCellCycleModelHypothesisOne::CreateCellCycleModel(), VanLeeuwen2009WntSwatCellCycleModelHypothesisTwo::CreateCellCycleModel(), StochasticDurationGenerationBasedCellCycleModel::CreateCellCycleModel(), GammaDistributedStochasticDurationCellCycleModel::CreateCellCycleModel(), StochasticDurationCellCycleModel::CreateCellCycleModel(), StochasticWntCellCycleModel::CreateCellCycleModel(), Alarcon2004OxygenBasedCellCycleModel::CreateCellCycleModel(), TysonNovakCellCycleModel::CreateCellCycleModel(), WntCellCycleModel::CreateCellCycleModel(), ExponentiallyDistributedStochasticDurationGenerationBasedCellCycleModel::CreateCellCycleModel(), StochasticOxygenBasedCellCycleModel::CreateCellCycleModel(), ContactInhibitionCellCycleModel::CreateCellCycleModel(), SingleOdeWntCellCycleModel::CreateCellCycleModel(), SimpleOxygenBasedCellCycleModel::CreateCellCycleModel(), SimpleWntCellCycleModel::CreateCellCycleModel(), StochasticOxygenBasedCellCycleModel::GenerateStochasticG2Duration(), StochasticWntCellCycleModel::GenerateStochasticG2Duration(), GetMinimumGapDuration(), serialize(), SimpleWntCellCycleModel::SetG1Duration(), and SetMinimumGapDuration().

CellPtr AbstractCellCycleModel::mpCell
protected

The cell that this model is associated with.

Definition at line 98 of file AbstractCellCycleModel.hpp.

Referenced by Alarcon2004OxygenBasedCellCycleModel::AdjustOdeParameters(), AbstractVanLeeuwen2009WntSwatCellCycleModel::AdjustOdeParameters(), WntCellCycleModel::AdjustOdeParameters(), SingleOdeWntCellCycleModel::AdjustOdeParameters(), AbstractVanLeeuwen2009WntSwatCellCycleModel::ChangeCellProliferativeTypeDueToCurrentBetaCateninLevel(), WntCellCycleModel::ChangeCellProliferativeTypeDueToCurrentBetaCateninLevel(), SingleOdeWntCellCycleModel::ChangeCellProliferativeTypeDueToCurrentBetaCateninLevel(), VanLeeuwen2009WntSwatCellCycleModelHypothesisOne::CreateCellCycleModel(), VanLeeuwen2009WntSwatCellCycleModelHypothesisTwo::CreateCellCycleModel(), StochasticWntCellCycleModel::CreateCellCycleModel(), Alarcon2004OxygenBasedCellCycleModel::CreateCellCycleModel(), WntCellCycleModel::CreateCellCycleModel(), SingleOdeWntCellCycleModel::CreateCellCycleModel(), GetCell(), AbstractWntOdeBasedCellCycleModel::GetWntLevel(), SimpleWntCellCycleModel::GetWntLevel(), AbstractVanLeeuwen2009WntSwatCellCycleModel::Initialise(), Alarcon2004OxygenBasedCellCycleModel::Initialise(), SingleOdeWntCellCycleModel::Initialise(), WntCellCycleModel::Initialise(), AbstractSimpleGenerationBasedCellCycleModel::InitialiseDaughterCell(), TysonNovakCellCycleModel::InitialiseDaughterCell(), SimpleWntCellCycleModel::InitialiseDaughterCell(), ReadyToDivide(), AbstractSimpleGenerationBasedCellCycleModel::ResetForDivision(), SetCell(), StochasticDurationGenerationBasedCellCycleModel::SetG1Duration(), AbstractSimpleCellCycleModel::SetG1Duration(), StochasticDurationCellCycleModel::SetG1Duration(), GammaDistributedStochasticDurationCellCycleModel::SetG1Duration(), ExponentiallyDistributedStochasticDurationGenerationBasedCellCycleModel::SetG1Duration(), SimpleWntCellCycleModel::SetG1Duration(), AbstractSimpleCellCycleModel::UpdateCellCyclePhase(), ContactInhibitionCellCycleModel::UpdateCellCyclePhase(), SimpleOxygenBasedCellCycleModel::UpdateCellCyclePhase(), SimpleWntCellCycleModel::UpdateCellCyclePhase(), AbstractWntOdeBasedCellCycleModel::UpdateCellProliferativeType(), and SimpleOxygenBasedCellCycleModel::UpdateHypoxicDuration().

bool AbstractCellCycleModel::mReadyToDivide
protected

Whether the cell is currently ready to undergo division.

Definition at line 118 of file AbstractCellCycleModel.hpp.

Referenced by ReadyToDivide(), ResetForDivision(), and serialize().


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