CancerParameters.cpp

00001 /*
00002 
00003 Copyright (C) University of Oxford, 2005-2009
00004 
00005 University of Oxford means the Chancellor, Masters and Scholars of the
00006 University of Oxford, having an administrative office at Wellington
00007 Square, Oxford OX1 2JD, UK.
00008 
00009 This file is part of Chaste.
00010 
00011 Chaste is free software: you can redistribute it and/or modify it
00012 under the terms of the GNU Lesser General Public License as published
00013 by the Free Software Foundation, either version 2.1 of the License, or
00014 (at your option) any later version.
00015 
00016 Chaste is distributed in the hope that it will be useful, but WITHOUT
00017 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
00019 License for more details. The offer of Chaste under the terms of the
00020 License is subject to the License being interpreted in accordance with
00021 English Law and subject to any action against the University of Oxford
00022 being under the jurisdiction of the English Courts.
00023 
00024 You should have received a copy of the GNU Lesser General Public License
00025 along with Chaste. If not, see <http://www.gnu.org/licenses/>.
00026 
00027 */
00028 #include "CancerParameters.hpp"
00029 
00030 CancerParameters* CancerParameters::mpInstance = NULL;
00031 
00032 CancerParameters* CancerParameters::Instance()
00033 {
00034     if (mpInstance == NULL)
00035     {
00036         mpInstance = new CancerParameters;
00037     }
00038     return mpInstance;
00039 }
00040 
00041 CancerParameters::CancerParameters()
00042 {
00043     // Make sure there's only one instance - enforces correct serialization
00044     assert(mpInstance == NULL);
00045 
00046     Reset();
00047 }
00048 
00086 void CancerParameters::Reset()
00087 {
00088     // Default parameter values
00089     mStemCellG1Duration = 14.0;
00090     mTransitCellG1Duration = 2.0;
00091     mHepaOneCellG1Duration = 8.0;   // taken from Owen et al (2004)
00092     mMinimumGapDuration = 0.01;     // educated guess
00093     mSDuration = 5.0;               // apparently between 5-6 hours normally
00094     mG2Duration = 4.0;              // apparently 3-4 hours normally
00095     mMDuration = 1.0;               // this is Meineke's approximation for cell division time
00096     mMaxTransitGenerations = 3u;
00097     mCryptWidth = 10.0;
00098     mCryptLength = 22.0;            // this is MOUSE (small intestine)
00099     mSpringStiffness = 15.0;        // this is mu in Meineke
00100     mDampingConstantNormal = 1.0;   // this is nu in Meineke
00101     mDampingConstantMutant = 2.0;
00102     mBetaCatSpringScaler = 18.14 / 6.0; // this scales the spring constant with the amount of beta-catenin
00103                                         // (divided by 6 as a cell normally is a hexagon)
00104     mApoptosisTime = 0.25;          // cell takes 15 min to fully undergo apoptosis
00105     mDivisionRestingSpringLength = 0.5;
00106     mDivisionSeparation = 0.3;
00107     mHepaOneCellHypoxicConcentration = 0.4;
00108     mHepaOneCellQuiescentConcentration = 1.0;
00109     mWntStemThreshold = 0.8;
00110     mWntTransitThreshold = 0.65;
00111     mTopOfLinearWntConcentration = 1.0;
00112     mCriticalHypoxicDuration = 2.0;
00113     mCryptProjectionParameterA = 0.5;
00114     mCryptProjectionParameterB = 2.0;
00115 
00116     mApoptoticSpringTensionStiffness = 0.25*mSpringStiffness;
00117     mApoptoticSpringCompressionStiffness = 0.75*mSpringStiffness;
00118 
00119     mWntChemotaxisStrength = 100.0;
00120     mSymmetricDivisionProbability = 0.0;
00121     
00122     mAreaBasedDampingConstantParameter = 0.1;
00123 
00124     mMatureCellTargetArea = 1.0;
00125     mDeformationEnergyParameter = 1.0;
00126     mMembraneSurfaceEnergyParameter = 0.1;
00127     mCellCellAdhesionEnergyParameter = 0.01;
00128     mCellBoundaryAdhesionEnergyParameter = 0.01;
00129 }
00130 
00132 // Getter methods
00134 
00135 double CancerParameters::GetStemCellG1Duration()
00136 {
00137     return mStemCellG1Duration;
00138 }
00139 double CancerParameters::GetTransitCellG1Duration()
00140 {
00141     return mTransitCellG1Duration;
00142 }
00143 double CancerParameters::GetHepaOneCellG1Duration()
00144 {
00145     return mHepaOneCellG1Duration;
00146 }
00147 double CancerParameters::GetMinimumGapDuration()
00148 {
00149     return mMinimumGapDuration;
00150 }
00151 double CancerParameters::GetSG2MDuration()
00152 {
00153     return mSDuration + mG2Duration + mMDuration;
00154 }
00155 double CancerParameters::GetSDuration()
00156 {
00157     return mSDuration;
00158 }
00159 double CancerParameters::GetG2Duration()
00160 {
00161     return mG2Duration;
00162 }
00163 double CancerParameters::GetMDuration()
00164 {
00165     return mMDuration;
00166 }
00167 unsigned CancerParameters::GetMaxTransitGenerations()
00168 {
00169     return mMaxTransitGenerations;
00170 }
00171 double CancerParameters::GetCryptLength()
00172 {
00173     return mCryptLength;
00174 }
00175 double CancerParameters::GetCryptWidth()
00176 {
00177     return mCryptWidth;
00178 }
00179 double CancerParameters::GetSpringStiffness()
00180 {
00181     return mSpringStiffness;
00182 }
00183 double CancerParameters::GetDampingConstantNormal()
00184 {
00185     return mDampingConstantNormal;
00186 }
00187 double CancerParameters::GetDampingConstantMutant()
00188 {
00189     return mDampingConstantMutant;
00190 }
00191 double CancerParameters::GetBetaCatSpringScaler()
00192 {
00193     return mBetaCatSpringScaler;
00194 }
00195 double CancerParameters::GetApoptosisTime()
00196 {
00197     return mApoptosisTime;
00198 }
00199 double CancerParameters::GetDivisionRestingSpringLength()
00200 {
00201     return mDivisionRestingSpringLength;
00202 }
00203 double CancerParameters::GetDivisionSeparation()
00204 {
00205     return mDivisionSeparation;
00206 }
00207 double CancerParameters::GetHepaOneCellHypoxicConcentration()
00208 {
00209     return mHepaOneCellHypoxicConcentration;
00210 }
00211 double CancerParameters::GetHepaOneCellQuiescentConcentration()
00212 {
00213     return mHepaOneCellQuiescentConcentration;
00214 }
00215 double CancerParameters::GetWntTransitThreshold()
00216 {
00217     return mWntTransitThreshold;
00218 }
00219 double CancerParameters::GetWntStemThreshold()
00220 {
00221     return mWntStemThreshold;
00222 }
00223 double CancerParameters::GetTopOfLinearWntConcentration()
00224 {
00225     return mTopOfLinearWntConcentration;
00226 }
00227 double CancerParameters::GetCriticalHypoxicDuration()
00228 {
00229     return mCriticalHypoxicDuration;
00230 }
00231 double CancerParameters::GetCryptProjectionParameterA()
00232 {
00233     return mCryptProjectionParameterA;
00234 }
00235 double CancerParameters::GetCryptProjectionParameterB()
00236 {
00237     return mCryptProjectionParameterB;
00238 }
00239 double CancerParameters::GetApoptoticSpringTensionStiffness()
00240 {
00241     return mApoptoticSpringTensionStiffness;
00242 }
00243 double CancerParameters::GetApoptoticSpringCompressionStiffness()
00244 {
00245     return mApoptoticSpringCompressionStiffness;
00246 }
00247 double CancerParameters::GetWntChemotaxisStrength()
00248 {
00249     return mWntChemotaxisStrength;
00250 }
00251 double CancerParameters::GetSymmetricDivisionProbability()
00252 {
00253     return mSymmetricDivisionProbability;
00254 }
00255 double CancerParameters::GetAreaBasedDampingConstantParameter()
00256 {
00257     return mAreaBasedDampingConstantParameter;
00258 }
00259 double CancerParameters::GetMatureCellTargetArea()
00260 {
00261     return mMatureCellTargetArea;
00262 }
00263 double CancerParameters::GetDeformationEnergyParameter()
00264 {
00265     return mDeformationEnergyParameter;
00266 }
00267 double CancerParameters::GetMembraneSurfaceEnergyParameter()
00268 {
00269     return mMembraneSurfaceEnergyParameter;
00270 }
00271 double CancerParameters::GetCellCellAdhesionEnergyParameter()
00272 {
00273     return mCellCellAdhesionEnergyParameter;
00274 }
00275 double CancerParameters::GetCellBoundaryAdhesionEnergyParameter()
00276 {
00277     return mCellBoundaryAdhesionEnergyParameter;
00278 }
00279 
00281 // Setter methods
00283 
00284 void CancerParameters::SetStemCellG1Duration(double stemCellG1Duration)
00285 {
00286     assert(stemCellG1Duration > 0.0);
00287     mStemCellG1Duration = stemCellG1Duration;
00288 }
00289 void CancerParameters::SetTransitCellG1Duration(double transitCellG1Duration)
00290 {
00291     assert(transitCellG1Duration > 0.0);
00292     mTransitCellG1Duration = transitCellG1Duration;
00293 }
00294 void CancerParameters::SetHepaOneCellG1Duration(double hepaOneCellG1Duration)
00295 {
00296     assert(hepaOneCellG1Duration > 0.0);
00297     mHepaOneCellG1Duration = hepaOneCellG1Duration;
00298 }
00299 void CancerParameters::SetMinimumGapDuration(double minimumGapDuration)
00300 {
00301     assert(minimumGapDuration > 0.0);
00302     mMinimumGapDuration = minimumGapDuration;
00303 }
00304 void CancerParameters::SetSDuration(double SDuration)
00305 {
00306     assert(SDuration > 0.0);
00307     mSDuration = SDuration;
00308 }
00309 void CancerParameters::SetG2Duration(double G2Duration)
00310 {
00311     assert(G2Duration > 0.0);
00312     mG2Duration = G2Duration;
00313 }
00314 void CancerParameters::SetMDuration(double MDuration)
00315 {
00316     assert(MDuration > 0.0);
00317     mMDuration = MDuration;
00318 }
00319 void CancerParameters::SetMaxTransitGenerations(unsigned maxTransitGens)
00320 {
00321     mMaxTransitGenerations = maxTransitGens;
00322 }
00323 void CancerParameters::SetCryptLength(double cryptLength)
00324 {
00325     assert(cryptLength > 0.0);
00326     mCryptLength = cryptLength;
00327 }
00328 void CancerParameters::SetCryptWidth(double cryptWidth)
00329 {
00330     assert(cryptWidth > 0.0);
00331     mCryptWidth = cryptWidth;
00332 }
00333 void CancerParameters::SetSpringStiffness(double springStiffness)
00334 {
00335     assert(springStiffness > 0.0);
00336     mSpringStiffness = springStiffness;
00337 }
00338 void CancerParameters::SetDampingConstantNormal(double dampingConstantNormal)
00339 {
00340     assert(dampingConstantNormal > 0.0);
00341     mDampingConstantNormal = dampingConstantNormal;
00342 }
00343 void CancerParameters::SetDampingConstantMutant(double dampingConstantMutant)
00344 {
00345     assert(dampingConstantMutant > 0.0);
00346     mDampingConstantMutant = dampingConstantMutant;
00347 }
00348 void CancerParameters::SetBetaCatSpringScaler(double betaCatSpringScaler)
00349 {
00350     assert(betaCatSpringScaler > 0.0);
00351     mBetaCatSpringScaler = betaCatSpringScaler;
00352 }
00353 void CancerParameters::SetApoptosisTime(double apoptosisTime)
00354 {
00355     assert(apoptosisTime > 0.0);
00356     mApoptosisTime = apoptosisTime;
00357 }
00358 void CancerParameters::SetDivisionRestingSpringLength(double divisionRestingSpringLength)
00359 {
00360     assert(divisionRestingSpringLength<=1.0);
00361     assert(divisionRestingSpringLength>=0.0);
00362 
00363     mDivisionRestingSpringLength = divisionRestingSpringLength;
00364 }
00365 void CancerParameters::SetDivisionSeparation(double divisionSeparation)
00366 {
00367     assert(divisionSeparation<=1.0);
00368     assert(divisionSeparation>=0.0);
00369     mDivisionSeparation = divisionSeparation;
00370 }
00371 void CancerParameters::SetHepaOneCellHypoxicConcentration(double hepaOneCellHypoxicConcentration)
00372 {
00373     assert(hepaOneCellHypoxicConcentration<=1.0);
00374     assert(hepaOneCellHypoxicConcentration>=0.0);
00375     mHepaOneCellHypoxicConcentration = hepaOneCellHypoxicConcentration;
00376 }
00377 void CancerParameters::SetHepaOneCellQuiescentConcentration(double hepaOneCellQuiescentConcentration)
00378 {
00379     assert(hepaOneCellQuiescentConcentration<=1.0);
00380     assert(hepaOneCellQuiescentConcentration>=0.0);
00381     mHepaOneCellQuiescentConcentration = hepaOneCellQuiescentConcentration;
00382 }
00383 void CancerParameters::SetWntTransitThreshold(double wntThreshold)
00384 {
00385     assert(wntThreshold<=1.0);
00386     assert(wntThreshold>=0.0);
00387     mWntTransitThreshold = wntThreshold;
00388 }
00389 void CancerParameters::SetWntStemThreshold(double wntThreshold)
00390 {
00391     assert(wntThreshold<=1.0);
00392     assert(wntThreshold>=0.0);
00393     mWntStemThreshold = wntThreshold;
00394 }
00395 void CancerParameters::SetTopOfLinearWntConcentration(double top)
00396 {
00397     assert(top > 0.0);
00398     assert(top <= 1.0);
00399     mTopOfLinearWntConcentration = top;
00400 }
00401 void CancerParameters::SetCriticalHypoxicDuration(double criticalHypoxicDuration)
00402 {
00403     assert(criticalHypoxicDuration>=0.0);
00404     mCriticalHypoxicDuration = criticalHypoxicDuration;
00405 }
00406 void CancerParameters::SetHepaOneParameters()
00407 {
00408     mStemCellG1Duration = mHepaOneCellG1Duration;
00409 }
00410 void CancerParameters::SetCryptProjectionParameterA(double cryptProjectionParameterA)
00411 {
00412     assert(cryptProjectionParameterA>=0.0);
00413     mCryptProjectionParameterA = cryptProjectionParameterA;
00414 }
00415 void CancerParameters::SetCryptProjectionParameterB(double cryptProjectionParameterB)
00416 {
00417     assert(cryptProjectionParameterB>=0.0);
00418     mCryptProjectionParameterB = cryptProjectionParameterB;
00419 }
00420 void CancerParameters::SetApoptoticSpringTensionStiffness(double apoptoticSpringTensionStiffness)
00421 {
00422     assert(apoptoticSpringTensionStiffness>=0.0);
00423     mApoptoticSpringTensionStiffness = apoptoticSpringTensionStiffness;
00424 }
00425 void CancerParameters::SetApoptoticSpringCompressionStiffness(double apoptoticSpringCompressionStiffness)
00426 {
00427     assert(apoptoticSpringCompressionStiffness>=0.0);
00428     mApoptoticSpringCompressionStiffness = apoptoticSpringCompressionStiffness;
00429 }
00430 void CancerParameters::SetWntChemotaxisStrength(double wntChemotaxisStrength)
00431 {
00432     assert(wntChemotaxisStrength>=0.0);
00433     mWntChemotaxisStrength = wntChemotaxisStrength;
00434 }
00435 void CancerParameters::SetSymmetricDivisionProbability(double symmetricDivisionProbability)
00436 {
00437     assert(symmetricDivisionProbability<=1.0);
00438     assert(symmetricDivisionProbability>=0.0);
00439     mSymmetricDivisionProbability = symmetricDivisionProbability;
00440 }
00441 void CancerParameters::SetAreaBasedDampingConstantParameter(double areaBasedDampingConstantParameter)
00442 {
00443     assert(areaBasedDampingConstantParameter>=0.0);
00444     mAreaBasedDampingConstantParameter = areaBasedDampingConstantParameter;
00445 }
00446 void CancerParameters::SetMatureCellTargetArea(double matureCellTargetArea)
00447 {
00448     assert(matureCellTargetArea>=0.0);
00449     mMatureCellTargetArea = matureCellTargetArea;
00450 }
00451 void CancerParameters::SetDeformationEnergyParameter(double deformationEnergyParameter)
00452 {
00453     mDeformationEnergyParameter = deformationEnergyParameter;
00454 }
00455 void CancerParameters::SetMembraneSurfaceEnergyParameter(double membraneSurfaceEnergyParameter)
00456 {
00457     mMembraneSurfaceEnergyParameter = membraneSurfaceEnergyParameter;
00458 }
00459 void CancerParameters::SetCellCellAdhesionEnergyParameter(double cellCellAdhesionEnergyParameter)
00460 {
00461     mCellCellAdhesionEnergyParameter = cellCellAdhesionEnergyParameter;
00462 }
00463 void CancerParameters::SetCellBoundaryAdhesionEnergyParameter(double cellBoundaryAdhesionEnergyParameter)
00464 {
00465     mCellBoundaryAdhesionEnergyParameter = cellBoundaryAdhesionEnergyParameter;
00466 }

Generated on Wed Mar 18 12:51:49 2009 for Chaste by  doxygen 1.5.5