Chaste Release::3.1
Cell Class Reference

#include <Cell.hpp>

Inheritance diagram for Cell:
Collaboration diagram for Cell:

List of all members.

Public Member Functions

 Cell (boost::shared_ptr< AbstractCellProperty > pMutationState, AbstractCellCycleModel *pCellCycleModel, bool archiving=false, CellPropertyCollection cellPropertyCollection=CellPropertyCollection())
 ~Cell ()
CellProliferativeType GetCellProliferativeType () const
void SetCellProliferativeType (CellProliferativeType cellType)
void SetBirthTime (double birthTime)
void SetCellCycleModel (AbstractCellCycleModel *pCellCycleModel)
AbstractCellCycleModelGetCellCycleModel () const
void InitialiseCellCycleModel ()
double GetAge () const
double GetBirthTime () const
double GetStartOfApoptosisTime () const
double GetApoptosisTime () const
void SetApoptosisTime (double apoptosisTime)
boost::shared_ptr
< AbstractCellMutationState
GetMutationState () const
boost::shared_ptr< CellDataGetCellData () const
void SetMutationState (boost::shared_ptr< AbstractCellProperty > pMutationState)
CellPropertyCollectionrGetCellPropertyCollection ()
const CellPropertyCollectionrGetCellPropertyCollection () const
void AddCellProperty (const boost::shared_ptr< AbstractCellProperty > &rProperty)
template<typename CLASS >
void RemoveCellProperty ()
template<typename CLASS >
bool HasCellProperty () const
bool ReadyToDivide ()
CellPtr Divide ()
void StartApoptosis (bool setDeathTime=true)
void Kill ()
bool HasApoptosisBegun () const
double GetTimeUntilDeath () const
bool IsDead ()
void SetLogged ()
bool IsLogged ()
void SetAncestor (boost::shared_ptr< AbstractCellProperty > pCellAncestor)
unsigned GetAncestor () const
unsigned GetCellId () const

Protected Attributes

CellProliferativeType mCellProliferativeType
CellPropertyCollection mCellPropertyCollection
AbstractCellCycleModelmpCellCycleModel
double mDeathTime
double mStartOfApoptosisTime
double mApoptosisTime
bool mUndergoingApoptosis
bool mIsDead
bool mIsLogged

Private Member Functions

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

Private Attributes

bool mCanDivide

Friends

class boost::serialization::access

Detailed Description

Cell is the basic container for all the biological information about a cell. It contains the cell-cycle model and all other biological properties such as mutation state, cell type, whether it is undergoing apoptosis or not.

This class should not store any spatial information - cells are linked to space by the AbstractCellPopulation subclasses.

Definition at line 74 of file Cell.hpp.


Constructor & Destructor Documentation

Cell::Cell ( boost::shared_ptr< AbstractCellProperty pMutationState,
AbstractCellCycleModel pCellCycleModel,
bool  archiving = false,
CellPropertyCollection  cellPropertyCollection = CellPropertyCollection() 
)

Create a new cell.

Parameters:
pMutationStatethe mutation state of the cell
pCellCycleModelthe cell-cycle model to use to decide when the cell divides. This MUST be allocated using new, and will be deleted when the cell is destroyed.
archivingwhether this constructor is being called by the archiver - do things slightly differently! (defaults to false)
cellPropertyCollectionthe cell property collection (defaults to NULL)

Definition at line 59 of file Cell.cpp.

References CellPropertyCollection::AddProperty(), CellPropertyCollection::Begin(), CellPropertyCollection::End(), EXCEPTION, CellPropertyCollection::HasProperty(), CellPropertyCollection::HasPropertyType(), SimulationTime::Instance(), MAKE_PTR, mCellPropertyCollection, mpCellCycleModel, and AbstractCellCycleModel::SetCell().

Referenced by Divide().

Cell::~Cell ( )

Destructor, which frees the memory allocated for our cell-cycle model.

Definition at line 123 of file Cell.cpp.

References Kill(), mIsDead, and mpCellCycleModel.


Member Function Documentation

void Cell::AddCellProperty ( const boost::shared_ptr< AbstractCellProperty > &  rProperty)

Add a cell property to the cell. Use this method instead of calling rGetCellPropertyCollection().AddProperty() directly, to ensure that the cell property keeps correct track of the number of cells with it (if this is done).

Parameters:
rPropertythe property to add

Definition at line 229 of file Cell.cpp.

References CellPropertyCollection::AddProperty(), CellPropertyCollection::HasProperty(), and mCellPropertyCollection.

Referenced by SetAncestor(), SetMutationState(), and StartApoptosis().

CellPtr Cell::Divide ( )
double Cell::GetAge ( ) const

Get the cell's age from its cell-cycle model.

Definition at line 162 of file Cell.cpp.

References AbstractCellCycleModel::GetAge(), and mpCellCycleModel.

unsigned Cell::GetAncestor ( ) const
Returns:
The ancestor object, inherited from parents or set using the method above, used for monoclonality experiments.

Definition at line 348 of file Cell.cpp.

References CellAncestor::GetAncestor(), CellPropertyCollection::GetPropertiesType(), CellPropertyCollection::GetProperty(), CellPropertyCollection::GetSize(), mCellPropertyCollection, and UNSIGNED_UNSET.

double Cell::GetApoptosisTime ( ) const
Returns:
mApoptosisTime

Definition at line 280 of file Cell.cpp.

References mApoptosisTime.

double Cell::GetBirthTime ( ) const

Get the cell's birth time from its cell-cycle model.

Definition at line 167 of file Cell.cpp.

References AbstractCellCycleModel::GetBirthTime(), and mpCellCycleModel.

AbstractCellCycleModel * Cell::GetCellCycleModel ( ) const

Returns a pointer to the Cell's cell-cycle model.

Definition at line 152 of file Cell.cpp.

References mpCellCycleModel.

boost::shared_ptr< CellData > Cell::GetCellData ( ) const

Get the CellData associated with the cell.

Returns:
a pointer to the cell data

Definition at line 206 of file Cell.cpp.

References CellPropertyCollection::GetPropertiesType(), CellPropertyCollection::GetProperty(), CellPropertyCollection::GetSize(), and mCellPropertyCollection.

Referenced by Divide().

CellProliferativeType Cell::GetCellProliferativeType ( ) const

Get method for mCellProliferativeType.

Definition at line 137 of file Cell.cpp.

References mCellProliferativeType.

boost::shared_ptr< AbstractCellMutationState > Cell::GetMutationState ( ) const
double Cell::GetStartOfApoptosisTime ( ) const

Get the time at which apoptosis was commanded to start.

Definition at line 275 of file Cell.cpp.

References mStartOfApoptosisTime.

double Cell::GetTimeUntilDeath ( ) const
Returns:
How long until the cell dies (if it is in apoptosis, throws an exception if not)

Definition at line 291 of file Cell.cpp.

References EXCEPTION, SimulationTime::GetTime(), SimulationTime::Instance(), mDeathTime, and mUndergoingApoptosis.

bool Cell::HasApoptosisBegun ( ) const

Returns whether the cell is undergoing apoptosis or not.

Definition at line 270 of file Cell.cpp.

References mUndergoingApoptosis.

template<typename CLASS >
bool Cell::HasCellProperty ( ) const [inline]

Test whether the cell property collection contains a property that has the exact type CLASS. Just calls mCellPropertyCollection.HasProperty().

Definition at line 294 of file Cell.hpp.

References CellPropertyCollection::HasProperty(), and mCellPropertyCollection.

void Cell::InitialiseCellCycleModel ( )

Calls Initialise on the cell-cycle model associated with this cell.

Definition at line 157 of file Cell.cpp.

References AbstractCellCycleModel::Initialise(), and mpCellCycleModel.

bool Cell::IsDead ( )

Return whether the cell is dead or undergoing apoptosis.

Definition at line 301 of file Cell.cpp.

References SimulationTime::Instance(), Kill(), mApoptosisTime, mDeathTime, mIsDead, and mUndergoingApoptosis.

Referenced by Divide(), ReadyToDivide(), and StartApoptosis().

bool Cell::IsLogged ( )
Returns:
Whether the cell is being tracked.

Definition at line 244 of file Cell.cpp.

References mIsLogged.

void Cell::Kill ( )

This labels the cell as dead, it does not delete the cell, it remains in the CellPopulation until AbstractCellPopulation::RemoveDeadCells() is called.

Definition at line 314 of file Cell.cpp.

References CellPropertyCollection::Begin(), CellPropertyCollection::End(), mCellPropertyCollection, and mIsDead.

Referenced by IsDead(), and ~Cell().

bool Cell::ReadyToDivide ( )

Determine if this cell is ready to divide at the current simulation time. MUST be called before calling Divide().

Definition at line 375 of file Cell.cpp.

References IsDead(), mCanDivide, mpCellCycleModel, mUndergoingApoptosis, and AbstractCellCycleModel::ReadyToDivide().

template<typename CLASS >
void Cell::RemoveCellProperty ( ) [inline]

Remove a cell property of the given type. Use this method instead of calling rGetCellPropertyCollection().AddProperty() directly, to ensure that the cell property keeps correct track of the number of cells with it (if this is done).

Definition at line 267 of file Cell.hpp.

References CellPropertyCollection::Begin(), CellPropertyCollection::End(), mCellPropertyCollection, and CellPropertyCollection::RemoveProperty().

CellPropertyCollection & Cell::rGetCellPropertyCollection ( )
Returns:
reference to mCellPropertyCollection.

Definition at line 219 of file Cell.cpp.

References mCellPropertyCollection.

const CellPropertyCollection & Cell::rGetCellPropertyCollection ( ) const
Returns:
reference to mCellPropertyCollection (used in archiving).

Definition at line 224 of file Cell.cpp.

References mCellPropertyCollection.

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

Archive the member variables.

Parameters:
archivethe archive
versionthe current version of this class

Definition at line 90 of file Cell.hpp.

References mApoptosisTime, mCanDivide, mCellProliferativeType, mDeathTime, mIsDead, mIsLogged, mpCellCycleModel, mStartOfApoptosisTime, and mUndergoingApoptosis.

void Cell::SetAncestor ( boost::shared_ptr< AbstractCellProperty pCellAncestor)

Give the Cell an index which it passes to its children.

Parameters:
pCellAncestorthe cell's ancestor

Definition at line 326 of file Cell.cpp.

References AddCellProperty(), EXCEPTION, CellPropertyCollection::GetPropertiesType(), CellPropertyCollection::GetSize(), and mCellPropertyCollection.

void Cell::SetApoptosisTime ( double  apoptosisTime)

Set mApoptosisTime.

Parameters:
apoptosisTimethe new value of mApoptosisTime

Definition at line 285 of file Cell.cpp.

References mApoptosisTime.

void Cell::SetBirthTime ( double  birthTime)

Set the birth time of the cell - can be negative so that your cells have an age when a simulation begins

Parameters:
birthTimeThe time the cell was born (in hours)

Definition at line 172 of file Cell.cpp.

References mpCellCycleModel, and AbstractCellCycleModel::SetBirthTime().

void Cell::SetCellCycleModel ( AbstractCellCycleModel pCellCycleModel)

Change the cell-cycle model used. This takes effect immediately.

Parameters:
pCellCycleModelpointer to the cell-cycle model to use

Definition at line 142 of file Cell.cpp.

References mpCellCycleModel, and AbstractCellCycleModel::SetCell().

void Cell::SetCellProliferativeType ( CellProliferativeType  cellType)

Set method for mCellProliferativeType.

Parameters:
cellTypethe cell's type

Definition at line 132 of file Cell.cpp.

References mCellProliferativeType.

void Cell::SetLogged ( )

Sets a flag to perform special output on this cell only.

Definition at line 239 of file Cell.cpp.

References mIsLogged.

void Cell::SetMutationState ( boost::shared_ptr< AbstractCellProperty pMutationState)

Set the cell's current mutation state.

Parameters:
pMutationStatethe cell's new mutation state

Definition at line 177 of file Cell.cpp.

References AddCellProperty(), EXCEPTION, GetMutationState(), mCellPropertyCollection, and CellPropertyCollection::RemoveProperty().

void Cell::StartApoptosis ( bool  setDeathTime = true)

Make the cell enter apoptosis and sets mDeathTime using the apoptosis time as defined by mApoptosisTime.

Parameters:
setDeathTimewhether we tell the cell exactly when to die (defaults to true)

Definition at line 249 of file Cell.cpp.

References AddCellProperty(), EXCEPTION, CellPropertyRegistry::Get(), CellPropertyCollection::GetCellPropertyRegistry(), SimulationTime::GetTime(), SimulationTime::Instance(), IsDead(), mApoptosisTime, mCellPropertyCollection, mDeathTime, mStartOfApoptosisTime, and mUndergoingApoptosis.


Friends And Related Function Documentation

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

Needed for serialization.

Definition at line 82 of file Cell.hpp.


Member Data Documentation

The time it takes for a cell to fully undergo apoptosis. Has units of hours.

Definition at line 122 of file Cell.hpp.

Referenced by GetApoptosisTime(), IsDead(), serialize(), SetApoptosisTime(), and StartApoptosis().

Caches the result of ReadyToDivide() so Divide() can look at it.

Definition at line 79 of file Cell.hpp.

Referenced by Divide(), ReadyToDivide(), and serialize().

CellProliferativeType Cell::mCellProliferativeType [protected]

The cell type - defined in CellProliferativeTypes.hpp.

Definition at line 107 of file Cell.hpp.

Referenced by Divide(), GetCellProliferativeType(), serialize(), and SetCellProliferativeType().

double Cell::mDeathTime [protected]

When the cell will/did die.

Definition at line 116 of file Cell.hpp.

Referenced by GetTimeUntilDeath(), IsDead(), serialize(), and StartApoptosis().

bool Cell::mIsDead [protected]

Whether the cell is dead or not (they exist in the CellPopulation until they are removed by AbstractCellPopulation::RemoveDeadCells().

Definition at line 131 of file Cell.hpp.

Referenced by IsDead(), Kill(), serialize(), and ~Cell().

bool Cell::mIsLogged [protected]

Whether the cell is being tracked specially.

Definition at line 134 of file Cell.hpp.

Referenced by IsLogged(), serialize(), and SetLogged().

When the cell was commanded to start apoptosis.

Definition at line 119 of file Cell.hpp.

Referenced by GetStartOfApoptosisTime(), serialize(), and StartApoptosis().

Whether the cell is currently in apoptosis - don't divide.

Definition at line 125 of file Cell.hpp.

Referenced by GetTimeUntilDeath(), HasApoptosisBegun(), IsDead(), ReadyToDivide(), serialize(), and StartApoptosis().


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