def bind_Gab1(): " v688-694 " " Gab1 binds receptor dimers via Grb2 only when (1) dimers are in plasma mem (2) Grb2 (no SOS) is directly bound to receptor " # Initial amount # ============== Parameter('Gab1_0',94868.3) # c426 # Rate constant # ============== Parameter('k105', 6.67e-05) # k105 Parameter('kd105', 0.1) # kd105 Parameter('k122_gab', 1.8704e-8) # k122 Parameter('kd122_gab', 1.0) # kd122 Parameter('kd123_gab', 0.177828) # kd123 alias_model_components() # Initial conditions # ============== Initial(Gab1(atp=None, grb2=None, shp2=None, erk=None, pase=None, pi3k=None, state='up'), Gab1_0) # Rules # ===== for erb in receptors[:2]: Rule('Gab1_binds_Grb2_'+erb.name, Gab1(grb2=None,atp=None,shp2=None,erk=None, state='up') + Grb2(sos=None, erb=2,gab1=None) % erb(gs=2, comp='pm',cpp=None) <> Gab1(grb2=1,atp=None,state='up', erk=None, shp2=None) % Grb2(sos=None, erb=2, gab1=1) % erb(gs=2, comp='pm',cpp=None), k105, kd105) ## v30-v36, v815-v821 ## Gab1 + ATP <-> Gab1:ATP -> Gab1~P + ATP catalyze(ATP(erb=None), 'gab1', Gab1(state='up',grb2=ANY, shp2=None,erk=None), 'atp', Gab1(state='p',grb2=ANY, shp2=None,erk=None), (k122_gab, kd122_gab, kd123_gab))
def p53_mdm2_loop(): Rule('activate_p53', p53(bf=None, state='I') >> p53(bf=None, state='A'), activate_p53_k*signal_factor) # p53 is recycled back into iniactive p53 catalyze('mdm2_inactivate_p53', mdm2(bf=None, state='A'), p53(bf=None, state='A') >> p53(bf=None, state='I'), ) # mdm2 binds inactive p53 and prevents it from being activated Rule('mdm2_bind_p53I', mdm2(bf=None, state='A') + p53(bf=None, state='I') | p53(bf=1, state='I') % mdm2(bf=1, state='A'), mdm2_bind_p53I_kf, mdm2_bind_p53I_kr) # mdm2 binds active p53 and prevents it from transcribing Rule('mdm2_bind_p53I', mdm2(bf=None, state='A') + p53(bf=None, state='A') | p53(bf=1, state='A') % mdm2(bf=1, state='A'), mdm2_bind_p53A_kf, mdm2_bind_p53A_kr)
def PIP2_PIP3(): " v695-v701 " " v628-v638 " " Pip2 binds PI3K " " *** Note ErbB2:ErbB4 reactions (v701) needs to be checked in the model " " An issue with the model is that the ErbB2:Erbb4: Pi3k:Pip2 complex is mislabeled as PI3k(c455), resulting in the ES complex \ never breaking down to give E + P" # Initial amount # ============== Parameter('PIP2_0', 393639) # c444 Parameter('PIP3_0', 0) # c106 // zero ic # Rate constants # ============== Parameter('k106', 1.33e-5) Parameter('kd106', 0.1) Parameter('kd68', 0.2) Parameter('k106b', 2.63418e-8) Parameter('kd106b', 0.1) Parameter('kd68b', 20.5) alias_model_components() # Initial conditions # ============== Initial(PIP2(pi3k=None), PIP2_0) Initial(PIP3(akt=None, pdk=None, bnd=None), PIP3_0) # Rules # ===== catalyze(ErbB1(gap=ANY) % PI3K(gab1=ANY, ras=None), 'pip2', PIP2(), 'pi3k', PIP3(akt=None, pdk=None, bnd=None), (k106b, kd106b, kd68)) " Unlike ErbB1, could not write generic rule for ErbB2 dimers since ErbB2:ErbB4 ES complex is not broken down to E + P " for erb in receptors[1:]: Rule('bind_Pip2_Erb2_'+erb.name,ErbB2(gap=ANY) % erb(gap=None) % PI3K(gab1=ANY, ras=None, pip2=None) + PIP2(pi3k=None) <> ErbB2(gap=ANY) % erb(gap=None) % PI3K(gab1=ANY, ras=None, pip2=1) % PIP2(pi3k=1), k106, kd106) for erb in receptors[1:3]: forward_rate = kd68 if erb is ErbB2 else kd68b Rule('catalyze_pip3_erb2_'+erb.name, ErbB2(gap=ANY) % erb(gap=None) % PI3K(gab1=ANY, ras=None, pip2=1) % PIP2(pi3k=1) >> ErbB2(gap=ANY) % erb(gap=None) % PI3K(gab1=ANY, ras=None, pip2=None) + PIP3(akt=None, pdk=None, bnd=None), forward_rate) pip2_number = 6; for i in range(1, 1 + pip2_number -1): num_pip = str(i) pip2_common = PIP2(pi3k=1) for d in range(2, i+1): pip2_common %= PIP2(pi3k=d) reactant = ErbB2() % ErbB3() % PI3K(ras=None, gab1=999, pip2=range(1,i+1)) % pip2_common product = MatchOnce(ErbB2() % ErbB3() %PI3K(ras=None, gab1=999, pip2=range(1, i+2)) % pip2_common % PIP2(pi3k=i+1)) Rule('bind_pip2_pi3k'+num_pip, reactant + PIP2(pi3k=None) <> product, k106, kd106) Rule('release_pip2'+num_pip, product >> reactant + PIP3(akt=None, pdk=None, bnd=None), kd68b)
def catalyze(enz, sub, product, klist): """Alias for pysb.macros.catalyze with default binding sites.""" return macros.catalyze(enz, 'bf', sub, 'bf', product, klist)
D. Rule('Ce_Cdk2bind', Ce(b=None) + Cdk2(b=None) <> Ce(b=1) % Cdk2(b=1), *[kcom2, kdecom2]) E. Rule('Ca_Cdk2_p27_bind', Ca(b=1) % Cdk2(b=1) + p27(b=None, S='u') <> Cd(b=2) % Cdk2(b=2) % p27(b=2, S='u'), *[kc5, kc6]) Rule('Cd_Cdk4_6_P27_bind', Cd(b=1) % Cdk4_6(b=1) + p27(b=None, S='u') <> Cd(b=2) % Cdk4_6(b=2) % p27(b=2, S='u'), *[kc1, kc2]) Rule('Ce_Cdk2_P27_bind', Ce(b=1) % Cdk2(b=1) + p27(b=None, S='u') <> Ce(b=2) % Cdk2(b=2) % p27(b=2, S='u'), *[kc3, kc4] Rule('Cb_Cdk1_P27_bind', Cb(b=1) % Cdk1(b=1) + p27(b=None, S='u') <> Cb(b=2) % Cdk1(b=2) % p27(b=2, S='u'), *[kc7, kc8]) Rule('pRB_E2F__bind', pRB(b=None, S= 'u') + E2F(b=None, S = 't') <> pRB(b=1, S='u') % E2F(b=1, S= 't'), *[kpc1, kpc2]) #??Does the phosphorylated or unphosphorylated form react with pRB? Rule('pRBp_E2F__bind', pRB(b=None, S= 'p') + E2F(b=None, S = 't') <> pRB(b=1, S='p') % E2F(b=1, S= 't'), *[kpc3, kpc4]) #??Does the phosphorylated or unphosphorylated form react with pRB? #** HOW WOULD WE SHOW GROWTH FACTOR PROMOTING SYNTHESIS?? catalyze(GF, AP1, 'S', 'u', 't', kf, kr, kc) # initial conditions Parameter('C8_0', 1000) Parameter('Bid_0', 10000) Initial(C8(b=None), C8_0) Initial(Bid(b=None, S='u'), Bid_0) # Observables Observable('obsC8', C8(b=None)) Observable('obsBid', Bid(b=None, S='u')) Observable('obstBid',Bid(b=None, S='t'))v
# instantiate a model Model() #Declare Monomers Monomer('GF',['b']) #Growth Factor that activates synthesis of AP1 Monomer('AP1', ['b', 'y'],{'y':('i','a')} ) #Transcription factor that promotes the synthesis of cyclin D. Monomer('Cd', ['b', 'y'], {'y':('i', 'a')}) #Cyclin D #Declare Parameters Parameter('kfap1', 1.663e-05) #Calculated from the Michaelis constant, Kagf of 0.1microMoles provided in the paper (Km = (kr + kcat)/kf) Parameter('krap1', 1.0e-03) #Assumed typical reverse rate constant Parameter('kcap1', 1.0) #Assumed typical catalytic rate constant #Parameter('kdap1', 4.17e-05) #Apparent first-order rate constant for AP1 transcription factor degradation in h^-1 # initial conditions Parameter('GF_0', 1000) #the initial concentration of GF in number of molecules/pL - Converted from 1microM in paper to be the number of molecules in a cell (which is about 1 picoLiter) Initial(GF(b=None), GF_0) Parameter('AP1_0',100000) #the initial concentration of the substrate, inactive AP1, in molecules/pL. Converted from the rate of synthesis of the transcription factor AP1 given in microM per hour and depending on growth factor GF: V(t) = (kcap1xGF_0xAP1_0) divided by (AP1_0+Km) Initial(AP1(b=None, y='i'),AP1_0) Observable('obsAP1i', AP1(b=None, y='i')) #observe the inactive form of AP1 Observable('obsAP1a', AP1(b=None, y='a')) #observe the active form of AP1 Observable('obsGF', GF(b=None)) #observe Growth factor #Catalyze Rule for reaction: The GF activates the synthesis of the transcription factor AP1. catalyze(GF(), 'b', AP1(y='i'), 'b', AP1(y='a'), (kfap1, krap1, kcap1)) # calls the function catalyze to simulate synthesis of AP1 #Rule for degradation of AP1 #degrade(AP1(y='i'), kdap1)
Parameter('ki', .01) Parameter('B', 0) Parameter('A20', 10000) Parameter('RIF') Parameter('IKKKa', 0) Rule('RIP|TRAF2', RIF(b=None), TRAF2(b=None), kf) Rule('IKKK_bind_B', IKKK(b=None) + B(b=None) >> IKKK(b=1)%B(b=1), Ka) degrade("IKKK", ki) #Expression('aIKKK', ka*B*(kn-IKKKa)*ka20/(ka20+A20)-ki*IKKKa) #IKK in natural state IKKn (ODE 2) Parameter('IKKn', 2e-05) Parameter('KNN', 2e-05) Parameter('kf1', 6*10^-10) #kf= k1 Expression('nIKKn', -(IKKKa)^2 * kcop1*IKKn + k4*(KNN-IKKn-IKKa-IKKi)) catalyze(Ikka, 's', IKK(s = 'u'), 's', IKK(s = 'p'), kf1) #IKK in the active state IKKa (ODE3) Parameter('k3', .002) Parameter('k2', 10000) Expression('IKKa_rate', (ka)^2) Rule('') degrade('IKKa', k2) Expression('aIKK', (IKKKa)^2*k1*IKKn-k3*IKKa*(k2+A20)) #IKK in inactive state IKKi (ODE4) Expression('iIKKi', k3*IKKa*(k2+A20)/k2-k4*IKKi) #Phosphorylation- Ikba(Ikbap) (ODE5) Parameter('a2', 10^-7)
Annotation(PP2A, 'http://identifiers.org/mesh/24544') Monomer('MKP', ['ppt']) Annotation(MKP, 'http://identifiers.org/mesh/24536') # Use generic rates for forward/reverse binding and kinase/phosphatase catalysis kf_bind = 1e-5 kr_bind = 1e-1 kcat_phos = 1e-1 kcat_dephos = 3e-3 # Build handy rate "sets" klist_bind = [kf_bind, kr_bind] klist_phos = klist_bind + [kcat_phos] klist_dephos = klist_bind + [kcat_dephos] catalyze(Ras, 'k', Raf(s='u'), 's', Raf(s='p'), klist_phos) catalyze(PP2A, 'ppt', Raf(s='p', k=None), 's', Raf(s='u', k=None), klist_dephos) # Phosphorylation/dephosphorylation of MEK by Raf/PP2A # (this implements sequential (not independent) (de)phosphorylation) catalyze(Raf(s='p'), 'k', MEK(s218='u'), 's218', MEK(s218='p'), klist_phos) catalyze(Raf(s='p'), 'k', MEK(s218='p', s222='u'), 's222', MEK(s218='p', s222='p'), klist_phos) catalyze(PP2A, 'ppt', MEK(s218='p', s222='u', k=None), 's218', MEK(s218='u', s222='u', k=None), klist_dephos) catalyze(PP2A, 'ppt', MEK(s218='p', s222='p', k=None), 's222',
Rule('transcribe_Puma', Puma(bf=None, state='I') >> Puma(bf=None, state='A'), transcribe_Puma_k_exp) # p53 activates BIM by transcribing it Rule('transcribe_BIM', BIM(bf=None, state='I') >> BIM(bf=None, state='A'), transcribe_BIM_k_exp) # p53 activates Bid by transcribing it Rule('transcribe_Bid', None >> Bid(bf=None, state='U'), transcribe_Bid_k_exp) # p53 is activated and starts transcribing Bak, and Bax Rule('transcribe_Bax', None >> Bax(bf=None, s1=None, s2=None, state='C'), transcribe_Bax_k_exp) Rule('transcribe_Bak', None >> Bak(bf=None, s1=None, s2=None, state='M'), transcribe_Bak_k_exp) """BIM and PUMA activate Bax and Bak to initiate MOMP""" # BIM and Puma activate Bax so that it inserts into the mitochondrial membrane catalyze(BIM(state='A'), 'bf', Bax(state='C'), 'bf', Bax(state='M'), activation_rates) catalyze(Puma(state='A'), 'bf', Bax(state='C'), 'bf', Bax(state='M'), activation_rates) # BIM and Puma activate Bax in the mitochondrial membrane so it will be ready to form pores catalyze(BIM(state='A'), 'bf', Bax(state='M'), 'bf', Bax(state='A'), activation_rates) catalyze(Puma(state='A'), 'bf', Bax(state='M'), 'bf', Bax(state='A'), activation_rates) # BIM and Puma activate Bak so that it will be ready to form pores catalyze(BIM(state='A'), 'bf', Bak(state='M'), 'bf', Bak(state='A'), activation_rates) catalyze(Puma(state='A'), 'bf', Bak(state='M'), 'bf', Bak(state='A'), activation_rates) """Call MOMP modules from Earm to connect to downstream effectors""" # Generate the upstream and downstream sections
Parameter('kf2', 1. / V) Parameter('kr2', 1000.) Parameter('kcat2', 10.) Monomer('E', ['s']) Monomer('S', ['e', 'type'], {'type': ['A', 'B']}) Monomer('P') # Rules # Rule('ReversibleBinding_1', E(s=None) + S(e=None, type='A') | E(s=1) % S(e=1, type='A'), kf1, kr1) # Rule('Production_1', E(s=1) % S(e=1, type='A') >> E(s=None) + P(), kcat1) # Rule('ReversibleBinding_2', E(s=None) + S(e=None, type='B') | E(s=1) % S(e=1, type='B'), kf2, kr2) # Rule('Production_2', E(s=1) % S(e=1, type='B') >> E(s=None) + P(), kcat2) # Macro catalyze(E(), 's', S(type='A'), 'e', P(), [kf1, kr1, kcat1]) catalyze(E(), 's', S(type='B'), 'e', P(), [kf2, kr2, kcat2]) Observable("E_free", E(s=None)) Observable("S1_free", S(e=None, type='A')) Observable("S2_free", S(e=None, type='B')) Observable("ES1_complex", E(s=1) % S(e=1, type='A')) Observable("ES2_complex", E(s=1) % S(e=1, type='B')) Observable("Product", P()) Parameter("Etot", 1. * V) Initial(E(s=None), Etot) Parameter('S1_0', 10. * V) Initial(S(e=None, type='A'), S1_0)
Parameter('kf_AA_allo2', 1000.0) Parameter('kr_AA_allo2', 1000.0) Parameter('kf_AA_allo3', 1000.0) Parameter('kr_AA_allo3', 250.0) #Rates for 2-AG and COX2 interactions at allosteric site Parameter('kf_AG_allo1', 1000.0) Parameter('kr_AG_allo1', 1.0e5) Parameter('kf_AG_allo2', 1000.0) Parameter('kr_AG_allo2', 400.0) Parameter('kf_AG_allo3', 1000.0) Parameter('kr_AG_allo3', 63000.0) #Defining allowed reaction rules catalyze(COX2(allo=None), 'cat', AA(), 'b', PG(), [kf_AA_cat1, kr_AA_cat1, kcat_AA1]) bind_complex(COX2(allo=1) % AG(b=1), 'cat', AA(), 'b', [kf_AA_cat2, kr_AA_cat2]) Rule('kcat_AA_2', COX2(allo=1, cat=2) % AG(b=1) % AA(b=2) >> COX2(allo=1, cat=None) % AG(b=1) + PG(), kcat_AA2) bind_complex(COX2(allo=1) % AA(b=1), 'cat', AA(), 'b', [kf_AA_cat3, kr_AA_cat3]) Rule('kcat_AA_3', COX2(allo=1, cat=2) % AA(b=1) % AA(b=2) >> COX2(allo=1, cat=None) % AA(b=1) + PG(), kcat_AA3) catalyze(COX2(allo=None), 'cat', AG(), 'b', PGG(), [kf_AG_cat1, kr_AG_cat1, kcat_AG1])
#Observables Observable('obsAP1i', AP1(b=None, S='i')) #observe the inactive form of AP1 Observable('obsAP1a', AP1(b=None, S='a')) #observe the active form of AP1 Observable('obsGF', GF(b=None)) #observe Growth factor Observable('obsCdi', Cd(b=None, S='i')) Observable('obsCda', Cd(b=None, S='a')) Observable('obsE2Fu', E2F(b=None, S='u')) Observable('obsE2Fp', E2F(b=None, S='p')) Observable('obspRBu', pRB(b=None, S='u')) 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
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]) # Hydroxyl radical (HydroxyRad) is translocated from the cytosol (Cyto) to the plasma membrane (PM) equilibrate(HydroxyRad(b1=None) ** Cyto, HydroxyRad(b1=None) ** PM, [kf16, kr16]) # Hydroxyl radical (HydroxyRad) binds PL_PUFA (phospholipid-polyunsaturated fatty acid) at the plasma membrane (PM) Rule("Hydroxyrad_PL_PUFA_binds", HydroxyRad(b1=None) ** PM + PUFA_PL(b1=None, b2GPX4=None, state="WT") ** PM | HydroxyRad(b1=1) ** PM % PUFA_PL(b1=1, b2GPX4=None, state="WT") ** PM, kf17, kr17) # HydroxyRad-PL_PUFA complex dissociates at the plasma membrane (PM) and PL_PUFA becomes a lipid radical -- PL_PUFA_radical Rule("PL_PUFA_radical_formation", HydroxyRad(b1=1) ** PM % PUFA_PL(b1=1, b2GPX4=None, state="WT") ** PM | HydroxyRad(b1=None) ** PM + PUFA_PL(b1=None, b2GPX4=None, state="rad") ** PM, kf18, kr18)
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 catalyze(GSS()**Cyto, 'bGlutCys', GlutCys()**Cyto, 'bGSS', GSH(b1GPX4=None, state='red')**Cyto, [kf4, kr4, kc4]) # GPX4 binds GSH and is activated; GSH stays in its reduced formed
Parameter('kr_AA_allo3', 250.0) #Rates for 2-AG and COX2 interactions at allosteric site #2-AG binding at allosteric site with nothing in the catalytic site Parameter('kf_AG_allo1', 1000.0) Parameter('kr_AG_allo1', 1.0e5) #2-AG binding at allosteric site with AA in the catalytic site Parameter('kf_AG_allo2', 1000.0) Parameter('kr_AG_allo2', 400.0) #2-AG binding at allosteric site with 2-AG in the catalytic site Parameter('kf_AG_allo3', 1000.0) Parameter('kr_AG_allo3', 63000.0) #Defining allowed reaction rules catalyze(COX2(allo=None), 'cat', AA(), 'b', PG(), [kf_AA_cat1, kr_AA_cat1, kcat_AA1]) bind_complex( COX2(allo=1) % AG(b=1), 'cat', AA(), 'b', [kf_AA_cat2, kr_AA_cat2]) Rule( 'kcat_AA_2', COX2(allo=1, cat=2) % AG(b=1) % AA(b=2) >> COX2(allo=1, cat=None) % AG(b=1) + PG(), kcat_AA2) bind_complex( COX2(allo=1) % AA(b=1), 'cat', AA(), 'b', [kf_AA_cat3, kr_AA_cat3]) Rule( 'kcat_AA_3', COX2(allo=1, cat=2) % AA(b=1) % AA(b=2) >>
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 catalyze(GSS()**Cyto, 'bGlutCys', GlutCys()**Cyto, 'bGSS', GSH(b1GPX4=None, state='red')**Cyto, [kf4, kr4, kc4]) # GPX4 binds GSH and is activated; GSH stays in its reduced formed