Chaste  Release::3.4
TysonNovakCellCycleModel Class Reference

#include <TysonNovakCellCycleModel.hpp>

+ Inheritance diagram for TysonNovakCellCycleModel:
+ Collaboration diagram for TysonNovakCellCycleModel:

Public Member Functions

 TysonNovakCellCycleModel (boost::shared_ptr< AbstractCellCycleModelOdeSolver > pOdeSolver=boost::shared_ptr< AbstractCellCycleModelOdeSolver >())
 
void Initialise ()
 
void ResetForDivision ()
 
AbstractCellCycleModelCreateCellCycleModel ()
 
double GetSDuration ()
 
double GetG2Duration ()
 
double GetMDuration ()
 
void InitialiseDaughterCell ()
 
double GetAverageTransitCellCycleTime ()
 
double GetAverageStemCellCycleTime ()
 
bool CanCellTerminallyDifferentiate ()
 
virtual void OutputCellCycleModelParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from AbstractOdeBasedCellCycleModel
 AbstractOdeBasedCellCycleModel (double lastTime=SimulationTime::Instance() ->GetTime(), boost::shared_ptr< AbstractCellCycleModelOdeSolver > pOdeSolver=boost::shared_ptr< AbstractCellCycleModelOdeSolver >())
 
virtual ~AbstractOdeBasedCellCycleModel ()
 
virtual void UpdateCellCyclePhase ()
 
double GetOdeStopTime ()
 
void SetBirthTime (double birthTime)
 
std::vector< doubleGetProteinConcentrations () const
 
void SetProteinConcentrationsForTestsOnly (double lastTime, std::vector< double > proteinConcentrations)
 
void SetFinishedRunningOdes (bool finishedRunningOdes)
 
void SetDivideTime (double divideTime)
 
void SetG2PhaseStartTime (double g2PhaseStartTime)
 
- Public Member Functions inherited from AbstractCellCycleModel
 AbstractCellCycleModel ()
 
virtual ~AbstractCellCycleModel ()
 
void SetCell (CellPtr pCell)
 
CellPtr GetCell ()
 
void SetDimension (unsigned dimension)
 
unsigned GetDimension ()
 
double GetBirthTime () const
 
double GetAge ()
 
virtual bool ReadyToDivide ()
 
CellCyclePhase GetCurrentCellCyclePhase ()
 
virtual double GetG1Duration ()
 
double GetStemCellG1Duration ()
 
double GetTransitCellG1Duration ()
 
double GetSG2MDuration ()
 
virtual void SetStemCellG1Duration (double stemCellG1Duration)
 
virtual void SetTransitCellG1Duration (double transitCellG1Duration)
 
void SetSDuration (double sDuration)
 
void SetG2Duration (double g2Duration)
 
void SetMDuration (double mDuration)
 
double GetMinimumGapDuration ()
 
void SetMinimumGapDuration (double minimumGapDuration)
 
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)
 

Private Member Functions

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

Friends

class TestOdeBasedCellCycleModels
 
class boost::serialization::access
 

Additional Inherited Members

- Protected Member Functions inherited from CellCycleModelOdeHandler
bool SolveOdeToTime (double currentTime)
 
virtual void AdjustOdeParameters (double currentTime)
 
- Protected Attributes inherited from AbstractOdeBasedCellCycleModel
double mDivideTime
 
bool mFinishedRunningOdes
 
double mG2PhaseStartTime
 
- Protected Attributes inherited from AbstractCellCycleModel
CellPtr mpCell
 
double mBirthTime
 
CellCyclePhase mCurrentCellCyclePhase
 
double mG1Duration
 
bool mReadyToDivide
 
unsigned mDimension
 
double mMinimumGapDuration
 
double mStemCellG1Duration
 
double mTransitCellG1Duration
 
double mSDuration
 
double mG2Duration
 
double mMDuration
 
- Protected Attributes inherited from CellCycleModelOdeHandler
double mDt
 
AbstractOdeSystemmpOdeSystem
 
boost::shared_ptr
< AbstractCellCycleModelOdeSolver
mpOdeSolver
 
double mLastTime
 

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.

Definition at line 55 of file TysonNovakCellCycleModel.hpp.

Constructor & Destructor Documentation

TysonNovakCellCycleModel::TysonNovakCellCycleModel ( boost::shared_ptr< AbstractCellCycleModelOdeSolver pOdeSolver = boost::shared_ptr<AbstractCellCycleModelOdeSolver>())

Default constructor.

Parameters
pOdeSolverAn optional pointer to a cell-cycle model ODE solver object (allows the use of different ODE solvers)

Definition at line 40 of file TysonNovakCellCycleModel.cpp.

References CellCycleModelOdeSolver< CELL_CYCLE_MODEL, ODE_SOLVER >::Instance(), CellCycleModelOdeHandler::mpOdeSolver, and CellCycleModelOdeHandler::SetDt().

Referenced by CreateCellCycleModel().

Member Function Documentation

bool TysonNovakCellCycleModel::CanCellTerminallyDifferentiate ( )
virtual

Overridden CanCellTerminallyDifferentiate() method.

Returns
whether cell can terminally differentiate

Reimplemented from AbstractCellCycleModel.

Definition at line 199 of file TysonNovakCellCycleModel.cpp.

AbstractCellCycleModel * TysonNovakCellCycleModel::CreateCellCycleModel ( )
virtual
double TysonNovakCellCycleModel::GetAverageStemCellCycleTime ( )
virtual

Overridden GetAverageStemCellCycleTime() method.

Returns
time

Reimplemented from AbstractCellCycleModel.

Definition at line 194 of file TysonNovakCellCycleModel.cpp.

double TysonNovakCellCycleModel::GetAverageTransitCellCycleTime ( )
virtual

Overridden GetAverageTransitCellCycleTime() method.

Returns
time

Reimplemented from AbstractCellCycleModel.

Definition at line 189 of file TysonNovakCellCycleModel.cpp.

double TysonNovakCellCycleModel::GetG2Duration ( )
virtual
Returns
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 169 of file TysonNovakCellCycleModel.cpp.

double TysonNovakCellCycleModel::GetMDuration ( )
virtual
Returns
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 179 of file TysonNovakCellCycleModel.cpp.

double TysonNovakCellCycleModel::GetSDuration ( )
virtual
Returns
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 159 of file TysonNovakCellCycleModel.cpp.

void TysonNovakCellCycleModel::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 from AbstractCellCycleModel.

Definition at line 61 of file TysonNovakCellCycleModel.cpp.

References AbstractParameterisedSystem< VECTOR >::GetInitialConditions(), AbstractCellCycleModel::Initialise(), CellCycleModelOdeHandler::mpOdeSystem, and AbstractParameterisedSystem< VECTOR >::SetStateVariables().

void TysonNovakCellCycleModel::InitialiseDaughterCell ( )
virtual

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

Reimplemented from AbstractCellCycleModel.

Definition at line 95 of file TysonNovakCellCycleModel.cpp.

References AbstractCellCycleModel::mpCell.

void TysonNovakCellCycleModel::OutputCellCycleModelParameters ( out_stream &  rParamsFile)
virtual

Outputs cell cycle model parameters to file.

Parameters
rParamsFilethe file stream to which the parameters are output

Reimplemented from AbstractOdeBasedCellCycleModel.

Definition at line 204 of file TysonNovakCellCycleModel.cpp.

References AbstractOdeBasedCellCycleModel::OutputCellCycleModelParameters().

void TysonNovakCellCycleModel::ResetForDivision ( )
virtual

Reset cell-cycle model by calling AbstractOdeBasedCellCycleModelWithStoppingEvent::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 70 of file TysonNovakCellCycleModel.cpp.

References AbstractParameterisedSystem< VECTOR >::GetInitialConditions(), CellCycleModelOdeHandler::mpOdeSystem, AbstractOdeBasedCellCycleModel::ResetForDivision(), AbstractParameterisedSystem< VECTOR >::rGetStateVariables(), and AbstractParameterisedSystem< VECTOR >::SetStateVariables().

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

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

Parameters
archivethe archive
versionthe current version of this class

Definition at line 70 of file TysonNovakCellCycleModel.hpp.

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 62 of file TysonNovakCellCycleModel.hpp.


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