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 (TissueCell *pCell)
virtual void Initialise ()
virtual void InitialiseDaughterCell ()
TissueCellGetCell ()
virtual void SetBirthTime (double birthTime)
double GetBirthTime () const
double GetAge ()
bool ReadyToDivide ()
virtual void UpdateCellCyclePhase ()=0
virtual void ResetForDivision ()
virtual AbstractCellCycleModelCreateCellCycleModel ()
virtual AbstractCellCycleModelCreateDaughterCellCycleModel ()=0
CellCyclePhase GetCurrentCellCyclePhase ()
virtual double GetG1Duration ()
virtual double GetSDuration ()
virtual double GetG2Duration ()
virtual double GetMDuration ()

Protected Attributes

TissueCellmpCell
double mBirthTime
CellCyclePhase mCurrentCellCyclePhase
double mG1Duration
bool mReadyToDivide

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

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

AbstractCellCycleModel::~AbstractCellCycleModel (  )  [virtual]

Base class with virtual methods needs a virtual destructor.

Definition at line 41 of file AbstractCellCycleModel.cpp.


Member Function Documentation

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

Archive the member variables.

Serialization of singleton objects must be done with care. Before the object is serialized via a pointer, it *MUST* be serialized directly, or an assertion will trip when a second instance of the class is created on de-serialization.

Parameters:
archive 
version 

Reimplemented in AbstractOdeBasedCellCycleModel, AbstractSimpleCellCycleModel, AbstractSimpleGenerationBasedCellCycleModel, AbstractWntOdeBasedCellCycleModel, FixedDurationGenerationBasedCellCycleModel, IngeWntSwatCellCycleModel, SimpleWntCellCycleModel, StochasticDurationGenerationBasedCellCycleModel, StochasticWntCellCycleModel, TysonNovakCellCycleModel, and WntCellCycleModel.

Definition at line 71 of file AbstractCellCycleModel.hpp.

References CancerParameters::Instance(), SimulationTime::Instance(), mBirthTime, mCurrentCellCyclePhase, mG1Duration, and mReadyToDivide.

void AbstractCellCycleModel::SetCell ( TissueCell pCell  ) 

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

Some cell cycle models pass this pointer to other classes (e.g. WntConcentration), 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 49 of file AbstractCellCycleModel.cpp.

References mpCell.

Referenced by TissueCell::CommonCopy(), TissueCell::SetCellCycleModel(), and TissueCell::TissueCell().

virtual void AbstractCellCycleModel::Initialise ( void   )  [inline, 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 tissue. It is not called on cell division; use ResetModel(), CreateDaughterCellCycleModel() and InitialiseDaughterCell() for that.

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

Reimplemented in AbstractSimpleCellCycleModel, IngeWntSwatCellCycleModel, StochasticWntCellCycleModel, and WntCellCycleModel.

Definition at line 149 of file AbstractCellCycleModel.hpp.

Referenced by TissueCell::InitialiseCellCycleModel().

virtual void AbstractCellCycleModel::InitialiseDaughterCell (  )  [inline, virtual]

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

This is called by TissueCell::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 ResetModel() (called on the parent prior to division) and CreateDaughterCellCycleModel() (called on the reset parent to create the new cell cycle model object).

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

Definition at line 164 of file AbstractCellCycleModel.hpp.

Referenced by TissueCell::Divide(), and AbstractSimpleCellCycleModel::InitialiseDaughterCell().

TissueCell * AbstractCellCycleModel::GetCell (  ) 

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

Definition at line 55 of file AbstractCellCycleModel.cpp.

References mpCell.

Referenced by MeshBasedTissue< DIM >::CheckTissueCellPointers().

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

References mBirthTime.

Referenced by AbstractOdeBasedCellCycleModel::AbstractOdeBasedCellCycleModel(), TissueCell::SetBirthTime(), and AbstractOdeBasedCellCycleModel::SetBirthTime().

double AbstractCellCycleModel::GetBirthTime (  )  const

Returns:
the time at which the cell was born.

Definition at line 68 of file AbstractCellCycleModel.cpp.

References mBirthTime.

Referenced by TissueCell::GetBirthTime().

double AbstractCellCycleModel::GetAge (  ) 

bool AbstractCellCycleModel::ReadyToDivide (  ) 

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

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

Referenced by TissueCell::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, and SimpleWntCellCycleModel.

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 TissueCell::Divide() to reset the cell cycle just before the daughter cell is created. CreateDaughterCellCycleModel() can then clone our state to generate a cell cycle model instance for the daughter cell.

Reimplemented in AbstractOdeBasedCellCycleModel, AbstractSimpleCellCycleModel, AbstractSimpleGenerationBasedCellCycleModel, AbstractWntOdeBasedCellCycleModel, SimpleWntCellCycleModel, StochasticWntCellCycleModel, and TysonNovakCellCycleModel.

Definition at line 86 of file AbstractCellCycleModel.cpp.

References mCurrentCellCyclePhase, and mReadyToDivide.

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

AbstractCellCycleModel * AbstractCellCycleModel::CreateCellCycleModel (  )  [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 the copy constructor and operator= of TissueCell to create a copy of the cell cycle model when copying a cell. It thus just needs to create any instance of the right class, as operator= on the cell cycle model is then called to ensure the model is copied properly.

A default implementation is given here which uses CreateDaughterCellCycleModel(), in order to reduce coding effort for the refactor.

Definition at line 94 of file AbstractCellCycleModel.cpp.

References CreateDaughterCellCycleModel().

Referenced by TissueCell::CommonCopy().

virtual AbstractCellCycleModel* AbstractCellCycleModel::CreateDaughterCellCycleModel (  )  [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 TissueCell::Divide() to create a cell cycle model for the daughter cell. It thus must thus produce a cell cycle model in a suitable state for a newly-born cell spawned from the 'current' cell. Note that the parent cell cycle model will have had ResetModel() called just before CreateDaughterCellCycleModel() is called.

Implemented in FixedDurationGenerationBasedCellCycleModel, IngeWntSwatCellCycleModel, SimpleWntCellCycleModel, StochasticDurationGenerationBasedCellCycleModel, StochasticWntCellCycleModel, TysonNovakCellCycleModel, and WntCellCycleModel.

Referenced by CreateCellCycleModel(), and TissueCell::Divide().

CellCyclePhase AbstractCellCycleModel::GetCurrentCellCyclePhase (  ) 

Returns:
the current cell cycle phase

Definition at line 80 of file AbstractCellCycleModel.cpp.

References mCurrentCellCyclePhase.

Referenced by AbstractTissue< DIM >::GenerateCellResults().

double AbstractCellCycleModel::GetG1Duration (  )  [virtual]

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

Definition at line 106 of file AbstractCellCycleModel.cpp.

References mG1Duration.

Referenced by ReadyToDivide().

double AbstractCellCycleModel::GetSDuration (  )  [virtual]

double AbstractCellCycleModel::GetG2Duration (  )  [virtual]

double AbstractCellCycleModel::GetMDuration (  )  [virtual]


Friends And Related Function Documentation

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


Member Data Documentation


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

Generated on Wed Mar 18 12:52:03 2009 for Chaste by  doxygen 1.5.5