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 #ifndef CANCERPARAMETERS_HPP_ 00029 #define CANCERPARAMETERS_HPP_ 00030 00031 #include <boost/serialization/access.hpp> 00032 #include <cassert> 00033 00044 class CancerParameters 00045 { 00046 public: 00047 00053 static CancerParameters* Instance(); 00054 00058 double GetStemCellG1Duration(); 00062 double GetTransitCellG1Duration(); 00066 double GetHepaOneCellG1Duration(); 00070 double GetMinimumGapDuration(); 00074 double GetSG2MDuration(); 00078 double GetSDuration(); 00082 double GetG2Duration(); 00086 double GetMDuration(); 00090 unsigned GetMaxTransitGenerations(); 00094 double GetCryptLength(); 00098 double GetCryptWidth(); 00102 double GetSpringStiffness(); 00106 double GetDampingConstantNormal(); 00110 double GetDampingConstantMutant(); 00114 double GetBetaCatSpringScaler(); 00118 double GetApoptosisTime(); 00122 double GetDivisionRestingSpringLength(); 00126 double GetDivisionSeparation(); 00130 double GetHepaOneCellHypoxicConcentration(); 00134 double GetHepaOneCellQuiescentConcentration(); 00138 double GetWntTransitThreshold(); 00142 double GetWntStemThreshold(); 00146 double GetTopOfLinearWntConcentration(); 00150 double GetCriticalHypoxicDuration(); 00154 double GetCryptProjectionParameterA(); 00158 double GetCryptProjectionParameterB(); 00162 double GetApoptoticSpringTensionStiffness(); 00166 double GetApoptoticSpringCompressionStiffness(); 00170 double GetWntChemotaxisStrength(); 00174 double GetSymmetricDivisionProbability(); 00178 double GetAreaBasedDampingConstantParameter(); 00182 double GetMatureCellTargetArea(); 00186 double GetDeformationEnergyParameter(); 00190 double GetMembraneSurfaceEnergyParameter(); 00194 double GetCellCellAdhesionEnergyParameter(); 00198 double GetCellBoundaryAdhesionEnergyParameter(); 00199 00203 void SetStemCellG1Duration(double); 00207 void SetTransitCellG1Duration(double); 00211 void SetHepaOneCellG1Duration(double); 00215 void SetMinimumGapDuration(double); 00219 void SetSDuration(double); 00223 void SetG2Duration(double); 00227 void SetMDuration(double); 00231 void SetMaxTransitGenerations(unsigned); 00235 void SetCryptLength(double); 00239 void SetCryptWidth(double); 00243 void SetSpringStiffness(double); 00247 void SetDampingConstantNormal(double); 00251 void SetDampingConstantMutant(double); 00255 void SetBetaCatSpringScaler(double); 00259 void SetApoptosisTime(double); 00263 void SetDivisionRestingSpringLength(double); 00267 void SetDivisionSeparation(double); 00271 void SetHepaOneCellHypoxicConcentration(double); 00275 void SetHepaOneCellQuiescentConcentration(double); 00279 void SetWntTransitThreshold(double); 00283 void SetWntStemThreshold(double); 00287 void SetTopOfLinearWntConcentration(double); 00291 void SetCriticalHypoxicDuration(double); 00295 void SetHepaOneParameters(); 00299 void SetCryptProjectionParameterA(double); 00303 void SetCryptProjectionParameterB(double); 00307 void SetApoptoticSpringTensionStiffness(double); 00311 void SetApoptoticSpringCompressionStiffness(double); 00315 void SetWntChemotaxisStrength(double); 00319 void SetSymmetricDivisionProbability(double); 00323 void SetAreaBasedDampingConstantParameter(double); 00327 void SetMatureCellTargetArea(double); 00331 void SetDeformationEnergyParameter(double); 00335 void SetMembraneSurfaceEnergyParameter(double); 00339 void SetCellCellAdhesionEnergyParameter(double); 00343 void SetCellBoundaryAdhesionEnergyParameter(double); 00344 00348 void Reset(); 00349 00350 protected: 00351 00355 CancerParameters(); 00356 00360 CancerParameters(const CancerParameters&); 00361 00365 CancerParameters& operator= (const CancerParameters&); 00366 00367 private: 00368 00370 static CancerParameters *mpInstance; 00371 00377 double mStemCellG1Duration; 00378 00383 double mTransitCellG1Duration; 00384 00389 double mHepaOneCellG1Duration; 00390 00396 double mMinimumGapDuration; 00397 00401 double mSDuration; 00402 00406 double mG2Duration; 00407 00411 double mMDuration; 00412 00416 unsigned mMaxTransitGenerations; 00417 00422 double mCryptLength; 00423 00428 double mCryptWidth; 00429 00434 double mSpringStiffness; 00435 00440 double mDampingConstantNormal; 00441 00445 double mDampingConstantMutant; 00446 00450 double mBetaCatSpringScaler; 00451 00455 double mApoptosisTime; 00456 00460 double mDivisionSeparation; 00461 00467 double mDivisionRestingSpringLength; 00468 00474 double mHepaOneCellHypoxicConcentration; 00475 00481 double mHepaOneCellQuiescentConcentration; 00482 00486 double mWntTransitThreshold; 00487 00491 double mWntStemThreshold; 00492 00497 double mTopOfLinearWntConcentration; 00498 00502 double mCriticalHypoxicDuration; 00503 00508 double mCryptProjectionParameterA; 00509 00514 double mCryptProjectionParameterB; 00515 00519 double mApoptoticSpringTensionStiffness; 00520 00524 double mApoptoticSpringCompressionStiffness; 00525 00529 double mWntChemotaxisStrength; 00530 00534 double mSymmetricDivisionProbability; 00535 00539 double mAreaBasedDampingConstantParameter; 00540 00545 double mMatureCellTargetArea; 00546 00551 double mDeformationEnergyParameter; 00552 00557 double mMembraneSurfaceEnergyParameter; 00558 00563 double mCellCellAdhesionEnergyParameter; 00564 00569 double mCellBoundaryAdhesionEnergyParameter; 00570 00572 friend class boost::serialization::access; 00581 template<class Archive> 00582 void serialize(Archive & archive, const unsigned int version) 00583 { 00584 archive & mStemCellG1Duration; 00585 archive & mTransitCellG1Duration; 00586 archive & mHepaOneCellG1Duration; 00587 archive & mMinimumGapDuration; 00588 archive & mSDuration; 00589 archive & mG2Duration; 00590 archive & mMDuration; 00591 archive & mMaxTransitGenerations; 00592 archive & mCryptLength; 00593 archive & mCryptWidth; 00594 archive & mSpringStiffness; 00595 archive & mDampingConstantNormal; 00596 archive & mDampingConstantMutant; 00597 archive & mBetaCatSpringScaler; 00598 archive & mApoptosisTime; 00599 archive & mHepaOneCellHypoxicConcentration; 00600 archive & mHepaOneCellQuiescentConcentration; 00601 archive & mWntTransitThreshold; 00602 archive & mWntStemThreshold; 00603 archive & mTopOfLinearWntConcentration; 00604 archive & mCriticalHypoxicDuration; 00605 archive & mCryptProjectionParameterA; 00606 archive & mCryptProjectionParameterB; 00607 archive & mApoptoticSpringTensionStiffness; 00608 archive & mApoptoticSpringCompressionStiffness; 00609 archive & mWntChemotaxisStrength; 00610 archive & mSymmetricDivisionProbability; 00611 archive & mAreaBasedDampingConstantParameter; 00612 archive & mMatureCellTargetArea; 00613 archive & mDeformationEnergyParameter; 00614 archive & mMembraneSurfaceEnergyParameter; 00615 archive & mCellCellAdhesionEnergyParameter; 00616 archive & mCellBoundaryAdhesionEnergyParameter; 00617 } 00618 }; 00619 00620 00621 #endif /*CANCERPARAMETERS_HPP_*/