From 283729236b0bcc55cc14deb979eb8e1aea7767b4 Mon Sep 17 00:00:00 2001 From: Michael Blinov Date: Tue, 19 May 2026 15:34:28 -0400 Subject: [PATCH 1/9] Introduce new working folder --- .DS_Store | Bin 0 -> 8196 bytes Published/.DS_Store | Bin 0 -> 6148 bytes Working/Korwek_2023-bnglViz.bngl | 698 +++++++++++++++++++++++++++++++ 3 files changed, 698 insertions(+) create mode 100644 .DS_Store create mode 100644 Published/.DS_Store create mode 100644 Working/Korwek_2023-bnglViz.bngl diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f9edd2d29afd62d224fc79ff62dda4e4747d3a1a GIT binary patch literal 8196 zcmeHMU2GIp6u#fIzzh>`s09i#cIyhovW8Nif+#H8HuBR#VO#pc&$_!a&YOG+Ixc8%bkGo#07Q8S z5HxzGIv}u#g)|w`aX|x9T2oXH2u%@|7!c+pk8yRP$&iigGgj&AO(sL~L|@QzJdEZXO#`$t?M~OTe9LwEdVTY#&t-g}38LP9 z&n@^Z!D77@tuM5y_#QilxUsj#EOcIjwRbMRyXl_$l5JZ%cAdRNn^&b)s|$Kc zmS^Q`vwPSw{DHo#mp2{5at`%VY#rY^Xqg3N9ui8IlN~hAR@E$8eA^OTpR8S8rMH-~ zjub6_M2pL^*rQI5E7~b}pFvJ`xCUR*2qb!)UN6gg`Fu;kq)|+(4SGV+vT~P4E{i2r zs;d;uQ@Rcl0EFopwOQ5-rQ6QtOj}H?S2xJocBQ8zJQkDH>Lyv~&AWqxOZ;|DGZy;MRcMcQ$$`83^3V@nr7R0Ce$Wg8*M#5XOQS$CHhMuP#rA zlwWo_Yh)?5jU8Y^Y=j+W&#+h6yX+KukA1?vV&~X*>?ig!`-NR%m)Y;A#B5Y!36`QB z%W)T)uo`R8j25(`13S=ZGfEV9VBR+uLv0r2BR*PqSOA=Py_oTiUR4&AR(HUjd`Q zZW*rEra^%G3HcHrKS0N1)QWsmYr82m%%jt#r8bMFuzZ$l*WIDkYBMN#1iP%B*qM|# zf?biQt<@yTSHU)}s#UcL%0?xyU7H{lA+!EoRn;mfFNJKQPAm(VR0}P`vrPV{@csom z!@gk`*hRwoAE?!}!y_2S zqlEV-@FbqXvv`g$|01FO1YX1Icmwa?6yC>ad=Q}jOMH#<_;C`RJ0{{8zfO(kQo7*S zu5*Z_S5T0$TO(;SR3OxqA7EEich?fxS3mDOZN=<0dV9ZLJ+CwSitS{t~_&m<+ zZpG3Ho@l%?Na?g7grE+CsvuahXnspQ2%So6=`FIpW z!z-GdOPR)VJBlxo!KCMGpU5nal58+k1xbH^Dc6@t)|Zn&jeFev z-DT(cjWqgiVS(qD&P^+WgRp}snjXW{~%)lZ8 zWj%GM|DS$;|6eTP88g5P{3`}Tr5knw+>+_7OPix!>!RMGl2Bfu@v{UC)rv8fT5%m! a3Hn_!5PgG%M)aWYkAR|q2WH?`8TbGNGD>y; literal 0 HcmV?d00001 diff --git a/Working/Korwek_2023-bnglViz.bngl b/Working/Korwek_2023-bnglViz.bngl new file mode 100644 index 00000000..f8af9f66 --- /dev/null +++ b/Working/Korwek_2023-bnglViz.bngl @@ -0,0 +1,698 @@ +begin model + +begin parameters + + ## mnemonics in prefixes of parameter names: + # + # * a_/d_ -- Activation/Deactivation, + # * b_/u_ -- Binding/Unbinding, + # * i_/e_ -- Import/Export, + # * p_/q_ -- Phosphorylation/dephosphorylation, + # * g_ -- deGradation, + # * t_ -- Transcription, + # * s_ -- protein Synthesis (i.e., mRNA translation), + # * m_ -- Michaelis--Menten-type coefficient; inhibition or activation constant, + # * k_ -- other Kinetic rate, + # + # * du_ -- dephosphorylation-induced unbinding, + # * tg_ -- rate for both transcription and transcript degradation, + # * sg_ -- rate for both translation and protein degradation. + # + # * h_ -- Having or not a specific gene/protein (for simulating knock-outs); + # * n -- amouNt of a chemical species, + + + + ### === Cell parameters =============================================================== + + k_v 5 # ratio of the cytoplasmic to the nuclear volume + + h_Mavs 1 # (gene name: MAVS) + h_Pkr_gene 1 # (gene name: EIF2AK2) + h_Rnasel_gene 1 # (gene name: RNASEL) + + + + ### === Initial conditions, stimulation =============================================== + + n_Tak1_i_initial 1 + n_NFkB_IkBa_cyt_initial 1 + n_Ikk_n_initial 1 + n_Irf3_i_initial 1 + n_Tbk1_i_initial 1 + n_eIF2a_dephospho_initial 1 + + n_TNFa_stimulation 1 + n_IFNb_stimulation 1 + + n_polyIC_stimulation 1 # (experiments for PCR: 10, + # experiments for Western blots: 1) + + + + ### === Reaction parameters =========================================================== + + ## common parameters ------------------------------------------------------------------ + # + # technical coefficient to avoid dividing by zero in gene activation rates + EPSILON 1.0e-6 + # + k_FAST 1.0 + k_POLYIC 0.00024390060510912293 # FITTED + tg_TRANSCRIPT 7.259610076954435e-05 # FITTED + sg_PROTEIN 1.532955086663982e-05 # FITTED + m_Rnasel 0.031164323577208185 # FITTED + m_Eif2a 0.015830114342212334 # FITTED + + + ## poly(I:C) module ------------------------------------------------------------------- + # + i_Polyic k_POLYIC + b_Rigi_Polyic k_POLYIC + b_RigiPolyic_Mavs k_POLYIC + a_Pkr_by_Polyic k_POLYIC + d_Pkr k_POLYIC + a_Oas3_by_Polyic k_POLYIC + d_Oas3 k_POLYIC + p_Eif2a_by_Pkr k_POLYIC + p_Eif2a_basal 7.723454616604743e-06 + q_Eif2a k_POLYIC + a_Rnasel_by_Oas3 k_POLYIC + d_Rnasel k_POLYIC + ma_Rigi_gene_basal 0.05930147549419551 # FITTED + tg_Isg_mrna tg_TRANSCRIPT + ma_Pkr_Oas3_gene_basal 0.7245345686782008 # FITTED + ma_Rnasel_gene_basal 1.020172036452892 # FITTED + sg_Rigi sg_PROTEIN + sg_Pkr 4.2805996953166866e-05 # FITTED + sg_Oas3 sg_PROTEIN + sg_Rnasel sg_PROTEIN + + + ## NF-kB module ----------------------------------------------------------------------- + # + a_Tak1_by_Tnfa 0.8903603794354649 # FITTED + a_Tak1_by_RigiMavs k_FAST + d_Tak1 k_FAST + a_Ikk 0.010904467109555071 # FITTED + d_Ikk_1 0.0008829700327658654 # FITTED + d_Ikk_2 0.05982062403935003 # FITTED + d_Ikk_3 0.00026826640310831975 # FITTED + b_Nfkb_Ikba_cyt k_FAST + b_Nfkb_Ikba_nuc k_v*b_Nfkb_Ikba_cyt + p_Ikba_by_Ikk 0.008458552410073877 # FITTED + g_Ikba_p_any k_FAST + g_Ikba_u_free sg_PROTEIN + g_Ikba_u_with_Nfkb 3.944402357840543e-05 # FITTED + i_Nfkb k_FAST + e_Nfkb_with_Ikba k_FAST + i_Ikba 0.0005635774134351319 # FITTED + e_Ikba 0.02051107491820277 # FITTED + tg_Ikba_mrna 0.0002565157989928973 # FITTED + a_Ikba_gene_by_Nfkb__ 0.0684701851861643 # FITTED + a_Ikba_gene_by_Nfkb k_FAST*a_Ikba_gene_by_Nfkb__ + d_Ikba_gene_by_Ikba k_FAST + tg_A20_mrna 0.0009406825155497426 # FITTED + a_A20_gene_by_Nfkb__ 0.025686603943611396 # FITTED + a_A20_gene_by_Nfkb k_FAST*a_A20_gene_by_Nfkb__ + d_A20_gene_by_Ikba k_FAST + s_Ikba 0.004255786898310512 # FITTED + sg_A20 5.014115674793064e-06 # FITTED + + + ## IRF3 module ------------------------------------------------------------------------ + # + p_Tbk1_by_RigiMavs k_FAST + q_Tbk1 k_FAST + q_Tbk1_by_A20__ 3.875729946075596e2 # FITTED + q_Tbk1_by_A20 q_Tbk1_by_A20__*q_Tbk1 + p_Irf3_by_Tbk1 k_POLYIC + q_Irf3 k_POLYIC + + + ## IFNb module ------------------------------------------------------------------------ + # + b_Ifnar_Ifnb_cyt k_FAST + b_Ifnar_Ifnb_ext 0.000750779497463291 # FITTED + tg_Ifnar_mrna tg_TRANSCRIPT + m_Rnasel_Ifnar_mrna 0.0039023754286057065 # FITTED + s_Ifnar 2.8778555528751826e-05 # FITTED + g_Ifnar 9.77848544160331e-05 # FITTED + g_Ifnar_w_Ifnb 0.00031054256866899256 # FITTED + tg_Ifnb_mrna tg_TRANSCRIPT + m_Ifnb_mrna_NfkbIrf3 3.162948461272814e-05 # FITTED + sg_Ifnb sg_PROTEIN + + + ## STAT1/2 module --------------------------------------------------------------------- + # + p_Stat k_FAST + q_Stat 0.0018294332440515334 # FITTED + m_Ifnar_a 0.020141727438512898 # FITTED + b_Stat1_Stat2 k_FAST + qu_Stat1_Stat2 0.052370747192221206 # FITTED + ma_Stat1_gene_basal 0.18314838022720048 # FITTED + ma_Stat2_gene_basal 0.07023843113385617 # FITTED + a_gene_by_Stat12dim 13126.669661929025 # FITTED, also used by the poly(I:C) module + tg_Stat_mrna tg_TRANSCRIPT + sg_Stat sg_PROTEIN + +end parameters + + + +begin molecule types + + ## poly(I:C) module ------------------------------------------------------------------- + + PolyIC(Rigi,loc~ext~cyt) # polyinosinic:polycytidylic acid, poly(I:C): + # Rigi -- RIG-I-binding site, + # loc -- location (extracellular or intracellular cytoplasmic). + + RIGI(Polyic,Mavs) # retinoic acid-inducible gene I, RIG-I: + # Polyic -- poly(I:C)-binding site, + # Mavs -- MAVS-binding site. + + MAVS(Rigi) # mitochondrial antiviral-signaling protein, MAVS: + # Rigi -- RIG-I-binding site. + + PKR(st~i~a) # protein kinase R, PKR: + # st -- activation state (switched on by poly(I:C) ternary complex). + + OAS3(st~i~a) # 2'-5'-oligoadenylate synthetase 3, OAS3: + # st -- activation state (switched on by poly(I:C) ternary complex). + + RNaseL(st~i~a) # ribonuclease L, RNase L: + # st -- activation state (switched on by active OAS3). + + eIF2a(st~u~p) # eukaryotic initiation factor 2, eIF2[alpha]: + # st -- phosphorylation state (eIF2a is inhibited when phosphorylated + # by active PKR) + + RIGI_mRNA() # RIG-I gene (DDX58) transcript + PKR_mRNA() # PKR gene (EIF2AK) transcript + OAS3_mRNA() # OAS3 gene (OAS3) transcript + RNaseL_mRNA() # RNase L gene (RNASEL) transcript + + + ## NF-kB module ----------------------------------------------------------------------- + + TNFa() # (extracellular) tumor necrosis factor alpha, TNF[alpha] + + TAK1(st~i~a) # TAK1 protein encoded by MAP3K7: + # st -- activation state (activators: poly(I:C):RIG-I:MAVS, TNFa). + + IKK(st~n~a~i~ii) # I[kappa]B kinase, IKK: + # st -- activation state (one of: neutral, active, inactive, inactive + # intermediate; activated by active TAK1). + + IkBa(Nfkb,loc~nuc~cyt,Ser32_Ser36~u~pp) # nuclear factor of kappa light polypeptide gene enhancer + # in B-cells inhibitor, alpha; I[kappa]B[alpha]: + # loc -- subcellular location (nuclear or cytoplasmic), + # Ser32_Ser36 -- lumped phosphorylation site (phosphorylated by active + # IKK; phosphorylated IkBa undergoes rapid degradation). + + NFkB(Ikba,loc~nuc~cyt) # nuclear factor [kappa] B, NF-[kappa]B: + # Ikba -- binding site for IkBa, + # loc -- subcellular location (cytoplasmic or nuclear). + + A20() # Tumor necrosis factor alpha-induced protein 3, a.k.a. A20. + + IkBa_mRNA() # I[kappa]B[alpha] gene (NFKBIA) transcript + A20_mRNA() # A20 gene (TNFAIP3) transcript + + + ## IRF3 module ------------------------------------------------------------------------ + + TBK1(Ser172~u~p) # TANK-binding kinase 1, TBK1: + # Ser172 -- phosphosite (TBK1 is activated upon its phosphorylation + # induced by poly(I:C):RIG-I:MAVS). + + IRF3(Ser396~u~p) # Interferon regulatory factor 3, IRF3: + # Ser396 -- phosphosite (IRF3 is activated upon its phosphorylation + # by phosphorylated TBK1). + + + ## IFNb module ------------------------------------------------------------------------ + + IFNAR(Ifnb) # Interferon-[beta] receptor, IFNAR: + # Ifnb -- IFNb-binding site (IFNAR is activated upon IFNb binding). + + IFNb(Ifnar,loc~ext~cyt) # Interferon-[beta] + + IFNAR_mRNA() # IFNAR gene (IFNAR1) transcript + IFNb_mRNA() # IFNb gene (IFNB1) transcript + + + ## STAT1/2 module --------------------------------------------------------------------- + + STAT1(Stat2,Tyr701~u~p) # Signal transducer and activator of transcription 1, STAT1: + # Stat2 -- binding site for STAT2, + # Tyr701 -- phosphosite (phosphorylated due to IFNAR:IFNb). + + STAT2(Stat1,Tyr690~u~p) # Signal transducer and activator of transcription 2, STAT2: + # Stat1 -- binding site for STAT1, + # Tyr690 -- phosphosite (phosphorylated due to IFNAR:IFNb). + + STAT1_mRNA() # STAT1 gene transcript + STAT2_mRNA() # STAT2 gene transcript + + Trash() + Source() + +end molecule types + + + +begin seed species + + # poly(I:C) module + PolyIC(Rigi,loc~ext) 0 + RIGI(Mavs,Polyic) 0 + MAVS(Rigi) h_Mavs + PKR(st~i) 0 + OAS3(st~i) 0 + RNaseL(st~i) 0 + eIF2a(st~u) n_eIF2a_dephospho_initial + RIGI_mRNA() 0 + PKR_mRNA() 0 + OAS3_mRNA() 0 + RNaseL_mRNA() 0 + + # NF-kB module + TNFa() 0 + NFkB(Ikba!0,loc~cyt).IkBa(Nfkb!0,loc~cyt,Ser32_Ser36~u) n_NFkB_IkBa_cyt_initial + TAK1(st~i) n_Tak1_i_initial + IKK(st~n) n_Ikk_n_initial + A20() 0 + IkBa_mRNA() 0 + A20_mRNA() 0 + + # IRF3 module + TBK1(Ser172~u) n_Tbk1_i_initial + IRF3(Ser396~u) n_Irf3_i_initial + + # IFNb module + IFNAR(Ifnb) 0 + IFNb(Ifnar,loc~cyt) 0 + IFNb(Ifnar,loc~ext) 0 + IFNAR_mRNA() 0 + IFNb_mRNA() 0 + + + # STAT1/2 module + STAT1(Stat2,Tyr701~u) 0 + STAT2(Stat1,Tyr690~u) 0 + STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) 0 + STAT1_mRNA() 0 + STAT2_mRNA() 0 + Trash() 0 + Source() 1 + +end seed species + + + +begin observables + + ## poly(I:C) module ------------------------------------------------------------------- + + Species RIG_I_total RIGI(Mavs!?,Polyic!?) + Molecules PKR_total PKR() + Molecules OAS3_total OAS3() + Species RNaseL_total RNaseL() + Species RNaseL_a RNaseL(st~a) # used in rate expression(s) + Species eIF2a_total eIF2a() + Species eIF2a_p eIF2a(st~p) # used in rate expression(s) + Species RIGI_mRNA1 RIGI_mRNA() # used in rate expression(s) + Species PKR_mRNA1 PKR_mRNA() # used in rate expression(s) + Species OAS3_mRNA1 OAS3_mRNA() # used in rate expression(s) + Species RNaseL_mRNA1 RNaseL_mRNA() # used in rate expression(s) + + + ## NF-kB module ----------------------------------------------------------------------- + + Species TAK1_a TAK1(st~a) # used in rate expression(s) + Species NFkB_nuc_free NFkB(loc~nuc,Ikba) # used in rate expression(s) + Species NFkB_nuc_total NFkB(loc~nuc) + Species NFkB_total NFkB() + + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp) + Species IkBa_nuc_free IkBa(Nfkb,loc~nuc,Ser32_Ser36~u) # used in rate expression(s) + Species A20_total A20() # used in rate expression(s) + Species IKK_a IKK(st~a) + Species IkBa_mRNA_total IkBa_mRNA() # used in rate expression(s) + Species A20_mRNA_total A20_mRNA() # used in rate expression(s) + + + ## IRF3 module ------------------------------------------------------------------------ + + Species IRF3_total IRF3() + Species IRF3_p IRF3(Ser396~p) # used in rate expression(s) + + + ## IFNb module ------------------------------------------------------------------------ + + Species IFNAR_total IFNAR() + Species IFNAR_a IFNAR(Ifnb!+) # used in rate expression(s) + Species IFNb_ext IFNb(loc~ext) + Species IFNb_cyt IFNb(loc~cyt) + Species IFNAR_mRNA_total IFNAR_mRNA() # used in rate expression(s) + Species IFNb_mRNA_total IFNb_mRNA() # used in rate expression(s) + + + ## STAT1/2 module --------------------------------------------------------------------- + + Molecules STAT1_total STAT1() + Molecules STAT2_total STAT2() + Molecules STAT1_p STAT1(Tyr701~p) + Species STAT2_p STAT2(Tyr690~p) + Species STAT1_u STAT1(Stat2,Tyr701~u) # used in rate expression(s) + Species STAT2_u STAT2(Stat1,Tyr690~u) # used in rate expression(s) + Molecules STAT12_dimer STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) # used in rate expression(s) + Species STAT1_mRNA_total STAT1_mRNA() # used in rate expression(s) + Species STAT2_mRNA_total STAT2_mRNA() # used in rate expression(s) + +end observables + + + +begin reaction rules + + ### === Poly(I:C) MODULE ============================================================== + + # (1) poly(I:C) enters the cell + PolyIC(Rigi,loc~ext) -> PolyIC(Rigi,loc~cyt) i_Polyic + + # (2) RIG-I binds poly(I:C) + RIGI(Mavs,Polyic) + PolyIC(Rigi,loc~cyt) -> \ + RIGI(Mavs,Polyic!1).PolyIC(Rigi!1,loc~cyt) b_Rigi_Polyic + + # (3) poly(I:C)-bound RIG-I is degraded, freeing poly(I:C) + RIGI(Mavs,Polyic!1).PolyIC(Rigi!1,loc~cyt) -> \ + PolyIC(Rigi,loc~cyt) sg_Rigi + + # (4) the poly(I:C):RIG-I complex binds MAVS, forming a ternary complex + RIGI(Mavs,Polyic!+) + MAVS(Rigi) -> \ + RIGI(Mavs!1,Polyic!+).MAVS(Rigi!1) b_RigiPolyic_Mavs + + # (5) RIG-I bound to both poly(I:C) and MAVS is degraded, protomers dissociate + PolyIC(Rigi!1,loc~cyt).RIGI(Mavs!2,Polyic!1).MAVS(Rigi!2) -> \ + PolyIC(Rigi,loc~cyt) + MAVS(Rigi) sg_Rigi + + # (6) poly(I:C) activates PKR + PolyIC(loc~cyt) + PKR(st~i) -> \ + PolyIC(loc~cyt) + PKR(st~a) a_Pkr_by_Polyic + + # (7) PKR inactivation + PKR(st~a) -> PKR(st~i) d_Pkr + + # (8) poly(I:C) activates OAS3 + PolyIC(loc~cyt) + OAS3(st~i) -> \ + PolyIC(loc~cyt) + OAS3(st~a) a_Oas3_by_Polyic + + # (9) OAS3 inactivation + OAS3(st~a) -> OAS3(st~i) d_Oas3 + + # (10A) active PKR phosphorylates eIF2a + PKR(st~a) + eIF2a(st~u) -> \ + PKR(st~a) + eIF2a(st~p) p_Eif2a_by_Pkr + + # (10B) eIF2a basal phosphorylation (=> activation of its inhibitory function) + eIF2a(st~u) -> eIF2a(st~p) p_Eif2a_basal + + # (11) eIF2a dephosphorylation + eIF2a(st~p) -> eIF2a(st~u) q_Eif2a + + # (12) active OAS3 activates RNaseL + OAS3(st~a) + RNaseL(st~i) -> \ + OAS3(st~a) + RNaseL(st~a) a_Rnasel_by_Oas3 + + # (13) RNase L deactivation + RNaseL(st~a) -> RNaseL(st~i) d_Rnasel + + # (14, 15, 16, 17) transcription of IFN-stimulated genes (ISGs) + Source() -> RIGI_mRNA() tg_Isg_mrna*(ma_Rigi_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Rigi_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + Source() -> PKR_mRNA() h_Pkr_gene*tg_Isg_mrna*(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + Source() -> OAS3_mRNA() tg_Isg_mrna*(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Pkr_Oas3_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + Source() -> RNaseL_mRNA() h_Rnasel_gene*tg_Isg_mrna*(ma_Rnasel_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Rnasel_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + + # (18, 19, 20, 21) mRNA degradation + RIGI_mRNA() -> Trash() tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + PKR_mRNA() -> Trash() tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + OAS3_mRNA() -> Trash() tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + RNaseL_mRNA() -> Trash() tg_Isg_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + # (22, 23, 24, 25) protein synthesis + RIGI_mRNA() -> RIGI_mRNA() + RIGI(Mavs,Polyic) sg_Rigi + PKR_mRNA() -> PKR_mRNA() + PKR(st~i) sg_Pkr + OAS3_mRNA() -> OAS3_mRNA() + OAS3(st~i) sg_Oas3 + RNaseL_mRNA() -> RNaseL_mRNA() + RNaseL(st~i) sg_Rnasel + + # (26, 27, 28, 29) protein degradation + RIGI(Mavs,Polyic) -> Trash() sg_Rigi + PKR() -> Trash() sg_Pkr + OAS3() -> Trash() sg_Oas3 + RNaseL() -> Trash() sg_Rnasel + + + + ### === NF-kB MODULE ================================================================== + + ## --- activity of TAK1 ----------------------------------------------------- + + # (1A) poly(I:C):RIG-I:MAVS complex activates TAK1 + RIGI(Mavs!1,Polyic!+).MAVS(Rigi!1) + TAK1(st~i) -> \ + RIGI(Mavs!1,Polyic!+).MAVS(Rigi!1) + TAK1(st~a) a_Tak1_by_RigiMavs + + # (1B) TNFa activates TAK1 + TNFa() + TAK1(st~i) -> \ + TNFa() + TAK1(st~a) a_Tak1_by_Tnfa + + # (2) active TAK1 is deactivated + TAK1(st~a) -> TAK1(st~i) d_Tak1 + + + ## --- activity of IKK ------------------------------------------------------ + + # (3) active TAK1 activates IKK + IKK(st~n) -> IKK(st~a) a_Ikk*TAK1_a*TAK1_a + + # (4) active IKK is deactivated, with a contribution from A20 + IKK(st~a) -> IKK(st~i) d_Ikk_1/d_Ikk_2*(d_Ikk_2 + A20) + + # (5, 6) inactive IKK transitions to the neutral state + IKK(st~i) -> IKK(st~ii) d_Ikk_3 + IKK(st~ii) -> IKK(st~n) d_Ikk_3 + + + ## --- formation of the IkBa:NF-kB complex ---------------------------------- + + # (7) IkBa and NF-kB form a complex in the cytoplasm + IkBa(Nfkb,loc~cyt,Ser32_Ser36~u) + NFkB(Ikba,loc~cyt) -> \ + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~u).NFkB(Ikba!1,loc~cyt) b_Nfkb_Ikba_cyt + + # (8) IkBa and NF-kB form a complex in the nucleus + IkBa(Nfkb,loc~nuc,Ser32_Ser36~u) + NFkB(Ikba,loc~nuc) -> \ + IkBa(Nfkb!1,loc~nuc,Ser32_Ser36~u).NFkB(Ikba!1,loc~nuc) b_Nfkb_Ikba_nuc + + + ## --- phosphorylation of IkBa ---------------------------------------------- + + # (9) active IKK phosphorylates unbound IkBa + IKK(st~a) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~u) -> \ + IKK(st~a) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp) p_Ikba_by_Ikk + + # (10) active IKK phosphorylates IkBa complexed with NF-kB + IKK(st~a) + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~u) -> \ + IKK(st~a) + IkBa(Nfkb!+,loc~cyt,Ser32_Ser36~pp) p_Ikba_by_Ikk + + + ## --- degradation of IkBa -------------------------------------------------- + + # (11) phosphorylated unbound IkBa is degraded (in the cytoplasm) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~pp) -> Trash() g_Ikba_p_any + + # (12) phosphorylated NF-kB-bound IkBa is degraded (in the cytoplasm, releasing free NF-kB) + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~pp).NFkB(Ikba!1,loc~cyt) -> \ + NFkB(Ikba,loc~cyt) g_Ikba_p_any + + # (13) nonphosphorylated nonbound IkBa is degraded (in the cytoplasm) + IkBa(Nfkb,loc~cyt,Ser32_Ser36~u) -> Trash() g_Ikba_u_free + + # (14) nonphosphorylated NF-kB-bound IkBa is degraded (in the cytoplasm) + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~u).NFkB(Ikba!1,loc~cyt) -> \ + NFkB(Ikba,loc~cyt) g_Ikba_u_with_Nfkb + + + ## --- nucleocytoplasmic shuttling of NF-kB, IkBa, and IkBa:NF-kB ----------- + + # (15) nonbound NF-kB translocates from the cytoplasm to the nucleus + NFkB(Ikba,loc~cyt) -> NFkB(Ikba,loc~nuc) i_Nfkb + + # (16) NF-kB bound to nonphosphorylated IkBa translocates from the nucleus to the cytoplasm + IkBa(Nfkb!1,loc~nuc,Ser32_Ser36~u).NFkB(Ikba!1,loc~nuc) -> \ + IkBa(Nfkb!1,loc~cyt,Ser32_Ser36~u).NFkB(Ikba!1,loc~cyt) e_Nfkb_with_Ikba + + # (17, 18) nonbound nonphosphorylated IkBa translocates between the cytoplasm and the nucleus + IkBa(Nfkb,loc~cyt,Ser32_Ser36~u) <-> \ + IkBa(Nfkb,loc~nuc,Ser32_Ser36~u) i_Ikba, e_Ikba + + + ## --- gene expression and degradation of transcripts ----------------------- + + # (19, 20) IkBa gene transcription and transcript degradation + Source() -> IkBa_mRNA() tg_Ikba_mrna* a_Ikba_gene_by_Nfkb*NFkB_nuc_free \ + /(a_Ikba_gene_by_Nfkb*NFkB_nuc_free + d_Ikba_gene_by_Ikba*IkBa_nuc_free + EPSILON) + IkBa_mRNA() -> Trash() tg_Ikba_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + # (21, 22) A20 gene transcription and transcript degradation + Source() -> A20_mRNA() tg_A20_mrna* a_A20_gene_by_Nfkb*NFkB_nuc_free \ + /(a_A20_gene_by_Nfkb*NFkB_nuc_free + d_A20_gene_by_Ikba*IkBa_nuc_free + EPSILON) + A20_mRNA() -> Trash() tg_A20_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + + ## --- protein synthesis and degradation ------------------------------------ + + # (23) IkBa protein: synthesis + IkBa_mRNA() -> IkBa_mRNA() + IkBa(Nfkb,loc~cyt,Ser32_Ser36~u) s_Ikba*m_Eif2a/(m_Eif2a + eIF2a_p) + # (Degradation of IkBa protein is a part of signal transduction defined above; see rules 11--14.) + + # (24, 25) A20 protein: synthesis and degradation + A20_mRNA() -> A20_mRNA() + A20() sg_A20*m_Eif2a/(m_Eif2a + eIF2a_p) + A20() -> Trash() sg_A20 + + + + ### === IRF3 module =================================================================== + + # (1) poly(I:C):RIG-I:MAVS complex activates (phosphorylates) TBK1 + RIGI(Mavs!+,Polyic!+) + TBK1(Ser172~u) -> \ + RIGI(Mavs!+,Polyic!+) + TBK1(Ser172~p) p_Tbk1_by_RigiMavs + + # (2A) TBK1 is deactivated (dephosphorylated) + TBK1(Ser172~p) -> TBK1(Ser172~u) q_Tbk1 + + # (2B) A20 (additionally) deactivates TBK1 + A20() + TBK1(Ser172~p) -> \ + A20() + TBK1(Ser172~u) q_Tbk1_by_A20 + + # (3) TBK1 activates (phosphorylates) IRF3 + TBK1(Ser172~p) + IRF3(Ser396~u) -> \ + TBK1(Ser172~p) + IRF3(Ser396~p) p_Irf3_by_Tbk1 + + # (4) IRF3 is deactivated (dephosphorylated) + IRF3(Ser396~p) -> IRF3(Ser396~u) q_Irf3 + + + + ### === IFNb module =================================================================== + + # (1) IFNb binds IFNAR (autocrine activation) + IFNAR(Ifnb) + IFNb(Ifnar,loc~cyt) -> \ + IFNAR(Ifnb!1).IFNb(Ifnar!1,loc~ext) b_Ifnar_Ifnb_cyt + + # (2) IFNb binds IFNAR (external stimulation) + IFNAR(Ifnb) + IFNb(Ifnar,loc~ext) -> \ + IFNAR(Ifnb!1).IFNb(Ifnar!1,loc~ext) b_Ifnar_Ifnb_ext + + # (3, 4) IFNAR1 gene transcription and transcript degradation + Trash() <-> IFNAR_mRNA() tg_Ifnar_mrna, tg_Ifnar_mrna*(m_Rnasel_Ifnar_mrna + RNaseL_a) \ + / m_Rnasel_Ifnar_mrna + + # (5, 6, 7) IFNAR protein: synthesis and degradation + IFNAR_mRNA() -> IFNAR_mRNA() + IFNAR(Ifnb) s_Ifnar*m_Eif2a/(m_Eif2a + eIF2a_p) + IFNAR(Ifnb) -> Trash() g_Ifnar + IFNAR(Ifnb!+) -> Trash() g_Ifnar_w_Ifnb + + # (8, 9): IFNb gene transcription and transcript degradation + Source() -> IFNb_mRNA() tg_Ifnb_mrna*NFkB_nuc_free*IRF3_p/(m_Ifnb_mrna_NfkbIrf3 + NFkB_nuc_free*IRF3_p) + IFNb_mRNA() -> Trash() tg_Ifnb_mrna + + # (10, 11): IFNb protein: synthesis and degradation + IFNb_mRNA() -> IFNb_mRNA() + IFNb(Ifnar,loc~cyt) sg_Ifnb + IFNb(Ifnar,loc~cyt) -> Trash() sg_Ifnb + + + + ### === STAT1/2 module ================================================================ + + # (1, 3; 2, 4) STAT1 and STAT2: phosphorylation and dephosphorylation + STAT1(Stat2,Tyr701~u) <-> STAT1(Stat2,Tyr701~p) p_Stat*IFNAR_a*m_Ifnar_a/(m_Ifnar_a + STAT1_u), q_Stat + STAT2(Stat1,Tyr690~u) <-> STAT2(Stat1,Tyr690~p) p_Stat*IFNAR_a*m_Ifnar_a/(m_Ifnar_a + STAT2_u), q_Stat + + # (5) p-STAT1 and p-STAT2 heterodimerize + STAT1(Stat2,Tyr701~p) + STAT2(Stat1,Tyr690~p) -> \ + STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) b_Stat1_Stat2 + + # (6) the p-STAT1:p-STAT2 dimer gets dephosphorylated and then immediately dissociates + STAT1(Stat2!1,Tyr701~p).STAT2(Stat1!1,Tyr690~p) -> \ + STAT1(Stat2,Tyr701~u) + STAT2(Stat1,Tyr690~u) qu_Stat1_Stat2 + + # (7, 8; 9, 10) STAT1 gene and STAT2 gene transcription and transcript degradation + Source() -> STAT1_mRNA() tg_Stat_mrna*(ma_Stat1_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Stat1_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + Source() -> STAT2_mRNA() tg_Stat_mrna*(ma_Stat2_gene_basal + a_gene_by_Stat12dim*STAT12_dimer) \ + /(ma_Stat2_gene_basal + a_gene_by_Stat12dim*STAT12_dimer + 1) + # + STAT1_mRNA() -> Trash() tg_Stat_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + STAT2_mRNA() -> Trash() tg_Stat_mrna*(m_Rnasel + RNaseL_a)/m_Rnasel + + # (11, 12; 13, 14; 15) STAT1 protein and STAT2 protein: synthesis and degradation + STAT1_mRNA() -> STAT1_mRNA() + STAT1(Stat2,Tyr701~u) sg_Stat + STAT2_mRNA() -> STAT2_mRNA() + STAT2(Stat1,Tyr690~u) sg_Stat + STAT1(Stat2) -> Trash() sg_Stat + STAT2(Stat1) -> Trash() sg_Stat + STAT1(Stat2!1).STAT2(Stat1!1) -> Trash() sg_Stat + +end reaction rules + +end model + + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + + +begin actions + + generate_network({overwrite=>1}); + + + ## Export: + # + #writeSBML({}); + #writeMfile({}); + + + ## Settings for different cell types (when all commented out, WT cells are simulated): + # + # # for RNase L KO cells: + # setParameter("h_Rnasel_gene",0); + # + # # for PKR KO: + # setParameter("h_Pkr_gene",0); + + + ## Simulation: + # + # (1 of 3) equilibration (first phase duration is 30 days, second phase ends before stimulation): + simulate_ode({t_end=>3600*24*30,n_steps=>1000}); + simulate_ode({continue=>0,t_start=>0,t_end=>100000-24*3600,n_steps=>24*60}); + # + # (2 of 3) prestimulation with IFNb (24 h before stimulation): + setConcentration("IFNb(Ifnar,loc~ext)","n_IFNb_stimulation"); + simulate_ode({continue=>1,t_start=>100000-24*3600,t_end=>100000,n_steps=>24*60}); + # + # (3 of 3) stimulation with poly(I:C): + setConcentration("PolyIC(Rigi,loc~ext)","n_polyIC_stimulation"); + simulate_ode({continue=>1,t_start=>100000, t_end=>100000+10*3600,n_steps=>24*60}); + +end actions From 66378e7b9def1ec0e104c19c33ee1a2899c45928 Mon Sep 17 00:00:00 2001 From: NabilM35 Date: Wed, 20 May 2026 12:22:49 -0400 Subject: [PATCH 2/9] test commit into working --- Working/genetic_switch_gardner2000.bngl | 152 ++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 Working/genetic_switch_gardner2000.bngl diff --git a/Working/genetic_switch_gardner2000.bngl b/Working/genetic_switch_gardner2000.bngl new file mode 100644 index 00000000..32edf664 --- /dev/null +++ b/Working/genetic_switch_gardner2000.bngl @@ -0,0 +1,152 @@ +begin model + +#@title: Genetic toggle switch (Gardner et al., 2000) + +#@description: | +# De-dimensionalized model of two mutually repressive gene products +# with Hill-type repression and first-order degradation, forming a +# bistable genetic toggle switch. ODE only — dimensionless variables +# are incompatible with stochastic simulation. +# +# Equations (Eq. 1 in Gardner et al., 2000): +# du/dt = alpha_1 / (1 + v^beta) - u +# dv/dt = alpha_2 / (1 + u^gamma) - v +# where u, v are concentrations normalized by the repression threshold +# (dissociation constant K_d), and time is in units of protein lifetime +# (1/k_deg). All parameters and variables are therefore dimensionless. +# +# Steady-state analysis: at steady state, du/dt = dv/dt = 0, giving: +# u* = alpha_1 / (1 + v*^beta) (u-nullcline) +# v* = alpha_2 / (1 + u*^gamma) (v-nullcline) +# These nullclines intersect at three points for the default +# parameters, yielding two stable fixed points and one unstable +# saddle: +# - u-dominant: (u ~ 155.8, v ~ 0.10) — stable +# - v-dominant: (u ~ 0.33, v ~ 11.7) — stable +# - saddle: (u ~ 1.32, v ~ 6.73) — unstable +# The separatrix (boundary between basins of attraction) passes +# through the saddle point. Initial conditions below and to the right +# of the separatrix converge to the u-dominant state; above and to +# the left, to the v-dominant state. From the origin (0, 0), the +# system converges to the u-dominant state because alpha_1 >> alpha_2. +# +# Bistability requires at least one Hill coefficient > 1. With +# gamma = 1 (no cooperativity for repression of v by u), beta must be +# sufficiently large. The bistability region in (alpha_1, alpha_2) +# space is shown in Fig. 2c in Gardner et al. (2000). + +#@keyword: | +# gene regulation, bistable, mutual inhibition, Hill kinetics, +# synthetic biology, Escherichia coli, toggle switch, dimensionless + +#@reference: | +# Gardner TS, Cantor CR, Collins JJ (2000). Construction of a genetic +# toggle switch in Escherichia coli. Nature 403:339-342. +# doi:10.1038/35002131 +# BioModels: BIOMD0000000507 + +begin parameters + + #@note: | + # Dimensionless units (nondimensionalized model): + # concentration unit = K_d (repression threshold) + # time unit = 1/k_deg (protein lifetime, ~30-60 min in + # Escherichia coli) + + # Max synthesis rate of u; see Eq. 1 in Gardner et al. (2000) + alpha_1 156.25 # dimensionless + # Max synthesis rate of v; see Eq. 1 in Gardner et al. (2000) + alpha_2 15.6 # dimensionless + # Hill coefficients for mutual repression + beta 2.5 # dimensionless + gamma 1.0 # dimensionless + # Normalized degradation rate (= 1 by construction of the nondimensionalization) + k_deg 1.0 # dimensionless +end parameters + +begin molecule types + # Repressor 1 (u in Gardner et al., 2000) + R1() + # Repressor 2 (v in Gardner et al., 2000) + R2() +end molecule types + +begin seed species + R1() 0 # dimensionless + R2() 0 # dimensionless +end seed species + +begin observables + # Total repressor levels (dimensionless, in units of K_d) + Molecules Obs_Tot_R1 R1() + Molecules Obs_Tot_R2 R2() +end observables + +begin functions + # Hill-repressed synthesis rates (dimensionless propensities); + # see Eq. 1 in Gardner et al. (2000). Degradation term is in reaction rules. + syn_R1() = alpha_1 / (1 + Obs_Tot_R2^beta) + syn_R2() = alpha_2 / (1 + Obs_Tot_R1^gamma) +end functions + +begin reaction rules + # Synthesis with Hill-type mutual repression + 0 -> R1() syn_R1() + 0 -> R2() syn_R2() + + # First-order degradation (k_deg = 1 by nondimensionalization) + R1() -> 0 k_deg + R2() -> 0 k_deg +end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) # 2 species, 4 reactions + + #@note: | + # Three protocols: (1) bistability demo, (2) bifurcation + # scan, (3) simple relaxation. Protocols 1 and 2 are active + # (figure-linked); protocol 3 is commented out. + + # Bistability demonstration + + #@protocol: | + # Phase 1: Relax from (0, 0) to the u-dominant steady state + # (~8 protein lifetimes). + # Phase 2: Increase alpha_2 to 600 (simulating IPTG + # induction), pushing the system across the separatrix into + # the v-dominant basin. + # Phase 3: Restore alpha_2 to 15.6. System remains in the + # v-dominant state, confirming bistability. + + #@figure: | + # Theoretical curves in Fig. 5a in Gardner et al. (2000). + # Our simulation demonstrates the switching behavior that + # underlies the experimental data in Fig. 4a. + + simulate({method=>"ode",suffix=>"ode",t_start=>0,t_end=>8,n_steps=>400}) + setParameter("alpha_2",600.0) + simulate({method=>"ode",suffix=>"ode",t_start=>8,t_end=>12,n_steps=>200,continue=>1}) + setParameter("alpha_2",15.6) + simulate({method=>"ode",suffix=>"ode",t_start=>12,t_end=>20,n_steps=>400,continue=>1}) + + # Bifurcation boundary scan + + #@protocol: | + # Scan alpha_2 at fixed alpha_1 across the + # bistable-to-monostable transition. + + #@figure: Fig. 2c in Gardner et al. (2000) + + parameter_scan({method=>"ode",parameter=>"alpha_2",\ + par_min=>1,par_max=>500,n_scan_pts=>100,\ + t_start=>0,t_end=>20,n_steps=>200,suffix=>"scan"}) + + # Simple relaxation + + #@protocol: Single trajectory from the origin without induction. + +# simulate({method=>"ode",suffix=>"ode",t_start=>0,t_end=>20,\ +# n_steps=>500}) +end actions From b26665f0b100aff6ceca228d2213e7dd957355b2 Mon Sep 17 00:00:00 2001 From: Michael Blinov Date: Tue, 23 Jun 2026 11:30:01 -0400 Subject: [PATCH 3/9] Update metadata-schema.yaml to include more searchable features --- metadata-schema.yaml | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/metadata-schema.yaml b/metadata-schema.yaml index fab10396..c97ecd66 100644 --- a/metadata-schema.yaml +++ b/metadata-schema.yaml @@ -12,29 +12,49 @@ contributors: - name: string citation: - doi: string - pmid: string - reference: string + doi: string # DOI only, no link + pmid: string # PubMed ID only, no link + url: string # either journal link or preprint link or website link + reference: string # regular citation string, e.g. "Author et al., Journal, Year, Volume, Pages" date: created: YYYY-MM-DD modified: YYYY-MM-DD published: YYYY-MM-DD + tested: YYYY-MM-DD # model last tested, but no changes made tags: string[] -category: enum(signaling, regulation, metabolism, gene-expression, epidemiology, immunology, tutorial, validation, showcase, synthetic-biology, ecology, physics, computer-science, other, compartments, energy, feature-demos, nfsim, processes, wacky, cs, biology, genetics, ml, signal-processing, mechanistic-modeling, biophysics) +#category: enum(signaling, regulation, metabolism, gene-expression, epidemiology, immunology, tutorial, validation, showcase, synthetic-biology, ecology, physics, computer-science, other, compartments, energy, feature-demos, nfsim, processes, wacky, cs, biology, genetics, ml, signal-processing, mechanistic-modeling, biophysics) +biol_category: + - enum(signaling, regulation, metabolism, gene-expression, epidemiology, immunology, synthetic-biology, ecology, physics, other, biology, genetics, signal-processing, mechanistic-modeling, biophysics) + +comp_categories: + - enum(tutorial, validation, showcase, computer-science, other, compartments, energy, feature-demos, nfsim, processes, wacky, cs, ml, other) compatibility: bng2_compatible: boolean min_bng_version: string + rr_compatible: boolean + bnglviz_compatible: boolean + vcell_compatible: boolean + vcell_errors: string simulation_methods: - - enum(ode, ssa, nf, pla, hybrid) - uses_compartments: boolean - uses_energy: boolean - uses_functions: boolean + - enum(ode, ssa, nf, pla, hybrid, molclustpy, vcell) nfsim_compatible: boolean excluded: boolean +features: + uses_cbngl_compartments: boolean + uses_vcell_compartments: boolean + uses_energy: boolean + uses_functions: boolean + uses_moveconnected: boolean + uses_trash_molecules: boolean + uses_anchors: boolean + uses_multiple_identical_sites: boolean + uses_deletes_molecules: boolean + uses_exclude_include_reactants: boolean + source: origin: enum(published, contributed, ai-generated, ported-from-sbml, tutorial, test-case) original_format: string From 20d499f2f552258e1d8f07845f87a8570785d0d1 Mon Sep 17 00:00:00 2001 From: Michael Blinov Date: Tue, 23 Jun 2026 11:36:17 -0400 Subject: [PATCH 4/9] Update categories->category --- metadata-schema.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata-schema.yaml b/metadata-schema.yaml index c97ecd66..20117d04 100644 --- a/metadata-schema.yaml +++ b/metadata-schema.yaml @@ -25,7 +25,7 @@ date: tags: string[] #category: enum(signaling, regulation, metabolism, gene-expression, epidemiology, immunology, tutorial, validation, showcase, synthetic-biology, ecology, physics, computer-science, other, compartments, energy, feature-demos, nfsim, processes, wacky, cs, biology, genetics, ml, signal-processing, mechanistic-modeling, biophysics) -biol_category: +biol_categories: - enum(signaling, regulation, metabolism, gene-expression, epidemiology, immunology, synthetic-biology, ecology, physics, other, biology, genetics, signal-processing, mechanistic-modeling, biophysics) comp_categories: From 83a92d734a83bea0800ca95253ad39eae69330b2 Mon Sep 17 00:00:00 2001 From: Michael Blinov Date: Tue, 23 Jun 2026 11:44:10 -0400 Subject: [PATCH 5/9] added default_sim_command --- metadata-schema.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/metadata-schema.yaml b/metadata-schema.yaml index 20117d04..e0a8abe2 100644 --- a/metadata-schema.yaml +++ b/metadata-schema.yaml @@ -53,7 +53,11 @@ features: uses_anchors: boolean uses_multiple_identical_sites: boolean uses_deletes_molecules: boolean - uses_exclude_include_reactants: boolean + uses_exclude_include_reactants: boolean + uses_generate_network: boolean + default_sim_command: + enum(ode, ssa, nf, pla, hybrid,molclustpy,vcell) # default simulation command for the model, if any + source: origin: enum(published, contributed, ai-generated, ported-from-sbml, tutorial, test-case) From 003fc26a98535ea0e965f6ad6ebf14fdbc613646 Mon Sep 17 00:00:00 2001 From: Michael Blinov Date: Tue, 23 Jun 2026 11:49:09 -0400 Subject: [PATCH 6/9] added molclustpy --- metadata-schema.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/metadata-schema.yaml b/metadata-schema.yaml index e0a8abe2..88df7c2e 100644 --- a/metadata-schema.yaml +++ b/metadata-schema.yaml @@ -37,6 +37,7 @@ compatibility: rr_compatible: boolean bnglviz_compatible: boolean vcell_compatible: boolean + molclustpy_compatible: boolean vcell_errors: string simulation_methods: - enum(ode, ssa, nf, pla, hybrid, molclustpy, vcell) From 195feb2cb6b4cbace0ba0fb058827ccf41e242a7 Mon Sep 17 00:00:00 2001 From: NabilM35 Date: Wed, 24 Jun 2026 10:31:13 -0400 Subject: [PATCH 7/9] This is a test, some changes were done but not all. If it works more changes will come. --- .../nfsimaggregationgelation/metadata.yaml | 100 ++++++++++++++---- 1 file changed, 80 insertions(+), 20 deletions(-) diff --git a/Examples/nfsim/nfsimaggregationgelation/metadata.yaml b/Examples/nfsim/nfsimaggregationgelation/metadata.yaml index 869f8fdb..2089441e 100644 --- a/Examples/nfsim/nfsimaggregationgelation/metadata.yaml +++ b/Examples/nfsim/nfsimaggregationgelation/metadata.yaml @@ -1,24 +1,84 @@ -id: "nfsim_aggregation_gelation" -name: "nfsim aggregation gelation" -description: "Model: nfsim_aggregation_gelation.bngl" +id: nfsim_aggregation_gelation +name: nfsim aggregation gelation +description: A model for simulating aggregation and gelation processes in nfsim + +authors: + - name: string + orcid: string + contributors: - - name: "Achyudhan" -tags: ["nfsim", "aggregation", "gelation", "m"] -category: "other" + - name: Achyudhan + +citation: + doi: string + pmid: string + url: string + reference: string + +date: + created: YYYY-MM-DD + modified: YYYY-MM-DD + published: YYYY-MM-DD + last_tested: 6/24/2026 + +tags: string[] + +biol_category: +enum(signaling, regulation, metabolism, gene-expression, epidemiology, immunology, synthetic-biology, ecology, physics, other, biology, genetics, signal-processing, mechanistic-modeling, biophysics) + +comp_categories: +enum(tutorial, validation, showcase, computer-science, other, compartments, energy, feature-demos, nfsim, processes, wacky, cs, ml, other) + compatibility: - bng2_compatible: true - simulation_methods: ["nf"] - uses_compartments: false - uses_energy: false - uses_functions: false - nfsim_compatible: false + rr_compatible: True + bnglviz_compatible: True + bng2_compatible: True + vcell_compatible: True + vcell_errors: False + min_bng_version: string + simulation_methods: + - ode + - ssa + - nf + - molclustpy + - vcell + nfsim_compatible: True + molclustpy_compatible: True + excluded: boolean + +Features: + uses_generate_network: + default_sim_command: + enum(ode, ssa, nf, pla, hybrid,molclustpy,vcell) + uses_cbngl_compartmts: boolean + uses_vcell_compartmts: boolean + uses_energy: boolean + uses_functions: boolean + uses_totalrate: boolean + uses_moveconnected: boolean + uses_trash_molecules: boolean + uses_anchors: boolean + uses_multiple_identical_sites: boolean + uses_deletes_molecules: boolean + uses_exclude_include_reactants: boolean + source: - origin: "ai-generated" - original_format: "bngl" - original_repository: "bionetgen-web-simulator" - source_path: "example-models/nfsim_aggregation_gelation.bngl" + origin: enum(published, contributed, ai-generated, ported-from-sbml, tutorial, test-case) + original_format: string + original_repository: string + biomodels_id: string + source_path: string + aux_dirs: string[] + +collection: + type: enum(parameter-fit-variants, sensitivity-analysis, geographic-variants, patient-specific, benchmark-suite) + parent_model: string + variant_key: string + count: integer + playground: - visible: false - gallery_categories: ["test-models"] - featured: false - difficulty: "advanced" + visible: boolean + gallery_categories: string[] + featured: boolean + difficulty: enum(beginner, intermediate, advanced) + sort_priority: integer \ No newline at end of file From 35ba9996653c1d647c06fe630141324f613ccd35 Mon Sep 17 00:00:00 2001 From: Michael Blinov Date: Wed, 24 Jun 2026 13:29:04 -0400 Subject: [PATCH 8/9] Delete Examples/nfsim/nfsimaggregationgelation/metadata.yaml --- .../nfsimaggregationgelation/metadata.yaml | 84 ------------------- 1 file changed, 84 deletions(-) delete mode 100644 Examples/nfsim/nfsimaggregationgelation/metadata.yaml diff --git a/Examples/nfsim/nfsimaggregationgelation/metadata.yaml b/Examples/nfsim/nfsimaggregationgelation/metadata.yaml deleted file mode 100644 index 2089441e..00000000 --- a/Examples/nfsim/nfsimaggregationgelation/metadata.yaml +++ /dev/null @@ -1,84 +0,0 @@ -id: nfsim_aggregation_gelation -name: nfsim aggregation gelation -description: A model for simulating aggregation and gelation processes in nfsim - -authors: - - name: string - orcid: string - -contributors: - - name: Achyudhan - -citation: - doi: string - pmid: string - url: string - reference: string - -date: - created: YYYY-MM-DD - modified: YYYY-MM-DD - published: YYYY-MM-DD - last_tested: 6/24/2026 - -tags: string[] - -biol_category: -enum(signaling, regulation, metabolism, gene-expression, epidemiology, immunology, synthetic-biology, ecology, physics, other, biology, genetics, signal-processing, mechanistic-modeling, biophysics) - -comp_categories: -enum(tutorial, validation, showcase, computer-science, other, compartments, energy, feature-demos, nfsim, processes, wacky, cs, ml, other) - -compatibility: - rr_compatible: True - bnglviz_compatible: True - bng2_compatible: True - vcell_compatible: True - vcell_errors: False - min_bng_version: string - simulation_methods: - - ode - - ssa - - nf - - molclustpy - - vcell - nfsim_compatible: True - molclustpy_compatible: True - excluded: boolean - -Features: - uses_generate_network: - default_sim_command: - enum(ode, ssa, nf, pla, hybrid,molclustpy,vcell) - uses_cbngl_compartmts: boolean - uses_vcell_compartmts: boolean - uses_energy: boolean - uses_functions: boolean - uses_totalrate: boolean - uses_moveconnected: boolean - uses_trash_molecules: boolean - uses_anchors: boolean - uses_multiple_identical_sites: boolean - uses_deletes_molecules: boolean - uses_exclude_include_reactants: boolean - -source: - origin: enum(published, contributed, ai-generated, ported-from-sbml, tutorial, test-case) - original_format: string - original_repository: string - biomodels_id: string - source_path: string - aux_dirs: string[] - -collection: - type: enum(parameter-fit-variants, sensitivity-analysis, geographic-variants, patient-specific, benchmark-suite) - parent_model: string - variant_key: string - count: integer - -playground: - visible: boolean - gallery_categories: string[] - featured: boolean - difficulty: enum(beginner, intermediate, advanced) - sort_priority: integer \ No newline at end of file From f20dd45f8dac0fded5176f5930963d7457fa2abf Mon Sep 17 00:00:00 2001 From: Michael Blinov Date: Wed, 24 Jun 2026 13:47:26 -0400 Subject: [PATCH 9/9] Add year field to citation in metadata schema --- metadata-schema.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/metadata-schema.yaml b/metadata-schema.yaml index 88df7c2e..26ae87db 100644 --- a/metadata-schema.yaml +++ b/metadata-schema.yaml @@ -12,6 +12,7 @@ contributors: - name: string citation: + year: string # 4 digits doi: string # DOI only, no link pmid: string # PubMed ID only, no link url: string # either journal link or preprint link or website link @@ -79,4 +80,4 @@ playground: gallery_categories: string[] featured: boolean difficulty: enum(beginner, intermediate, advanced) - sort_priority: integer \ No newline at end of file + sort_priority: integer