Exemplo n.º 1
0
def test_function_introspection():
    # Case 1: Component defined inside function
    Monomer('A')
    assert A._function == 'test_function_introspection'

    # Case 2: Component defined inside nested function
    def define_monomer_b():
        Monomer('B')

    define_monomer_b()
    assert B._function == 'define_monomer_b'

    # Case 3: Component defined by macro
    from pysb.macros import equilibrate
    equilibrate(A(), B(), [1, 1])

    assert model.rules['equilibrate_A_to_B']._function == 'equilibrate'

    # Case 4: Component defined by macro inside function
    def define_macro_inside_function():
        Monomer('C')
        equilibrate(A(), C(), [2, 2])

    define_macro_inside_function()
    assert model.rules['equilibrate_A_to_C']._function == 'equilibrate'
Exemplo n.º 2
0
def linear_pathway_from_ordering(site_ordering, parameters):
    """Builds a model in which each residue transitions in a given order.

    Sites go from 's' to 'm' in a stepwise fashion, that is, a site cannot
    make the transition unless all previous sites in the order have already
    made the transition. A series of reversible rules are generated
    specifying this sequence based on the given ordering.

    Parameters
    ----------
    site_ordering : list of strings (sites)
        A list of site names (e.g., ['c62', 'c3', ...]) that specify the order
        in which the sites transition from solvated to desolvated (e.g.,
        c62 is first, then c3, etc.).
    """

    # "lhs" denotes the "left hand side" of the rule, that is, the reactant
    # ("rhs" will denote the right hand side, i.e., the product)
    site_states_lhs = nbd_model_shared.sites_initial_state.copy()

    for i, current_site in enumerate(site_ordering):
        site_states_rhs = site_states_lhs.copy()
        site_states_rhs[current_site] = 'm'

        # The equilibration rule defining the insertion step
        equilibrate(Bax(**site_states_lhs), Bax(**site_states_rhs),
                parameters[(2*i):(2*i+2)])   

        # The product of this step becomes the reactant for the next step:
        site_states_lhs = site_states_rhs.copy()
Exemplo n.º 3
0
def indirect(do_pore_transport=True):
    """Bax and Bak spontaneously form pores without activation.
       The "activator" tBid binds all of the anti-apoptotics.
    """
    alias_model_components()

    declare_initial_conditions()

    translocate_tBid_Bax_BclxL()

    # Bax and Bak spontaneously become activated
    free_Bax = Bax(bf=None, s1=None, s2=None) # Alias
    free_Bak = Bak(bf=None, s1=None, s2=None) # Alias
    equilibrate(free_Bax(state='M'), free_Bax(state='A'), transloc_rates)
    equilibrate(free_Bak(state='M'), free_Bak(state='A'), transloc_rates)

    # Anti-apoptotics bind activator tBid
    # Doug Green's "MODE 1" inhibition
    tBid_binds_all_anti_apoptotics()

    # Anti-apoptotics bind activated effectors
    # Doug Green's "MODE 2" inhibition
    effectors_bind_anti_apoptotics()

    sensitizers_bind_anti_apoptotics()

    # Bax and Bak form pores by sequential addition
    lopez_pore_formation(do_pore_transport=do_pore_transport)
Exemplo n.º 4
0
def indirect(do_pore_transport=True):
    """Bax and Bak spontaneously form pores without activation.
       The "activator" tBid binds all of the anti-apoptotics.
    """
    alias_model_components()

    declare_initial_conditions()

    translocate_tBid_Bax_BclxL()

    # Bax and Bak spontaneously become activated
    free_Bax = Bax(bf=None, s1=None, s2=None)  # Alias
    free_Bak = Bak(bf=None, s1=None, s2=None)  # Alias
    equilibrate(free_Bax(state='M'), free_Bax(state='A'), transloc_rates)
    equilibrate(free_Bak(state='M'), free_Bak(state='A'), transloc_rates)

    # Anti-apoptotics bind activator tBid
    # Doug Green's "MODE 1" inhibition
    tBid_binds_all_anti_apoptotics()

    # Anti-apoptotics bind activated effectors
    # Doug Green's "MODE 2" inhibition
    effectors_bind_anti_apoptotics()

    sensitizers_bind_anti_apoptotics()

    # Bax and Bak form pores by sequential addition
    lopez_pore_formation(do_pore_transport=do_pore_transport)
Exemplo n.º 5
0
def albeck_11d(do_pore_transport=True):
    """Model incorporating mitochondrial transport.

    Features:
        - Bid activates Bax
        - Active Bax translocates to the mitochondria
        - All reactions on the mito membrane have increased association rates
        - Mitochondrial Bax dimerizes; Bax dimers dimerize to form tetramers
        - Bcl2 binds/inhibits Bax monomers, dimers, and tetramers
        - Bax tetramers bind to and transport Smac to the cytosol
    """

    alias_model_components()
    Initial(Bid(state='U', bf=None), Parameter('Bid_0', 4e4))
    Initial(Bax(bf=None, **inactive_monomer), Parameter('Bax_0', 1e5))
    Initial(Bcl2(bf=None), Parameter('Bcl2_0', 2e4))

    # Fractional volume of the mitochondrial membrane compartment
    v = 0.07
    rate_scaling_factor = 1./v

    # tBid activates Bax in the cytosol
    catalyze(Bid(state='T'), Bax(inactive_monomer), Bax(active_monomer),
             [1e-7, KR, KC])

    # Active Bax translocates to the mitochondria
    equilibrate(Bax(bf=None, **active_monomer),
                Bax(bf=None, state='M', s1=None, s2=None),
                [1e-2, 1e-2])

    # Bax dimerizes/tetramerizes
    Bax_tetramerizes(bax_active_state='M',
                     rate_scaling_factor=rate_scaling_factor)

    # Bcl2 inhibits Bax, Bax2, and Bax4
    Bcl2_binds_Bax1_Bax2_and_Bax4(bax_active_state='M',
                                  rate_scaling_factor=rate_scaling_factor)

    if do_pore_transport:
        Initial(Smac(state='M', bf=None), Parameter('Smac_0', 1e6))
        Initial(CytoC(state='M', bf=None), Parameter('CytoC_0', 1e6))
        pore_transport(Bax(state='M'), 4, Smac(state='M'), Smac(state='C'),
            [[rate_scaling_factor*2*KF, KR, 10]])
        pore_transport(Bax(state='M'), 4, CytoC(state='M'), CytoC(state='C'),
            [[KF, KR, 10]])
Exemplo n.º 6
0
def albeck_11d(do_pore_transport=True):
    """Model incorporating mitochondrial transport.

    Features:
        - Bid activates Bax
        - Active Bax translocates to the mitochondria
        - All reactions on the mito membrane have increased association rates
        - Mitochondrial Bax dimerizes; Bax dimers dimerize to form tetramers
        - Bcl2 binds/inhibits Bax monomers, dimers, and tetramers
        - Bax tetramers bind to and transport Smac to the cytosol
    """

    alias_model_components()
    Initial(Bid(state='U', bf=None), Parameter('Bid_0', 4e4))
    Initial(Bax(bf=None, **inactive_monomer), Parameter('Bax_0', 1e5))
    Initial(Bcl2(bf=None), Parameter('Bcl2_0', 2e4))

    # Fractional volume of the mitochondrial membrane compartment
    v = 0.07
    rate_scaling_factor = 1./v

    # tBid activates Bax in the cytosol
    catalyze(Bid(state='T'), Bax(inactive_monomer), Bax(active_monomer),
             [1e-7, KR, KC])

    # Active Bax translocates to the mitochondria
    equilibrate(Bax(bf=None, **active_monomer),
                Bax(bf=None, state='M', s1=None, s2=None),
                [1e-2, 1e-2])

    # Bax dimerizes/tetramerizes
    Bax_tetramerizes(bax_active_state='M',
                     rate_scaling_factor=rate_scaling_factor)

    # Bcl2 inhibits Bax, Bax2, and Bax4
    Bcl2_binds_Bax1_Bax2_and_Bax4(bax_active_state='M',
                                  rate_scaling_factor=rate_scaling_factor)

    if do_pore_transport:
        Initial(Smac(state='M', bf=None), Parameter('Smac_0', 1e6))
        Initial(CytoC(state='M', bf=None), Parameter('CytoC_0', 1e6))
        pore_transport(Bax(state='M'), 4, Smac(state='M'), Smac(state='C'),
            [[rate_scaling_factor*2*KF, KR, 10]])
        pore_transport(Bax(state='M'), 4, CytoC(state='M'), CytoC(state='C'),
            [[KF, KR, 10]])
Exemplo n.º 7
0
def translocate_tBid_Bax_BclxL():
    """tBid, Bax and BclXL translocate to the mitochondrial membrane."""
    equilibrate(Bid(bf=None, state='T'), Bid(bf=None, state='M'), [1e-1, 1e-3])

    free_Bax = Bax(bf=None, s1=None, s2=None)  # Alias for readability
    equilibrate(free_Bax(state='C'), free_Bax(state='M'), transloc_rates)

    equilibrate(BclxL(bf=None, state='C'), BclxL(bf=None, state='M'),
                transloc_rates)
Exemplo n.º 8
0
def translocate_tBid_Bax_BclxL():
    """tBid, Bax and BclXL translocate to the mitochondrial membrane."""
    equilibrate(Bid(bf=None, state='T'), Bid(bf=None, state='M'), [1e-1, 1e-3])

    free_Bax = Bax(bf=None, s1=None, s2=None) # Alias for readability
    equilibrate(free_Bax(state='C'), free_Bax(state='M'),
                transloc_rates)

    equilibrate(BclxL(bf=None, state='C'), BclxL(bf=None, state='M'),
                transloc_rates)
# Rule 4'
Rule('Autocatalytic', cyclin(Y='P', b=1) % cdc2(Y='P', b=1) + cyclin(Y='P', b=2) % cdc2(Y='U', b=2) + cyclin(Y='P', b=2) % cdc2(Y='U', b=2) >>
cyclin(Y='P', b=1) % cdc2(Y='U', b=1) + cyclin(Y='P', b=2) % cdc2(Y='U', b=2) + cyclin(Y='P', b=2) % cdc2(Y='U', b=2), k4)

# Rule 5
#Rule('Opposed', cyclin(Y='P', b=1) % cdc2(Y='U', b=1) >> cyclin(Y='P', b=1) % cdc2(Y='P', b=1), k5)

# Rule 6
#Rule('Dissociation', cyclin(Y='P', b=1) % cdc2(Y='U', b=1) >> cyclin(Y='P', b=None) + cdc2(Y='U', b=None), k6)
Rule('Dissociation', cyclin(Y='P', b=1) % cdc2(Y='U', b=1) >> cdc2(Y='U', b=None), k6)

# Rule 7
#degrade(cyclin(Y='P', b=None), k7)

# Rules 8 and 9
equilibrate(cdc2(Y='U', b=None), cdc2(Y='P', b=None), [k8, k9])

Observable("YT", cyclin()) # Total Cyclin
Observable("CT", cdc2()) # Total CDC2
Observable("M", cyclin(Y='P', b=1) % cdc2(Y='U', b=1) ) # Active Complex

Observable("Y1", cdc2(Y='U', b=None))
Observable("Y2", cdc2(Y='P', b=None))
Observable("Y3", cdc2(Y='U', b=1) % cyclin(Y='P', b=1))
Observable("Y4", cdc2(Y='P', b=1) % cyclin(Y='P', b=1))
Observable("Y5", cyclin(Y='U', b=None))

#Observable("CYCLIN_P", cyclin(Y='P', b=None))
# [C2] in Tyson

Parameter("cdc0", 1*NA_V)
Exemplo n.º 10
0
Observable('obsp27_p21p', p27_p21(b=None, S='p'))
Observable('obsWee1i', Wee1(b=None, S='i'))
Observable('obsWee1a', Wee1(b=None, S='a'))

#Declare Rules

#E2F promotes the synthesis of Cyclin E  
#I can show synthesis, as shown below, but how do I show the promotion part????
Rule('Synthesize_Ce', None >> Ce(), kSCe)


#Previously, I thought synthesis should be shown as an enzyme reaction because it is promoted by a certain factor:
#catalyze(E2F(S='u'), 'b', Ce(S='i'), 'b', Ce(S='a'), (kfce, krce, kcce))  # calls the function catalyze to simulate activation of Cyclin E

#Parameters that bind to Ce
bind_table_Ce([[ Ce(S= 'a')]
	     [pRB(S = 'u'), pRB_rates, None]              #pRB inhibits Cyclin E 
	     [pRB(S = 'p'), pRBp_rates, None]             #pRBp inhibits Cyclin E 
	     [cdk2(S = 'i'), None, cdk2_rates]])	  #cdk2 binds to Cylcin E to form a complex. 
	    
#The Ce/Cdk2 complex binds to p27_p21
Rule ('Ce_Cdk2_p27_p21_bind',p27_21(b=None) + Ce(b=1) % Cdke(b=1, S='a') <> Ce(b=1) % Cdk2(b=1,b=2, S ='a') % p27_p21(b=2) , *[p27_rates])


#The Ce/Cdk2 complex equilibrates from inactive to active
equilibrate(Ce(b=1)%Cdk2(b=None,S='i'),Ce(b=1)%Cdk2(b=None,S='a'),[kfcecdk,krcecdk])

equilibrate(p27_p21(b=None,S='u'),p27_p21(b=None, S='p'),[kfp27, krp27]

#Degradation of Cyclin E
#degrade(Ce(), kDCe)
Exemplo n.º 11
0
def pore_to_parp():
    """Defines what happens after the pore is activated and Cytochrome C and
    Smac are released.

    Uses CytoC, Smac, Apaf, Apop, C3, C6, C8, C9, PARP, XIAP monomers and their
    associated parameters to generate the rules that describe apoptosome
    formation, XIAP inhibition, activation of caspases (including
    caspase-6-mediated feedback), and cleavage of effector caspase substrates
    as specified in EARM 1.0.

    Declares initial conditions for CytoC, Smac, Apaf-1, Apoptosome, caspases
    3, 6, and 9, XIAP, and PARP.
    """

    # Declare initial conditions:

    Parameter('Apaf_0'  , 48176) # Apaf-1 (J Immunol 2005)
    Parameter('C3_0'    , 96352) # procaspase-3 (pro-C3) (J Immunol 2005)
    Parameter('C6_0'    , 1.0e4) # procaspase-6 (pro-C6)
    Parameter('C9_0'    ,  9635) # procaspase-9 (pro-C9) (J Immunol 2005)
    Parameter('XIAP_0'  , 14452) # X-linked inhibitor of apoptosis protein (J Immunol 2005)
    Parameter('PARP_0'  , 1.0e6) # C3* substrate 

    alias_model_components()

    Initial(Apaf(bf=None, state='I'), Apaf_0)
    Initial(C3(bf=None, state='pro'), C3_0)
    Initial(C6(bf1=None, bf2=None, state='pro'), C6_0)
    #Initial(C6(bf=None, state='pro'), C6_0)
    Initial(C9(bf=None), C9_0)
    Initial(PARP(bf=None, state='U'), PARP_0)
    Initial(XIAP(bf=None), XIAP_0)

    # CytoC and Smac activation after release
    # --------------------------------------

    equilibrate(Smac(bf=None, state='C'), Smac(bf=None, state='A'),
                          transloc_rates)

    equilibrate(CytoC(bf=None, state='C'), CytoC(bf=None, state='A'),
                          transloc_rates)

    # Apoptosome formation
    # --------------------
    #   Apaf + cCytoC <-->  Apaf:cCytoC --> aApaf + cCytoC
    #   aApaf + pC9 <-->  Apop
    #   Apop + pC3 <-->  Apop:pC3 --> Apop + C3

    catalyze(CytoC(state='A'), Apaf(state='I'), Apaf(state='A'), [5.77e-10, 5.7e-3, KC])#(J Immunol 2005)
    one_step_conv(Apaf(state='A'), C9(), Apop(bf=None), [5.90e-7, 0.07493])
    catalyze(Apop(), C3(state='pro'), C3(bf=None, state='A'), [9.15e-7, 0.1, 0.7])

    # Apoptosome-related inhibitors
    # -----------------------------
    #   Apop + XIAP <-->  Apop:XIAP  
    #   cSmac + XIAP <-->  cSmac:XIAP  
    bind(Apop(), XIAP(), [2e-6, KR])
    bind(Smac(state='A'), XIAP(), [1.45e-5, 2.21e-3])

    # Caspase reactions
    # -----------------
    # Includes effectors, inhibitors, and feedback initiators:
    #
    #   pC3 + C8 <--> pC3:C8 --> C3 + C8 CSPS
    #   pC6 + C3 <--> pC6:C3 --> C6 + C3 CSPS
    #   XIAP + C3 <--> XIAP:C3 --> XIAP + C3_U CSPS
    #   PARP + C3 <--> PARP:C3 --> CPARP + C3 CSPS
    #   pC8 + C6 <--> pC8:C6 --> C8 + C6 CSPS
    from pysb.macros import catalyze_state
    catalyze(C8(state='A'), C3(state= 'pro'),C3(state = 'A'), [1e-7, KR, KC])
    catalyze(XIAP(), C3(state='A'), C3(state = 'ub'), [KF, KR, 1e-1]) #[5.13e-6, 2.40e-3, 1e-1]
    catalyze(C3(state='A'), PARP(state='U'), PARP(state='C'), [KF, 1e-2, KC])
    #catalyze_state(C3(state='A'), 'bf', C6(), 'bf', 'state', 'pro', 'A', [KF, KR, KC])
    #catalyze(C6(state='A'), C8(state='pro'), C8(state='A'), [3e-8, KR, KC])
    
    Parameter('kf51', 1e-6) # Generic association rate constant
    Parameter('kr51', 1e-3) # Generic dessociation rate constant
    Parameter('kf52', 1e-6) # Generic association rate constant
    Parameter('kr52', 1e-3) # Generic dessociation rate constant
    Parameter('kc52', 1) # Generic catalytic rate constant
    alias_model_components()
    catalyze_state(C3(state='A'), 'bf', C6(), 'bf1', 'state', 'pro', 'A', [KF, KR, KC])
    from pysb.macros import bind as bind2
    bind2(C6(bf1 = None, bf2 = None, state = 'A'), 'bf1', proC8(bDED = None), 'bDED', [kf51, kr51])
    bind2(C6(bf1 = ANY, bf2 = None, state = 'A'), 'bf2', proC8(bDED = None), 'bDED', [kf52, kr52])
    Rule('C8_activation_byC6', C6(bf1 = ANY, bf2 = ANY, state = 'A')%proC8(bDED = ANY)%proC8(bDED = ANY) >> C8(bf = None, state = 'A') + C6(bf1=None, bf2=None, state = 'A'), kc52)
Exemplo n.º 12
0
Initial(CDC25(b=None, S='i'), CDC25_0)     

#Declare Rules

#E2F promotes the synthesis of Cyclin A 
#I can show synthesis, as shown below, but how do I show the promotion part????

#Cyclin A Synthesis and Degradation
synthesize(Ca(b=None, S = 'a'), kSCa)
degrade(Ca(b=None, S='a'),kDCa)

#Cyclin A binds to Cdk2 
Rule('Ca_Cdk2_bind',Ca(b=None, S='a') + Cdk2(b=None, c=None, S='i') <> Ca(b=1, S='a') % Cdk2(b=1, c=None, S ='i'), *[kcdk2f, kcdk2r])

#The Ca/Cdk2 complex equilibrates from inactive to active
equilibrate(Ca(b=1, S='a') % Cdk2(b=1, c=None, S='i'),Ca(b=1, S='a') % Cdk2(b=1, c=None, S='a'),[kfcacdk,krcacdk])

#The Ca/Cdk2 complex binds to p27_p21 - this complex is inactive
Rule ('Ca_Cdk2_p27_p21_bind',p27_p21(b=None, S='u') + Ca(b=1, S='a') % Cdk2(b=1, c=None, S='a') <> Ca(b=1, S='i') % Cdk2(b=1, c=2, S ='i') % p27_p21(b=2, S='u') , *[kfcp27_p21, krcp27_p21])

#Equilibrate CDC25
equilibrate(CDC25(b=None,S='i'),CDC25(b=None, S='a'),[kfCDC25, krCDC25])

#Equilibrate Cdh1
equilibrate(Cdh1(b=None,S='i'),Cdh1(b=None, S='a'),[kfCdh1, krCdh1])

#Previously, I thought synthesis should be shown as an enzyme reaction because it is promoted by a certain factor:
#catalyze(E2F(S='u'), 'b', Ca(S='i'), 'b', Ca(S='a'), (kfca, krca, kcca))  # calls the function catalyze to simulate activation of Cyclin E

#Parameters that bind to Ca
#bind_table([[ Ca(S= 'a')]
Exemplo n.º 13
0
    1.0e-1)  # catalysis occurs more quickly than forward and reverse reactions
Parameter('kf3', 1.0e-6)
Parameter('kr3', 1.0e-3)
Parameter('kc3', 1.0e-1)
Parameter('kf4', 1.0e-6)
Parameter('kr4', 1.0e-3)
Parameter('kc4', 1.0e-1)
Parameter('kf5', 1.0e-6)
Parameter('kr5', 1.0e-3)
Parameter('kf6', 1.0e-6)
Parameter('kr6', 1.0e-3)
Parameter('kf7', 1.0e-6)

# now input the rules
# transport Cys2 (cystine) from the Env into the Cyto
equilibrate(Cys2(bCR=None)**Env, Cys2(bCR=None)**Cyto, [kf1, kr1])
# Rule('Cys2_transport_via_XC', Cys2() ** Env + XC() ** PM >> Cys2() ** Cyto + XC() ** PM, kf1)

# once in the Cyto, Cys2 (cystine) is reduced to Cys via CR catalysis
catalyze(CR()**Cyto, 'bCys2',
         Cys2()**Cyto, 'bCR',
         Cys(bGCL=None)**Cyto, [kf2, kr2, kc2])
# Rule('Cys2_CR_bind', Cys2(bCR=None) ** Cyto + CR(bCys2=None) ** Cyto | Cys2(bCR=1) ** Cyto % CR(bCys2=1) ** Cyto, kf2, kr2)

# convert Cys to GlutCys via GCL catalysis in the Cyto
catalyze(GCL()**Cyto, 'bCys',
         Cys()**Cyto, 'bGCL',
         GlutCys(bGSS=None)**Cyto, [kf3, kr3, kc3])
# Rule('Cys_GSH_conversion', Cys(bCys2=None) ** Cyto | GSH(bGPX4=None) ** Cyto, kf3, kr2)

# convert Glut-Cys to GSH via GSS catalysis in the Cyto
Exemplo n.º 14
0
Parameter('kr15', 1.0e-3)
Parameter('kr16', 1.0e-3)
Parameter('kr17', 1.0e-3)
Parameter('kr18', 1.0e-3)
Parameter('kr19', 1.0e-3)
Parameter('kr20', 1.0e-3)
Parameter('kr21', 1.0e-3)
Parameter('kr22', 1.0e-3)
Parameter('kr23', 1.0e-3)
Parameter('kc13', 1.0e-1)
Parameter('kc15', 1.0e-1)

# now input the rules

# transport Cys2 (cystine) from the Env into the Cyto
equilibrate(Cys2(bCR=None)**Env, Cys2(bCR=None)**Cyto, [kf1, kr1])
# Rule('Cys2_transport_via_XC', Cys2() ** Env + XC() ** PM >> Cys2() ** Cyto + XC() ** PM, kf1)

# once in the Cyto, Cys2 (cystine) is reduced to Cys via CR catalysis
catalyze(CR()**Cyto, 'bCys2',
         Cys2()**Cyto, 'bCR',
         Cys(bGCL=None)**Cyto, [kf2, kr2, kc2])
# Rule('Cys2_CR_bind', Cys2(bCR=None) ** Cyto + CR(bCys2=None) ** Cyto | Cys2(bCR=1) ** Cyto % CR(bCys2=1) ** Cyto, kf2, kr2)

# convert Cys to GlutCys via GCL catalysis in the Cyto
catalyze(GCL()**Cyto, 'bCys',
         Cys()**Cyto, 'bGCL',
         GlutCys(bGSS=None)**Cyto, [kf3, kr3, kc3])
# Rule('Cys_GSH_conversion', Cys(bCys2=None) ** Cyto | GSH(bGPX4=None) ** Cyto, kf3, kr2)

# convert Glut-Cys to GSH via GSS catalysis in the Cyto
Exemplo n.º 15
0
def pore_to_parp():
    """Defines what happens after the pore is activated and Cytochrome C and
    Smac are released.

    Uses CytoC, Smac, Apaf, Apop, C3, C6, C8, C9, PARP, XIAP monomers and their
    associated parameters to generate the rules that describe apoptosome
    formation, XIAP inhibition, activation of caspases (including
    caspase-6-mediated feedback), and cleavage of effector caspase substrates
    as specified in EARM 1.0.

    Declares initial conditions for CytoC, Smac, Apaf-1, Apoptosome, caspases
    3, 6, and 9, XIAP, and PARP.
    """

    # Declare initial conditions:

    Parameter('Apaf_0'  , 1.0e5) # Apaf-1
    Parameter('C3_0'    , 1.0e4) # procaspase-3 (pro-C3)
    Parameter('C6_0'    , 1.0e4) # procaspase-6 (pro-C6)
    Parameter('C9_0'    , 1.0e5) # procaspase-9 (pro-C9)
    Parameter('XIAP_0'  , 1.0e5) # X-linked inhibitor of apoptosis protein
    Parameter('PARP_0'  , 1.0e6) # C3* substrate

    alias_model_components()

    Initial(Apaf(bf=None, state='I'), Apaf_0)
    Initial(C3(bf=None, state='pro'), C3_0)
    Initial(C6(bf=None, state='pro'), C6_0)
    Initial(C9(bf=None), C9_0)
    Initial(PARP(bf=None, state='U'), PARP_0)
    Initial(XIAP(bf=None), XIAP_0)

    # CytoC and Smac activation after release
    # --------------------------------------

    equilibrate(Smac(bf=None, state='C'), Smac(bf=None, state='A'),
                          transloc_rates)

    equilibrate(CytoC(bf=None, state='C'), CytoC(bf=None, state='A'),
                          transloc_rates)

    # Apoptosome formation
    # --------------------
    #   Apaf + cCytoC <-->  Apaf:cCytoC --> aApaf + cCytoC
    #   aApaf + pC9 <-->  Apop
    #   Apop + pC3 <-->  Apop:pC3 --> Apop + C3

    catalyze(CytoC(state='A'), Apaf(state='I'), Apaf(state='A'), [5e-7, KR, KC])
    one_step_conv(Apaf(state='A'), C9(), Apop(bf=None), [5e-8, KR])
    catalyze(Apop(), C3(state='pro'), C3(bf=None, state='A'), [5e-9, KR, KC]) 

    # Apoptosome-related inhibitors
    # -----------------------------
    #   Apop + XIAP <-->  Apop:XIAP  
    #   cSmac + XIAP <-->  cSmac:XIAP  

    bind(Apop(), XIAP(), [2e-6, KR]) 
    bind(Smac(state='A'), XIAP(), [7e-6, KR]) 

    # Caspase reactions
    # -----------------
    # Includes effectors, inhibitors, and feedback initiators:
    #
    #   pC3 + C8 <--> pC3:C8 --> C3 + C8 CSPS
    #   pC6 + C3 <--> pC6:C3 --> C6 + C3 CSPS
    #   XIAP + C3 <--> XIAP:C3 --> XIAP + C3_U CSPS
    #   PARP + C3 <--> PARP:C3 --> CPARP + C3 CSPS
    #   pC8 + C6 <--> pC8:C6 --> C8 + C6 CSPS
    catalyze(C8(state='A'), C3(state='pro'), C3(state='A'), [1e-7, KR, KC])
    catalyze(XIAP(), C3(state='A'), C3(state = 'ub'), [2e-6, KR, 1e-1])
    catalyze(C3(state='A'), PARP(state='U'), PARP(state='C'), [KF, 1e-2, KC])
    catalyze(C3(state='A'), C6(state='pro'), C6(state='A'), [KF, KR, KC])
    catalyze(C6(state='A'), C8(state='pro'), C8(state='A'), [3e-8, KR, KC])
Exemplo n.º 16
0
Parameter('kr20', 1.0e-3)
Parameter('kr21', 1.0e-3)
Parameter('kr22', 1.0e-3)
Parameter('kc13', 1.0e-1)
Parameter('kc15', 1.0e-1)

# now input the rules

# Fe3+ binds transferrin in the Env
Rule('Fe3_binds_Transferrin', Fe3(b1Transferrin=None, b2STEAP3=None) ** Env + Transferrin(b1Fe3=None, b2TFRC=None) ** Env | Fe3(b1Transferrin=1, b2STEAP3=None) ** Env % Transferrin(b1Fe3=1, b2TFRC=None) ** Env, kf8, kr8)

# Transferrin-Fe complex binds transferrin receptor (TFRC) in the PM
Rule('Transferrin_Fe_complex_binds_TFRC', Fe3(b1Transferrin=1, b2STEAP3=None) ** Env % Transferrin(b1Fe3=1, b2TFRC=None) ** Env + TFRC(b2Transferrin=None) ** PM | Fe3(b1Transferrin=1, b2STEAP3=None) ** PM % Transferrin(b1Fe3=1, b2TFRC=2) ** PM % TFRC(b2Transferrin=2) ** PM, kf9, kr9) # can you have 3 molecules binding?

# TFRC/transferrin-iron complex is endocytosed from the PM into the Lysos_Cyto
equilibrate(Fe3(b1Transferrin=1, b2STEAP3=None) ** PM % Transferrin(b1Fe3=1, b2TFRC=2) ** PM % TFRC(b2Transferrin=2) ** PM, Fe3(b1Transferrin=1, b2STEAP3=None) ** Lysos_Cyto % Transferrin(b1Fe3=1, b2TFRC=2) ** Lysos_Cyto % TFRC(b2Transferrin=2) ** Lysos_Cyto, [kf10, kr10])

# TFRC/transferrin-iron complex is localized to the lysosome
# equilibrate(Fe3(b1Transferrin=1, b2STEAP3=None) ** Cyto % Transferrin(b1Fe3=1, b2TFRC=1) ** Cyto % TFRC(b2Transferrin=1) ** Cyto, Fe3(b1Transferrin=1, b2STEAP3=None) ** Lysos % Transferrin(b1Fe3=1, b2TFRC=1) ** Lysos % TFRC(b2Transferrin=1) ** Lysos, [kf11, kr11])

# TFRC/transferrin-iron complex dissociates due to acidic conditions of the lysosome
Rule('TFRC_Transferrin_Fe3_complex_dissociates', Fe3(b1Transferrin=1, b2STEAP3=None) ** Lysos_Cyto % Transferrin(b1Fe3=1, b2TFRC=2) ** Lysos_Cyto % TFRC(b2Transferrin=2) ** Lysos_Cyto | Fe3(b1Transferrin=None, b2STEAP3=None) ** Lysos_Cyto + Transferrin(b1Fe3=None, b2TFRC=None) ** Lysos_Cyto + TFRC(b2Transferrin=None) ** Lysos_Cyto, kf12, kr12)

# Fe3+ is oxidized to Fe2+ via STEAP3 catalysis
catalyze(STEAP3() ** Lysos_Cyto, 'b2Fe3', Fe3() ** Lysos_Cyto, 'b2STEAP3', Fe2(bH2O2=None) ** Lysos_Cyto, [kf13, kr13, kc13])

# Fe2+ is exported from the lysosome (Lyso) to the cytosol (Cyto)
equilibrate(Fe2(bH2O2=None) ** Lysos_Cyto, Fe2(bH2O2=None) ** Cyto, [kf14, kr14])

# Fe2+ reacts with hydrogen peroxide (H202) via the Fenton reaction to form an hydroxyl radical (HydroxyRad) in the cytosol (Cyto)
catalyze(Fe2() ** Cyto, 'bH2O2', H2O2() ** Cyto, 'bFe2', HydroxyRad(b1=None) ** Cyto, [kf15, kr15, kc15])
Exemplo n.º 17
0
# Declare Rules


# Cyclin B Synthesis and Degradation
synthesize(Cb(b=None, S="a"), kSCb)
degrade(Cb(b=None, S="a"), kDCb)

# Cyclin B binds to Cdk1
Rule(
    "Cb_Cdk1_bind",
    Cb(b=None, S="a") + Cdk1(b=None, c=None, S="i") <> Cb(b=1, S="a") % Cdk1(b=1, c=None, S="i"),
    *[kcdk1f, kcdk1r]
)

# The Cb/Cdk1 complex equilibrates from inactive to active
equilibrate(Cb(b=1, S="a") % Cdk1(b=1, c=None, S="i"), Cb(b=1, S="a") % Cdk1(b=1, c=None, S="a"), [kfcbcdk, krcbcdk])

# The Cb/Cdk1 complex binds to p27_p21 - this complex is inactive
Rule(
    "Cb_Cdk1_p27_p21_bind",
    p27_p21(b=None, S="u") + Cb(b=1, S="a") % Cdk1(b=1, c=None, S="a")
    <> Cb(b=1, S="i") % Cdk1(b=1, c=2, S="i") % p27_p21(b=2, S="u"),
    *[kfcp27_p21, krcp27_p21]
)

# Equilibrate CDC25
equilibrate(CDC25(b=None, S="i"), CDC25(b=None, S="a"), [kfCDC25, krCDC25])

# Equilibrate CDC20
equilibrate(CDC20(b=None, S="i"), CDC20(b=None, S="a"), [kfCDC20, krCDC20])
Exemplo n.º 18
0
Observable('obspRBp', pRB(b=None, S='p'))
Observable('obspRBpp', pRB(b=None, S='pp'))



#Catalyze Rule for reaction: The GF activates the synthesis of the transcription factor AP1. 
catalyze(GF(), 'b', AP1(S='i'), 'b', AP1(S='a'), (kfap1, krap1, kcap1))  # calls the function catalyze to simulate synthesis of AP1

#AP1 activates Cyclin D.
catalyze(AP1(S='a'), 'b', Cd(S='i'), 'b', Cd(S='a'), (kfcd1, krcd1, kccd1))  # calls the function catalyze to simulate synthesis of AP1 
  
#E2F activates Cyclin D  
catalyze(E2F(S='u'), 'b', Cd(S='i'), 'b', Cd(S='a'), (kfcd2, krcd2, kccd2))  # calls the function catalyze to simulate synthesis of AP1   
  

equilibrate(Cd(b=1)%Cdk4_6(b=None,S='i'),Cd(b=1)%Cdk4_6(b=None,S='a'),[kfcdcdk,krcdcdk])

Rule('Cd_Cdk4_6_p27_p21_bind',p27_21(b=None) + Cd(b=1) % Cdk4_6(b=1, S='a') <> Cd(b=1) % Cdk4_6(b=1,b=2 S ='a') % p27_p21(b=2 , *[???????????])

#CHANGE THE NAMES OF THE RATES ABOVE SO THAT THEY FIT WITH THIS BIND TABLE. THIS BIND TABLE SHOULD REPLACE THE FIRST THREE RULES LISTED ABOVE
bind_table_Cd([[ Cd(S = 'i'), Cd(S = 'a')]
	     [pRB(S = 'u'), pRB_rates, None]              #pRB inhibits Cyclin D 
	     [pRB(S = 'p'), pRBp_rates, None]             #pRBp inhibits Cyclin D 
	     [cdk4_6(S = 'i'), None, cdk4_6_rates]])

equilibrate(pRB(b=None,S='u'),pRB(b=None,S='p'),[kfprb,krprb]

equilibrate(pRB(b=None,S='p'),pRB(b=None,S='pp'),[kfprbp,krprbp]

equilibrate(E2F(b=None,S='u'),E2F(b=None, S='p'),[kfEp, krEp]
Exemplo n.º 19
0
 def define_macro_inside_function():
     Monomer('C')
     equilibrate(A(), C(), [2, 2])
Exemplo n.º 20
0
def translocate_tBid_Bax_BclxL():
    """tBid, Bax and BclXL translocate to the mitochondrial membrane."""
    equilibrate(Bid(bf=None, state='T'), Bid(bf=None, state='M'), [1e-1, 1e-3])
Exemplo n.º 21
0
def howells(do_pore_assembly=True, do_pore_transport=False):
    """The model drawn from [Howells2011]_.

    This model builds on the model from [Chen2007biophysj]_,
    implemented in :py:func:`chen_biophys_j`. The core reactions from the Chen
    et al. model are the same, but Howells et al. modify some parameter values
    and add a number of Bad-related reactions, including (see source code):

    * Unphosphorylated Bad spontaneously translocates between cytosol and
      mitochondria
    * Bad binds Bcl-2
    * Bad displaces tBid from Bcl-2
    * Cytosolic, mitochondrial, and Bad in a mitochondrial Bad:Bcl2 complex
      can be phosphorylated at various rates (this is modeled as a first-order
      reaction with no explicit representation of kinases)
    * Bad can be sequestered by, and released from, 14-3-3 domains in the
      cytosol (modeled as a first-order reaction with no explicit
      representation of 14-3-3-domain-containing proteins)

    Parameters
    ----------
    do_pore_assembly : True (default) or False
        As for :py:func:`chen_biophys_j`.
    do_pore_transport : True or False (default)
        As for :py:func:`chen_biophys_j`.
    """

    # Build on the model from [Chen2007biophysj]_:
    chen_biophys_j(do_pore_assembly=do_pore_assembly,
                   do_pore_transport=do_pore_transport)
    alias_model_components()

    # Override a few parameter values from the pre-existing model
    bind_BidT_Bcl2_kr.value = 2e-3  # was 4e-2 in Chen 2007 Biophys J
    bind_BaxA_Bcl2_kr.value = 2e-3  # was 1e-3 in Chen 2007 Biophys J
    spontaneous_pore_BaxA_to_Bax4_kf.value = 2000e6 * 4 / (N_A * V)
    # was 2e6 in Chen 2007 B.J.
    spontaneous_pore_BaxA_to_Bax4_kr.value = 5e-5  # was 0 in Chen 2007 B.J.

    # Translocation equilibrium between unphosphorylated cytosolic and
    # mitochondrial Bad
    equilibrate(Bad(state='C', serine='U', bf=None),
                Bad(state='M', serine='U', bf=None), [1e-2, 2e-3])

    # Bad binds Bcl2
    bind(Bad(state='M'), Bcl2, [15e6 / (N_A * V), 2e-3])

    # Bad displaces tBid from Bcl2 (parameter `k_tBid_rel1` in paper)
    displace(Bad(state='M'), Bid(state='T'), Bcl2, 5e6 / (N_A * V))

    # Phosphorylation of Bad
    phosphorylate_Bad_k1 = Parameter('phosphorylate_Bad_k1', 1e-3)
    phosphorylate_Bad_k2 = Parameter('phosphorylate_Bad_k2', 1e-4)
    Rule(
        'phosphorylate_BadCU_to_BadCP',  # Cytosolic Bad
        Bad(state='C', serine='U') >> Bad(state='C', serine='P'),
        phosphorylate_Bad_k1)
    Rule(
        'phosphorylate_BadMU_to_BadCP',  # Mitochondrial Bad
        Bad(state='M', serine='U', bf=None) >> Bad(
            state='C', serine='P', bf=None),
        phosphorylate_Bad_k1)
    Rule(
        'phosphorylate_BadMUBcl2_to_BadCP',  # Mitochondrial Bad:Bcl2
        Bad(state='M', serine='U', bf=1) % Bcl2(bf=1) >>
        Bad(state='C', serine='P', bf=None) + Bcl2(bf=None),
        phosphorylate_Bad_k2)

    # Sequester phospho-Bad by "binding" 14-3-3 domains (parameter `k_BAD_seq`)
    Rule('sequester_BadCP_to_BadC1433',
         Bad(state='C', serine='P') >> Bad(state='C', serine='B'),
         Parameter('sequester_BadCP_to_BadC1433_k', 1e-3))

    # Release of Bad from 14-3-3 domains (parameter `k_BAD_rel`)
    Rule('release_BadC1433_to_BadCU',
         Bad(state='C', serine='B') >> Bad(state='C', serine='U'),
         Parameter('release_BadC1433_to_BadCU_k', 8.7e-4))
Exemplo n.º 22
0
def howells(do_pore_assembly=True, do_pore_transport=False):
    """The model drawn from [Howells2011]_.

    This model builds on the model from [Chen2007biophysj]_,
    implemented in :py:func:`chen_biophys_j`. The core reactions from the Chen
    et al. model are the same, but Howells et al. modify some parameter values
    and add a number of Bad-related reactions, including (see source code):

    * Unphosphorylated Bad spontaneously translocates between cytosol and
      mitochondria
    * Bad binds Bcl-2
    * Bad displaces tBid from Bcl-2
    * Cytosolic, mitochondrial, and Bad in a mitochondrial Bad:Bcl2 complex
      can be phosphorylated at various rates (this is modeled as a first-order
      reaction with no explicit representation of kinases)
    * Bad can be sequestered by, and released from, 14-3-3 domains in the
      cytosol (modeled as a first-order reaction with no explicit
      representation of 14-3-3-domain-containing proteins)

    Parameters
    ----------
    do_pore_assembly : True (default) or False
        As for :py:func:`chen_biophys_j`.
    do_pore_transport : True or False (default)
        As for :py:func:`chen_biophys_j`.
    """

    # Build on the model from [Chen2007biophysj]_:
    chen_biophys_j(do_pore_assembly=do_pore_assembly,
                     do_pore_transport=do_pore_transport)
    alias_model_components()

    # Override a few parameter values from the pre-existing model
    bind_BidT_Bcl2_kr.value = 2e-3 # was 4e-2 in Chen 2007 Biophys J
    bind_BaxA_Bcl2_kr.value = 2e-3 # was 1e-3 in Chen 2007 Biophys J
    spontaneous_pore_BaxA_to_Bax4_kf.value = 2000e6*4/(N_A*V)
                                                    # was 2e6 in Chen 2007 B.J.
    spontaneous_pore_BaxA_to_Bax4_kr.value = 5e-5   # was 0 in Chen 2007 B.J.

    # Translocation equilibrium between unphosphorylated cytosolic and
    # mitochondrial Bad
    equilibrate(Bad(state='C', serine='U', bf=None),
                Bad(state='M', serine='U', bf=None), [1e-2, 2e-3])

    # Bad binds Bcl2
    bind(Bad(state='M'), Bcl2, [15e6/(N_A*V), 2e-3])

    # Bad displaces tBid from Bcl2 (parameter `k_tBid_rel1` in paper)
    displace(Bad(state='M'), Bid(state='T'), Bcl2, 5e6/(N_A*V))

    # Phosphorylation of Bad
    phosphorylate_Bad_k1 = Parameter('phosphorylate_Bad_k1', 1e-3)
    phosphorylate_Bad_k2 = Parameter('phosphorylate_Bad_k2', 1e-4)
    Rule('phosphorylate_BadCU_to_BadCP',     # Cytosolic Bad
         Bad(state='C', serine='U') >> Bad(state='C', serine='P'),
         phosphorylate_Bad_k1)
    Rule('phosphorylate_BadMU_to_BadCP',     # Mitochondrial Bad
         Bad(state='M', serine='U', bf=None) >>
         Bad(state='C', serine='P', bf=None),
         phosphorylate_Bad_k1)
    Rule('phosphorylate_BadMUBcl2_to_BadCP', # Mitochondrial Bad:Bcl2
         Bad(state='M', serine='U', bf=1) % Bcl2(bf=1) >>
         Bad(state='C', serine='P', bf=None) + Bcl2(bf=None),
         phosphorylate_Bad_k2)

    # Sequester phospho-Bad by "binding" 14-3-3 domains (parameter `k_BAD_seq`)
    Rule('sequester_BadCP_to_BadC1433',
         Bad(state='C', serine='P') >> Bad(state='C', serine='B'),
         Parameter('sequester_BadCP_to_BadC1433_k', 1e-3))

    # Release of Bad from 14-3-3 domains (parameter `k_BAD_rel`)
    Rule('release_BadC1433_to_BadCU',
         Bad(state='C', serine='B') >> Bad(state='C', serine='U'),
         Parameter('release_BadC1433_to_BadCU_k', 8.7e-4))
Exemplo n.º 23
0
def pore_to_parp():
    """Defines what happens after the pore is activated and Cytochrome C and
    Smac are released.

    Uses CytoC, Smac, Apaf, Apop, C3, C6, C8, C9, PARP, XIAP monomers and their
    associated parameters to generate the rules that describe apoptosome
    formation, XIAP inhibition, activation of caspases (including
    caspase-6-mediated feedback), and cleavage of effector caspase substrates
    as specified in EARM 1.0.

    Declares initial conditions for CytoC, Smac, Apaf-1, Apoptosome, caspases
    3, 6, and 9, XIAP, and PARP.
    """

    # Declare initial conditions:

    Parameter('Apaf_0', 1.0e5)  # Apaf-1
    Parameter('C3_0', 1.0e4)  # procaspase-3 (pro-C3)
    Parameter('C6_0', 1.0e4)  # procaspase-6 (pro-C6)
    Parameter('C9_0', 1.0e5)  # procaspase-9 (pro-C9)
    Parameter('XIAP_0', 1.0e5)  # X-linked inhibitor of apoptosis protein
    Parameter('PARP_0', 1.0e6)  # C3* substrate

    alias_model_components()

    Initial(Apaf(bf=None, state='I'), Apaf_0)
    Initial(C3(bf=None, state='pro'), C3_0)
    Initial(C6(bf=None, state='pro'), C6_0)
    Initial(C9(bf=None), C9_0)
    Initial(PARP(bf=None, state='U'), PARP_0)
    Initial(XIAP(bf=None), XIAP_0)

    # CytoC and Smac activation after release
    # --------------------------------------

    equilibrate(Smac(bf=None, state='C'), Smac(bf=None, state='A'),
                transloc_rates)

    equilibrate(CytoC(bf=None, state='C'), CytoC(bf=None, state='A'),
                transloc_rates)

    # Apoptosome formation
    # --------------------
    #   Apaf + cCytoC <-->  Apaf:cCytoC --> aApaf + cCytoC
    #   aApaf + pC9 <-->  Apop
    #   Apop + pC3 <-->  Apop:pC3 --> Apop + C3

    catalyze(CytoC(state='A'), Apaf(state='I'), Apaf(state='A'),
             [5e-7, KR, KC])
    one_step_conv(Apaf(state='A'), C9(), Apop(bf=None), [5e-8, KR])
    catalyze(Apop(), C3(state='pro'), C3(bf=None, state='A'), [5e-9, KR, KC])

    # Apoptosome-related inhibitors
    # -----------------------------
    #   Apop + XIAP <-->  Apop:XIAP
    #   cSmac + XIAP <-->  cSmac:XIAP

    bind(Apop(), XIAP(), [2e-6, KR])
    bind(Smac(state='A'), XIAP(), [7e-6, KR])

    # Caspase reactions
    # -----------------
    # Includes effectors, inhibitors, and feedback initiators:
    #
    #   pC3 + C8 <--> pC3:C8 --> C3 + C8 CSPS
    #   pC6 + C3 <--> pC6:C3 --> C6 + C3 CSPS
    #   XIAP + C3 <--> XIAP:C3 --> XIAP + C3_U CSPS
    #   PARP + C3 <--> PARP:C3 --> CPARP + C3 CSPS
    #   pC8 + C6 <--> pC8:C6 --> C8 + C6 CSPS
    catalyze(C8(state='A'), C3(state='pro'), C3(state='A'), [1e-7, KR, KC])
    catalyze(XIAP(), C3(state='A'), C3(state='ub'), [2e-6, KR, 1e-1])
    catalyze(C3(state='A'), PARP(state='U'), PARP(state='C'), [KF, 1e-2, KC])
    catalyze(C3(state='A'), C6(state='pro'), C6(state='A'), [KF, KR, KC])
    catalyze(C6(state='A'), C8(state='pro'), C8(state='A'), [3e-8, KR, KC])
Exemplo n.º 24
0
    'catalyze_DISCC8pro_to_DISC_C8A',
    DISC(bf=1) % C8(bf=1, state='pro') >>
    DISC(bf=None) + C8(bf=None, state='A'), catalyze_DISCC8pro_to_DISC_C8A_kc)
Rule(
    'bind_C8A_BidU_to_C8ABidU',
    C8(bf=None, state='A') + Bid(bf=None, state='U')
    | C8(bf=1, state='A') % Bid(bf=1, state='U'), bind_C8A_BidU_to_C8ABidU_kf,
    bind_C8A_BidU_to_C8ABidU_kr)
Rule(
    'catalyze_C8ABidU_to_C8A_BidT',
    C8(bf=1, state='A') % Bid(bf=1, state='U') >>
    C8(bf=None, state='A') + Bid(bf=None, state='T'),
    catalyze_C8ABidU_to_C8A_BidT_kc)

macros.equilibrate(
    Bid(bf=None, state='T'), Bid(bf=None, state='M'), [kBidon, kBidoff]
)  # This doesn't take into account the change in volume from the change in compartments
Rule('tBid_bind_A1',
     Bid(bf=None, state='T') + A1(bf=None) | Bid(bf=1, state='T') % A1(bf=1),
     k26, kf26)

Rule(
    'mBid_bind_Bcl2',
    Bid(bf=None, state='M') + Bcl2(bf=None)
    | Bid(bf=1, state='M') % Bcl2(bf=1), k2, kf2)

macros.catalyze_one_step(Bid(bf=None, state='M'),
                         Bax(bf=None, s1=None, s2=None, state='C'),
                         Bax(bf=None, s1=None, s2=None, state='A'), k3)
macros.equilibrate(Bax(bf=None, s1=None, s2=None, state='A'),
                   Bax(bf=None, s1=None, s2=None, state='M'),