#include <Cell.hpp>
Inherits boost::noncopyable, and boost::enable_shared_from_this< Cell >.
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 62 of file Cell.hpp.
Cell::Cell | ( | boost::shared_ptr< AbstractCellProperty > | pMutationState, | |
AbstractCellCycleModel * | pCellCycleModel, | |||
bool | archiving = false , |
|||
CellPropertyCollection | cellPropertyCollection = CellPropertyCollection() | |||
) |
Create a new cell.
pMutationState | the mutation state of the cell | |
pCellCycleModel | the 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. | |
archiving | whether this constructor is being called by the archiver - do things slightly differently! (defaults to false) | |
cellPropertyCollection | the cell property collection (defaults to NULL) |
Definition at line 54 of file Cell.cpp.
References CellPropertyCollection::AddProperty(), CellPropertyCollection::Begin(), CellPropertyCollection::End(), EXCEPTION, CellPropertyCollection::HasProperty(), SimulationTime::Instance(), mCellId, mCellPropertyCollection, mMaxCellId, mpCellCycleModel, and AbstractCellCycleModel::SetCell().
Referenced by Divide().
Cell::~Cell | ( | ) |
Destructor, which frees the memory allocated for our cell-cycle model.
Definition at line 106 of file Cell.cpp.
References Kill(), mIsDead, and mpCellCycleModel.
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).
rProperty | the property to add |
Definition at line 189 of file Cell.cpp.
References CellPropertyCollection::AddProperty(), CellPropertyCollection::HasProperty(), and mCellPropertyCollection.
Referenced by SetMutationState(), and StartApoptosis().
CellPtr Cell::Divide | ( | ) |
Divide this cell to produce a daughter cell. ReadyToDivide MUST have been called at the current time, and returned true.
Definition at line 319 of file Cell.cpp.
References Cell(), AbstractCellCycleModel::CreateCellCycleModel(), GetAncestor(), GetMutationState(), IsDead(), mCanDivide, mCellPropertyCollection, mpCellCycleModel, and AbstractCellCycleModel::ResetForDivision().
double Cell::GetAge | ( | ) | const |
Get the cell's age from its cell-cycle model.
Definition at line 135 of file Cell.cpp.
References AbstractCellCycleModel::GetAge(), and mpCellCycleModel.
unsigned Cell::GetAncestor | ( | ) | const |
double Cell::GetApoptosisTime | ( | ) | const |
double Cell::GetBirthTime | ( | ) | const |
Get the cell's birth time from its cell-cycle model.
Definition at line 140 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 125 of file Cell.cpp.
References mpCellCycleModel.
unsigned Cell::GetCellId | ( | ) | const |
boost::shared_ptr< AbstractCellMutationState > Cell::GetMutationState | ( | ) | const |
Get the cell's current mutation state.
Definition at line 164 of file Cell.cpp.
References CellPropertyCollection::GetPropertiesType(), CellPropertyCollection::GetProperty(), CellPropertyCollection::GetSize(), and mCellPropertyCollection.
Referenced by Divide(), and SetMutationState().
double Cell::GetStartOfApoptosisTime | ( | ) | const |
Get the time at which apoptosis was commanded to start.
Definition at line 235 of file Cell.cpp.
References mStartOfApoptosisTime.
double Cell::GetTimeUntilDeath | ( | ) | const |
Definition at line 251 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 230 of file Cell.cpp.
References mUndergoingApoptosis.
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 271 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 130 of file Cell.cpp.
References AbstractCellCycleModel::Initialise(), and mpCellCycleModel.
bool Cell::IsDead | ( | ) |
Return whether the cell is dead or undergoing apoptosis.
Definition at line 261 of file Cell.cpp.
References SimulationTime::Instance(), Kill(), mApoptosisTime, mDeathTime, mIsDead, and mUndergoingApoptosis.
Referenced by Divide(), ReadyToDivide(), and StartApoptosis().
bool Cell::IsLogged | ( | ) |
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 274 of file Cell.cpp.
References CellPropertyCollection::Begin(), CellPropertyCollection::End(), mCellPropertyCollection, and mIsDead.
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 306 of file Cell.cpp.
References IsDead(), mCanDivide, mpCellCycleModel, mUndergoingApoptosis, and AbstractCellCycleModel::ReadyToDivide().
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 244 of file Cell.hpp.
References CellPropertyCollection::Begin(), CellPropertyCollection::End(), mCellPropertyCollection, and CellPropertyCollection::RemoveProperty().
void Cell::ResetMaxCellId | ( | ) | [static] |
const CellPropertyCollection & Cell::rGetCellPropertyCollection | ( | ) | const |
Definition at line 184 of file Cell.cpp.
References mCellPropertyCollection.
CellPropertyCollection & Cell::rGetCellPropertyCollection | ( | ) |
Definition at line 179 of file Cell.cpp.
References mCellPropertyCollection.
void Cell::serialize | ( | Archive & | archive, | |
const unsigned int | version | |||
) | [inline, private] |
Archive the member variables.
archive | the archive | |
version | the current version of this class |
Definition at line 78 of file Cell.hpp.
References mAncestor, mApoptosisTime, mCanDivide, mCellId, mDeathTime, mIsDead, mIsLogged, mMaxCellId, mpCellCycleModel, mStartOfApoptosisTime, and mUndergoingApoptosis.
void Cell::SetAncestor | ( | unsigned | ancestorIndex | ) |
void Cell::SetApoptosisTime | ( | double | apoptosisTime | ) |
Set mApoptosisTime.
apoptosisTime | the new value of mApoptosisTime |
Definition at line 245 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
birthTime | The time the cell was born (in hours) |
Definition at line 145 of file Cell.cpp.
References mpCellCycleModel, and AbstractCellCycleModel::SetBirthTime().
void Cell::SetCellCycleModel | ( | AbstractCellCycleModel * | pCellCycleModel | ) |
Change the cell-cycle model used. This takes effect immediately.
pCellCycleModel | pointer to the cell-cycle model to use |
Definition at line 115 of file Cell.cpp.
References mpCellCycleModel, and AbstractCellCycleModel::SetCell().
void Cell::SetLogged | ( | ) |
void Cell::SetMutationState | ( | boost::shared_ptr< AbstractCellProperty > | pMutationState | ) |
Set the cell's current mutation state.
pMutationState | the cell's new mutation state |
Definition at line 150 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.
setDeathTime | whether we tell the cell exactly when to die (defaults to true) |
Definition at line 209 of file Cell.cpp.
References AddCellProperty(), EXCEPTION, CellPropertyRegistry::Get(), CellPropertyCollection::GetCellPropertyRegistry(), SimulationTime::GetTime(), SimulationTime::Instance(), IsDead(), mApoptosisTime, mCellPropertyCollection, mDeathTime, mStartOfApoptosisTime, and mUndergoingApoptosis.
friend class boost::serialization::access [friend] |
unsigned Cell::mAncestor [protected] |
An index which is inherited by all children of this cell.
Definition at line 103 of file Cell.hpp.
Referenced by GetAncestor(), serialize(), and SetAncestor().
double Cell::mApoptosisTime [protected] |
The time it takes for a cell to fully undergo apoptosis. Has units of hours.
Definition at line 118 of file Cell.hpp.
Referenced by GetApoptosisTime(), IsDead(), serialize(), SetApoptosisTime(), and StartApoptosis().
bool Cell::mCanDivide [private] |
Caches the result of ReadyToDivide() so Divide() can look at it.
Definition at line 67 of file Cell.hpp.
Referenced by Divide(), ReadyToDivide(), and serialize().
unsigned Cell::mCellId [protected] |
An identifier which is unique to this cell.
Definition at line 106 of file Cell.hpp.
Referenced by Cell(), GetCellId(), and serialize().
CellPropertyCollection Cell::mCellPropertyCollection [protected] |
The cell's property collection.
Definition at line 97 of file Cell.hpp.
Referenced by AddCellProperty(), Cell(), Divide(), GetMutationState(), HasCellProperty(), Kill(), RemoveCellProperty(), rGetCellPropertyCollection(), SetMutationState(), and StartApoptosis().
double Cell::mDeathTime [protected] |
When the cell will/did die.
Definition at line 112 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 127 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 130 of file Cell.hpp.
Referenced by IsLogged(), serialize(), and SetLogged().
unsigned Cell::mMaxCellId = 0 [static, protected] |
maximum cell identifier.
Definition at line 109 of file Cell.hpp.
Referenced by Cell(), ResetMaxCellId(), and serialize().
AbstractCellCycleModel* Cell::mpCellCycleModel [protected] |
The cell's cell-cycle model.
Definition at line 100 of file Cell.hpp.
Referenced by Cell(), Divide(), GetAge(), GetBirthTime(), GetCellCycleModel(), InitialiseCellCycleModel(), ReadyToDivide(), serialize(), SetBirthTime(), SetCellCycleModel(), and ~Cell().
double Cell::mStartOfApoptosisTime [protected] |
When the cell was commanded to start apoptosis.
Definition at line 115 of file Cell.hpp.
Referenced by GetStartOfApoptosisTime(), serialize(), and StartApoptosis().
bool Cell::mUndergoingApoptosis [protected] |
Whether the cell is currently in apoptosis - don't divide.
Definition at line 121 of file Cell.hpp.
Referenced by GetTimeUntilDeath(), HasApoptosisBegun(), IsDead(), ReadyToDivide(), serialize(), and StartApoptosis().