TysonNovakCellCycleModel Class Reference

#include <TysonNovakCellCycleModel.hpp>

Inheritance diagram for TysonNovakCellCycleModel:

Inheritance graph
[legend]
Collaboration diagram for TysonNovakCellCycleModel:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 TysonNovakCellCycleModel ()
void ResetForDivision ()
AbstractCellCycleModelCreateDaughterCellCycleModel ()
bool SolveOdeToTime (double currentTime)
double GetOdeStopTime ()
double GetSDuration ()
double GetG2Duration ()
double GetMDuration ()
void InitialiseDaughterCell ()

Private Member Functions

 TysonNovakCellCycleModel (std::vector< double > parentProteinConcentrations, double divideTime)
template<class Archive>
void serialize (Archive &archive, const unsigned int version)

Static Private Attributes

static BackwardEulerIvpOdeSolver msSolver

Friends

class boost::serialization::access


Detailed Description

Tyson-Novak 2001 cell cycle model, taken from the version at doi:10.1006/jtbi.2001.2293

Note that this is not a model for murine or human colonic-cell cycling, but is included in chaste as one of the most commonly known ODE based cell cycle models.

Time taken to progress through the cycle is deterministic and given by an ODE system independent of external factors.

Note that this class uses C++'s default copying semantics, and so doesn't implement a copy constructor or operator=.

Definition at line 56 of file TysonNovakCellCycleModel.hpp.


Constructor & Destructor Documentation

TysonNovakCellCycleModel::TysonNovakCellCycleModel ( std::vector< double >  parentProteinConcentrations,
double  divideTime 
) [private]

A private constructor for daughter cells called only by the CreateDaughterCellCycleModel function

Parameters:
parentProteinConcentrations a std::vector of doubles of the protein concentrations
divideTime the SimulationTime when the cell divided (birth time of parent cell)

Definition at line 50 of file TysonNovakCellCycleModel.cpp.

References AbstractOdeSystem::GetInitialConditions(), AbstractOdeBasedCellCycleModel::mpOdeSystem, and AbstractOdeSystem::SetStateVariables().

TysonNovakCellCycleModel::TysonNovakCellCycleModel (  ) 


Member Function Documentation

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

Archive the cell cycle model, never used directly - boost uses this.

Parameters:
archive 
version 

Reimplemented from AbstractOdeBasedCellCycleModel.

Definition at line 86 of file TysonNovakCellCycleModel.hpp.

void TysonNovakCellCycleModel::ResetForDivision (  )  [virtual]

Reset cell cycle model by calling AbstractOdeBasedCellCycleModel::ResetForDivision() and setting initial conditions for protein concentrations.

This model needs the protein concentrations and phase resetting to G0/G1.

In theory, the solution to the Tyson-Novak equations should exhibit stable oscillations, and we only need to halve the mass of the cell each period.

However, the backward Euler solver used to solve the equations currently returns a solution that diverges after long times, so we must reset the initial conditions each period.

When running with CVODE however we can use the halving the mass of the cell method.

Reimplemented from AbstractOdeBasedCellCycleModel.

Definition at line 63 of file TysonNovakCellCycleModel.cpp.

References AbstractOdeSystem::GetInitialConditions(), AbstractOdeBasedCellCycleModel::mpOdeSystem, AbstractOdeBasedCellCycleModel::ResetForDivision(), AbstractOdeSystem::rGetStateVariables(), and AbstractOdeSystem::SetStateVariables().

AbstractCellCycleModel * TysonNovakCellCycleModel::CreateDaughterCellCycleModel (  )  [virtual]

Returns a new TysonNovakCellCycleModel, created with the correct initial conditions.

This method should be called just after the parent cell cycle model has been reset.

Returns:
pointer to the daughter cell cycle model

Implements AbstractCellCycleModel.

Definition at line 98 of file TysonNovakCellCycleModel.cpp.

References AbstractCellCycleModel::mBirthTime, AbstractOdeBasedCellCycleModel::mpOdeSystem, AbstractOdeSystem::rGetStateVariables(), and TysonNovakCellCycleModel().

bool TysonNovakCellCycleModel::SolveOdeToTime ( double  currentTime  )  [virtual]

Solve the ODEs up to the current time and return whether a stopping event occurred.

Parameters:
currentTime the current time
Returns:
whether a stopping event occured

Implements AbstractOdeBasedCellCycleModel.

Definition at line 104 of file TysonNovakCellCycleModel.cpp.

References AbstractOdeBasedCellCycleModel::mLastTime, AbstractOdeBasedCellCycleModel::mpOdeSystem, and msSolver.

double TysonNovakCellCycleModel::GetOdeStopTime (  )  [virtual]

Get the time at which the ODE stopping event occured.

Returns:
the stopping event time

Implements AbstractOdeBasedCellCycleModel.

Definition at line 114 of file TysonNovakCellCycleModel.cpp.

References msSolver.

double TysonNovakCellCycleModel::GetSDuration (  )  [virtual]

Get the duration of the cell's S phase.

Tyson & Novak pretends it is running ODEs in just G1, but they really represent the whole cell cycle, so we set the other phases to zero.

Reimplemented from AbstractCellCycleModel.

Definition at line 121 of file TysonNovakCellCycleModel.cpp.

double TysonNovakCellCycleModel::GetG2Duration (  )  [virtual]

Get the duration of the cell's G2 phase.

Tyson & Novak pretends it is running ODEs in just G1, but they really represent the whole cell cycle so we set the other phases to zero.

Reimplemented from AbstractCellCycleModel.

Definition at line 132 of file TysonNovakCellCycleModel.cpp.

double TysonNovakCellCycleModel::GetMDuration (  )  [virtual]

Get the duration of the cell's M phase.

Tyson & Novak pretends it is running ODEs in just G1, but they really represent the whole cell cycle so we set the other phases to zero.

Reimplemented from AbstractCellCycleModel.

Definition at line 143 of file TysonNovakCellCycleModel.cpp.

void TysonNovakCellCycleModel::InitialiseDaughterCell (  )  [virtual]

If the daughter cell type is stem, change it to transit.

Reimplemented from AbstractCellCycleModel.

Definition at line 89 of file TysonNovakCellCycleModel.cpp.

References TissueCell::GetCellType(), AbstractCellCycleModel::mpCell, and TissueCell::SetCellType().


Friends And Related Function Documentation

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

Needed for serialization.

Reimplemented from AbstractOdeBasedCellCycleModel.

Definition at line 78 of file TysonNovakCellCycleModel.hpp.


Member Data Documentation

BackwardEulerIvpOdeSolver TysonNovakCellCycleModel::msSolver [static, private]

A solver object for the ODE system - in this case a chaste Backward Euler solver

Definition at line 65 of file TysonNovakCellCycleModel.hpp.

Referenced by GetOdeStopTime(), SolveOdeToTime(), and TysonNovakCellCycleModel().


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

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