ITK  4.9.0
Insight Segmentation and Registration Toolkit
itkBioCellBase.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkBioCellBase_h
19 #define itkBioCellBase_h
20 
21 #include "itkRGBPixel.h"
22 #include "itkPoint.h"
23 #include "itkIntTypes.h"
24 #include "itkBioGenome.h"
25 #include "ITKBioCellExport.h"
26 
27 namespace itk
28 {
29 namespace bio
30 {
37 class ITKBioCell_EXPORT CellBase
38 {
39 public:
44 
45  virtual ColorType GetColor() const;
46 
47  double GetRadius() const;
48 
49  IdentifierType GetSelfIdentifier() const;
50 
51  IdentifierType GetParentIdentifier() const;
52 
54  {
55  M = 1UL,
57  S,
60  Apop
61  };
62 
63 protected:
64  CellBase();
65  virtual ~CellBase();
66 
67  virtual void Grow();
68 
69  virtual void DNAReplication();
70 
71  virtual void Apoptosis();
72 
73  virtual void EnergyIntake();
74 
75  virtual void NutrientsIntake();
76 
77  virtual void ComputeGeneNetwork();
78 
79  virtual void SecreteProducts();
80 
81  virtual bool CheckPointGrowth();
82 
83  virtual bool CheckPointDNAReplication();
84 
85  virtual bool CheckPointMitosis();
86 
87  virtual bool CheckPointApoptosis();
88 
89  void MarkForRemoval();
90 
91  // Static Members
93 
94  static GeneIdType BlueGene; // Pigment genes
97  static GeneIdType Cdk2E; // cell cycle control genes
98  static GeneIdType Caspase; // cleavage enzyme: apoptosis effector
99  static GeneIdType Pressurin; // signal from micro-tubules subject to
100  // stress
101 
105 
106  static double EnergySelfRepairLevel;
107  static double NutrientSelfRepairLevel;
108 
109  static double DefaultEnergyIntake;
110  static double DefaultNutrientsIntake;
111 
113 
117 
120 
123 
124  static double DefaultRadius;
125  static double GrowthRadiusLimit;
126  static double GrowthRadiusIncrement;
127 
128 public:
129 
130  virtual bool MarkedForRemoval() const;
131 
132  static void SetDefaultRadius(double);
133 
134  static void SetGrowthRadiusLimit(double);
135 
136  static void SetGrowthRadiusIncrement(double);
137 
138  static void SetEnergySelfRepairLevel(double);
139 
140  static void SetNutrientSelfRepairLevel(double);
141 
142  static void SetDefaultColor(const ColorType & color);
143 
144  static void SetChemoAttractantHighThreshold(double);
145 
146  static void SetChemoAttractantLowThreshold(double);
147 
148  static void SetGrowthMaximumLatencyTime(SizeValueType latency);
149 
150  static SizeValueType GetGrowthMaximumLatencyTime();
151 
152  static double GetGrowthRadiusLimit();
153 
154  static void SetMaximumGenerationLimit(SizeValueType);
155 
156  static void SetDivisionMaximumLatencyTime(SizeValueType);
157 
158  static SizeValueType GetDivisionMaximumLatencyTime();
159 
160  static void ResetCounter();
161 
162  static void Initialize(); // define values in static variables.
163 
164 protected:
165  double m_Pressure;
166 
168 
169  double m_Radius;
172 
174 
177 
179 
181 
184 
187 };
188 } // end namespace bio
189 } // end namespace itk
190 
191 #endif
static SizeValueType GrowthMaximumLatencyTime
IdentifierType m_SelfIdentifier
itk::RGBPixel< float > ColorType
GenomeType::GeneIdType GeneIdType
static double DefaultNutrientsIntake
GenomeType * m_GenomeCopy
static GeneIdType BlueGene
static SizeValueType DivisionMaximumLatencyTime
SizeValueType m_DivisionLatencyTime
double m_NutrientsReserveLevel
static double GrowthRadiusLimit
static ColorType DefaultColor
static GeneIdType RedGene
unsigned long SizeValueType
Definition: itkIntTypes.h:143
static double NutrientSelfRepairLevel
static double DefaultEnergyIntake
itk::bio::Genome GenomeType
IdentifierType m_ParentIdentifier
static ColorType WellNourishedColor
static ColorType StarvingColor
SizeValueType IdentifierType
Definition: itkIntTypes.h:147
static double ChemoAttractantHighThreshold
static GeneIdType Cdk2E
static SizeValueType Counter
SizeValueType m_GrowthLatencyTime
This class implements the abstraction of a biological genome.
Definition: itkBioGenome.h:45
static double EnergySelfRepairLevel
static double GrowthRadiusIncrement
SizeValueType m_Generation
static double DefaultRadius
static GeneIdType Pressurin
static GeneIdType Caspase
static SizeValueType MaximumGenerationLimit
GenomeType * m_Genome
Non-templated Base class from which the templated Cell classes will be derived.
static ColorType HopefullColor
static GeneIdType GreenGene
itk::IdentifierType IdentifierType
std::string GeneIdType
Definition: itkBioGenome.h:48
static double ChemoAttractantLowThreshold
CellCycleState m_CycleState