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);
    }
}
Esempio n. 2
0
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);
    }
}