コード例 #1
0
def SSAModel(base, vol, nrep=1, y0_pop=None):
    """ nrep repeats the model (uncoupled system) to allow for the
    passing of a matrix of initial values. y0_pop should be a matrix of
    size (NREP x NEQ) """

    if y0_pop is None:
        y0_pop = np.tile((vol * base.y0[:-1]), (nrep, 1)).astype(int)
    else:
        y0_pop = vol * y0_pop

    stoch_fn = stk.StochKitModel(name=base.model.getOption('name') +
                                 '_stoch_' + str(nrep))

    bd = mb.SSA_builder(mb.SSA_builder.expand_labelarray(base.ylabels, nrep),
                        mb.SSA_builder.expand_labelarray(base.plabels, nrep),
                        y0_pop.flatten(order='C'),
                        np.tile(base.paramset, (nrep, 1)).flatten(order='C'),
                        stoch_fn, vol)

    for index in xrange(nrep):
        si = '_' + str(index)

        bd.SSA_tyson_x('x prod nonlinear term' + si, 'X' + si, 'Y' + si,
                       'P' + si)
        bd.SSA_MA_deg('x degradation' + si, 'X' + si, '1')
        bd.SSA_MA_tln('y creation' + si, 'Y' + si, 'kt' + si, 'X' + si)
        bd.SSA_MA_deg('y degradation linear' + si, 'Y' + si, 'kd' + si)
        bd.SSA_tyson_y('y nonlinear term' + si, 'Y' + si, 'a0' + si, 'a1' + si,
                       'a2' + si)

    return stoch_fn
コード例 #2
0
def SSAModel(base, vol, nrep=1, y0_pop=None):
    """ nrep repeats the model (uncoupled system) to allow for the
    passing of a matrix of initial values. y0_pop should be a matrix of
    size (NREP x NEQ) """

    if y0_pop is None:
        y0_pop = np.tile((vol * base.y0[:-1]), (nrep, 1)).astype(int)
    else:
        y0_pop = vol * y0_pop

    stoch_fn = stk.StochKitModel(name=base.model.getOption('name') +
                                 '_stoch_' + str(nrep))

    bd = mb.SSA_builder(mb.SSA_builder.expand_labelarray(base.ylabels, nrep),
                        mb.SSA_builder.expand_labelarray(base.plabels, nrep),
                        y0_pop.flatten(order='C'),
                        np.tile(base.paramset, (nrep, 1)).flatten(order='C'),
                        stoch_fn, vol)

    # ADD REACTIONS
    # =============
    #
    for index in xrange(nrep):
        si = '_' + str(index)

        bd.SSA_MA(name="Y1_production" + si,
                  reactants={bd.species_array[bd.ydict['Y2' + si]]: 1},
                  products={bd.species_array[bd.ydict['Y1' + si]]: 1},
                  rate=bd.param_array[bd.pdict['c1x1' + si]])

        bd.SSA_MA(name="Y1_Y2_deg" + si,
                  reactants={
                      bd.species_array[bd.ydict['Y1' + si]]: 1,
                      bd.species_array[bd.ydict['Y2' + si]]: 1
                  },
                  rate=bd.param_array[bd.pdict['c2' + si]])

        bd.SSA_MA(name="Y1_X2" + si,
                  reactants={bd.species_array[bd.ydict['Y1' + si]]: 1},
                  products={
                      bd.species_array[bd.ydict['Y1' + si]]: 2,
                      bd.species_array[bd.ydict['Y3' + si]]: 1
                  },
                  rate=bd.param_array[bd.pdict['c3x2' + si]])

        bd.SSA_MA(name="Y1_deg" + si,
                  reactants={bd.species_array[bd.ydict['Y1' + si]]: 2},
                  rate=bd.param_array[bd.pdict['c4' + si]])

        bd.SSA_MA(name="Y2_prod" + si,
                  reactants={bd.species_array[bd.ydict['Y3' + si]]: 1},
                  products={bd.species_array[bd.ydict['Y2' + si]]: 1},
                  rate=bd.param_array[bd.pdict['c5x3' + si]])

    return stoch_fn
コード例 #3
0
def SSAModel(base, vol, nrep=1, y0_pop=None):
    """ nrep repeats the model (uncoupled system) to allow for the
    passing of a matrix of initial values. y0_pop should be a matrix of
    size (NREP x NEQ) """

    if y0_pop is None:
        y0_pop = np.tile((vol*base.y0[:-1]), (nrep, 1)).astype(int)
    else: y0_pop = vol*y0_pop

    stoch_fn = stk.StochKitModel(
        name=base.model.getOption('name') + '_stoch_' + str(nrep))

    bd = mb.SSA_builder(
        mb.SSA_builder.expand_labelarray(base.ylabels, nrep),
        mb.SSA_builder.expand_labelarray(base.plabels[1:], nrep),
        y0_pop.flatten(order='C'),
        np.tile(base.paramset, (nrep, 1)).flatten(order='C'),
        stoch_fn, vol)

    # ADD REACTIONS
    # =============
    #
    for index in xrange(nrep):
        si = '_' + str(index)

        bd.SSA_MM_P_Goodwin('X1 Production'+si,
                            Prod='X1'+si, Rep='X3'+si,
                            P=int(base.paramset[base.pdict['h']]))

        bd.SSA_MA_tln('X2 Production'+si, 'X2'+si, '1', 'X1'+si)
        bd.SSA_MA_tln('X3 Production'+si, 'X3'+si, '1', 'X2'+si)

        bd.SSA_MA(name="X1 Deg" + si,
                  reactants={bd.species_array[bd.ydict['X1' + si]]:1},
                  rate=bd.param_array[bd.pdict['a' + si]])

        bd.SSA_MA(name="X2 Deg" + si,
                  reactants={bd.species_array[bd.ydict['X2' + si]]:1},
                  rate=bd.param_array[bd.pdict['i' + si]])

        bd.SSA_MA(name="X3 Deg" + si,
                  reactants={bd.species_array[bd.ydict['X3' + si]]:1},
                  rate=bd.param_array[bd.pdict['r' + si]])


    return stoch_fn
コード例 #4
0
def SSAModel(base, vol):
    """ Abandoning, as stochkit (at least the python version) does not
    want to handle a tri-molecular reaction. Expansion into multiple
    events (i.e. oregonator) will be tried next """

    y0_pop = (vol * base.y0[:-1]).astype(int)

    stoch_fn = stk.StochKitModel(name=base.model.getOption('name') + '_stoch')

    bd = mb.SSA_builder(base.ylabels, base.plabels, y0_pop, base.paramset,
                        stoch_fn, vol)

    # ADD REACTIONS
    # =============
    rxn1 = stk.Reaction(name="Y1_production",
                        products={bd.species_array[bd.ydict['Y1']]: 1},
                        massaction=True,
                        rate=bd.param_array[bd.pdict['c1x1']])
    bd.SSAmodel.addReaction(rxn1)

    rxn2 = stk.Reaction(name="Y2_from_Y1",
                        reactants={bd.species_array[bd.ydict['Y1']]: 1},
                        products={bd.species_array[bd.ydict['Y2']]: 1},
                        massaction=True,
                        rate=bd.param_array[bd.pdict['c2x2']])
    bd.SSAmodel.addReaction(rxn2)

    rxn3 = stk.Reaction(name="trimolecular",
                        reactants={
                            bd.species_array[bd.ydict['Y1']]: 2,
                            bd.species_array[bd.ydict['Y2']]: 1
                        },
                        products={bd.species_array[bd.ydict['Y1']]: 3},
                        massaction=True,
                        rate=bd.param_array[bd.pdict['c3']])
    bd.SSAmodel.addReaction(rxn3)

    rxn4 = stk.Reaction(name="Y2_deg",
                        reactants={bd.species_array[bd.ydict['Y2']]: 1},
                        massaction=True,
                        rate=bd.param_array[bd.pdict['c4']])
    bd.SSAmodel.addReaction(rxn4)

    return stoch_fn
コード例 #5
0
def SSAModel(base, vol, nrep=1, y0_pop=None):
    if y0_pop is None:
        y0_pop = np.tile((vol * base.y0[:-1]), (nrep, 1)).astype(int)
    else:
        y0_pop = vol * y0_pop

    stoch_fn = stk.StochKitModel(name=base.model.getOption('name') +
                                 '_stoch_' + str(nrep))

    bd = mb.SSA_builder(mb.SSA_builder.expand_labelarray(base.ylabels, nrep),
                        mb.SSA_builder.expand_labelarray(base.plabels, nrep),
                        y0_pop.flatten(order='C'),
                        np.tile(base.paramset, (nrep, 1)).flatten(order='C'),
                        stoch_fn, vol)

    # ADD REACTIONS
    # =============

    for index in xrange(nrep):
        si = '_' + str(index)

        # Per mRNA
        bd.SSA_MM_P('per mRNA repression' + si,
                    'vtp' + si,
                    km=['knp' + si],
                    Prod=['p' + si],
                    Rep=['C1P' + si, 'C2P' + si],
                    P=3)
        bd.SSA_MM('per mRNA degradation' + si,
                  'vdp' + si,
                  km=['kdp' + si],
                  Rct=['p' + si])

        # Cry1 mRNA
        bd.SSA_MM_P('c1 mRNA repression' + si,
                    'vtc1' + si,
                    km=['knc1' + si],
                    Prod=['c1' + si],
                    Rep=['C1P' + si, 'C2P' + si],
                    P=3)
        bd.SSA_MM('c1 mRNA degradation' + si,
                  'vdc1' + si,
                  km=['kdc1' + si],
                  Rct=['c1' + si])

        # Cry2 mRNA (shares cry1 km constants)
        bd.SSA_MM_P('c2 mRNA repression' + si,
                    'vtc2' + si,
                    km=['knc1' + si],
                    Prod=['c2' + si],
                    Rep=['C1P' + si, 'C2P' + si],
                    P=3)
        bd.SSA_MM('c2 mRNA degradation' + si,
                  'vdc2' + si,
                  km=['kdc1' + si],
                  Rct=['c2' + si])

        # Free protein creation and degradation
        bd.SSA_MA_tln('PER translation' + si, 'P' + si, 'ktxnp' + si, 'p' + si)
        bd.SSA_MA_tln('CRY1 translation' + si, 'C1' + si, '1', 'c1' + si)
        bd.SSA_MA_tln('CRY2 translation' + si, 'C2' + si, '1', 'c2' + si)

        bd.SSA_MM('PER degradation' + si,
                  'vdP' + si,
                  km=['kdP' + si],
                  Rct=['P' + si])
        bd.SSA_MM('C1 degradation' + si,
                  'vdC1' + si,
                  km=['kdC1' + si],
                  Rct=['C1' + si])
        bd.SSA_MM('C2 degradation' + si,
                  'vdC2' + si,
                  km=['kdC1' + si],
                  Rct=['C2' + si])

        #CRY1 CRY2 complexing
        bd.SSA_MA_complex('CRY1-P complex' + si, 'C1' + si, 'P' + si,
                          'C1P' + si, 'vaC1P' + si, 'vdC1P' + si)
        bd.SSA_MA_complex('CRY2-P complex' + si, 'C2' + si, 'P' + si,
                          'C2P' + si, 'vaC1P' + si, 'vdC1P' + si)
        bd.SSA_MM('C1P degradation' + si,
                  'vdCn' + si,
                  km=['kdCn' + si],
                  Rct=['C1P' + si, 'C2P' + si])
        bd.SSA_MM_C2('C2P degradation' + si,
                     'vdCn' + si,
                     km=['kdCn' + si],
                     Rct=['C2P' + si, 'C1P' + si],
                     M='MC2n' + si)

    return stoch_fn
コード例 #6
0
def SSAModel(base, vol):
    y0_pop = (vol * base.y0[:-1]).astype(int)

    stoch_fn = stk.StochKitModel(name=base.model.getOption('name') + '_stoch')

    SSA_builder = mb.SSA_builder(base.ylabels, base.plabels, y0_pop,
                                 base.paramset, stoch_fn, vol)

    # ADD REACTIONS
    # =============

    # Per mRNA
    SSA_builder.SSA_MM_P('per mRNA repression',
                         'vtp',
                         km=['knp'],
                         Prod=['p'],
                         Rep=['C1P', 'C2P'],
                         P=3)
    SSA_builder.SSA_MM('per mRNA degradation', 'vdp', km=['kdp'], Rct=['p'])

    # Cry1 mRNA
    SSA_builder.SSA_MM_P('c1 mRNA repression',
                         'vtc1',
                         km=['knc1'],
                         Prod=['c1'],
                         Rep=['C1P', 'C2P'],
                         P=3)
    SSA_builder.SSA_MM('c1 mRNA degradation', 'vdc1', km=['kdc1'], Rct=['c1'])

    # Cry2 mRNA (shares cry1 km constants)
    SSA_builder.SSA_MM_P('c2 mRNA repression',
                         'vtc2',
                         km=['knc1'],
                         Prod=['c2'],
                         Rep=['C1P', 'C2P'],
                         P=3)
    SSA_builder.SSA_MM('c2 mRNA degradation', 'vdc2', km=['kdc1'], Rct=['c2'])

    # Free protein creation and degradation
    SSA_builder.SSA_MA_tln('PER translation', 'P', 'ktxnp', 'p')
    SSA_builder.SSA_MA_tln('CRY1 translation', 'C1', '1', 'c1')
    SSA_builder.SSA_MA_tln('CRY2 translation', 'C2', '1', 'c2')

    SSA_builder.SSA_MM('PER degradation', 'vdP', km=['kdP'], Rct=['P'])
    SSA_builder.SSA_MM('C1 degradation', 'vdC1', km=['kdC1'], Rct=['C1'])
    SSA_builder.SSA_MM('C2 degradation', 'vdC2', km=['kdC1'], Rct=['C2'])

    #CRY1 CRY2 complexing
    SSA_builder.SSA_MA_complex('CRY1-P complex', 'C1', 'P', 'C1P', 'vaC1P',
                               'vdC1P')
    SSA_builder.SSA_MA_complex('CRY2-P complex', 'C2', 'P', 'C2P', 'vaC1P',
                               'vdC1P')
    SSA_builder.SSA_MM('C1P degradation',
                       'vdCn',
                       km=['kdCn'],
                       Rct=['C1P', 'C2P'])
    SSA_builder.SSA_MM_C2('C2P degradation',
                          'vdCn',
                          km=['kdCn'],
                          Rct=['C2P', 'C1P'],
                          M='MC2n')

    return stoch_fn