class Albeck11bPoreTransport(Albeck11b): k_pore = Parameter(10) class Smac(Albeck11b.Smac): M = Species(1e6, override=True) class CytoC(Albeck11b.CytoC): M = Species(1e6, override=True) def add_reactions(self): yield MichaelisMenten( self.Bax.A, self.Smac.M, self.Bax.A & self.Smac.M, self.Smac.C, self.KF, self.KR, self.k_pore, ) yield MichaelisMenten( self.Bax.A, self.CytoC.M, self.Bax.A & self.CytoC.M, self.CytoC.C, self.KF, self.KR, self.k_pore, )
class Albeck11dPoreTransport(Albeck11d): k_pore = Parameter(10) class Smac(Albeck11d.Smac): M = Species(1e6, override=True) KF = Parameter(2 * 1e-6 / 0.07) class CytoC(Albeck11d.CytoC): M = Species(1e6, override=True) def add_reactions(self): yield MichaelisMenten( self.Bax.M4, self.Smac.M, self.Bax.M4 & self.Smac.M, self.Smac.C, self.Smac.KF, self.KR, self.k_pore, ) yield MichaelisMenten( self.Bax.M4, self.CytoC.M, self.Bax.M4 & self.CytoC.M, self.CytoC.C, self.KF, self.KR, self.k_pore, )
class Smac(Compartment): C = Species(0) M = Species(0) A = Species(0) transloc_rates = Parameter(1e-2) def add_reactions(self): yield Equilibration(self.C, self.A, self.transloc_rates, self.transloc_rates)
class Bax(Base.Bax): M2 = Species(0) M4 = Species(0) # Normalized by fractional volume of the mitochondrial membrane compartment KF = Parameter(1e-6 / 0.07) KR = Parameter(1e-3) transloc_rates = Parameter(1e-2) def add_reactions(self): # Active Bax translocates to the mitochondria yield Equilibration( self.A, self.M, self.transloc_rates, self.transloc_rates, ) # Bax dimerizes/tetramerizes yield Equilibration(2 * self.M, self.M2, self.KF, self.KR) yield Equilibration(2 * self.M2, self.M4, self.KF, self.KR)
class Sensor(Compartment): sCas3 = Species(0) sCas9 = Species(0) sCas8 = Species(0) sCas3_dimer = Species(7.5e5) sCas9_dimer = Species(7.5e5) sCas8_dimer = Species(7.5e5) kf_sCas3 = Parameter(2 * 2.8e-7) kr_sCas3 = Parameter(1e-2) kc_sCas3 = Parameter(1) kf_sCas9 = Parameter(2 * 2.8e-7) kf_sCas92 = Parameter(2 * 2e-10) kr_sCas9 = Parameter(1e-3) kc_sCas9 = Parameter(1) kf_sCas8 = Parameter(2 * 5.4e-8) kr_sCas8 = Parameter(1e-3) kc_sCas8 = Parameter(1)
class Sensor(Compartment): sCas3 = Species(0) sCas9 = Species(0) sCas8 = Species(0) sCas3_dimer = Species(1e7) sCas9_dimer = Species(1e7) sCas8_dimer = Species(1e7) kf_sCas3 = Parameter(1e-6) kr_sCas3 = Parameter(1e-2) kc_sCas3 = Parameter(1) kf_sCas9 = Parameter(5e-9) kr_sCas9 = Parameter(1e-3) kc_sCas9 = Parameter(1) kf_sCas8 = Parameter(1e-7) kr_sCas8 = Parameter(1e-3) kc_sCas8 = Parameter(1)
class Albeck11d(Base): k_Bax_C_Bid_T = Parameter(1e-7) class Bid(Base.Bid): U = Species(4e4, override=True) class Bax(Base.Bax): M2 = Species(0) M4 = Species(0) # Normalized by fractional volume of the mitochondrial membrane compartment KF = Parameter(1e-6 / 0.07) KR = Parameter(1e-3) transloc_rates = Parameter(1e-2) def add_reactions(self): # Active Bax translocates to the mitochondria yield Equilibration( self.A, self.M, self.transloc_rates, self.transloc_rates, ) # Bax dimerizes/tetramerizes yield Equilibration(2 * self.M, self.M2, self.KF, self.KR) yield Equilibration(2 * self.M2, self.M4, self.KF, self.KR) def add_reactions(self): yield MichaelisMenten( self.Bid.T, self.Bax.C, self.Bid.T & self.Bax.C, self.Bax.A, self.k_Bax_C_Bid_T, self.KR, self.KC, ) # Bcl2 inhibits Bax, Bax2, and Bax4 for x in (self.Bax.M, self.Bax.M2, self.Bax.M4): yield ReversibleSynthesis( x, self.Bcl2, x & self.Bcl2, self.Bax.KF, self.KR, )
class AlbeckAsMatlab(Albeck11ePoreTransport): Bcl2c = Species(2e4) k_Bid_U_C8_A = Parameter(1e-7) def add_reactions(self): yield ReversibleSynthesis( self.Bid.T, self.Bcl2c, self.Bid.T & self.Bcl2c, self.KF, self.KR ) def override_reactions(self): yield MichaelisMenten( self.C8.A, self.Bid.U, self.C8.A & self.Bid.U, self.Bid.T, self.k_Bid_U_C8_A, self.KR, self.KC, )
class Albeck11b(Base): k_Bax_C_Bid_T = Parameter(1e-7) class Bid(Base.Bid): U = Species(1e5, override=True) def add_reactions(self): yield MichaelisMenten( self.Bid.T, self.Bax.C, self.Bid.T & self.Bax.C, self.Bax.A, self.k_Bax_C_Bid_T, self.KR, self.KC, ) yield ReversibleSynthesis( self.Bax.A, self.Bcl2, self.Bax.A & self.Bcl2, self.KF, self.KR, )
class Albeck11c(Base): k_Bax_C_Bid_T = Parameter(1e-7) class Bid(Base.Bid): U = Species(4e4, override=True) class Bax(Base.Bax): A2 = Species(0) A4 = Species(0) KF = Parameter(1e-6) KR = Parameter(1e-3) def add_reactions(self): # Bax dimerizes/tetramerizes yield Equilibration(2 * self.A, self.A2, self.KF, self.KR) yield Equilibration(2 * self.A2, self.A4, self.KF, self.KR) def add_reactions(self): yield MichaelisMenten( self.Bid.T, self.Bax.C, self.Bid.T & self.Bax.C, self.Bax.A, self.k_Bax_C_Bid_T, self.KR, self.KC, ) # Bcl2 inhibits Bax, Bax2, and Bax4 for x in (self.Bax.A, self.Bax.A2, self.Bax.A4): yield ReversibleSynthesis( x, self.Bcl2, x & self.Bcl2, self.KF, self.KR, )
class CytoC(Albeck11f.CytoC): M = Species(1e6, override=True) KF = Parameter(2 * 1e-6 / 0.07)
class Smac(Albeck11f.Smac): M = Species(1e6, override=True) KF = Parameter(2 * 1e-6 / 0.07)
class Base(Compartment): KF = Parameter(1e-6) KR = Parameter(1e-3) KC = Parameter(1) L = Species(3000) R = Species(200) DISC = Species(0) flip = Species(100) class C8(Compartment): pro = Species(2e4) A = Species(0) BAR = Species(1e3) class Bid(Compartment): U = Species(0) T = Species(0) M = Species(0) class Bax(Compartment): C = Species(1e5) M = Species(0) A = Species(0) Bcl2 = Species(2e4) class CytoC(Compartment): C = Species(0) M = Species(0) A = Species(0) transloc_rates = Parameter(1e-2) def add_reactions(self): yield Equilibration(self.C, self.A, self.transloc_rates, self.transloc_rates) class Smac(Compartment): C = Species(0) M = Species(0) A = Species(0) transloc_rates = Parameter(1e-2) def add_reactions(self): yield Equilibration(self.C, self.A, self.transloc_rates, self.transloc_rates) class Apaf(Compartment): I = Species(1e5) # noqa: #741 A = Species(0) Apop = Species(0) class C3(Compartment): pro = Species(1e4) A = Species(0) ub = Species(0) class C6(Compartment): pro = Species(1e4) A = Species(0) C9 = Species(1e5) class PARP(Compartment): U = Species(1e6) C = Species(0) XIAP = Species(1e5) k_L_R = Parameter(4e-7) k_DISC = Parameter(1e-5) k_Apaf_I_Cyto_C = Parameter(5e-7) k_Apop = Parameter(5e-8) k_Apop_C3_pro = Parameter(5e-9) k_Apop_XIAP = Parameter(2e-6) k_Smac_A_XIAP = Parameter(7e-6) k_C3_pro_C8_A = Parameter(1e-7) k_C3_A_XIAP = Parameter(2e-6) k_C3_ub = Parameter(1e-1) k_PARP_C = Parameter(1e-2) k_C6_A_C8_pro = Parameter(3e-8) # rec_to_bid # ===================== # tBID Activation Rules # --------------------- # L + R <--> L:R --> DISC # pC8 + DISC <--> DISC:pC8 --> C8 + DISC # Bid + C8 <--> Bid:C8 --> tBid + C8 def add_reactions(self): yield CatalyzeConvert( self.L, self.R, self.L & self.R, self.DISC, self.k_L_R, self.KR, self.k_DISC, ) yield MichaelisMenten( self.DISC, self.C8.pro, self.DISC & self.C8.pro, self.C8.A, self.KF, self.KR, self.KC, ) yield MichaelisMenten( self.C8.A, self.Bid.U, self.C8.A & self.Bid.U, self.Bid.T, self.KF, self.KR, self.KC, ) # --------------------- # Inhibition Rules # --------------------- # flip + DISC <--> flip:DISC # C8 + BAR <--> BAR:C8 # --------------------- yield ReversibleSynthesis(self.DISC, self.flip, self.DISC & self.flip, self.KF, self.KR) yield ReversibleSynthesis(self.BAR, self.C8.A, self.BAR & self.C8.A, self.KF, self.KR) # Apoptosome formation # -------------------- # Apaf + cCytoC <--> Apaf:cCytoC --> aApaf + cCytoC # aApaf + pC9 <--> Apop # Apop + pC3 <--> Apop:pC3 --> Apop + C3 yield MichaelisMenten( self.CytoC.A, self.Apaf.I, self.CytoC.A & self.Apaf.I, self.Apaf.A, self.k_Apaf_I_Cyto_C, self.KR, self.KC, ) yield ReversibleSynthesis(self.Apaf.A, self.C9, self.Apop, self.k_Apop, self.KR) yield MichaelisMenten( self.Apop, self.C3.pro, self.Apop & self.C3.pro, self.C3.A, self.k_Apop_C3_pro, self.KR, self.KC, ) # Apoptosome-related inhibitors # ----------------------------- # Apop + XIAP <--> Apop:XIAP # cSmac + XIAP <--> cSmac:XIAP yield ReversibleSynthesis(self.Apop, self.XIAP, self.Apop & self.XIAP, self.k_Apop_XIAP, self.KR) yield ReversibleSynthesis(self.Smac.A, self.XIAP, self.Smac.A & self.XIAP, self.k_Smac_A_XIAP, self.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 yield MichaelisMenten( self.C8.A, self.C3.pro, self.C8.A & self.C3.pro, self.C3.A, self.k_C3_pro_C8_A, self.KR, self.KC, ) yield MichaelisMenten( self.XIAP, self.C3.A, self.XIAP & self.C3.A, self.C3.ub, self.k_C3_A_XIAP, self.KR, self.k_C3_ub, ) yield MichaelisMenten( self.C3.A, self.PARP.U, self.C3.A & self.PARP.U, self.PARP.C, self.KF, self.k_PARP_C, self.KC, ) yield MichaelisMenten( self.C3.A, self.C6.pro, self.C3.A & self.C6.pro, self.C6.A, self.KF, self.KR, self.KC, ) yield MichaelisMenten( self.C6.A, self.C8.pro, self.C6.A & self.C8.pro, self.C8.A, self.k_C6_A_C8_pro, self.KR, self.KC, )
class ARM(AlbeckAsMatlab): L = Species(0, override=True) # Set extrinsic stimuli to 0 IntrinsicStimuli = Species(0) # Add intrinsic stimuli class Smac(AlbeckAsMatlab.Smac): M = Species(1e5, override=True) class CytoC(AlbeckAsMatlab.CytoC): M = Species(1e5, override=True) class Apaf(AlbeckAsMatlab.Apaf): I = Species(1e3, override=True) # noqa: E741 C9 = Species(0, override=True) XIAP = Species(1e4, override=True) k_Apaf_A_C3_pro = Parameter(5e-9) # _Pore_to_PARP.k_Apop_C3_pro k_Apaf_A_C3_A = Parameter(1.3e-6) k_Apaf_A_XIAP = Parameter(2e-6) # _Pore_to_PARP.k_C3_A_XIAP class Sensor(Compartment): sCas3 = Species(0) sCas9 = Species(0) sCas8 = Species(0) sCas3_dimer = Species(7.5e5) sCas9_dimer = Species(7.5e5) sCas8_dimer = Species(7.5e5) kf_sCas3 = Parameter(2 * 2.8e-7) kr_sCas3 = Parameter(1e-2) kc_sCas3 = Parameter(1) kf_sCas9 = Parameter(2 * 2.8e-7) kf_sCas92 = Parameter(2 * 2e-10) kr_sCas9 = Parameter(1e-3) kc_sCas9 = Parameter(1) kf_sCas8 = Parameter(2 * 5.4e-8) kr_sCas8 = Parameter(1e-3) kc_sCas8 = Parameter(1) def add_reactions(self): # Apoptosome formation # aApaf + pC3 <--> aApaf:pC3 --> aApaf + C3 # C3 + aApaf <--> C3:aApaf --> C3 + Apop yield MichaelisMenten( self.Apaf.A, self.C3.pro, self.Apaf.A & self.C3.pro, self.C3.A, self.k_Apaf_A_C3_pro, self.KR, self.KC, ) yield MichaelisMenten( self.C3.A, self.Apaf.A, self.Apaf.A & self.C3.A, self.Apop, self.k_Apaf_A_C3_A, self.KR, self.KC, ) # Apoptosome-related inhibitors # Apaf + XIAP <--> Apaf:XIAP yield ReversibleSynthesis( self.Apaf.A, self.XIAP, self.Apaf.A & self.XIAP, self.k_Apaf_A_XIAP, self.KR ) # Sensors yield MichaelisMenten( self.C3.A, self.Sensor.sCas3_dimer, self.C3.A & self.Sensor.sCas3_dimer, 2 * self.Sensor.sCas3, self.Sensor.kf_sCas3, self.Sensor.kr_sCas3, self.Sensor.kc_sCas3, ) yield MichaelisMenten( self.Apop, self.Sensor.sCas9_dimer, self.Apop & self.Sensor.sCas9_dimer, 2 * self.Sensor.sCas9, self.Sensor.kf_sCas9, self.Sensor.kr_sCas9, self.Sensor.kc_sCas9, ) yield MichaelisMenten( self.C8.A, self.Sensor.sCas8_dimer, self.C8.A & self.Sensor.sCas8_dimer, 2 * self.Sensor.sCas8, self.Sensor.kf_sCas8, self.Sensor.kr_sCas8, self.Sensor.kc_sCas8, ) # Add interaction between single activation yield MichaelisMenten( self.Apaf.A, self.Sensor.sCas9_dimer, self.Apaf.A & self.Sensor.sCas9_dimer, 2 * self.Sensor.sCas9, self.Sensor.kf_sCas92, self.Sensor.kr_sCas9, self.Sensor.kc_sCas9, ) yield MichaelisMenten( self.IntrinsicStimuli, self.Bid.U, self.IntrinsicStimuli & self.Bid.U, self.Bid.T, self.KF, self.KR, self.KC, ) @classmethod def _reactions_to_remove(self): # aApaf + pC9 <--> Apop yield ReversibleSynthesis(self.Apaf.A, self.C9, self.Apop, self.k_Apop, self.KR) # Apop + XIAP <--> Apop:XIAP yield ReversibleSynthesis( self.Apop, self.XIAP, self.Apop & self.XIAP, self.k_Apop_XIAP, self.KR )