Chaste  Release::2017.1
ExponentialG1GenerationalCellCycleModel Class Reference

#include <ExponentialG1GenerationalCellCycleModel.hpp>

+ Inheritance diagram for ExponentialG1GenerationalCellCycleModel:
+ Collaboration diagram for ExponentialG1GenerationalCellCycleModel:

Public Member Functions

 ExponentialG1GenerationalCellCycleModel ()
 
AbstractCellCycleModelCreateCellCycleModel ()
 
virtual double GetRate ()
 
virtual void SetRate (double rate)
 
virtual void SetStemCellG1Duration (double stemCellG1Duration)
 
virtual void SetTransitCellG1Duration (double transitCellG1Duration)
 
virtual void OutputCellCycleModelParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from AbstractSimpleGenerationalCellCycleModel
 AbstractSimpleGenerationalCellCycleModel ()
 
virtual ~AbstractSimpleGenerationalCellCycleModel ()
 
void ResetForDivision ()
 
void InitialiseDaughterCell ()
 
void SetGeneration (unsigned generation)
 
unsigned GetGeneration () const
 
void SetMaxTransitGenerations (unsigned maxTransitGenerations)
 
unsigned GetMaxTransitGenerations () const
 
- Public Member Functions inherited from AbstractSimplePhaseBasedCellCycleModel
 AbstractSimplePhaseBasedCellCycleModel ()
 
virtual ~AbstractSimplePhaseBasedCellCycleModel ()
 
virtual void UpdateCellCyclePhase ()
 
void InitialiseDaughterCell ()
 
virtual void Initialise ()
 
- Public Member Functions inherited from AbstractPhaseBasedCellCycleModel
 AbstractPhaseBasedCellCycleModel ()
 
virtual ~AbstractPhaseBasedCellCycleModel ()
 
virtual bool ReadyToDivide ()
 
CellCyclePhase GetCurrentCellCyclePhase () const
 
virtual double GetG1Duration () const
 
double GetStemCellG1Duration () const
 
double GetTransitCellG1Duration () const
 
double GetSG2MDuration () const
 
virtual double GetSDuration () const
 
virtual double GetG2Duration () const
 
virtual double GetMDuration () const
 
void SetSDuration (double sDuration)
 
void SetG2Duration (double g2Duration)
 
void SetMDuration (double mDuration)
 
virtual double GetAverageTransitCellCycleTime ()
 
virtual double GetAverageStemCellCycleTime ()
 
double GetMinimumGapDuration () const
 
void SetMinimumGapDuration (double minimumGapDuration)
 
- Public Member Functions inherited from AbstractCellCycleModel
 AbstractCellCycleModel ()
 
virtual ~AbstractCellCycleModel ()
 
void SetCell (CellPtr pCell)
 
CellPtr GetCell ()
 
virtual void SetBirthTime (double birthTime)
 
void SetDimension (unsigned dimension)
 
unsigned GetDimension () const
 
double GetBirthTime () const
 
double GetAge ()
 
virtual bool CanCellTerminallyDifferentiate ()
 
void OutputCellCycleModelInfo (out_stream &rParamsFile)
 
- Public Member Functions inherited from Identifiable
virtual ~Identifiable ()
 
std::string GetIdentifier () const
 

Protected Member Functions

virtual void SetG1Duration ()
 
 ExponentialG1GenerationalCellCycleModel (const ExponentialG1GenerationalCellCycleModel &rModel)
 
- Protected Member Functions inherited from AbstractSimpleGenerationalCellCycleModel
 AbstractSimpleGenerationalCellCycleModel (const AbstractSimpleGenerationalCellCycleModel &rModel)
 
- Protected Member Functions inherited from AbstractSimplePhaseBasedCellCycleModel
 AbstractSimplePhaseBasedCellCycleModel (const AbstractSimplePhaseBasedCellCycleModel &rModel)
 
- Protected Member Functions inherited from AbstractPhaseBasedCellCycleModel
 AbstractPhaseBasedCellCycleModel (const AbstractPhaseBasedCellCycleModel &rModel)
 
- Protected Member Functions inherited from AbstractCellCycleModel
 AbstractCellCycleModel (const AbstractCellCycleModel &rModel)
 

Private Member Functions

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

Private Attributes

double mRate
 

Friends

class TestSimpleCellCycleModels
 
class boost::serialization::access
 

Additional Inherited Members

- Protected Attributes inherited from AbstractSimpleGenerationalCellCycleModel
unsigned mGeneration
 
unsigned mMaxTransitGenerations
 
- Protected Attributes inherited from AbstractPhaseBasedCellCycleModel
CellCyclePhase mCurrentCellCyclePhase
 
double mG1Duration
 
double mMinimumGapDuration
 
double mStemCellG1Duration
 
double mTransitCellG1Duration
 
double mSDuration
 
double mG2Duration
 
double mMDuration
 
- Protected Attributes inherited from AbstractCellCycleModel
CellPtr mpCell
 
double mBirthTime
 
bool mReadyToDivide
 
unsigned mDimension
 

Detailed Description

A cell cycle model where the G1 duration is drawn from an exponential random distribution. The rate parameter of this distribution is defined by the member variable mRate.

The default value of mRate is set to the inverse of the default value of mTransitCellG1Duration in the constructor.

mRate may be set using the method SetRate(), which also sets mTransitCellG1Duration and mStemCellG1Duration to take the inverse of mRate's new value. Similarly, the overridden methods SetTransitCellG1Duration() and SetStemCellG1Duration() also set mRate to take the inverse of the new value of mTransitCellG1Duration and mStemCellG1Duration, respectively.

Definition at line 56 of file ExponentialG1GenerationalCellCycleModel.hpp.

Constructor & Destructor Documentation

ExponentialG1GenerationalCellCycleModel::ExponentialG1GenerationalCellCycleModel ( const ExponentialG1GenerationalCellCycleModel 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 48 of file ExponentialG1GenerationalCellCycleModel.cpp.

ExponentialG1GenerationalCellCycleModel::ExponentialG1GenerationalCellCycleModel ( )

Constructor - just a default, mBirthTime is now set in the AbstractCellCycleModel class. mG1Duration is set very high, it is set for the individual cells when InitialiseDaughterCell is called

Definition at line 42 of file ExponentialG1GenerationalCellCycleModel.cpp.

Referenced by CreateCellCycleModel(), and serialize().

Member Function Documentation

AbstractCellCycleModel * ExponentialG1GenerationalCellCycleModel::CreateCellCycleModel ( )
virtual

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

Returns
new cell-cycle model

Implements AbstractCellCycleModel.

Reimplemented in FixedSequenceCellCycleModel.

Definition at line 68 of file ExponentialG1GenerationalCellCycleModel.cpp.

References ExponentialG1GenerationalCellCycleModel().

Referenced by serialize().

double ExponentialG1GenerationalCellCycleModel::GetRate ( )
virtual

Return the rate parameter (lambda) of the exponential distribution.

Returns
mRate, the rate parameter of the distribution

Reimplemented in FixedSequenceCellCycleModel.

Definition at line 93 of file ExponentialG1GenerationalCellCycleModel.cpp.

References mRate.

Referenced by serialize().

void ExponentialG1GenerationalCellCycleModel::OutputCellCycleModelParameters ( out_stream &  rParamsFile)
virtual

Overridden OutputCellCycleModelParameters() method.

Parameters
rParamsFilethe file stream to which the parameters are output

Reimplemented from AbstractSimpleGenerationalCellCycleModel.

Reimplemented in FixedSequenceCellCycleModel.

Definition at line 123 of file ExponentialG1GenerationalCellCycleModel.cpp.

References CHASTE_CLASS_EXPORT, mRate, and AbstractSimpleGenerationalCellCycleModel::OutputCellCycleModelParameters().

Referenced by serialize().

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

Archive the cell-cycle model and random number generator, never used directly - boost uses this.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 78 of file ExponentialG1GenerationalCellCycleModel.hpp.

References CHASTE_CLASS_EXPORT, CreateCellCycleModel(), ExponentialG1GenerationalCellCycleModel(), GetRate(), SerializableSingleton< SINGLETON_CLASS >::GetSerializationWrapper(), RandomNumberGenerator::Instance(), mRate, OutputCellCycleModelParameters(), SetG1Duration(), SetRate(), SetStemCellG1Duration(), and SetTransitCellG1Duration().

void ExponentialG1GenerationalCellCycleModel::SetG1Duration ( )
protectedvirtual

Stochastically set the G1 duration following an exponential distribution. Called on cell creation at the start of a simulation, and for both parent and daughter cells at cell division.

Reimplemented from AbstractSimplePhaseBasedCellCycleModel.

Reimplemented in FixedSequenceCellCycleModel.

Definition at line 73 of file ExponentialG1GenerationalCellCycleModel.cpp.

References RandomNumberGenerator::ExponentialRandomDeviate(), RandomNumberGenerator::Instance(), AbstractPhaseBasedCellCycleModel::mG1Duration, AbstractCellCycleModel::mpCell, mRate, and NEVER_REACHED.

Referenced by serialize().

void ExponentialG1GenerationalCellCycleModel::SetRate ( double  rate)
virtual

Set the rate parameter of the exponential distribution. For consistency, this function also resets the internal values for mTransitCellG1Duration and mStemCellG1Duration to the average value of the exponential random variable, i.e. 1.0/rate. This ensures that GetAverageTransitCellCycleTime and GetAverageStemCellCycleTime returns correct values.

Parameters
rate

Reimplemented in FixedSequenceCellCycleModel.

Definition at line 98 of file ExponentialG1GenerationalCellCycleModel.cpp.

References mRate, SetStemCellG1Duration(), and SetTransitCellG1Duration().

Referenced by serialize().

void ExponentialG1GenerationalCellCycleModel::SetStemCellG1Duration ( double  stemCellG1Duration)
virtual

Overridden SetStemCellG1Duration() method.

Set mStemCellG1Duration to be a given value and also set mRate to be the inverse of this value

Parameters
stemCellG1Durationthe new value of mStemCellG1Duration

Reimplemented from AbstractPhaseBasedCellCycleModel.

Reimplemented in FixedSequenceCellCycleModel.

Definition at line 107 of file ExponentialG1GenerationalCellCycleModel.cpp.

References mRate, and AbstractPhaseBasedCellCycleModel::mStemCellG1Duration.

Referenced by serialize(), and SetRate().

void ExponentialG1GenerationalCellCycleModel::SetTransitCellG1Duration ( double  transitCellG1Duration)
virtual

Overridden SetTransitCellG1Duration() method.

Set mTransitCellG1Duration to be a given value and also set mRate to be the inverse of this value

Parameters
transitCellG1Durationthe new value of mTransitCellG1Duration

Reimplemented from AbstractPhaseBasedCellCycleModel.

Reimplemented in FixedSequenceCellCycleModel.

Definition at line 115 of file ExponentialG1GenerationalCellCycleModel.cpp.

References mRate, and AbstractPhaseBasedCellCycleModel::mTransitCellG1Duration.

Referenced by serialize(), and SetRate().

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 70 of file ExponentialG1GenerationalCellCycleModel.hpp.

Member Data Documentation

double ExponentialG1GenerationalCellCycleModel::mRate
private

The rate parameter of the exponential distribution, often denoted by lambda. This parameter is initialised to 1.0/mTransitCellG1Duration. The latter variable is inherited from the abstract cell cycle model. This initialisation ensures that cells will have the standard G1 duration (as defined in the abstract cell cycle model classes) on average.

Definition at line 67 of file ExponentialG1GenerationalCellCycleModel.hpp.

Referenced by GetRate(), OutputCellCycleModelParameters(), serialize(), SetG1Duration(), SetRate(), SetStemCellG1Duration(), and SetTransitCellG1Duration().


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