Chaste  Release::2018.1
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 ()
 
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 ()
 
double GetOdeStopTime ()
 
void SetBirthTime (double birthTime)
 
virtual bool ReadyToDivide ()
 
- Public Member Functions inherited from AbstractCellCycleModel
 AbstractCellCycleModel ()
 
virtual ~AbstractCellCycleModel ()
 
void SetCell (CellPtr pCell)
 
CellPtr GetCell ()
 
void SetDimension (unsigned dimension)
 
unsigned GetDimension () const
 
double GetBirthTime () const
 
double GetAge ()
 
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)
 
std::vector< doubleGetProteinConcentrations () const
 
void SetProteinConcentrationsForTestsOnly (double lastTime, std::vector< double > proteinConcentrations)
 

Protected Member Functions

 TysonNovakCellCycleModel (const TysonNovakCellCycleModel &rModel)
 
- Protected Member Functions inherited from AbstractOdeBasedCellCycleModel
 AbstractOdeBasedCellCycleModel (const AbstractOdeBasedCellCycleModel &rModel)
 
- Protected Member Functions inherited from AbstractCellCycleModel
 AbstractCellCycleModel (const AbstractCellCycleModel &rModel)
 
- Protected Member Functions inherited from CellCycleModelOdeHandler
 CellCycleModelOdeHandler (const CellCycleModelOdeHandler &rHandler)
 
bool SolveOdeToTime (double currentTime)
 
virtual void AdjustOdeParameters (double currentTime)
 

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 Attributes inherited from AbstractOdeBasedCellCycleModel
double mDivideTime
 
- Protected Attributes inherited from AbstractCellCycleModel
CellPtr mpCell
 
double mBirthTime
 
bool mReadyToDivide
 
unsigned mDimension
 
- Protected Attributes inherited from CellCycleModelOdeHandler
double mDt
 
AbstractOdeSystemmpOdeSystem
 
boost::shared_ptr
< AbstractCellCycleModelOdeSolver
mpOdeSolver
 
double mLastTime
 
bool mFinishedRunningOdes
 

Detailed Description

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

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

Definition at line 51 of file TysonNovakCellCycleModel.hpp.

Constructor & Destructor Documentation

TysonNovakCellCycleModel::TysonNovakCellCycleModel ( const TysonNovakCellCycleModel rModel)
protected

Protected copy-constructor for use by CreateCellCycleModel. The only way for external code to create a copy of a cell cycle model is by calling that method, to ensure that a model of the correct subclass is created. This copy-constructor helps subclasses to ensure that all member variables are correctly copied when this happens.

This method is called by child classes to set member variables for a daughter cell upon cell division. 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().

Parameters
rModelthe cell cycle model to copy.

Definition at line 61 of file TysonNovakCellCycleModel.cpp.

References CellCycleModelOdeHandler::GetOdeSystem(), AbstractParameterisedSystem< VECTOR >::rGetStateVariables(), CellCycleModelOdeHandler::SetOdeSystem(), and CellCycleModelOdeHandler::SetStateVariables().

Referenced by CreateCellCycleModel().

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

Member Function Documentation

bool TysonNovakCellCycleModel::CanCellTerminallyDifferentiate ( )
virtual

Overridden CanCellTerminallyDifferentiate() method.

Returns
whether cell can terminally differentiate

Reimplemented from AbstractCellCycleModel.

Definition at line 151 of file TysonNovakCellCycleModel.cpp.

AbstractCellCycleModel * TysonNovakCellCycleModel::CreateCellCycleModel ( )
virtual

Overridden builder method to create new copies of this cell-cycle model.

Returns
new cell-cycle model

Implements AbstractCellCycleModel.

Definition at line 136 of file TysonNovakCellCycleModel.cpp.

References TysonNovakCellCycleModel().

double TysonNovakCellCycleModel::GetAverageStemCellCycleTime ( )
virtual

Overridden GetAverageStemCellCycleTime() method.

Returns
time

Implements AbstractCellCycleModel.

Definition at line 146 of file TysonNovakCellCycleModel.cpp.

double TysonNovakCellCycleModel::GetAverageTransitCellCycleTime ( )
virtual

Overridden GetAverageTransitCellCycleTime() method.

Returns
time

Implements AbstractCellCycleModel.

Definition at line 141 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 83 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 117 of file TysonNovakCellCycleModel.cpp.

References AbstractCellCycleModel::mpCell.

void TysonNovakCellCycleModel::OutputCellCycleModelParameters ( out_stream &  rParamsFile)
virtual

Overridden OutputCellCycleModelParameters() method.

Parameters
rParamsFilethe file stream to which the parameters are output

Reimplemented from AbstractOdeBasedCellCycleModel.

Definition at line 156 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 92 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 66 of file TysonNovakCellCycleModel.hpp.

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 58 of file TysonNovakCellCycleModel.hpp.


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