AbstractTissue< DIM > Class Template Reference

#include <AbstractTissue.hpp>

Inherited by AbstractCellCentreBasedTissue< DIM >.

Collaboration diagram for AbstractTissue< DIM >:
Collaboration graph
[legend]

List of all members.

Classes

class  Iterator

Public Member Functions

 AbstractTissue (std::vector< TissueCell > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >())
virtual ~AbstractTissue ()
void InitialiseCells ()
std::list< TissueCell > & rGetCells ()
bool HasMesh ()
virtual unsigned GetNumNodes ()=0
virtual c_vector< double, DIM > GetLocationOfCellCentre (TissueCell &rCell)=0
virtual Node< DIM > * GetNode (unsigned index)=0
virtual unsigned AddNode (Node< DIM > *pNewNode)=0
virtual void SetNode (unsigned nodeIndex, ChastePoint< DIM > &rNewLocation)=0
virtual bool IsCellAssociatedWithADeletedLocation (TissueCell &rCell)=0
virtual void UpdateNodeLocations (const std::vector< c_vector< double, DIM > > &rNodeForces, double dt)=0
virtual double GetDampingConstant (unsigned nodeIndex)=0
virtual TissueCellAddCell (TissueCell &rNewCell, const c_vector< double, DIM > &rCellDivisionVector, TissueCell *pParentCell=NULL)=0
virtual unsigned RemoveDeadCells ()=0
virtual void Update (bool hasHadBirthsOrDeaths=true)=0
std::vector< unsignedGetCellMutationStateCount ()
const std::vector< unsigned > & rGetCellProliferativeTypeCount () const
const std::vector< unsigned > & rGetCellCyclePhaseCount () const
unsigned GetNumRealCells ()
void SetCellAncestorsToLocationIndices ()
void WriteCellIdDataToFile ()
std::set< unsignedGetCellAncestors ()
TissueCellrGetCellUsingLocationIndex (unsigned index)
unsigned GetLocationIndexUsingCell (TissueCell &rCell)
boost::shared_ptr
< CellMutationStateRegistry
GetMutationRegistry ()
void SetDefaultMutationStateOrdering ()
virtual void CreateOutputFiles (const std::string &rDirectory, bool cleanOutputDirectory)
virtual void WriteResultsToFiles ()
void WriteTimeAndNodeResultsToFiles ()
virtual void GenerateCellResultsAndWriteToFiles ()=0
virtual void GenerateCellResults (unsigned locationIndex, std::vector< unsigned > &rCellProliferativeTypeCounter, std::vector< unsigned > &rCellCyclePhaseCounter)
void WriteCellResultsToFiles (std::vector< unsigned > &rCellProliferativeTypeCounter, std::vector< unsigned > &rCellCyclePhaseCounter)
virtual void CloseOutputFiles ()
Iterator Begin ()
Iterator End ()

Protected Member Functions

virtual void Validate ()=0
 AbstractTissue ()

Protected Attributes

std::list< TissueCellmCells
std::map< unsigned, TissueCell * > mLocationCellMap
std::map< TissueCell *, unsignedmCellLocationMap
std::vector< unsignedmCellProliferativeTypeCount
std::vector< unsignedmCellCyclePhaseCount
out_stream mpVizNodesFile
out_stream mpVizCellProliferativeTypesFile
out_stream mpCellMutationStatesFile
out_stream mpCellAncestorsFile
out_stream mpCellProliferativeTypesFile
out_stream mpCellCyclePhasesFile
out_stream mpCellVariablesFile
out_stream mpCellAgesFile
out_stream mpCellIdFile
out_stream mpBoundaryNodesFile
bool mTissueContainsMesh
boost::shared_ptr
< CellMutationStateRegistry
mpMutationStateRegistry

Private Member Functions

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

Friends

class boost::serialization::access

Detailed Description

template<unsigned DIM>
class AbstractTissue< DIM >

An abstract facade class encapsulating a tissue.

Contains a group of cells and associated methods.

Definition at line 61 of file AbstractTissue.hpp.


Constructor & Destructor Documentation

template<unsigned DIM>
AbstractTissue< DIM >::AbstractTissue (  )  [inline, protected]

Constructor for use by archiving only. Please use the other constructor.

Doesn't take in cells, since these are dealt with by the serialize method.

Definition at line 149 of file AbstractTissue.hpp.

template<unsigned DIM>
AbstractTissue< DIM >::AbstractTissue ( std::vector< TissueCell > &  rCells,
const std::vector< unsigned locationIndices = std::vector<unsigned>() 
) [inline]

AbstractTissue Constructor.

Note:
Warning: the passed-in vector of cells will be emptied, even if the constructor throws an exception!
Parameters:
rCells a vector of cells. Copies of the cells will be stored in the tissue, and the passed-in vector cleared.
locationIndices an optional vector of location indices that correspond to real cells

Todo:
remove explicit use of NUM_CELL_PROLIFERATIVE_TYPES and NUM_CELL_CYCLE_PHASES as these may eventually differ between simulations (see #1285)

Definition at line 33 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::mCellCyclePhaseCount, AbstractTissue< DIM >::mCellLocationMap, AbstractTissue< DIM >::mCellProliferativeTypeCount, AbstractTissue< DIM >::mCells, and AbstractTissue< DIM >::mLocationCellMap.

template<unsigned DIM>
virtual AbstractTissue< DIM >::~AbstractTissue (  )  [inline, virtual]

Base class with virtual methods needs a virtual destructor.

Definition at line 171 of file AbstractTissue.hpp.


Member Function Documentation

template<unsigned DIM>
virtual TissueCell* AbstractTissue< DIM >::AddCell ( TissueCell rNewCell,
const c_vector< double, DIM > &  rCellDivisionVector,
TissueCell pParentCell = NULL 
) [pure virtual]

Add a new cell to the tissue.

As this method is pure virtual, it must be overridden in subclasses.

Parameters:
rNewCell the cell to add
rCellDivisionVector a vector providing information regarding how the cell division should occur (for cell-centre tissues, this vector is the position of the daughter cell; for vertex tissues it can be used by any subclass of TissueSimulation to as a means of dictating the axis along which the parent cell divides)
pParentCell pointer to a parent cell (if required)
Returns:
address of cell as it appears in the cell list (internal of this method uses a copy constructor along the way).

Implemented in AbstractCellCentreBasedTissue< DIM >, MeshBasedTissue< DIM >, MeshBasedTissueWithGhostNodes< DIM >, MeshBasedTissue< 1 >, MeshBasedTissue< 2 >, and MeshBasedTissueWithGhostNodes< 2 >.

template<unsigned DIM>
virtual unsigned AbstractTissue< DIM >::AddNode ( Node< DIM > *  pNewNode  )  [pure virtual]

Add a new node to the tissue.

As this method is pure virtual, it must be overridden in subclasses.

Parameters:
pNewNode pointer to the new node
Returns:
global index of new node in tissue.

Implemented in MeshBasedTissue< DIM >, NodeBasedTissue< DIM >, MeshBasedTissue< 1 >, and MeshBasedTissue< 2 >.

Referenced by AbstractCellCentreBasedTissue< DIM >::AddCell().

template<unsigned DIM>
AbstractTissue< DIM >::Iterator AbstractTissue< DIM >::Begin (  )  [inline]
template<unsigned DIM>
void AbstractTissue< DIM >::CloseOutputFiles (  )  [inline, virtual]
template<unsigned DIM>
void AbstractTissue< DIM >::CreateOutputFiles ( const std::string &  rDirectory,
bool  cleanOutputDirectory 
) [inline, virtual]
template<unsigned DIM>
AbstractTissue< DIM >::Iterator AbstractTissue< DIM >::End (  )  [inline]
template<unsigned DIM>
void AbstractTissue< DIM >::GenerateCellResults ( unsigned  locationIndex,
std::vector< unsigned > &  rCellProliferativeTypeCounter,
std::vector< unsigned > &  rCellCyclePhaseCounter 
) [inline, virtual]
template<unsigned DIM>
virtual void AbstractTissue< DIM >::GenerateCellResultsAndWriteToFiles (  )  [pure virtual]
template<unsigned DIM>
std::set< unsigned > AbstractTissue< DIM >::GetCellAncestors (  )  [inline]

Loops over cells and makes a list of the ancestors that are part of the tissue.

Returns:
remaining_ancestors The size of this set tells you how many clonal populations remain.

Definition at line 123 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::Begin(), and AbstractTissue< DIM >::End().

template<unsigned DIM>
std::vector< unsigned > AbstractTissue< DIM >::GetCellMutationStateCount (  )  [inline]

Find out how many cells of each mutation state there are

Returns:
The number of cells of each mutation state (evaluated at each visualizer output) [0] = healthy count [1] = labelled cells [2] = APC one hit [3] = APC two hit [4] = beta catenin one hit

Definition at line 134 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::GetMutationRegistry(), TissueConfig::Instance(), and AbstractTissue< DIM >::SetDefaultMutationStateOrdering().

template<unsigned DIM>
virtual double AbstractTissue< DIM >::GetDampingConstant ( unsigned  nodeIndex  )  [pure virtual]

Get the damping constant for this node - ie d in drdt = F/d.

As this method is pure virtual, it must be overridden in subclasses.

Parameters:
nodeIndex the global index of this node
Returns:
the damping constant at the node.

Implemented in AbstractCellCentreBasedTissue< DIM >, MeshBasedTissue< DIM >, MeshBasedTissue< 1 >, and MeshBasedTissue< 2 >.

template<unsigned DIM>
unsigned AbstractTissue< DIM >::GetLocationIndexUsingCell ( TissueCell rCell  )  [inline]

Get the location index corresponding to a given cell.

Currently assumes there is one cell for each location index, and they are ordered identically in their vectors. An assertion fails if not.

Parameters:
rCell the cell
Returns:
the location index.

Definition at line 193 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::mCellLocationMap.

Referenced by CryptSimulation2d::ApplyTissueBoundaryConditions(), CryptSimulation1d::ApplyTissueBoundaryConditions(), CryptSimulation2d::CalculateCellDivisionVector(), CryptSimulation1d::CalculateCellDivisionVector(), MeshBasedTissue< DIM >::Validate(), and CryptSimulation2d::WriteBetaCatenin().

template<unsigned DIM>
virtual c_vector<double, DIM> AbstractTissue< DIM >::GetLocationOfCellCentre ( TissueCell rCell  )  [pure virtual]

Find where a given cell is in space.

Parameters:
rCell the cell
Returns:
the location of the cell

Implemented in AbstractCellCentreBasedTissue< DIM >.

Referenced by AbstractTissue< DIM >::GenerateCellResults(), SloughingCellKiller< DIM >::TestAndLabelCellsForApoptosisOrDeath(), and AbstractTissue< DIM >::WriteCellIdDataToFile().

template<unsigned DIM>
boost::shared_ptr< CellMutationStateRegistry > AbstractTissue< DIM >::GetMutationRegistry (  )  [inline]
template<unsigned DIM>
virtual Node<DIM>* AbstractTissue< DIM >::GetNode ( unsigned  index  )  [pure virtual]
template<unsigned DIM>
virtual unsigned AbstractTissue< DIM >::GetNumNodes (  )  [pure virtual]
template<unsigned DIM>
unsigned AbstractTissue< DIM >::GetNumRealCells (  )  [inline]

Get the number of real cells.

Definition at line 103 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::Begin(), and AbstractTissue< DIM >::End().

template<unsigned DIM>
bool AbstractTissue< DIM >::HasMesh (  )  [inline]
Todo:
This method returns true if the tissue is a MeshBasedTissue or a VertexBasedTissue, but is actually used to tell force laws whether the tissue is a MeshBasedTissue. See #1303.
Returns:
whether the tissue contains a mesh.

Definition at line 97 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::mTissueContainsMesh.

Referenced by AbstractTwoBodyInteractionForce< DIM >::AddForceContribution(), GeneralisedLinearSpringForce< DIM >::CalculateForceBetweenNodes(), and LinearSpringWithVariableSpringConstantsForce< DIM >::VariableSpringConstantMultiplicationFactor().

template<unsigned DIM>
void AbstractTissue< DIM >::InitialiseCells (  )  [inline]

Initialise each cell's cell cycle model.

Definition at line 82 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::mCells.

template<unsigned DIM>
virtual bool AbstractTissue< DIM >::IsCellAssociatedWithADeletedLocation ( TissueCell rCell  )  [pure virtual]

Helper method for establishing if a cell is real.

As this method is pure virtual, it must be overridden in subclasses.

Parameters:
rCell the cell
Returns:
whether a given cell is associated with a deleted node (cell-centre models) or element (vertex models).

Implemented in AbstractCellCentreBasedTissue< DIM >.

Referenced by AbstractTissue< DIM >::Iterator::IsRealCell().

template<unsigned DIM>
virtual unsigned AbstractTissue< DIM >::RemoveDeadCells (  )  [pure virtual]

Remove all cells labelled as dead.

As this method is pure virtual, it must be overridden in subclasses.

Returns:
number of cells removed

Implemented in MeshBasedTissue< DIM >, NodeBasedTissue< DIM >, MeshBasedTissue< 1 >, and MeshBasedTissue< 2 >.

template<unsigned DIM>
const std::vector< unsigned > & AbstractTissue< DIM >::rGetCellCyclePhaseCount (  )  const [inline]

Find out how many cells in each cell cycle phase there are

Returns:
The number of cells of each phase (evaluated at each visualizer output) [0] = G_ZERO_PHASE [1] = G_ONE_PHASE [2] = S_PHASE [3] = G_TWO_PHASE [4] = M_PHASE

Definition at line 166 of file AbstractTissue.cpp.

References TissueConfig::Instance(), and AbstractTissue< DIM >::mCellCyclePhaseCount.

template<unsigned DIM>
const std::vector< unsigned > & AbstractTissue< DIM >::rGetCellProliferativeTypeCount (  )  const [inline]

Find out how many cells of each type there are

Returns:
The number of cells of each type (evaluated at each visualizer output) [0] = STEM [1] = TRANSIT [2] = DIFFERENTIATED [3] = APOPTOTIC

Definition at line 156 of file AbstractTissue.cpp.

References TissueConfig::Instance(), and AbstractTissue< DIM >::mCellProliferativeTypeCount.

template<unsigned DIM>
std::list< TissueCell > & AbstractTissue< DIM >::rGetCells (  )  [inline]
Returns:
reference to mCells.

Definition at line 91 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::mCells.

Referenced by AbstractTissue< DIM >::Iterator::IsAtEnd(), and AbstractTissue< DIM >::Iterator::Iterator().

template<unsigned DIM>
TissueCell & AbstractTissue< DIM >::rGetCellUsingLocationIndex ( unsigned  index  )  [inline]

Get the cell corresponding to a given location index.

Currently assumes there is one cell for each location index, and they are ordered identically in their vectors. An assertion fails if not.

Parameters:
index the location index
Returns:
the cell.

Definition at line 176 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::mLocationCellMap.

Referenced by GeneralisedLinearSpringForce< DIM >::CalculateForceBetweenNodes(), MeshBasedTissue< DIM >::CheckTissueCellPointers(), AbstractCellCentreBasedTissue< DIM >::GetDampingConstant(), and LinearSpringWithVariableSpringConstantsForce< DIM >::VariableSpringConstantMultiplicationFactor().

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

Serialize the object and its member variables.

Parameters:
archive the archive
version the current version of this class

Reimplemented in AbstractCellCentreBasedTissue< DIM >, MeshBasedTissue< DIM >, MeshBasedTissueWithGhostNodes< DIM >, NodeBasedTissue< DIM >, MeshBasedTissue< 1 >, MeshBasedTissue< 2 >, and MeshBasedTissueWithGhostNodes< 2 >.

Definition at line 73 of file AbstractTissue.hpp.

template<unsigned DIM>
void AbstractTissue< DIM >::SetCellAncestorsToLocationIndices (  )  [inline]

Sets the Ancestor index of all the cells at this time to be the same as their location index, can be used to trace clonal populations.

Definition at line 114 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::Begin(), AbstractTissue< DIM >::End(), and AbstractTissue< DIM >::mCellLocationMap.

template<unsigned DIM>
void AbstractTissue< DIM >::SetDefaultMutationStateOrdering (  )  [inline]

Set a default ordering on mutation states, so that existing tests don't need to specify the old ordering explicitly.

Definition at line 205 of file AbstractTissue.cpp.

References AbstractTissue< DIM >::GetMutationRegistry().

Referenced by AbstractTissue< DIM >::GetCellMutationStateCount(), and AbstractTissue< DIM >::WriteCellResultsToFiles().

template<unsigned DIM>
virtual void AbstractTissue< DIM >::SetNode ( unsigned  nodeIndex,
ChastePoint< DIM > &  rNewLocation 
) [pure virtual]

Move the node with a given index to a new point in space.

As this method is pure virtual, it must be overridden in subclasses.

Parameters:
nodeIndex the index of the node to be moved
rNewLocation the new target location of the node

Implemented in MeshBasedTissue< DIM >, NodeBasedTissue< DIM >, MeshBasedTissue< 1 >, and MeshBasedTissue< 2 >.

Referenced by AbstractCellCentreBasedTissue< DIM >::UpdateNodeLocations().

template<unsigned DIM>
virtual void AbstractTissue< DIM >::Update ( bool  hasHadBirthsOrDeaths = true  )  [pure virtual]

Remove the Nodes (for cell-centre) or VertexElements (for cell-vertex) which have been marked as deleted and update the correspondence with TissueCells.

Parameters:
hasHadBirthsOrDeaths - a bool saying whether tissue has had Births Or Deaths

Implemented in MeshBasedTissue< DIM >, NodeBasedTissue< DIM >, MeshBasedTissue< 1 >, and MeshBasedTissue< 2 >.

template<unsigned DIM>
virtual void AbstractTissue< DIM >::UpdateNodeLocations ( const std::vector< c_vector< double, DIM > > &  rNodeForces,
double  dt 
) [pure virtual]

Update the location of each node in the tissue given a vector of forces on nodes and a time step over which to integrate the equations of motion.

As this method is pure virtual, it must be overridden in subclasses.

Parameters:
rNodeForces forces on nodes
dt time step

Implemented in AbstractCellCentreBasedTissue< DIM >, MeshBasedTissueWithGhostNodes< DIM >, and MeshBasedTissueWithGhostNodes< 2 >.

template<unsigned DIM>
virtual void AbstractTissue< DIM >::Validate (  )  [protected, pure virtual]
template<unsigned DIM>
void AbstractTissue< DIM >::WriteCellIdDataToFile (  )  [inline]
template<unsigned DIM>
void AbstractTissue< DIM >::WriteCellResultsToFiles ( std::vector< unsigned > &  rCellProliferativeTypeCounter,
std::vector< unsigned > &  rCellCyclePhaseCounter 
) [inline]
template<unsigned DIM>
void AbstractTissue< DIM >::WriteResultsToFiles (  )  [inline, virtual]
template<unsigned DIM>
void AbstractTissue< DIM >::WriteTimeAndNodeResultsToFiles (  )  [inline]

Friends And Related Function Documentation

template<unsigned DIM>
friend class boost::serialization::access [friend]

Member Data Documentation

template<unsigned DIM>
std::vector<unsigned> AbstractTissue< DIM >::mCellCyclePhaseCount [protected]
template<unsigned DIM>
std::map<TissueCell*, unsigned> AbstractTissue< DIM >::mCellLocationMap [protected]
template<unsigned DIM>
std::vector<unsigned> AbstractTissue< DIM >::mCellProliferativeTypeCount [protected]
template<unsigned DIM>
std::list<TissueCell> AbstractTissue< DIM >::mCells [protected]
template<unsigned DIM>
std::map<unsigned, TissueCell*> AbstractTissue< DIM >::mLocationCellMap [protected]
template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpBoundaryNodesFile [protected]
template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpCellAgesFile [protected]
template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpCellAncestorsFile [protected]
template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpCellCyclePhasesFile [protected]
template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpCellIdFile [protected]
template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpCellMutationStatesFile [protected]
template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpCellProliferativeTypesFile [protected]
template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpCellVariablesFile [protected]
template<unsigned DIM>
boost::shared_ptr<CellMutationStateRegistry> AbstractTissue< DIM >::mpMutationStateRegistry [protected]

Cell mutation state registry

Definition at line 135 of file AbstractTissue.hpp.

Referenced by AbstractTissue< DIM >::GetMutationRegistry(), and AbstractTissue< SPACE_DIM >::serialize().

template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpVizCellProliferativeTypesFile [protected]
template<unsigned DIM>
out_stream AbstractTissue< DIM >::mpVizNodesFile [protected]
template<unsigned DIM>
bool AbstractTissue< DIM >::mTissueContainsMesh [protected]

Whether the tissue contains a mesh

Definition at line 132 of file AbstractTissue.hpp.

Referenced by AbstractTissue< DIM >::HasMesh(), MeshBasedTissue< DIM >::MeshBasedTissue(), and AbstractTissue< SPACE_DIM >::serialize().


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

Generated by  doxygen 1.6.2