# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # A model of the NF-kappaB regulatory system with karyopherin interactions # # # # This BioNetGen model file features the article: # # # # "Importins promote high-frequency NF-kappaB oscillations # # increasing information channel capacity" # # # # by Korwek Z, Tudelska K, Nalecz-Jawecki P, Czerkies M # # Prus W, Markiewicz J, Kochanczyk M, and Lipniacki T # # # # (Biology Direct, 2016) # # # # as Additional file 2. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # For a description of the BioNetGen language (BNGL), see e.g.: # # * Faeder JR, Blinov ML, Hlavacek WS" # "Rule-based modeling of biochemical systems with BioNetGen". # Methods Mol. Biol. 500, 113-167 (2009). # # An equivalent SBML-based model can be generated within BioNetGen. # # # Model execution instructions # ---------------------------- # # The most convenient way to execute the model is to download RuleBender from # http://www.rulebender.org, install it following its installation instructions, # and paste the contents of this file into an empty BNGL file created in a new # RuleBender project. If this solution is not working, alternatively, you can: # # 1) Download BioNetGen from http://www.bionetgen.org and install the # software following the step-by-step instructions provided in the tutorial. # (This may require the installation of Perl and, optionally, Java.) # # 2) Place this file into the folder 'Models2' in the BioNetGen directory. # # 3) In the command window under Windows: change the current working directory # to 'Models2' in your installed BioNetGen directory by issuing e.g. # # cd "C:\Program Files\BioNetGen-2.2.6-stable\Models2" # # and then run BioNetGen engine with the following command: # # perl ..\BNG2.pl Korwek_et_al_Additional_file_2_Model_BNGL_code.bngl # # (Proceed analogously under Linux/Mac OS X. Plase note, however, that functional # rate laws, used by the model, in recent BioNetGen builds for Linux appear to be # defunct.) # # Output will be written in file Korwek_et_al_Additional_file_2_Model_BNGL_code_ssa.gdat # in the Models2 directory. # # In case you do not use RuleBender, you can visualize individual trajectories # using e.g. PhiBPlot, which is contained in the BioNetGen installation directory # (Java required). Under Windows, double-click the application jar file and select # GDAT-file; under under Linux/Mac OS X type in the command line: # # java -jar YOUR_BIONETGEN_DIR/PhiBPlot/PhiBPlot.jar PATH_TO_A_GDAT_FILE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # begin model begin parameters # == Cell parameters # k_v 5 # ratio of cytoplasmic-to-nuclear volumes # R 735 # median number of TNF receptors (in stochastic simulations, the number of # # TNF receptors per cell is drawn from log-normal distribution with mean=2e3, # # sigma=sqrt(2), which gives the median = mean*exp(-sigma^2/2) ~= 7e2) K_N 1e+5 # number of IKKK molecules K_NN 2e+5 # number of IKK molecules NFkB_trans 7e+4 # median number of NF-kB molecules that can undergo nuclear translocation (in # stochastic simulation, this number is drawn from experimental distribution # shown in Fig. 2b) # == Reaction parameters # -- TNFR1 activation and signal transduction cascade # TNF_cell 6e+4 # number of TNF trimers/cell for 1 ng/ml TNF dose at 200 000 cells/ml c_deg 1e-4 # TNF degradation rate k_b 1.2e-5 # TNFR activation (by TNF) rate k_f 1.2e-3 # TNFR deactivation rate k_a 2e-5 # IKKK activation by TNFR (max. rate - in formula k_a*k_A20/(k_A20 + A20))) k_A20 1e+5 # IKKK activation by TNFR (Michaelis-Menten constant for A20 - in formula k_a*k_A20/(k_A20+A20)) k_i 1e-2 # IKKK inactivation k_1 6e-10 # IKK activation by IKKK (rate is quadratic in IKKK concentration) k_2 5e+3 # coefficient in IKK_a -> IKK_i inactivation function: (k_2+A20)*k_3/k_2 k_3 2e-3 # coefficient in IKK_a -> IKK_i inactivation function: (k_2+A20)*k_3/k_2 k_4 2e-3 # IKK regeneration (IKK_i -> IKK_ii and IKK_ii -> IKK_n) # -- IkBa and A20 gene expression # N_I 2 # number of IkBa gene copies N_A 2 # number of A20 gene copies q_1 1e-7 # A20 and IkBa genes activation by NF-kB q_2 5e-7 # A20 and IkBa genes deactivation by IkBa binding to NF-kB c_1 2e-1 # A20 and IkBa genes transcription c_3_a 1.5e-3 # A20 mRNA degradation c_3_i 7.5e-4 # IkBa mRNA degradation c_4 5e-1 # A20 and IkBa mRNAs translation # -- Protein interactions # a_1 1e-7 # NFkB-IkBa binding rate in the cytoplasm a_1_nuc k_v*a_1 # NFkB-IkBa binding rate in the nucleous a_2 1e-7 # free IkBa phosphorylation by active IKK in the cytoplasm a_3 5e-7 # NFkB-bound IkBa phosphorylation by active IKK in the cytoplasm c_5 5e-4 # A20 degradation t_p 1e-2 # phosphorylated IkBa degradation (free or NF-kB bound) c_5a 3e-4 # degradation of unphosphorylated IkBa when free c_6a 2e-5 # degradation of unphosphorylated IkBa when NF-kB-bound # -- Transport and karyopherin-dependent transport # i_1a 7e-4 # IkBa import to the nucleus # b_i_N 1e-1 # NF-kB-importin binding rate i_i_N 1e-2 # NF-kB-importin transport into the nucleus # b_e_I 5e-3 # NF-kB-IKBa-exportin and IKBa-exportin binding rate e_e_I k_v*1e-2 # NF-kB-IKBa-exportin and IKBa-exportin transport into the cytoplasm # -- Gene expression noise # gene_noise 1 # This parameter divides gene activation and inactivation rates. # Small rates imply large gene noise. end parameters # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - begin molecule types TNFR(st~a~i) # active/inactive TNF receptor IKK(st~n~a~i~ii) # neutral/active/inactive/inactive intermediate form of IKK IKKK(st~n~a) # neutral/active form of IKKK IkBa(loc~n~c,pho~0~p,bin,expo~0~1) # nuclear/cytoplasmic, unphosphorylated/phosphorylated, # exportin-free/exportin-bound IkBa IkBa_mRNA() # IkBa transcript A20() # A20 A20_mRNA() # A20 transcript NFkB(loc~n~c,bin,imp~0~1) # nuclear/cytoplasmic, importin-free/importin-bound NF-kB TNF() # extracellular TNFa GIkBa(st~0~1) # discrete random variable, state of an IkBa gene GA20(st~0~1) # discrete random variable, state of an A20 gene end molecule types # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - begin seed species TNF() 0 # TNFa stimulation level is set in the simulation protocol # (at the end of the file) TNFR(st~i) R IKK(st~n) K_NN IKKK(st~n) K_N GIkBa(st~0) N_I GA20(st~0) N_A NFkB(loc~c,bin!0,imp~0).IkBa(loc~c,pho~0,bin!0,expo~0) NFkB_trans end seed species # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - begin observables Species NFkB_nuc_total NFkB(loc~n) Species NFkB_cyt_total NFkB(loc~c) Species IkBa_cyt_total IkBa(loc~c) Species IkBa_nuc_total IkBa(loc~n) Molecules IkBa_tot IkBa() Species NFkB_IkBa_cyt NFkB(loc~c,bin!0).IkBa(loc~c,bin!0) Species NFkB_IkBa_nuc NFkB(loc~n,bin!0).IkBa(loc~n,bin!0) Species A20 A20() Species TNF TNF() Species TNFR_a TNFR(st~a) Species IKKK_a IKKK(st~a) Species IKK_a IKK(st~a) Species IKK_n IKK(st~n) Species IKK_i IKK(st~i) Species IKK_ii IKK(st~ii) Species tA20 A20_mRNA() Species tIkB IkBa_mRNA() Species gA20_a GA20(st~1) Species gIkBa_a GIkBa(st~1) end observables # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - begin functions k_TNFR() TNF*k_b/TNF_cell k_IKKKactivation() TNFR_a*k_a*k_A20/(k_A20+A20) k_IKKactivation() k_1*IKKK_a*IKKK_a k_IKKinactivation() (k_2+A20)*k_3/k_2 end functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - begin reaction rules # == TNFR activation and signal transduction cascade # TNF() -> 0 c_deg TNFR(st~i) -> TNFR(st~a) k_TNFR() TNFR(st~a) -> TNFR(st~i) k_f IKKK(st~n) -> IKKK(st~a) k_IKKKactivation() IKKK(st~a) -> IKKK(st~n) k_i IKK(st~n) -> IKK(st~a) k_IKKactivation() IKK(st~a) -> IKK(st~i) k_IKKinactivation() IKK(st~i) -> IKK(st~ii) k_4 IKK(st~ii) -> IKK(st~n) k_4 # == IkBa and A20 gene expression # NFkB(loc~n,bin) + GA20(st~0) -> NFkB(loc~n,bin) + GA20(st~1) q_1/gene_noise NFkB(loc~n,bin) + GIkBa(st~0) -> NFkB(loc~n,bin) + GIkBa(st~1) q_1/gene_noise IkBa(loc~n,pho~0,bin) + GA20(st~1) -> IkBa(loc~n,pho~0,bin) + GA20(st~0) q_2/gene_noise IkBa(loc~n,pho~0,bin) + GIkBa(st~1) -> IkBa(loc~n,pho~0,bin) + GIkBa(st~0) q_2/gene_noise GA20(st~1) -> GA20(st~1) + A20_mRNA() c_1 GIkBa(st~1) -> GIkBa(st~1) + IkBa_mRNA() c_1 # == translation and transcript degradation # A20_mRNA() -> 0 c_3_a IkBa_mRNA() -> 0 c_3_i A20_mRNA() -> A20_mRNA() + A20() c_4 IkBa_mRNA() -> IkBa_mRNA() + IkBa(loc~c,pho~0,bin,expo~0) c_4 # == protein interactions # # -- NFkB - IkBa complexation # NFkB(loc~c,bin,imp~0) + IkBa(loc~c,pho~0,bin,expo~0) -> NFkB(loc~c,bin!0,imp~0).IkBa(loc~c,pho~0,bin!0,expo~0) a_1 NFkB(loc~n,bin,imp~0) + IkBa(loc~n,pho~0,bin,expo~0) -> NFkB(loc~n,bin!0,imp~0).IkBa(loc~n,pho~0,bin!0,expo~0) a_1_nuc # # -- IkBa phosphorylation # IKK(st~a) + IkBa(loc~c,pho~0,bin) -> IKK(st~a) + IkBa(loc~c,pho~p,bin) a_2 IKK(st~a) + NFkB(loc~c,bin!0).IkBa(loc~c,pho~0,bin!0) -> IKK(st~a) + NFkB(loc~c,bin!0).IkBa(loc~c,pho~p,bin!0) a_3 # == protein degradation # A20() -> 0 c_5 IkBa(loc~c,pho~p,bin) -> 0 t_p IkBa(loc~c,pho~0,bin) -> 0 c_5a NFkB(loc~c,bin!0).IkBa(loc~c,pho~p,bin!0) -> NFkB(loc~c,bin) t_p NFkB(loc~c,bin!0).IkBa(loc~c,pho~0,bin!0) -> NFkB(loc~c,bin) c_6a # == transport # IkBa(loc~c,pho~0,bin) -> IkBa(loc~n,pho~0,bin) i_1a # # -- karyopherin binding # NFkB(loc~c,bin,imp~0) -> NFkB(loc~c,bin,imp~1) b_i_N IkBa(loc~n,bin!0,expo~0).NFkB(loc~n,bin!0,imp~0) -> IkBa(loc~n,bin!0,expo~1).NFkB(loc~n,bin!0,imp~0) b_e_I IkBa(loc~n,bin,expo~0) -> IkBa(loc~n,bin,expo~1) b_e_I # # -- karypherin-mediated transport # NFkB(loc~c,bin,imp~1) -> NFkB(loc~n,bin,imp~0) i_i_N IkBa(loc~n,bin!0,expo~1).NFkB(loc~n,bin!0,imp~0) -> IkBa(loc~c,bin!0,expo~0).NFkB(loc~c,bin!0,imp~0) e_e_I IkBa(loc~n,bin,expo~1) -> IkBa(loc~c,bin,expo~0) e_e_I end reaction rules end model # ============================================================================= generate_network({overwrite=>1}); writeSBML({}); writeMfile({}); #- - - - - - - - - - - - - Stochastic simulation - - - - - - - - - - - - - - # This simulation protocol corresponds to Fig. 5, case "1111", for period T = 1 hr. # In stochastic simulations reported in the article, the length of the equlibration # phase was drawn from uniform distribution between 100 and 110 hr. Here, for # convenience, we split the equlibration phase into two phases: the first, long # phase will not be shown in plots in RuleBender; the second, short phase will # appear in the RuleBender plot and its duration is set to 1*3600 s. setConcentration("TNF()",0.) simulate_ssa({suffix=>"ssa",t_end=>100*3600,n_steps=>100}); # Equilibration phase (no TNF). # The resulting trajectory file will be overwritten by subsequent simulations. # simulate_ssa({suffix=>"ssa",t_end=>1*3600,n_steps=>100}); # Last hour of the equilibration phase (no TNF). # This 1*3600 s trajectory will be an initial part of the whole protocol trajectory # shown in the RuleBender plot. # -- 1st pulse setConcentration("TNF()",10*6e+4) # TNF dose in ng/ml (10) multiplied by TNF_cell=6e4 gives # the number of TNF trimers/cell in performed experiments. simulate_ssa({suffix=>"ssa",t_end=>1*3600+10*60,n_steps=>20, continue=>1}); setConcentration("TNF()",0) simulate_ssa({suffix=>"ssa",t_end=>1*3600+60*60,n_steps=>100, continue=>1}); # -- 2nd pulse setConcentration("TNF()",10*6e+4) simulate_ssa({suffix=>"ssa",t_end=>1*3600+(60+10)*60,n_steps=>20, continue=>1}); setConcentration("TNF()",0) simulate_ssa({suffix=>"ssa",t_end=>1*3600+(60+60)*60,n_steps=>100, continue=>1}); # -- 3rd pulse setConcentration("TNF()",10*6e+4) simulate_ssa({suffix=>"ssa",t_end=>1*3600+(2*60+10)*60,n_steps=>20, continue=>1}); setConcentration("TNF()",0) simulate_ssa({suffix=>"ssa",t_end=>1*3600+(2*60+60)*60,n_steps=>100, continue=>1}); # -- 4th pulse setConcentration("TNF()",10*6e+4) simulate_ssa({suffix=>"ssa",t_end=>1*3600+(3*60+10)*60,n_steps=>20, continue=>1}); setConcentration("TNF()",0) simulate_ssa({suffix=>"ssa",t_end=>1*3600+(3*60+90)*60,n_steps=>100, continue=>1});