Alarcon2004OxygenBasedCellCycleOdeSystem::Alarcon2004OxygenBasedCellCycleOdeSystem(double oxygenConcentration, bool isLabelled, std::vector<double> stateVariables) : AbstractOdeSystem(6), mOxygenConcentration(oxygenConcentration), mIsLabelled(isLabelled) { mpSystemInfo.reset(new CellwiseOdeSystemInformation<Alarcon2004OxygenBasedCellCycleOdeSystem>); /** * State variables * * 0. x = Cdh1-APC complexes * 1. y = cyclin-CDK * 2. z = p27 * 3. m = mass * 4. u = RBNP * 5. oxygenConcentration */ Init(); // set up parameters // Parameter values are taken from the Alarcon et al. (2004) paper if (mIsLabelled) // labelled "cancer" cells { ma1 = 0.04; mc1 = 0.007; mxThreshold = 0.004; myThreshold = 0.05; } else // normal cells { ma1 = 0.05; mc1 = 0.1; mxThreshold = 0.004; myThreshold = 0.2; } // Cell-specific initial conditions SetDefaultInitialCondition(3, 0.5*mMstar); SetDefaultInitialCondition(5, oxygenConcentration); if (stateVariables != std::vector<double>()) { SetStateVariables(stateVariables); } }
Mirams2010WntOdeSystem::Mirams2010WntOdeSystem(double wntLevel, boost::shared_ptr<AbstractCellMutationState> pMutationState, std::vector<double> stateVariables) : AbstractOdeSystem(3), mpMutationState(pMutationState), mWntLevel(wntLevel) { mpSystemInfo.reset(new CellwiseOdeSystemInformation<Mirams2010WntOdeSystem>); /** * State variables. * * 0. b1 = Beta-Catenin (1st allele's copy) * 1. b2 = Beta-Catenin (2nd allele's copy) * 2. wntLevel */ Init(); // set up parameter values // Set up rough guesses for the initial steady states in this Wnt conc. double b1 = 0; double b2 = 0; b1 = (mA/2.0) / (((wntLevel + mB)/(mC*wntLevel + mD)) + mF); if (!mpMutationState) { // No mutations specified } else if (mpMutationState->IsType<BetaCateninOneHitCellMutationState>()) { b2 = (mA/2.0)/mF; } else { b2 = (mA/2.0) / (((wntLevel + mB)/(mC*wntLevel + mD)) + mF); } SetDefaultInitialCondition(0, b1); SetDefaultInitialCondition(1, b2); SetDefaultInitialCondition(2, wntLevel); if (stateVariables != std::vector<double>()) { SetStateVariables(stateVariables); } }
WntCellCycleOdeSystem::WntCellCycleOdeSystem(double wntLevel, boost::shared_ptr<AbstractCellMutationState> pMutationState, std::vector<double> stateVariables) : AbstractOdeSystem(9), mpMutationState(pMutationState), mWntLevel(wntLevel) { mpSystemInfo.reset(new CellwiseOdeSystemInformation<WntCellCycleOdeSystem>); /** * State variables. * * 0. r = pRb * 1. e = E2F1 (This is the S-phase indicator) * 2. i = CycD (inactive) * 3. j = CycD (active) * 4. p = pRb-p * 5. c = APC (Active) * 6. b1 = Beta-Catenin (1st allele's copy) * 7. b2 = Beta-Catenin (2nd allele's copy) * 8. wntLevel */ Init(); // set up parameter values // Set up a Wnt signalling pathway in a steady state double destruction_level = ma5d/(ma4d*wntLevel+ma5d); double beta_cat_level_1 = -1.0; double beta_cat_level_2 = -1.0; if (!mpMutationState) { // No mutations specified } else if (mpMutationState && mpMutationState->IsType<ApcOneHitCellMutationState>()) { // APC +/- : only half are active beta_cat_level_1 = 0.5*ma2d/(ma2d+0.5*ma3d*destruction_level); beta_cat_level_2 = 0.5*ma2d/(ma2d+0.5*ma3d*destruction_level); } else if (mpMutationState && mpMutationState->IsType<ApcTwoHitCellMutationState>()) { // APC -/- destruction_level = 0.0; // no active destruction complex beta_cat_level_1 = 0.5; // fully active beta-catenin beta_cat_level_2 = 0.5; // fully active beta-catenin } else if (mpMutationState && mpMutationState->IsType<BetaCateninOneHitCellMutationState>()) { // Beta-cat delta 45 beta_cat_level_1 = 0.5*ma2d/(ma2d+ma3d*destruction_level); beta_cat_level_2 = 0.5; } else { // healthy cells beta_cat_level_1 = 0.5*ma2d/(ma2d+ma3d*destruction_level); beta_cat_level_2 = 0.5*ma2d/(ma2d+ma3d*destruction_level); } // Cell-specific initial conditions SetDefaultInitialCondition(5, destruction_level); SetDefaultInitialCondition(6, beta_cat_level_1); SetDefaultInitialCondition(7, beta_cat_level_2); SetDefaultInitialCondition(8, wntLevel); if (stateVariables != std::vector<double>()) { SetStateVariables(stateVariables); } }