AbstractCellCycleModel Class Reference

#include <AbstractCellCycleModel.hpp>

Inheritance diagram for AbstractCellCycleModel:

Inheritance graph
[legend]
Collaboration diagram for AbstractCellCycleModel:

Collaboration graph
[legend]

List of all members.

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 ()
void SetStemCellG1Duration (double stemCellG1Duration)
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 ()
CellProliferativeType GetCellProliferativeType () const
void SetCellProliferativeType (CellProliferativeType cellType)
double GetMinimumGapDuration ()
void SetMinimumGapDuration (double minimumGapDuration)

Protected Attributes

CellPtr mpCell
double mBirthTime
CellCyclePhase mCurrentCellCyclePhase
double mG1Duration
bool mReadyToDivide
unsigned mDimension
CellProliferativeType mCellProliferativeType
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 51 of file AbstractCellCycleModel.hpp.


Constructor & Destructor Documentation

AbstractCellCycleModel::AbstractCellCycleModel (  ) 

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

Definition at line 30 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 46 of file AbstractCellCycleModel.cpp.


Member Function Documentation

template<class Archive>
void AbstractCellCycleModel::serialize ( Archive &  archive,
const unsigned int  version 
) [inline, private]

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:
pCell pointer to the cell

Definition at line 58 of file AbstractCellCycleModel.cpp.

References mpCell.

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

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, CellwiseData and/or other singletons will also have been initialised.

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

Definition at line 50 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 AbstractSimpleCellCycleModel, AbstractSimpleGenerationBasedCellCycleModel, StochasticOxygenBasedCellCycleModel, TysonNovakCellCycleModel, SimpleWntCellCycleModel, and StochasticWntCellCycleModel.

Definition at line 54 of file AbstractCellCycleModel.cpp.

Referenced by AbstractSimpleCellCycleModel::InitialiseDaughterCell().

CellPtr AbstractCellCycleModel::GetCell (  ) 

Returns:
The cell which plays host to this cell cycle model.

Definition at line 63 of file AbstractCellCycleModel.cpp.

References mpCell.

Referenced by MeshBasedCellPopulation< DIM >::CheckCellPointers().

void AbstractCellCycleModel::SetBirthTime ( double  birthTime  )  [virtual]

Set the cell's time of birth (usually not required as it should be inside the indivdual cell-cycle-model-constructor, but useful for tests).

Parameters:
birthTime the simulation time at this cell's birth.
(This function is overridden in AbstractOdeBasedCellCycleModel).

Reimplemented in AbstractOdeBasedCellCycleModel.

Definition at line 69 of file AbstractCellCycleModel.cpp.

References mBirthTime.

Referenced by AbstractOdeBasedCellCycleModel::AbstractOdeBasedCellCycleModel(), SingleOdeWntCellCycleModel::CreateCellCycleModel(), AbstractOdeBasedCellCycleModel::SetBirthTime(), and Cell::SetBirthTime().

void AbstractCellCycleModel::SetDimension ( unsigned  dimension  ) 

unsigned AbstractCellCycleModel::GetDimension (  ) 

Get the dimension this cell cycle model thinks the simulation is in.

Definition at line 190 of file AbstractCellCycleModel.cpp.

References mDimension.

double AbstractCellCycleModel::GetBirthTime (  )  const

Returns:
the time at which the cell was born.

Definition at line 74 of file AbstractCellCycleModel.cpp.

References mBirthTime.

Referenced by Cell::GetBirthTime().

double AbstractCellCycleModel::GetAge (  ) 

bool AbstractCellCycleModel::ReadyToDivide (  )  [virtual]

Determine 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 165 of file AbstractCellCycleModel.cpp.

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

Referenced by Cell::ReadyToDivide().

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 AbstractOdeBasedCellCycleModel, AbstractSimpleCellCycleModel, SimpleOxygenBasedCellCycleModel, AbstractWntOdeBasedCellCycleModel, SimpleWntCellCycleModel, and SingleOdeWntCellCycleModel.

Referenced by 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, AbstractSimpleCellCycleModel, AbstractSimpleGenerationBasedCellCycleModel, Alarcon2004OxygenBasedCellCycleModel, StochasticOxygenBasedCellCycleModel, TysonNovakCellCycleModel, AbstractWntOdeBasedCellCycleModel, and StochasticWntCellCycleModel.

Definition at line 89 of file AbstractCellCycleModel.cpp.

References mCurrentCellCyclePhase, and mReadyToDivide.

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

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

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

Referenced by Cell::Divide().

CellCyclePhase AbstractCellCycleModel::GetCurrentCellCyclePhase (  ) 

Returns:
the current cell cycle phase

Definition at line 84 of file AbstractCellCycleModel.cpp.

References mCurrentCellCyclePhase.

double AbstractCellCycleModel::GetG1Duration (  )  [virtual]

Returns:
the duration of the G1 phase of the cell cycle

Definition at line 96 of file AbstractCellCycleModel.cpp.

References mG1Duration.

Referenced by ReadyToDivide().

double AbstractCellCycleModel::GetStemCellG1Duration (  ) 

Returns:
mStemCellG1Duration

Definition at line 105 of file AbstractCellCycleModel.cpp.

References mStemCellG1Duration.

Referenced by SimpleWntCellCycleModel::SetG1Duration(), and AbstractSimpleCellCycleModel::SetG1Duration().

double AbstractCellCycleModel::GetTransitCellG1Duration (  ) 

Returns:
mTransitCellG1Duration

Definition at line 110 of file AbstractCellCycleModel.cpp.

References mTransitCellG1Duration.

Referenced by SimpleWntCellCycleModel::SetG1Duration(), and AbstractSimpleCellCycleModel::SetG1Duration().

double AbstractCellCycleModel::GetSG2MDuration (  ) 

Returns:
mSDuration + mG2Duration + mMDuration

Definition at line 115 of file AbstractCellCycleModel.cpp.

References mG2Duration, mMDuration, and mSDuration.

Referenced by GetAverageStemCellCycleTime(), and GetAverageTransitCellCycleTime().

double AbstractCellCycleModel::GetSDuration (  )  [virtual]

Returns:
the duration of the S phase of the cell cycle mSDuration

Reimplemented in TysonNovakCellCycleModel.

Definition at line 120 of file AbstractCellCycleModel.cpp.

References mSDuration.

Referenced by ReadyToDivide(), AbstractSimpleCellCycleModel::UpdateCellCyclePhase(), and AbstractOdeBasedCellCycleModel::UpdateCellCyclePhase().

double AbstractCellCycleModel::GetG2Duration (  )  [virtual]

double AbstractCellCycleModel::GetMDuration (  )  [virtual]

Returns:
the duration of the M phase of the cell cycle mMDuration

Reimplemented in TysonNovakCellCycleModel.

Definition at line 130 of file AbstractCellCycleModel.cpp.

References mMDuration.

Referenced by ReadyToDivide(), AbstractSimpleCellCycleModel::UpdateCellCyclePhase(), and AbstractOdeBasedCellCycleModel::UpdateCellCyclePhase().

void AbstractCellCycleModel::SetStemCellG1Duration ( double  stemCellG1Duration  ) 

Set mStemCellG1Duration.

Parameters:
stemCellG1Duration the new value of mStemCellG1Duration

Definition at line 139 of file AbstractCellCycleModel.cpp.

References mStemCellG1Duration.

void AbstractCellCycleModel::SetTransitCellG1Duration ( double  transitCellG1Duration  ) 

Set mTransitCellG1Duration.

Parameters:
transitCellG1Duration the new value of mTransitCellG1Duration

Definition at line 144 of file AbstractCellCycleModel.cpp.

References mTransitCellG1Duration.

void AbstractCellCycleModel::SetSDuration ( double  sDuration  ) 

Set mSDuration.

Parameters:
sDuration the new value of mSDuration

Definition at line 149 of file AbstractCellCycleModel.cpp.

References mSDuration.

void AbstractCellCycleModel::SetG2Duration ( double  g2Duration  ) 

Set mG2Duration.

Parameters:
g2Duration the new value of mG2Duration

Definition at line 154 of file AbstractCellCycleModel.cpp.

References mG2Duration.

void AbstractCellCycleModel::SetMDuration ( double  mDuration  ) 

Set mMDuration.

Parameters:
mDuration the new value of mMDuration

Definition at line 159 of file AbstractCellCycleModel.cpp.

References mMDuration.

double AbstractCellCycleModel::GetAverageTransitCellCycleTime (  )  [virtual]

Return 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 195 of file AbstractCellCycleModel.cpp.

References GetSG2MDuration(), and mTransitCellG1Duration.

double AbstractCellCycleModel::GetAverageStemCellCycleTime (  )  [virtual]

Return 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 200 of file AbstractCellCycleModel.cpp.

References GetSG2MDuration(), and mStemCellG1Duration.

bool AbstractCellCycleModel::CanCellTerminallyDifferentiate (  )  [virtual]

Whether a cell with this cell cycle model is able to fully (terminally) differentiate.

Reimplemented in TysonNovakCellCycleModel, AbstractWntOdeBasedCellCycleModel, and SimpleWntCellCycleModel.

Definition at line 205 of file AbstractCellCycleModel.cpp.

CellProliferativeType AbstractCellCycleModel::GetCellProliferativeType (  )  const

Get method for mCellProliferativeType.

Definition at line 216 of file AbstractCellCycleModel.cpp.

References mCellProliferativeType.

void AbstractCellCycleModel::SetCellProliferativeType ( CellProliferativeType  cellType  ) 

double AbstractCellCycleModel::GetMinimumGapDuration (  ) 

Returns:
mMinimumGapDuration

Definition at line 227 of file AbstractCellCycleModel.cpp.

References mMinimumGapDuration.

void AbstractCellCycleModel::SetMinimumGapDuration ( double  minimumGapDuration  ) 

Set mMinimumGapDuration.

Parameters:
minimumGapDuration the new value of mMinimumGapDuration

Definition at line 221 of file AbstractCellCycleModel.cpp.

References mMinimumGapDuration.


Friends And Related Function Documentation

friend class boost::serialization::access [friend]


Member Data Documentation

CellPtr AbstractCellCycleModel::mpCell [protected]

The cell that this model is associated with.

Definition at line 95 of file AbstractCellCycleModel.hpp.

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

Whether the cell is currently ready to undergo division.

Definition at line 115 of file AbstractCellCycleModel.hpp.

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

unsigned AbstractCellCycleModel::mDimension [protected]

CellProliferativeType AbstractCellCycleModel::mCellProliferativeType [protected]

The cell type - defined in CellProliferativeTypes.hpp.

Definition at line 125 of file AbstractCellCycleModel.hpp.

Referenced by WntCellCycleModel::ChangeCellProliferativeTypeDueToCurrentBetaCateninLevel(), SingleOdeWntCellCycleModel::ChangeCellProliferativeTypeDueToCurrentBetaCateninLevel(), AbstractVanLeeuwen2009WntSwatCellCycleModel::ChangeCellProliferativeTypeDueToCurrentBetaCateninLevel(), WntCellCycleModel::CreateCellCycleModel(), VanLeeuwen2009WntSwatCellCycleModelHypothesisTwo::CreateCellCycleModel(), VanLeeuwen2009WntSwatCellCycleModelHypothesisOne::CreateCellCycleModel(), StochasticWntCellCycleModel::CreateCellCycleModel(), SingleOdeWntCellCycleModel::CreateCellCycleModel(), SimpleWntCellCycleModel::CreateCellCycleModel(), TysonNovakCellCycleModel::CreateCellCycleModel(), StochasticOxygenBasedCellCycleModel::CreateCellCycleModel(), StochasticDurationGenerationBasedCellCycleModel::CreateCellCycleModel(), SimpleOxygenBasedCellCycleModel::CreateCellCycleModel(), FixedDurationGenerationBasedCellCycleModel::CreateCellCycleModel(), Alarcon2004OxygenBasedCellCycleModel::CreateCellCycleModel(), GetCellProliferativeType(), SimpleWntCellCycleModel::InitialiseDaughterCell(), TysonNovakCellCycleModel::InitialiseDaughterCell(), AbstractSimpleGenerationBasedCellCycleModel::InitialiseDaughterCell(), AbstractSimpleGenerationBasedCellCycleModel::ResetForDivision(), serialize(), SetCellProliferativeType(), SimpleWntCellCycleModel::SetG1Duration(), StochasticDurationGenerationBasedCellCycleModel::SetG1Duration(), AbstractSimpleCellCycleModel::SetG1Duration(), SimpleWntCellCycleModel::UpdateCellCyclePhase(), and AbstractSimpleCellCycleModel::UpdateCellCyclePhase().

Minimum possbile 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 134 of file AbstractCellCycleModel.hpp.

Referenced by StochasticWntCellCycleModel::GenerateStochasticG2Duration(), StochasticOxygenBasedCellCycleModel::GenerateStochasticG2Duration(), GetMinimumGapDuration(), serialize(), SimpleWntCellCycleModel::SetG1Duration(), and SetMinimumGapDuration().

Duration of G1 phase for stem cells. May be used as a mean duration for stochastic cell cycle models.

Definition at line 141 of file AbstractCellCycleModel.hpp.

Referenced by GetAverageStemCellCycleTime(), GetStemCellG1Duration(), serialize(), and SetStemCellG1Duration().

Duration of G1 phase for transit cells. May be used as a mean duration for stochastic cell cycle models.

Definition at line 147 of file AbstractCellCycleModel.hpp.

Referenced by GetAverageTransitCellCycleTime(), GetTransitCellG1Duration(), serialize(), and SetTransitCellG1Duration().

Duration of S phase for all cell types.

Definition at line 152 of file AbstractCellCycleModel.hpp.

Referenced by GetSDuration(), GetSG2MDuration(), serialize(), and SetSDuration().

Duration of G2 phase for all cell types.

Definition at line 157 of file AbstractCellCycleModel.hpp.

Referenced by StochasticOxygenBasedCellCycleModel::CreateCellCycleModel(), GetG2Duration(), GetSG2MDuration(), serialize(), and SetG2Duration().

Duration of M phase for all cell types.

Definition at line 162 of file AbstractCellCycleModel.hpp.

Referenced by GetMDuration(), GetSG2MDuration(), serialize(), and SetMDuration().


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

Generated on Mon Nov 1 12:35:35 2010 for Chaste by  doxygen 1.5.5