diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aebe4e8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.net +*.gdat +*.cdat +*.xml +*.m \ No newline at end of file diff --git a/Published/Dembo1978/README.md b/Published/Dembo1978/README.md new file mode 100644 index 0000000..3518a68 --- /dev/null +++ b/Published/Dembo1978/README.md @@ -0,0 +1,3 @@ +# Dembo 1978 + +BioNetGen model: Dembo 1978 diff --git a/Published/Dembo1978/blbr_dembo1978.bngl b/Published/Dembo1978/blbr_dembo1978.bngl new file mode 100644 index 0000000..da41460 --- /dev/null +++ b/Published/Dembo1978/blbr_dembo1978.bngl @@ -0,0 +1,186 @@ +begin model + +#@title: | +# Symmetric bivalent hapten-receptor cross-linking +# (Dembo and Goldstein, 1978) + +#@description: | +# Network-free (NFsim) kinetic model of symmetric bivalent +# hapten binding to bivalent cell-surface antibody (IgE), +# forming linear chains. Three processes: (1) hapten capture +# from solution — a free bivalent hapten binds a receptor +# site; (2) receptor cross-linking — a tethered hapten arm +# binds a free receptor site on a DIFFERENT complex (no +# intra-complex rings); (3) bond dissociation — any +# hapten-receptor bond breaks. +# +# This is the basic model without ring formation (J1 = J2 +# = 0 in Dembo and Goldstein notation). The equilibrium +# cross-linking curve (fraction of antibody in polymers, +# x_poly, vs log hapten concentration) is bell-shaped and +# symmetric about a_max = 1 (i.e., A_max = 1/H in +# dimensional terms, corresponding to KC = 1 in Perelson +# and DeLisi notation). At high and low hapten +# concentrations, cross-linking approaches zero (prozone +# effect). +# +# The kinetic formulation follows Perelson and DeLisi +# (1980), who showed that singly-bound and doubly-bound +# ligand concentrations (m and M) are governed by two +# coupled ODEs under the equivalent-site hypothesis. Given +# m(t) and M(t), the full aggregate size distribution can +# be obtained combinatorially. +# +# Default parameterization: KxRT = 5 (dimensionless +# cross-linking propensity), reproducing moderate +# cross-linking as in Dembo and Goldstein (1978) Fig. 2 +# (k = 10 case, scaled to KxRT = 5 for tractable +# simulation). + +#@keyword: | +# bivalent hapten, bivalent receptor, cross-linking, +# aggregation, prozone effect, bell-shaped dose response, +# mass action, network-free, NFsim, IgE, basophil, +# histamine release, equivalent-site hypothesis + +#@reference: | +# Dembo M, Goldstein B (1978). Theory of equilibrium binding +# of symmetric bivalent haptens to cell surface antibody: +# application to histamine release from basophils. J Immunol +# 121:345-353. doi:10.4049/jimmunol.121.1.345 +# +# Perelson AS, DeLisi C (1980). Receptor clustering on a cell +# surface. I. Theory of receptor cross-linking by ligands +# bearing two chemically identical functional groups. Math +# Biosci 48:71-110. doi:10.1016/0025-5564(80)90017-6 + +#@note: | +# Network generation is not feasible because bivalent- +# bivalent cross-linking produces an unbounded set of chain +# species. NFsim is used with -bscb (block same-complex +# binding, which implies complex bookkeeping). +# +# Mapping to Dembo and Goldstein (1978) notation: +# H = 2 * Ka (twice the single-site association constant) +# K = cross-linking constant (units of area) +# k = K * X_T (dimensionless, here KxRT) +# a = H * A (dimensionless hapten concentration) +# a_max = 1 (when b = 0, i.e., no monovalent hapten) +# x_poly = fraction of antibody in polymers of size >= 2 +# +# Mapping to Perelson and DeLisi (1980) notation: +# K = k1/k-1 (association constant for whole ligand) +# K2 = k2/k-2 (cross-linking association constant) +# beta = KC/(1+KC) (dimensionless concentration) +# delta = beta*(1-beta)*K2*S0 (cross-linking parameter) +# M_bar = S0 * (1+2*delta - sqrt(1+4*delta)) / (4*delta) + +begin parameters + + # Physical constants + NA 6.02214076e23 # /mol + + # Experimental conditions + V_cell 1e-9 # L/cell + R_per_cell 3e5 # molecules/cell + + # SSA/NFsim scaling + f 0.01 # dimensionless + V_sim V_cell*f # L + + # Scaled molecule counts + RT R_per_cell*f # molecules (= 3000) + + # Total bivalent hapten (ligand) + # Default: 10x receptor count (near optimal cross-linking) + LT_per_cell 3e6 # molecules/cell + LT LT_per_cell*f # molecules + + # Single-site kinetic rate constants + # K = kon/koff = 1e8 /M (intrinsic affinity for one site) + kon 1e6 # /M/s + koff 0.01 # /s + + # Dimensionless cross-linking propensity + # k = K * X_T in Dembo notation; KxRT here + KxRT 5 # dimensionless + + # Stochastic rate constants (single-site, per molecule pair) + kf kon/(NA*V_sim) # /(molecule*s) + kxf KxRT/RT*koff # /(molecule*s) + +end parameters + +begin molecule types + # Bivalent hapten (ligand): two identical receptor-binding sites + L(r,r) + # Bivalent receptor (antibody/IgE): two identical hapten-binding sites + R(l,l) +end molecule types + +begin seed species + L(r,r) LT # molecules + R(l,l) RT # molecules +end seed species + +begin observables + # Free hapten (both sites unbound) + Species Obs_Free_L L(r,r) + # Free receptor (both sites unbound) + Species Obs_Free_R R(l,l) + # Total hapten-receptor bonds + Molecules Obs_Bonds L(r!1).R(l!1) + # Free hapten sites (on any hapten molecule) + Molecules Obs_Free_L_sites L(r) + # Free receptor sites (on any receptor molecule) + Molecules Obs_Free_R_sites R(l) +end observables + +begin reaction rules + + # ================================================================ + # Hapten capture: free hapten binds a receptor site + # ================================================================ + # Corresponds to R1 in Perelson and DeLisi (1980): a free ligand + # from solution binds a free receptor site with rate constant k1. + R_capture: L(r,r) + R(l) -> L(r!1,r).R(l!1) kf + + # ================================================================ + # Cross-linking: tethered hapten arm binds DIFFERENT complex + # ================================================================ + # Corresponds to R2 in Perelson and DeLisi (1980): the free arm + # of a singly-bound hapten binds a receptor site on a different + # complex. The "+" between reactants with -bscb flag enforces + # inter-complex binding (no intra-complex rings). + R_crosslink: L(r!+,r) + R(l) -> L(r!+,r!1).R(l!1) kxf + + # ================================================================ + # Bond dissociation: any hapten-receptor bond breaks + # ================================================================ + # Corresponds to reverse of R1/R2: any bond between hapten + # and receptor dissociates with rate constant k_off. + R_dissoc: L(r!1).R(l!1) -> L(r) + R(l) koff + +end reaction rules + +end model + +begin actions + + #@note: | + # Network generation is infeasible (unbounded chains). + # NFsim flags: + # -bscb block same-complex binding (implies -cb) + + # Equilibration kinetics + + #@protocol: | + # Simulate from all-free initial conditions to equilibrium + # (3000 s). Cross-links build up and reach steady state as + # hapten captures and cross-links balance dissociation. + + simulate({method=>"nf",suffix=>"nfr",t_start=>0,\ + t_end=>3000,n_steps=>300,gml=>2147483647,\ + param=>"-bscb"}) + +end actions diff --git a/Published/Dembo1978/blbr_dembo1978_nfr.species b/Published/Dembo1978/blbr_dembo1978_nfr.species new file mode 100644 index 0000000..02497ea --- /dev/null +++ b/Published/Dembo1978/blbr_dembo1978_nfr.species @@ -0,0 +1,440 @@ +# nfsim generated species list for system: 'blbr_dembo1978' +# warning! this feature is not yet fully tested! +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!5,l!7).R(l!8,l!6).L(r!7,r).L(r,r!8) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!5,l!7).R(l,l!6).L(r!7,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!5,l).R(l!6,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l!6,l!8).L(r!9,r!7).L(r!8,r!10).R(l!9,l).R(l!11,l!10).L(r,r!11) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l!6,l!8).L(r!9,r!7).L(r,r!8).R(l!10,l!9).L(r,r!10) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l,l!5).R(l!6,l!7).L(r!8,r!7).R(l!8,l!9).L(r!9,r!10).R(l!11,l!10).L(r!11,r!12).R(l!12,l!13).L(r!13,r!14).R(l,l!14) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r).R(l!5,l!6).L(r!7,r!6).R(l!7,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r).R(l!5,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r!8,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!4,r).R(l,l!5) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l!5,l!7).R(l!6,l!8).L(r!7,r!9).L(r!10,r!8).R(l!11,l!9).R(l!10,l).L(r!11,r!12).R(l!13,l!12).L(r!13,r!14).R(l,l!14) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l!7,l!5).R(l!6,l!8).L(r!7,r!9).L(r!8,r!10).R(l!9,l!11).R(l!10,l!12).L(r,r!11).L(r!12,r!13).R(l!13,l!14).L(r!14,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l!7,l!5).R(l!6,l!8).L(r!9,r!7).L(r!10,r!8).R(l,l!9).R(l!11,l!10).L(r!11,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l,l!5).R(l!6,l!7).L(r!7,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r,r!4).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r!9,r!8).R(l!9,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r,r!4).R(l!5,l!6).L(r!7,r!6).R(l!7,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r!5).L(r,r!4).R(l!6,l!5).L(r!6,r!7).R(l!8,l!7).L(r,r!8) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r).L(r!4,r!5).R(l!6,l!5).L(r!6,r!7).R(l!7,l!8).L(r!9,r!8).R(l,l!9) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r).L(r!4,r) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r).L(r!5,r!4).R(l!5,l!6).L(r!6,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r).L(r!5,r!4).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r!8,r!9).R(l!9,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!3,r).L(r,r!4) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!4,r!6).R(l!5,l).R(l,l!6) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!4,r).R(l!5,l) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!4,r).R(l!6,l!5).L(r!6,r!7).R(l!7,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!4,r).R(l,l!5) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!5,l!7).R(l!6,l!8).L(r!7,r!9).L(r!8,r!10).R(l!9,l!11).R(l!10,l!12).L(r!13,r!11).L(r!12,r!14).R(l!15,l!13).R(l!16,l!14).L(r!15,r!17).L(r!16,r).R(l!17,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!5,l!7).R(l!6,l).L(r!8,r!7).R(l!9,l!8).L(r!9,r!10).R(l!10,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!5,l!7).R(l!8,l!6).L(r!7,r).L(r!9,r!8).R(l!9,l!10).L(r,r!10) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!5,l).R(l,l!6) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!7,l!5).R(l!6,l!8).L(r!7,r!9).L(r!8,r!10).R(l!11,l!9).R(l!12,l!10).L(r!11,r!13).L(r!12,r!14).R(l!13,l!15).R(l!14,l).L(r!15,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!7,l!5).R(l!6,l!8).L(r!9,r!7).L(r,r!8).R(l!9,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!7,l!5).R(l,l!6).L(r!7,r!8).R(l!8,l!9).L(r!10,r!9).R(l!11,l!10).L(r!11,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l,l!5).R(l!7,l!6).L(r!7,r!8).R(l!9,l!8).L(r!10,r!9).R(l,l!10) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r,r!4).R(l!6,l!5).L(r!6,r!7).R(l!8,l!7).L(r!8,r!9).R(l!10,l!9).L(r!11,r!10).R(l!11,l!12).L(r!12,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r,r!4).R(l!6,l!5).L(r!6,r!7).R(l!8,l!7).L(r!8,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r!5,r!3).L(r,r!4).R(l,l!5) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r,r!3).L(r!4,r!5).R(l!6,l!5).L(r!7,r!6).R(l,l!7) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r,r!3).L(r!4,r!5).R(l!6,l!5).L(r,r!6) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r,r!3).L(r!4,r!5).R(l,l!5) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r,r!3).L(r!4,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r,r!3).L(r!5,r!4).R(l!5,l!6).L(r!7,r!6).R(l!7,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l!4).L(r,r!3).L(r,r!4) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r!4).R(l!4,l!5).L(r!5,r!6).R(l!7,l!6).L(r!8,r!7).R(l!8,l) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r!4).R(l!4,l!5).L(r!5,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r!4).R(l!4,l) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r!4).R(l!5,l!4).L(r!5,r!6).R(l,l!6) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r!4).R(l!5,l!4).L(r!5,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r!4).R(l!5,l!4).L(r!6,r!5).R(l!6,l!7).L(r!7,r!8).R(l,l!8) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r!4).R(l!5,l!4).L(r!6,r!5).R(l,l!6) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r!4).R(l!5,l!4).L(r,r!5) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r) 4 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!4,r!3).R(l!4,l!5).L(r!6,r!5).R(l!6,l!7).L(r!7,r!8).R(l!8,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!4,r!3).R(l!4,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!4,r!3).R(l!5,l!4).L(r!6,r!5).R(l!6,l!7).L(r!8,r!7).R(l!9,l!8).L(r!9,r!10).R(l,l!10) 1 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!4,r!3).R(l!5,l!4).L(r,r!5) 2 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!4,r!3).R(l,l!4) 3 +L(r!1,r!2).R(l!1,l!3).R(l!2,l).L(r,r!3) 6 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!5,l!7).R(l!8,l!6).L(r!7,r).L(r!8,r!9).R(l!10,l!9).L(r!10,r!11).R(l,l!11) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!5,l!7).R(l!8,l!6).L(r!7,r).L(r!8,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!5,l!7).R(l!8,l!6).L(r!7,r).L(r,r!8) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!5,l!7).R(l!8,l!6).L(r!9,r!7).L(r!10,r!8).R(l!11,l!9).R(l!12,l!10).L(r!13,r!11).L(r!12,r).R(l!13,l!14).L(r!15,r!14).R(l,l!15) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!5,l).R(l!6,l!7).L(r!7,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l!6,l).L(r,r!7) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l!8,l!6).L(r!9,r!7).L(r!8,r!10).R(l!11,l!9).R(l!12,l!10).L(r!13,r!11).L(r!14,r!12).R(l,l!13).R(l!14,l!15).L(r!15,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l,l!5).R(l!6,l!7).L(r!8,r!7).R(l!9,l!8).L(r!9,r!10).R(l!11,l!10).L(r!12,r!11).R(l,l!12) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r).R(l!5,l!6).L(r!6,r!7).R(l,l!7) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r).R(l!5,l!6).L(r,r!6) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!4,r).R(l!5,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l!5,l!7).R(l!8,l!6).L(r,r!7).L(r!9,r!8).R(l,l!9) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l!7,l!5).R(l!6,l!8).L(r!7,r!9).L(r!10,r!8).R(l!9,l!11).R(l!10,l!12).L(r!11,r!13).L(r!12,r).R(l!14,l!13).L(r!14,r!15).R(l!15,l!16).L(r!17,r!16).R(l!17,l!18).L(r,r!18) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l!7,l!5).R(l!8,l!6).L(r!9,r!7).L(r,r!8).R(l!9,l!10).L(r!11,r!10).R(l,l!11) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l,l!5).R(l!6,l!7).L(r,r!7) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r,r!4).R(l!6,l!5).L(r!6,r) 2 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r!5).L(r,r!4).R(l,l!5) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r).L(r!4,r!5).R(l!5,l!6).L(r!7,r!6).R(l!8,l!7).L(r!8,r!9).R(l!9,l!10).L(r!10,r!11).R(l,l!11) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r).L(r!4,r!5).R(l!6,l!5).L(r,r!6) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r).L(r!5,r!4).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r!8,r!9).R(l!9,l!10).L(r!11,r!10).R(l!12,l!11).L(r!12,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r).L(r!5,r!4).R(l!5,l!6).L(r!6,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r).L(r!5,r!4).R(l!6,l!5).L(r!6,r!7).R(l!8,l!7).L(r!8,r!9).R(l!10,l!9).L(r!11,r!10).R(l!11,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r).L(r!5,r!4).R(l,l!5) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!3,r).L(r,r!4) 2 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l!5,l!7).R(l!8,l!6).L(r!7,r!9).L(r!8,r!10).R(l!9,l).R(l!10,l!11).L(r,r!11) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l!5,l).R(l!7,l!6).L(r,r!7) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l!7,l!5).R(l!8,l!6).L(r!9,r!7).L(r!10,r!8).R(l!9,l).R(l!11,l!10).L(r!11,r!12).R(l!13,l!12).L(r!13,r!14).R(l,l!14) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l,l!5).R(l!6,l!7).L(r!8,r!7).R(l!8,l!9).L(r!9,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r!4,r).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r!6,r!4).R(l!5,l).R(l!7,l!6).L(r!8,r!7).R(l!9,l!8).L(r,r!9) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r!6,r!4).R(l!7,l!5).R(l!6,l!8).L(r!7,r!9).L(r!10,r!8).R(l!11,l!9).R(l,l!10).L(r!11,r!12).R(l,l!12) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r!6,r!4).R(l!7,l!5).R(l!8,l!6).L(r!9,r!7).L(r,r!8).R(l!10,l!9).L(r!10,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r!6,r!4).R(l,l!5).R(l,l!6) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r,r!4).R(l!5,l) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r,r!4).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r,r!4).R(l!6,l!5).L(r,r!6) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r!3).L(r,r!4).R(l,l!5) 2 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r,r!3).L(r!4,r!5).R(l!5,l!6).L(r!7,r!6).R(l!8,l!7).L(r,r!8) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r,r!3).L(r!4,r!5).R(l!5,l!6).L(r,r!6) 2 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r,r!3).L(r!4,r!5).R(l!6,l!5).L(r!6,r!7).R(l,l!7) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r,r!3).L(r!4,r!5).R(l,l!5) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r,r!3).L(r!4,r) 3 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r,r!3).L(r!5,r!4).R(l!5,l!6).L(r!6,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r,r!3).L(r!5,r!4).R(l,l!5) 1 +L(r!1,r!2).R(l!1,l!3).R(l!4,l!2).L(r,r!3).L(r,r!4) 2 +L(r!1,r!2).R(l!1,l!3).R(l,l!2).L(r!3,r!4).R(l!4,l!5).L(r!5,r) 3 +L(r!1,r!2).R(l!1,l!3).R(l,l!2).L(r!3,r!4).R(l!5,l!4).L(r!5,r!6).R(l!7,l!6).L(r!8,r!7).R(l!8,l!9).L(r!9,r) 1 +L(r!1,r!2).R(l!1,l!3).R(l,l!2).L(r!3,r!4).R(l,l!4) 1 +L(r!1,r!2).R(l!1,l!3).R(l,l!2).L(r!3,r) 8 +L(r!1,r!2).R(l!1,l!3).R(l,l!2).L(r!4,r!3).R(l!4,l) 2 +L(r!1,r!2).R(l!1,l!3).R(l,l!2).L(r!4,r!3).R(l!5,l!4).L(r!5,r) 3 +L(r!1,r!2).R(l!1,l!3).R(l,l!2).L(r!4,r!3).R(l,l!4) 2 +L(r!1,r!2).R(l!1,l!3).R(l,l!2).L(r,r!3) 9 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!3,r!4).R(l!4,l!5).L(r!5,r!6).R(l!6,l) 1 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!3,r!4).R(l!4,l!5).L(r!5,r) 1 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!3,r!4).R(l!5,l!4).L(r!5,r!6).R(l!6,l!7).L(r,r!7) 1 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!3,r!4).R(l!5,l!4).L(r!6,r!5).R(l!6,l) 1 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!3,r!4).R(l!5,l!4).L(r!6,r!5).R(l,l!6) 1 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!3,r!4).R(l,l!4) 6 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!3,r) 4 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!4,r!3).R(l!4,l!5).L(r!6,r!5).R(l!7,l!6).L(r!7,r) 1 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!4,r!3).R(l!4,l) 2 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!4,r!3).R(l!5,l!4).L(r!5,r!6).R(l!7,l!6).L(r!7,r!8).R(l!8,l!9).L(r!9,r!10).R(l!10,l) 1 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!4,r!3).R(l!5,l!4).L(r!6,r!5).R(l!7,l!6).L(r!7,r!8).R(l!8,l) 1 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r!4,r!3).R(l,l!4) 1 +L(r!1,r!2).R(l!1,l).R(l!2,l!3).L(r,r!3) 5 +L(r!1,r!2).R(l!1,l).R(l!2,l) 24 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!3,r!4).R(l!4,l!5).L(r,r!5) 1 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!3,r!4).R(l!4,l) 2 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!3,r!4).R(l!5,l!4).L(r!5,r!6).R(l,l!6) 1 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!3,r!4).R(l!5,l!4).L(r!5,r) 2 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!3,r!4).R(l,l!4) 2 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!3,r) 3 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!4,r!3).R(l!4,l!5).L(r!5,r) 3 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!4,r!3).R(l!5,l!4).L(r!5,r!6).R(l!6,l!7).L(r,r!7) 1 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!4,r!3).R(l!5,l!4).L(r!5,r!6).R(l!7,l!6).L(r!7,r!8).R(l!8,l!9).L(r!9,r) 1 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r!4,r!3).R(l!5,l!4).L(r,r!5) 1 +L(r!1,r!2).R(l!1,l).R(l!3,l!2).L(r,r!3) 13 +L(r!1,r!2).R(l!1,l).R(l,l!2) 28 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!5,l!7).R(l!8,l!6).L(r!7,r).L(r!8,r!9).R(l!10,l!9).L(r!10,r!11).R(l,l!11) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!5,l!7).R(l!8,l!6).L(r,r!7).L(r!8,r!9).R(l!9,l!10).L(r!10,r!11).R(l,l!11) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!5,l).R(l!6,l!7).L(r!8,r!7).R(l,l!8) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!5,l).R(l!6,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l!6,l).L(r!8,r!7).R(l!9,l!8).L(r!10,r!9).R(l!10,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l!8,l!6).L(r!7,r!9).L(r!10,r!8).R(l!9,l).R(l!10,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r).R(l!5,l!6).L(r!6,r!7).R(l!7,l!8).L(r!8,r!9).R(l!9,l!10).L(r,r!10) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r).R(l!5,l!6).L(r,r!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!4,r).R(l,l!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l!5,l).R(l!6,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l!5,l).R(l!7,l!6).L(r!7,r!8).R(l!9,l!8).L(r!9,r!10).R(l,l!10) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l!5,l).R(l!7,l!6).L(r!7,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l!7,l!5).R(l!6,l).L(r!7,r!8).R(l,l!8) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l!7,l!5).R(l!8,l!6).L(r!7,r).L(r!8,r!9).R(l,l!9) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l,l!5).R(l!6,l!7).L(r!7,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r!6,r!4).R(l,l!5).R(l!7,l!6).L(r!7,r!8).R(l!8,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r,r!4).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r,r!8) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r!5).L(r,r!4).R(l,l!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r).L(r!4,r!5).R(l!5,l!6).L(r!6,r!7).R(l!7,l!8).L(r!8,r!9).R(l!9,l!10).L(r!11,r!10).R(l!11,l!12).L(r!12,r!13).R(l,l!13) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r).L(r!4,r!5).R(l,l!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r).L(r!4,r) 5 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r).L(r!5,r!4).R(l!5,l!6).L(r!6,r) 2 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r).L(r!5,r!4).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r!8,r!9).R(l!10,l!9).L(r!10,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r).L(r!5,r!4).R(l!6,l!5).L(r,r!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r).L(r!5,r!4).R(l,l!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r).L(r,r!4) 3 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!4,r!6).R(l!5,l).R(l,l!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!4,r!6).R(l,l!5).R(l!6,l!7).L(r!7,r!8).R(l!9,l!8).L(r!10,r!9).R(l!11,l!10).L(r!12,r!11).R(l!13,l!12).L(r,r!13) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!4,r!6).R(l,l!5).R(l!7,l!6).L(r!7,r!8).R(l!8,l!9).L(r!10,r!9).R(l!11,l!10).L(r!12,r!11).R(l!12,l!13).L(r,r!13) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!4,r).R(l!5,l!6).L(r,r!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!4,r).R(l!5,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!4,r).R(l!6,l!5).L(r!6,r!7).R(l!8,l!7).L(r!9,r!8).R(l,l!9) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!5,l!7).R(l!6,l!8).L(r!7,r!9).L(r,r!8).R(l!10,l!9).L(r!10,r!11).R(l!11,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!5,l!7).R(l!6,l!8).L(r!9,r!7).L(r!8,r).R(l!10,l!9).L(r!10,r!11).R(l!12,l!11).L(r!12,r!13).R(l!13,l!14).L(r,r!14) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!5,l!7).R(l!8,l!6).L(r!7,r!9).L(r!8,r).R(l!9,l!10).L(r!11,r!10).R(l!12,l!11).L(r,r!12) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l!7,l!5).R(l!6,l!8).L(r!7,r).L(r,r!8) 2 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r!6,r!4).R(l,l!5).R(l!6,l!7).L(r!8,r!7).R(l!8,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r,r!4).R(l!6,l!5).L(r!6,r!7).R(l!7,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!5,r!3).L(r,r!4).R(l,l!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r!4,r!5).R(l!5,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r!4,r!5).R(l,l!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r!4,r) 2 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r!5,r!4).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r,r!8) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r!5,r!4).R(l!5,l!6).L(r!7,r!6).R(l!7,l!8).L(r!8,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r!5,r!4).R(l!5,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r!5,r!4).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r!5,r!4).R(l!6,l!5).L(r,r!6) 2 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r!5,r!4).R(l,l!5) 2 +L(r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3).L(r,r!4) 2 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!3,r!4).R(l!4,l!5).L(r!6,r!5).R(l,l!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!3,r!4).R(l!5,l!4).L(r!5,r!6).R(l!6,l!7).L(r!7,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!3,r!4).R(l!5,l!4).L(r!5,r!6).R(l!6,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!3,r!4).R(l!5,l!4).L(r!6,r!5).R(l,l!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!3,r!4).R(l!5,l!4).L(r,r!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!3,r!4).R(l,l!4) 2 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!3,r) 3 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!4,r!3).R(l!4,l!5).L(r!5,r!6).R(l!6,l!7).L(r!7,r!8).R(l!8,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!4,r!3).R(l!4,l!5).L(r!5,r!6).R(l!6,l!7).L(r!7,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!4,r!3).R(l!4,l!5).L(r!5,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!4,r!3).R(l!4,l) 4 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!4,r!3).R(l!5,l!4).L(r!5,r!6).R(l!7,l!6).L(r!8,r!7).R(l!8,l!9).L(r,r!9) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!4,r!3).R(l!5,l!4).L(r!6,r!5).R(l!6,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r!4,r!3).R(l,l!4) 1 +L(r!1,r!2).R(l!3,l!1).R(l!2,l).L(r,r!3) 4 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!5,l!7).R(l!6,l!8).L(r!9,r!7).L(r!10,r!8).R(l!9,l).R(l!10,l!11).L(r!12,r!11).R(l!13,l!12).L(r!14,r!13).R(l,l!14) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l!6,l).L(r!7,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l!6,l).L(r,r!7) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l!8,l!6).L(r,r!7).L(r!8,r!9).R(l!10,l!9).L(r!10,r!11).R(l!11,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l,l!6).L(r!8,r!7).R(l!8,l!9).L(r,r!9) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l!7,l!5).R(l,l!6).L(r!8,r!7).R(l!9,l!8).L(r!9,r!10).R(l,l!10) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l,l!5).R(l!6,l!7).L(r!7,r!8).R(l!8,l!9).L(r,r!9) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r!6).R(l,l!5).R(l!7,l!6).L(r!8,r!7).R(l!8,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r).R(l!5,l!6).L(r!7,r!6).R(l!8,l!7).L(r,r!8) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r).R(l!5,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!4,r).R(l,l!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l!5,l!7).R(l!6,l!8).L(r!7,r!9).L(r!8,r!10).R(l,l!9).R(l,l!10) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l!5,l!7).R(l!6,l!8).L(r!9,r!7).L(r!8,r!10).R(l!11,l!9).R(l,l!10).L(r!11,r!12).R(l!13,l!12).L(r!13,r!14).R(l,l!14) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l!5,l!7).R(l!6,l!8).L(r,r!7).L(r!9,r!8).R(l!9,l!10).L(r!10,r!11).R(l!11,l!12).L(r!12,r!13).R(l!13,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l!5,l!7).R(l!6,l).L(r!8,r!7).R(l!8,l!9).L(r!9,r!10).R(l!11,l!10).L(r!12,r!11).R(l!12,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l!5,l).R(l!6,l!7).L(r,r!7) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l!7,l!5).R(l!6,l).L(r,r!7) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l,l!5).R(l!6,l!7).L(r!7,r!8).R(l,l!8) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r!6,r!4).R(l,l!5).R(l!6,l!7).L(r,r!7) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r,r!4).R(l!5,l!6).L(r!6,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r,r!4).R(l!5,l!6).L(r,r!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r,r!4).R(l!5,l) 2 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r!5).L(r,r!4).R(l!6,l!5).L(r!6,r!7).R(l!7,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r).L(r!4,r!5).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r!8,r!9).R(l!10,l!9).L(r!11,r!10).R(l!11,l!12).L(r!12,r!13).R(l!13,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r).L(r!4,r!5).R(l!5,l!6).L(r!7,r!6).R(l!7,l!8).L(r!8,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r).L(r!4,r!5).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r).L(r!4,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r).L(r!5,r!4).R(l!5,l!6).L(r!7,r!6).R(l,l!7) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r).L(r!5,r!4).R(l!5,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!3,r).L(r,r!4) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l!5,l!7).R(l!6,l!8).L(r!7,r!9).L(r!10,r!8).R(l!9,l).R(l!10,l!11).L(r!11,r!12).R(l!13,l!12).L(r!13,r!14).R(l!14,l!15).L(r!15,r!16).R(l!16,l!17).L(r!18,r!17).R(l!19,l!18).L(r!19,r!20).R(l!21,l!20).L(r!22,r!21).R(l!23,l!22).L(r!24,r!23).R(l!25,l!24).L(r,r!25) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l!5,l!7).R(l!6,l).L(r!8,r!7).R(l!8,l!9).L(r!9,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l!5,l!7).R(l!8,l!6).L(r!7,r!9).L(r!10,r!8).R(l!11,l!9).R(l!12,l!10).L(r!13,r!11).L(r!14,r!12).R(l!15,l!13).R(l!14,l!16).L(r!15,r!17).L(r!16,r!18).R(l!17,l!19).R(l!20,l!18).L(r!19,r!21).L(r,r!20).R(l!21,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l,l!5).R(l!6,l!7).L(r!8,r!7).R(l!9,l!8).L(r!9,r!10).R(l!10,l!11).L(r!11,r!12).R(l,l!12) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l,l!5).R(l!6,l!7).L(r!8,r!7).R(l,l!8) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!4,r!6).R(l,l!5).R(l!6,l) 2 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!4,r).R(l!6,l!5).L(r!7,r!6).R(l!8,l!7).L(r!8,r!9).R(l!10,l!9).L(r,r!10) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!4,r).R(l,l!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!6,r!4).R(l!5,l).R(l!7,l!6).L(r!8,r!7).R(l!8,l!9).L(r,r!9) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!6,r!4).R(l!7,l!5).R(l!6,l!8).L(r!9,r!7).L(r!8,r!10).R(l,l!9).R(l!10,l!11).L(r!11,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r!6,r!4).R(l,l!5).R(l,l!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r,r!4).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r!8,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r,r!4).R(l!5,l!6).L(r,r!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r,r!4).R(l!6,l!5).L(r!6,r!7).R(l,l!7) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r,r!4).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r!5,r!3).L(r,r!4).R(l,l!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r,r!3).L(r!4,r!5).R(l!5,l!6).L(r!6,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r,r!3).L(r!4,r!5).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r!8,r!9).R(l!9,l!10).L(r,r!10) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r,r!3).L(r!4,r!5).R(l!6,l!5).L(r,r!6) 3 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r,r!3).L(r!5,r!4).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r,r!3).L(r!5,r!4).R(l!6,l!5).L(r!7,r!6).R(l,l!7) 1 +L(r!1,r!2).R(l!3,l!1).R(l!4,l!2).L(r,r!3).L(r,r!4) 2 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!3,r!4).R(l!4,l!5).L(r!5,r!6).R(l!6,l!7).L(r!8,r!7).R(l!9,l!8).L(r,r!9) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!3,r!4).R(l!4,l!5).L(r!5,r!6).R(l!7,l!6).L(r,r!7) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!3,r!4).R(l!4,l!5).L(r!5,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!3,r!4).R(l!4,l!5).L(r!6,r!5).R(l!7,l!6).L(r,r!7) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!3,r!4).R(l!4,l) 2 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!3,r!4).R(l!5,l!4).L(r!5,r!6).R(l!6,l!7).L(r!8,r!7).R(l!9,l!8).L(r!10,r!9).R(l!10,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!3,r!4).R(l!5,l!4).L(r!5,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!3,r!4).R(l!5,l!4).L(r!6,r!5).R(l!6,l!7).L(r!7,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!3,r) 4 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!4,r!3).R(l!4,l!5).L(r!5,r!6).R(l!6,l!7).L(r!8,r!7).R(l!9,l!8).L(r!9,r!10).R(l!10,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!4,r!3).R(l!4,l!5).L(r!6,r!5).R(l,l!6) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!4,r!3).R(l!4,l!5).L(r,r!5) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!4,r!3).R(l!4,l) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!4,r!3).R(l!5,l!4).L(r!5,r!6).R(l!6,l) 2 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r!4,r!3).R(l!5,l!4).L(r!5,r) 1 +L(r!1,r!2).R(l!3,l!1).R(l,l!2).L(r,r!3) 4 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!3,r!4).R(l!4,l!5).L(r!5,r!6).R(l!6,l!7).L(r,r!7) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!3,r!4).R(l!4,l!5).L(r!6,r!5).R(l!6,l!7).L(r!7,r!8).R(l!8,l) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!3,r!4).R(l!4,l!5).L(r!6,r!5).R(l!6,l!7).L(r,r!7) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!3,r!4).R(l!4,l!5).L(r!6,r!5).R(l!7,l!6).L(r!8,r!7).R(l!8,l) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!3,r!4).R(l!4,l) 4 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!3,r!4).R(l!5,l!4).L(r!5,r!6).R(l!7,l!6).L(r,r!7) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!3,r!4).R(l,l!4) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!3,r) 4 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!4,r!3).R(l!4,l!5).L(r!5,r!6).R(l!6,l!7).L(r,r!7) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!4,r!3).R(l!4,l!5).L(r!6,r!5).R(l!7,l!6).L(r!7,r) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!4,r!3).R(l!5,l!4).L(r!5,r) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!4,r!3).R(l!5,l!4).L(r!6,r!5).R(l!6,l!7).L(r!8,r!7).R(l!8,l!9).L(r!10,r!9).R(l!11,l!10).L(r,r!11) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!4,r!3).R(l!5,l!4).L(r,r!5) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r!4,r!3).R(l,l!4) 1 +L(r!1,r!2).R(l,l!1).R(l!2,l!3).L(r,r!3) 6 +L(r!1,r!2).R(l,l!1).R(l!2,l) 17 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!3,r!4).R(l!4,l!5).L(r!6,r!5).R(l!7,l!6).L(r!7,r!8).R(l!8,l!9).L(r!9,r!10).R(l!10,l!11).L(r!11,r!12).R(l!12,l!13).L(r!13,r!14).R(l!15,l!14).L(r,r!15) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!3,r!4).R(l!4,l!5).L(r!6,r!5).R(l!7,l!6).L(r!8,r!7).R(l!9,l!8).L(r!9,r) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!3,r!4).R(l!4,l) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!3,r!4).R(l!5,l!4).L(r!5,r!6).R(l!7,l!6).L(r!8,r!7).R(l!9,l!8).L(r!9,r!10).R(l!11,l!10).L(r!11,r!12).R(l,l!12) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!3,r!4).R(l,l!4) 3 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!3,r) 6 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l!4,l!5).L(r!5,r!6).R(l!6,l!7).L(r!7,r!8).R(l!8,l!9).L(r!9,r!10).R(l!10,l) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l!4,l!5).L(r!5,r!6).R(l!6,l) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l!4,l) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l!5,l!4).L(r!5,r!6).R(l!6,l!7).L(r!7,r!8).R(l!9,l!8).L(r!10,r!9).R(l!10,l!11).L(r!12,r!11).R(l!13,l!12).L(r,r!13) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l!5,l!4).L(r!5,r!6).R(l!6,l!7).L(r!8,r!7).R(l!9,l!8).L(r!9,r!10).R(l!11,l!10).L(r!11,r!12).R(l!12,l!13).L(r,r!13) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l!5,l!4).L(r!5,r!6).R(l!6,l) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l!5,l!4).L(r!6,r!5).R(l!6,l!7).L(r!7,r!8).R(l!8,l) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l!5,l!4).L(r!6,r!5).R(l!6,l!7).L(r,r!7) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l!5,l!4).L(r!6,r!5).R(l!6,l) 1 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r!4,r!3).R(l,l!4) 3 +L(r!1,r!2).R(l,l!1).R(l!3,l!2).L(r,r!3) 5 +L(r!1,r!2).R(l,l!1).R(l,l!2) 22 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!3,l!4).L(r!4,r!5).R(l!5,l!6).L(r!7,r!6).R(l,l!7) 1 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!3,l!4).L(r!4,r) 2 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!3,l!4).L(r!5,r!4).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!3,l) 6 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!5,l) 1 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!4,r) 2 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l!5,l!6).L(r!7,r!6).R(l!8,l!7).L(r!9,r!8).R(l!10,l!9).L(r!11,r!10).R(l!12,l!11).L(r!13,r!12).R(l,l!13) 1 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l!5,l!6).L(r!7,r!6).R(l!8,l!7).L(r,r!8) 1 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l!5,l) 1 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l!6,l!5).L(r!6,r!7).R(l!8,l!7).L(r!8,r) 1 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r,r!4) 1 +L(r!1,r).R(l!1,l!2).L(r!2,r!3).R(l,l!3) 4 +L(r!1,r).R(l!1,l!2).L(r!2,r) 18 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r!9,r!8).R(l!10,l!9).L(r!11,r!10).R(l!12,l!11).L(r!12,r!13).R(l!14,l!13).L(r!14,r!15).R(l!16,l!15).L(r!17,r!16).R(l!17,l!18).L(r!19,r!18).R(l!19,l!20).L(r!20,r!21).R(l!22,l!21).L(r!23,r!22).R(l!23,l!24).L(r,r!24) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r!9,r!8).R(l!9,l!10).L(r!11,r!10).R(l!11,l!12).L(r!13,r!12).R(l!13,l!14).L(r,r!14) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l!5,l!6).L(r,r!6) 2 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l!6,l!5).L(r!6,r!7).R(l!7,l!8).L(r!8,r) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r!9,r!8).R(l!10,l!9).L(r,r!10) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l,l!5) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!4,r) 2 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l!5,l!6).L(r!7,r!6).R(l!7,l!8).L(r!9,r!8).R(l!9,l!10).L(r!10,r) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l!6,l!5).L(r!6,r!7).R(l,l!7) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l!6,l!5).L(r,r!6) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l,l!5) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r,r!4) 3 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!3,l) 7 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r!4,r!5).R(l!6,l!5).L(r!6,r!7).R(l!7,l!8).L(r!9,r!8).R(l!9,l!10).L(r!10,r) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r!4,r) 2 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r!5,r!4).R(l!5,l) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r!5,r!4).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r,r!4) 4 +L(r!1,r).R(l!1,l!2).L(r!3,r!2).R(l,l!3) 6 +L(r!1,r).R(l!1,l!2).L(r,r!2) 22 +L(r!1,r).R(l!1,l) 92 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!4,r!5).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r,r!8) 1 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!4,r) 1 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!5,r!4).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r!9,r!8).R(l!9,l!10).L(r!10,r) 1 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!5,r!4).R(l!5,l!6).L(r,r!6) 1 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r,r!4) 2 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!3,l) 5 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!5,l) 1 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!6,l!5).L(r!7,r!6).R(l!8,l!7).L(r!9,r!8).R(l!9,l!10).L(r!11,r!10).R(l!11,l) 1 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!4,r) 2 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l,l!5) 1 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r,r!4) 1 +L(r!1,r).R(l!2,l!1).L(r!2,r!3).R(l,l!3) 6 +L(r!1,r).R(l!2,l!1).L(r!2,r) 18 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l!5,l!6).L(r!7,r!6).R(l!7,l) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r,r!8) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l,l!5) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!4,r) 3 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l!5,l) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l!6,l!5).L(r!6,r) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l,l!5) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r,r!4) 5 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!3,l) 5 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!4,r!5).R(l!5,l!6).L(r!7,r!6).R(l!8,l!7).L(r!8,r!9).R(l!9,l) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!4,r!5).R(l!6,l!5).L(r!6,r!7).R(l!8,l!7).L(r!8,r!9).R(l!10,l!9).L(r!10,r!11).R(l!11,l) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!4,r) 2 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!5,r!4).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r!8,r!9).R(l!9,l!10).L(r!11,r!10).R(l,l!11) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!5,r!4).R(l!5,l!6).L(r!7,r!6).R(l!7,l!8).L(r!9,r!8).R(l,l!9) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!5,r!4).R(l!5,l) 1 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r,r!4) 2 +L(r!1,r).R(l!2,l!1).L(r!3,r!2).R(l,l!3) 10 +L(r!1,r).R(l!2,l!1).L(r,r!2) 18 +L(r!1,r).R(l,l!1) 77 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!3,l!4).L(r!4,r!5).R(l!5,l) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!3,l!4).L(r!4,r!5).R(l!6,l!5).L(r,r!6) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!3,l!4).L(r!4,r!5).R(l,l!5) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!3,l!4).L(r!5,r!4).R(l!6,l!5).L(r,r!6) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!3,l!4).L(r,r!4) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!3,l) 6 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!5,l!6).L(r!6,r!7).R(l!7,l!8).L(r!8,r!9).R(l!10,l!9).L(r!10,r!11).R(l,l!11) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!5,l!6).L(r!6,r) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!5,l!6).L(r,r!6) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!6,l!5).L(r!6,r!7).R(l!7,l) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l,l!5) 2 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!4,r) 2 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l!5,l!6).L(r!6,r!7).R(l!8,l!7).L(r!8,r!9).R(l!9,l!10).L(r!11,r!10).R(l!11,l) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l!6,l!5).L(r!7,r!6).R(l!8,l!7).L(r!8,r!9).R(l!9,l!10).L(r!11,r!10).R(l!11,l!12).L(r!12,r!13).R(l!14,l!13).L(r!14,r!15).R(l!15,l!16).L(r!17,r!16).R(l!18,l!17).L(r!18,r!19).R(l!19,l!20).L(r!21,r!20).R(l!22,l!21).L(r!22,r!23).R(l!24,l!23).L(r!25,r!24).R(l!26,l!25).L(r!26,r!27).R(l!27,l!28).L(r,r!28) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l!6,l!5).L(r!7,r!6).R(l,l!7) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l,l!5) 1 +L(r,r!1).R(l!1,l!2).L(r!2,r!3).R(l,l!3) 7 +L(r,r!1).R(l!1,l!2).L(r!2,r) 8 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!4,r) 2 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l!5,l!6).L(r!6,r!7).R(l!7,l) 1 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l!5,l!6).L(r,r!6) 1 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r!5,r!4).R(l!6,l!5).L(r!6,r) 1 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!3,l!4).L(r,r!4) 2 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!3,l) 2 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r!4,r!5).R(l!5,l) 1 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r!4,r!5).R(l!6,l!5).L(r!6,r!7).R(l!7,l) 1 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r!4,r) 1 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r!5,r!4).R(l,l!5) 1 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l!4,l!3).L(r,r!4) 1 +L(r,r!1).R(l!1,l!2).L(r!3,r!2).R(l,l!3) 5 +L(r,r!1).R(l!1,l!2).L(r,r!2) 11 +L(r,r!1).R(l!1,l) 82 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!4,r!5).R(l!5,l!6).L(r!7,r!6).R(l!8,l!7).L(r!8,r) 1 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!4,r!5).R(l!5,l) 1 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!4,r!5).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r!9,r!8).R(l!9,l!10).L(r!11,r!10).R(l!11,l) 1 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!4,r) 4 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!5,r!4).R(l!5,l) 1 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r!5,r!4).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r!8,r) 1 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!3,l!4).L(r,r!4) 5 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!3,l) 5 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!5,l) 1 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!6,l!5).L(r!6,r!7).R(l!7,l!8).L(r,r!8) 1 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l!6,l!5).L(r!7,r!6).R(l!7,l!8).L(r,r!8) 1 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!4,r!5).R(l,l!5) 2 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!4,r) 2 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r!5,r!4).R(l!5,l) 2 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l!4,l!3).L(r,r!4) 1 +L(r,r!1).R(l!2,l!1).L(r!2,r!3).R(l,l!3) 3 +L(r,r!1).R(l!2,l!1).L(r!2,r) 17 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l!5,l!6).L(r!7,r!6).R(l!8,l!7).L(r!8,r!9).R(l!9,l!10).L(r!10,r!11).R(l!12,l!11).L(r!13,r!12).R(l!13,l) 1 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l!5,l!6).L(r!7,r!6).R(l,l!7) 2 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!4,r!5).R(l,l!5) 1 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r!4,r) 2 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!3,l!4).L(r,r!4) 3 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!3,l) 6 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!4,r!5).R(l!5,l) 2 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!4,r!5).R(l!6,l!5).L(r!7,r!6).R(l!8,l!7).L(r,r!8) 1 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!4,r!5).R(l,l!5) 1 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!4,r) 1 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!5,r!4).R(l!5,l!6).L(r!7,r!6).R(l!7,l) 1 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r!5,r!4).R(l,l!5) 1 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l!4,l!3).L(r,r!4) 1 +L(r,r!1).R(l!2,l!1).L(r!3,r!2).R(l,l!3) 7 +L(r,r!1).R(l!2,l!1).L(r,r!2) 19 +L(r,r!1).R(l,l!1) 72 +L(r,r) 27045 +R(l,l) 153 diff --git a/Published/Dembo1978/metadata.yaml b/Published/Dembo1978/metadata.yaml new file mode 100644 index 0000000..766b339 --- /dev/null +++ b/Published/Dembo1978/metadata.yaml @@ -0,0 +1,21 @@ +id: "Dembo_1978" +name: "Dembo 1978" +description: "BLBR dembo 1978" +tags: ["published", "physics", "dembo", "1978"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "physics" + featured: false + difficulty: "intermediate" diff --git a/Published/Dreisigmeyer2008/README.md b/Published/Dreisigmeyer2008/README.md new file mode 100644 index 0000000..6d5534a --- /dev/null +++ b/Published/Dreisigmeyer2008/README.md @@ -0,0 +1,3 @@ +# Dreisigmeyer 2008 + +BioNetGen model: Dreisigmeyer 2008 diff --git a/Published/Dreisigmeyer2008/lac_operon_dreisigmeyer2008.bngl b/Published/Dreisigmeyer2008/lac_operon_dreisigmeyer2008.bngl new file mode 100644 index 0000000..c0f6dd8 --- /dev/null +++ b/Published/Dreisigmeyer2008/lac_operon_dreisigmeyer2008.bngl @@ -0,0 +1,226 @@ +begin model + +#@title: Lac operon lactose induction (Dreisigmeyer et al., 2008) + +#@description: | +# Model of the E. coli lac operon induced by extracellular lactose, +# based on Eq. (1) in Dreisigmeyer et al. (2008). Three ODE state +# variables — internal lactose (L), allolactose (A), and +# beta-galactosidase (Z) — track intracellular concentrations in uM. +# +# Processes: (1) permease-dependent lactose import with +# active-transport asymmetry (phi < 1) and asymmetric Michaelis +# constants (rho < 1); (2) beta-gal-catalyzed degradation of +# lactose and allolactose with competitive substrate inhibition; +# (3) allolactose production as a branching fraction (nu) of +# lactose metabolism; (4) Hill-function-regulated beta-gal +# expression with cooperativity n = 2; and (5) first-order growth +# dilution of all intracellular species. Passive transport +# (alpha_0) is set to zero. +# +# With nominal parameters (Table 1) at l_ext = 1000 uM, the +# system relaxes to a partially induced steady state (Z ~ 0.34 +# uM, ~10x basal). A parameter scan of l_ext reproduces the +# monostable induction curve in Fig. 8 of the paper — no +# bistability is observed, consistent with the paper's central +# conclusion for lactose (as opposed to artificial inducers like +# TMG). +# +# Rate expressions use concentration-based observables (uM), making +# the model ODE-only. SSA/NFsim require conversion to population-based +# (molecule count) rate expressions. + +#@keyword: | +# gene regulation, lac operon, lactose metabolism, allolactose, +# beta-galactosidase, Hill kinetics, Michaelis-Menten, +# Escherichia coli, monostable + +#@reference: | +# Dreisigmeyer DW, Stajic J, Nemenman I, Hlavacek WS, Wall ME +# (2008). Determinants of bistability in induction of the +# Escherichia coli lac operon. IET Syst Biol 2:293-303. +# doi:10.1049/iet-syb:20080095 + +begin parameters + + #@note: | + # Concentration units: uM. Time units: min. + # Original paper (Table 1) uses nM; the source Antimony model + # converted to uM (nM / 1000, mM * 1000). + + # Avogadro constant (for potential population-based conversion) + NA 6.02214076e23 # /mol + + # Reference volume: E. coli mean cell volume + # (Kubitschek and Friske, 1986; Ref. [30] in + # Dreisigmeyer et al., 2008) + V_ref 1e-15 # L/cell + + # Subvolume scaling factor (single cell) + f 1.0 # dimensionless + + # External lactose (constant boundary condition; 1.0 mM = 1000 uM) + l_ext 1000.0 # uM + + # Growth dilution rate (gamma in paper; ~30 min doubling time) + growth_rate 0.0231 # /min + + # Permease transport parameters + # Import turnover number; Eq. (1a) in Dreisigmeyer et al. (2008) + alpha 600.0 # /min + # Ratio of export-to-import turnover numbers + phi 0.5 # dimensionless + # Ratio of import-to-export Michaelis constants + rho 0.1 # dimensionless + # Permease Michaelis constant (5e5 nM = 500 uM) + K_i 500.0 # uM + + # Beta-gal lactose metabolism parameters + # Lactose turnover number + beta 2.85e4 # /min + # Lactose -> allolactose branching fraction + nu 0.468 # dimensionless + # Beta-gal lactose Michaelis constant (2.53 mM = 2530 uM) + K_m_l 2530.0 # uM + + # Beta-gal allolactose metabolism parameters + # Allolactose turnover number + delta 2.30e4 # /min + # Beta-gal allolactose Michaelis constant (1.2 mM = 1200 uM) + K_m_a 1200.0 # uM + + # Beta-gal expression parameters + # Fully induced beta-gal level (34286 nM = 34.285 uM) + eps 34.285 # uM + # Basal beta-gal level (c in paper; 34.3 nM = 0.0343 uM) + c_basal 0.0343 # uM + # Half-maximal allolactose induction level (1.05e5 nM = 105 uM) + K_z 105.0 # uM + # Hill coefficient for lac induction + n_Hill 2.0 # dimensionless + +end parameters + +begin molecule types + # Internal lactose (l in Dreisigmeyer et al., 2008) + L() + # Allolactose (a in Dreisigmeyer et al., 2008) + A() + # Beta-galactosidase (z in Dreisigmeyer et al., 2008) + Z() +end molecule types + +begin seed species + L() 0 # uM + A() 0 # uM + Z() c_basal # uM +end seed species + +begin observables + # Intracellular concentrations (uM) + Molecules Obs_Tot_L L() + Molecules Obs_Tot_A A() + Molecules Obs_Tot_Z Z() +end observables + +begin functions + # Permease-dependent lactose transport (net import); + # Eq. (1a), first term in Dreisigmeyer et al. (2008) + transport_L() = alpha * Obs_Tot_Z \ + * (l_ext - phi * rho * Obs_Tot_L) \ + / (K_i + l_ext + rho * Obs_Tot_L) + + # Effective first-order rate constant for beta-gal-catalyzed + # lactose degradation; Eq. (1a), second term in + # Dreisigmeyer et al. (2008). Competitive inhibition: shared + # denominator (1 + a/K_m_a + l/K_m_l). BNG multiplies by [L]. + metab_L() = (beta / K_m_l) * Obs_Tot_Z \ + / (1 + Obs_Tot_A / K_m_a + Obs_Tot_L / K_m_l) + + # Allolactose production (branching fraction of lactose + # degradation); Eq. (1b), first term in Dreisigmeyer et al. (2008) + prod_A() = nu * (beta / K_m_l) * Obs_Tot_Z * Obs_Tot_L \ + / (1 + Obs_Tot_A / K_m_a + Obs_Tot_L / K_m_l) + + # Effective first-order rate constant for beta-gal-catalyzed + # allolactose degradation; Eq. (1b), second term in + # Dreisigmeyer et al. (2008). BNG multiplies by [A]. + metab_A() = (delta / K_m_a) * Obs_Tot_Z \ + / (1 + Obs_Tot_A / K_m_a + Obs_Tot_L / K_m_l) + + # Beta-gal synthesis: basal + Hill-induced; + # Eq. (1c) in Dreisigmeyer et al. (2008) + syn_Z() = growth_rate * (c_basal \ + + eps * Obs_Tot_A^n_Hill \ + / (K_z^n_Hill + Obs_Tot_A^n_Hill)) + + # Dimensional conversions (uncomment for concentration output + # if model is converted to population-based units) +# L_conc() = Obs_Tot_L / (NA * V_ref) * 1e6 # uM +# A_conc() = Obs_Tot_A / (NA * V_ref) * 1e6 # uM +# Z_conc() = Obs_Tot_Z / (NA * V_ref) * 1e6 # uM +end functions + +begin reaction rules + # Permease-dependent lactose import + 0 -> L() transport_L() + + # Beta-gal-catalyzed lactose degradation + L() -> 0 metab_L() + + # Growth dilution of internal lactose + L() -> 0 growth_rate + + # Allolactose production from lactose metabolism + 0 -> A() prod_A() + + # Beta-gal-catalyzed allolactose degradation + A() -> 0 metab_A() + + # Growth dilution of allolactose + A() -> 0 growth_rate + + # Beta-gal synthesis (basal + allolactose-induced Hill function) + 0 -> Z() syn_Z() + + # Growth dilution of beta-galactosidase + Z() -> 0 growth_rate +end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) # 3 species, 8 reactions + saveConcentrations() + + #@note: | + # Two protocols: (1) time-course relaxation, (2) induction + # curve scan. Both are active. + + # Time-course relaxation to steady state + + #@protocol: | + # Integrate from uninduced initial conditions (L=0, A=0, + # Z=c_basal) with constant external lactose l_ext = 1000 uM. + # The system relaxes to a partially induced steady state + # (Z ~ 0.33 uM, ~10x basal) over ~200 min. + + resetConcentrations() + simulate({method=>"ode",suffix=>"ode",\ + t_start=>0,t_end=>500,n_steps=>500}) + + # Induction curve: parameter scan over external lactose + + #@protocol: | + # Scan l_ext logarithmically from 0.01 to 1e6 uM. Each + # scan point runs to t = 500 min (steady state). The + # resulting Z-vs-l_ext curve is monostable — no S-shaped + # bistable region — consistent with the paper's conclusion. + + #@figure: Fig. 8 (top, gamma = 0.0231) in Dreisigmeyer et al. (2008) + + parameter_scan({method=>"ode",parameter=>"l_ext",\ + par_min=>0.01,par_max=>1e6,n_scan_pts=>100,\ + log_scale=>1,t_start=>0,t_end=>500,n_steps=>200,\ + suffix=>"scan"}) +end actions diff --git a/Published/Dreisigmeyer2008/metadata.yaml b/Published/Dreisigmeyer2008/metadata.yaml new file mode 100644 index 0000000..6b27da3 --- /dev/null +++ b/Published/Dreisigmeyer2008/metadata.yaml @@ -0,0 +1,21 @@ +id: "Dreisigmeyer_2008" +name: "Dreisigmeyer 2008" +description: "Lac operon" +tags: ["published", "gene-expression", "dreisigmeyer", "2008"] +category: "gene-expression" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "gene-expression" + featured: false + difficulty: "intermediate" diff --git a/Published/Dushek2011/Dushek_2011.bngl b/Published/Dushek2011/Dushek_2011.bngl index 33bba0b..27405e1 100644 --- a/Published/Dushek2011/Dushek_2011.bngl +++ b/Published/Dushek2011/Dushek_2011.bngl @@ -190,6 +190,6 @@ begin observables end observables begin actions generate_network({overwrite=>1}); -#simulate_ode({t_end=>500000,n_steps=>30,sparse=>1,steady_state=>1}); +simulate_ode({t_end=>500000,n_steps=>30,sparse=>1,steady_state=>1}); #writeMfile({}); end actions \ No newline at end of file diff --git a/Published/Gardner2000/README.md b/Published/Gardner2000/README.md new file mode 100644 index 0000000..721f6bd --- /dev/null +++ b/Published/Gardner2000/README.md @@ -0,0 +1,3 @@ +# Gardner 2000 + +BioNetGen model: Gardner 2000 diff --git a/Published/Gardner2000/genetic_switch_gardner2000.bngl b/Published/Gardner2000/genetic_switch_gardner2000.bngl new file mode 100644 index 0000000..32edf66 --- /dev/null +++ b/Published/Gardner2000/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 diff --git a/Published/Gardner2000/metadata.yaml b/Published/Gardner2000/metadata.yaml new file mode 100644 index 0000000..b3ce512 --- /dev/null +++ b/Published/Gardner2000/metadata.yaml @@ -0,0 +1,21 @@ +id: "Gardner_2000" +name: "Gardner 2000" +description: "Genetic toggle switch" +tags: ["published", "synthetic-biology", "gardner", "2000"] +category: "synthetic-biology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "synthetic-biology" + featured: false + difficulty: "intermediate" diff --git a/Published/Goldstein1980/README.md b/Published/Goldstein1980/README.md new file mode 100644 index 0000000..17892af --- /dev/null +++ b/Published/Goldstein1980/README.md @@ -0,0 +1,3 @@ +# Goldstein 1980 + +BioNetGen model: Goldstein 1980 diff --git a/Published/Goldstein1980/blbr_heterogeneity_goldstein1980.bngl b/Published/Goldstein1980/blbr_heterogeneity_goldstein1980.bngl new file mode 100644 index 0000000..6502c29 --- /dev/null +++ b/Published/Goldstein1980/blbr_heterogeneity_goldstein1980.bngl @@ -0,0 +1,303 @@ +begin model + +#@title: | +# Heterogeneous bivalent hapten-receptor cross-linking +# (Goldstein and Wofsy, 1980) + +#@description: | +# Network-free (NFsim) kinetic model of symmetric bivalent +# hapten binding to a HETEROGENEOUS population of bivalent +# cell-surface antibody (IgE). Two antibody subpopulations +# (R1, R2) with distinct single-site affinities K1, K2 +# share the same cross-linking geometry (kappa). Three +# processes per receptor type: (1) hapten capture from +# solution, (2) inter-complex cross-linking, (3) bond +# dissociation. No intra-complex rings. +# +# Heterogeneity breaks the symmetry of the cross-linking +# curve: x_poly vs log(A) is no longer symmetric about a +# single A_max, and the position of the peak shifts with +# total antibody concentration X_T. The default +# parameterization (K1 = 5e6 /M, K2 = 5e8 /M, r1 = r2 +# = 0.5, X_T = 500) reproduces the bottom curve in +# Fig. 5 of Goldstein and Wofsy (1980). To reproduce +# other curves, change X_T_per_cell to 5000 or 10000. +# +# An excess-ligand approximation is used when LT/RT >= +# 100: free ligand is treated as a constant bath and +# capture becomes pseudo-first-order, keeping molecule +# counts low for NFsim at high ligand concentrations. + +#@keyword: | +# bivalent hapten, bivalent receptor, cross-linking, +# antibody heterogeneity, IgE, basophil, prozone effect, +# bell-shaped dose response, mass action, network-free, +# NFsim, aggregation, histamine release + +#@reference: | +# Goldstein B, Wofsy C (1980). Theory of equilibrium +# binding of a bivalent ligand to cell surface antibody: +# the effect of antibody heterogeneity on cross-linking. +# J Math Biol 10:347-366. doi:10.1007/BF00276093 +# +# Dembo M, Goldstein B (1978). Theory of equilibrium +# binding of symmetric bivalent haptens to cell surface +# antibody: application to histamine release from +# basophils. J Immunol 121:345-353. +# doi:10.4049/jimmunol.121.1.345 + +#@note: | +# Network generation is not feasible because bivalent- +# bivalent cross-linking produces an unbounded set of +# chain species. NFsim is used with -bscb (block same- +# complex binding, which implies complex bookkeeping). +# +# Mapping to Goldstein and Wofsy (1980) notation: +# K_i = single-site equilibrium constant for type i +# kappa = cross-linking coefficient (K_ij = kappa*K_j) +# X_T = total antibody surface density +# r_i = fraction of antibody in population i +# w_i = fraction of type i not cross-linked +# x_poly = 1 - sum(w_i) (Eq. 14) +# delta_ij = 4*K_i*A*kappa*K_j*X_T / +# [(1+K_i(2A+B))(1+K_j(2A+B))] + +begin parameters + + # Physical constants + NA 6.02214076e23 # /mol + + # Cell geometry (basophil) + V_cell 1e-9 # L/cell + S_cell 4.7e-6 # cm^2/cell + + # Antibody populations on cell surface + # Fig. 5: X_T = 500, 5000, or 10000 IgE/cell + X_T_per_cell 500 # molecules/cell + # Equal fractions of low- and high-affinity IgE + r1 0.5 # dimensionless + r2 0.5 # dimensionless + + # SSA/NFsim subvolume scaling + f 0.1 # dimensionless + V_sim V_cell*f # L + + # Scaled receptor counts + RT X_T_per_cell*f # molecules + RT_1 r1*RT # molecules + RT_2 r2*RT # molecules + + # Single-site equilibrium association constants + # K1 = low affinity, K2 = high affinity + Ka_1 5e6 # /M + Ka_2 5e8 # /M + + # Cross-linking coefficient; see Eq. 3 in + # Goldstein and Wofsy (1980) and Fig. 3 caption + kappa 4e-15 # cm^2*M/molecule + + # Cross-linking equilibrium constants (2D, per site) + # Kx_j = kappa * Ka_j (Eq. 3) + Kx_1 kappa*Ka_1 # cm^2/molecule + Kx_2 kappa*Ka_2 # cm^2/molecule + + # Dimensionless cross-linking propensities + # KxRT_j = Kx_j * X_T_per_cell / S_cell + KxRT_1 Kx_1*X_T_per_cell/S_cell # dimensionless + KxRT_2 Kx_2*X_T_per_cell/S_cell # dimensionless + + # Kinetic rates (koff sets timescale; equilibrium + # depends only on ratios Ka = kf/koff, Kx = kxf/koff) + koff 10 # /s + + # Solution binding forward rates (single-site, per pair) + kf1 Ka_1*koff/(NA*V_sim) # /(molecule*s) + kf2 Ka_2*koff/(NA*V_sim) # /(molecule*s) + + # Cross-linking forward rates (single-site, per pair) + # kxf_j = KxRT_j / RT * koff + kxf1 KxRT_1/RT*koff # /(molecule*s) + kxf2 KxRT_2/RT*koff # /(molecule*s) + + # Scanned parameter: bivalent ligand concentration + LT_conc_M 1e-8 # M + LT LT_conc_M*NA*V_sim # molecules + + # --- Excess-ligand approximation --- + # When LT >> RT, free ligand is approximately constant. + # Replace bimolecular capture with pseudo-first-order + # and stop tracking free ligand molecules. + excess_ratio 100 # threshold for switching + use_excess if(LT/(RT+0.01)>=excess_ratio,1,0) + + # Pseudo-first-order capture rates (independent of f) + # kf_pseudo = Ka * koff * LT_conc_M (per receptor site) + kf1_pseudo Ka_1*koff*LT_conc_M # /s + kf2_pseudo Ka_2*koff*LT_conc_M # /s + + # Fast cleanup rate for free L in excess mode + fast 1e4*koff # /s + + # Initial free ligand: full count in explicit mode, 0 in excess + Lfree_init LT*(1-use_excess) # molecules + +end parameters + +begin molecule types + # Bivalent hapten (ligand): two receptor-binding arms + L(r1,r2) + # Type 1 antibody (low affinity, Ka_1 = 5e6 /M) + R1(l1,l2) + # Type 2 antibody (high affinity, Ka_2 = 5e8 /M) + R2(l1,l2) +end molecule types + +begin seed species + L(r1,r2) Lfree_init # 0 in excess mode, LT in explicit mode + R1(l1,l2) RT_1 # molecules + R2(l1,l2) RT_2 # molecules +end seed species + +begin observables + # Free receptors (both sites unbound) + Molecules Obs_Free_R1 R1(l1,l2) + Molecules Obs_Free_R2 R2(l1,l2) + + # Non-cross-linked R1: free + singly-capped + dicapped + # monomeric. Each pattern requires every L arm bound to + # R1 to have its OTHER arm free (no cross-links). + Molecules Obs_NCL_R1 R1(l1,l2) \ + R1(l1!1,l2).L(r1!1,r2) \ + R1(l1!1,l2).L(r1,r2!1) \ + R1(l1,l2!1).L(r1!1,r2) \ + R1(l1,l2!1).L(r1,r2!1) \ + L(r1!1,r2).R1(l1!1,l2!2).L(r1!2,r2) \ + L(r1!1,r2).R1(l1!1,l2!2).L(r1,r2!2) \ + L(r1,r2!1).R1(l1!1,l2!2).L(r1!2,r2) \ + L(r1,r2!1).R1(l1!1,l2!2).L(r1,r2!2) + + # Non-cross-linked R2 (same pattern structure as R1) + Molecules Obs_NCL_R2 R2(l1,l2) \ + R2(l1!1,l2).L(r1!1,r2) \ + R2(l1!1,l2).L(r1,r2!1) \ + R2(l1,l2!1).L(r1!1,r2) \ + R2(l1,l2!1).L(r1,r2!1) \ + L(r1!1,r2).R2(l1!1,l2!2).L(r1!2,r2) \ + L(r1!1,r2).R2(l1!1,l2!2).L(r1,r2!2) \ + L(r1,r2!1).R2(l1!1,l2!2).L(r1!2,r2) \ + L(r1,r2!1).R2(l1!1,l2!2).L(r1,r2!2) + + # Doubly-bound ligands (cross-links connecting two R) + Molecules Obs_Xlinks L(r1!+,r2!+) +end observables + +begin functions + # Fraction of non-cross-linked antibody of each type + # w_i in Goldstein and Wofsy (1980) notation + w1() = Obs_NCL_R1 / RT_1 + w2() = Obs_NCL_R2 / RT_2 + + # Fraction of all antibody in cross-linked aggregates + # x_poly = 1 - sum(w_i); Eq. 14 + x_poly() = 1 - (Obs_NCL_R1 + Obs_NCL_R2) / RT +end functions + +begin reaction rules + + # ============================================================ + # Hapten capture: free ligand from solution binds receptor + # ============================================================ + # Explicit mode (use_excess=0): bimolecular, consumes free L. + # Excess mode (use_excess=1): rate set to 0 (no free L exists). + + # --- Explicit capture by R1 (low affinity) --- + L(r1,r2) + R1(l1) <-> L(r1!1,r2).R1(l1!1) kf1*(1-use_excess), koff + L(r1,r2) + R1(l2) <-> L(r1!1,r2).R1(l2!1) kf1*(1-use_excess), koff + L(r1,r2) + R1(l1) <-> L(r1,r2!1).R1(l1!1) kf1*(1-use_excess), koff + L(r1,r2) + R1(l2) <-> L(r1,r2!1).R1(l2!1) kf1*(1-use_excess), koff + + # --- Explicit capture by R2 (high affinity) --- + L(r1,r2) + R2(l1) <-> L(r1!1,r2).R2(l1!1) kf2*(1-use_excess), koff + L(r1,r2) + R2(l2) <-> L(r1!1,r2).R2(l2!1) kf2*(1-use_excess), koff + L(r1,r2) + R2(l1) <-> L(r1,r2!1).R2(l1!1) kf2*(1-use_excess), koff + L(r1,r2) + R2(l2) <-> L(r1,r2!1).R2(l2!1) kf2*(1-use_excess), koff + + # ============================================================ + # Pseudo-first-order capture (excess-ligand regime) + # ============================================================ + # When LT >> RT, free ligand is an implicit constant bath. + # Capture is unimolecular in receptor, creating a new L. + + # --- Pseudo capture by R1 --- + R1(l1) -> R1(l1!1).L(r1!1,r2) kf1_pseudo*use_excess + R1(l2) -> R1(l2!1).L(r1!1,r2) kf1_pseudo*use_excess + R1(l1) -> R1(l1!1).L(r1,r2!1) kf1_pseudo*use_excess + R1(l2) -> R1(l2!1).L(r1,r2!1) kf1_pseudo*use_excess + + # --- Pseudo capture by R2 --- + R2(l1) -> R2(l1!1).L(r1!1,r2) kf2_pseudo*use_excess + R2(l2) -> R2(l2!1).L(r1!1,r2) kf2_pseudo*use_excess + R2(l1) -> R2(l1!1).L(r1,r2!1) kf2_pseudo*use_excess + R2(l2) -> R2(l2!1).L(r1,r2!1) kf2_pseudo*use_excess + + # ============================================================ + # Cross-linking: tethered hapten arm binds DIFFERENT complex + # ============================================================ + # Unchanged — cross-linking is a surface reaction that does + # not depend on the free ligand population. + + # --- Cross-link to R1 (low affinity) --- + L(r1!+,r2) + R1(l1) <-> L(r1!+,r2!1).R1(l1!1) kxf1, koff + L(r1!+,r2) + R1(l2) <-> L(r1!+,r2!1).R1(l2!1) kxf1, koff + L(r1,r2!+) + R1(l1) <-> L(r1!1,r2!+).R1(l1!1) kxf1, koff + L(r1,r2!+) + R1(l2) <-> L(r1!1,r2!+).R1(l2!1) kxf1, koff + + # --- Cross-link to R2 (high affinity) --- + L(r1!+,r2) + R2(l1) <-> L(r1!+,r2!1).R2(l1!1) kxf2, koff + L(r1!+,r2) + R2(l2) <-> L(r1!+,r2!1).R2(l2!1) kxf2, koff + L(r1,r2!+) + R2(l1) <-> L(r1!1,r2!+).R2(l1!1) kxf2, koff + L(r1,r2!+) + R2(l2) <-> L(r1!1,r2!+).R2(l2!1) kxf2, koff + + # ============================================================ + # Cleanup: destroy fully-free ligand in excess mode + # ============================================================ + # In excess mode, dissociation can produce L(r1,r2) (both + # arms free). These are deleted immediately since the bath + # maintains constant free ligand concentration. + L(r1,r2) -> 0 fast*use_excess DeleteMolecules + +end reaction rules + +end model + +begin actions + + #@note: | + # Network generation is infeasible (unbounded chains). + # NFsim flags: + # -bscb block same-complex binding (implies -cb) + + # Equilibrium dose-response: ligand concentration scan + + #@protocol: | + # Scan total bivalent ligand concentration (LT_conc_M) + # on a log scale from 1e-12 to 1e-4 M. At each point, + # NFsim runs to t = 10 s to reach binding equilibrium + # (characteristic time ~5/koff = 0.5 s). The function + # x_poly gives the fraction of antibody in cross-linked + # aggregates (polymers of size >= 2). + # + # Default parameters (X_T = 500, r1 = r2 = 0.5, + # K1 = 5e6, K2 = 5e8) reproduce the bottom curve in + # Fig. 5 of Goldstein and Wofsy (1980). Change + # X_T_per_cell to 5000 or 10000 for the other curves. + + #@figure: Fig. 5 in Goldstein and Wofsy (1980) + + parameter_scan({method=>"nf",parameter=>"LT_conc_M",\ + par_min=>1e-12,par_max=>1e-4,n_scan_pts=>18,\ + log_scale=>1,t_start=>0,t_end=>10,n_steps=>1,\ + suffix=>"scan",gml=>2147483647,\ + print_functions=>1,param=>"-bscb"}) + +end actions diff --git a/Published/Goldstein1980/metadata.yaml b/Published/Goldstein1980/metadata.yaml new file mode 100644 index 0000000..3656215 --- /dev/null +++ b/Published/Goldstein1980/metadata.yaml @@ -0,0 +1,21 @@ +id: "Goldstein_1980" +name: "Goldstein 1980" +description: "BLBR heterogeneity" +tags: ["published", "physics", "goldstein", "1980"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "physics" + featured: false + difficulty: "intermediate" diff --git a/Published/Harmon2017/README.md b/Published/Harmon2017/README.md new file mode 100644 index 0000000..8eaff0b --- /dev/null +++ b/Published/Harmon2017/README.md @@ -0,0 +1,3 @@ +# Harmon 2017 + +Harmon et al. (2017) model of FcεRI signaling. diff --git a/Published/Harmon2017/antigen_pulses_harmon2017.bngl b/Published/Harmon2017/antigen_pulses_harmon2017.bngl new file mode 100644 index 0000000..dfb928a --- /dev/null +++ b/Published/Harmon2017/antigen_pulses_harmon2017.bngl @@ -0,0 +1,331 @@ +begin model + +#@title: | +# IgE receptor signaling with history-dependent responses +# (Harmon et al., 2017) + +#@description: | +# ODE model of FcεRI signaling in mast cells under pulsed +# antigen stimulation, from Harmon et al. (2017) +# Supplementary Data S1. Multivalent antigen (DF3) binds +# IgE-FcεRI, triggering receptor phosphorylation, Syk +# recruitment (positive signal), Ship1 recruitment with +# cofactor X (negative signal), PIP3 dynamics, and +# degranulation. Timescale separation between fast Syk +# activation/deactivation and slow Ship1/X dynamics +# produces history-dependent responses: short quiescence +# intervals yield desensitization; long intervals yield +# priming (hyperdegranulation). Parameters were fit to +# on-device degranulation data (Fig. 4) using BioNetFit. + +#@keyword: | +# IgE, FcεRI, mast cell, Syk, Ship1, PIP3, +# degranulation, desensitization, priming, +# pulse wash, history dependence, timescale separation, +# antigen receptor signaling, ODE, mass action, +# fitted parameters + +#@reference: | +# Harmon B, Chylek LA, Liu Y, Mitra ED, Mahajan A, +# Saada EA, Schudel BR, Holowka DA, Baird BA, Wilson BS, +# Hlavacek WS, Singh AK (2017). Timescale separation of +# positive and negative signaling creates history-dependent +# responses to IgE receptor stimulation. Sci Rep 7:15586. +# doi:10.1038/s41598-017-15568-2 + +#@note: | +# Original filename: model.bngl (Supplementary Data S1). +# Authors: Chylek LA, Mitra E, Hlavacek WS. +# Parameters with __FREE__ suffix were estimated by +# BioNetFit fitting to experimental degranulation data. +# Time unit is minutes (converted from seconds via T=60). +# Antigen held at constant concentration via $ prefix in +# seed species; pulses implemented by setConcentration in +# the actions block. + +begin parameters + + # --- Fitted parameters (BioNetFit 1.0) --- + X_tot__FREE__ 6.13331088e+00 # dimensionless + k_Xoff__FREE__ 1.91394890e-06 # /s + k_Xon__FREE__ 9.39816993e+04 # /M/s + kase__FREE__ 3.76143208e+00 # /s + kdegX__FREE__ 3.19130252e-04 # /s + kdegran__FREE__ 1.88893284e+05 # /M/s + km_Ship1__FREE__ 1.43154204e-03 # /s + km_Syk__FREE__ 2.87783197e-01 # /s + km_x__FREE__ 1.12185442e-01 # /s + koff__FREE__ 4.45671503e-03 # /s + kp_Ship1__FREE__ 1.10810534e+04 # /M/s + kp_Syk__FREE__ 2.65462642e+05 # /M/s + kp_x__FREE__ 7.81553987e+05 # /M/s + kpten__FREE__ 9.95093271e-03 # /s + ksynth1__FREE__ 1.84930114e-02 # /s + pase__FREE__ 1.60206452e-01 # /s + + # --- System geometry and scaling --- + # System size scaling factor + f 1 # dimensionless + + # Avogadro constant + NA 6.02214076e23 # /mol + + # Time unit conversion factor (s to min) + T 60 # s/min + + # Microfluidic channel volume + Vchannel 500e-9 # L/channel + + # Cells per channel + Nchannel 1000 # cells/channel + + # Extracellular fluid volume per cell + Vecf f*(Vchannel/Nchannel) # L/cell + + # Cytosolic volume (sphere, diameter 17.9 um) + Vcyt f*3e-12 # L/cell + + # --- Antigen concentrations --- + # Condition 0: no antigen (wash) + Ag_tot_0 0 # molecules/cell + + # Condition 1: 10 nM DF3 + Ag_conc1 10e-9 # M + Ag_tot_1 Ag_conc1*(NA*Vecf) # molecules/cell + + # --- Protein abundances --- + # IgE-FcεRI antigen receptor + R_tot f*3e5 # molecules/cell + + # Protein tyrosine kinase Syk + Syk_tot f*3e5 # molecules/cell + + # Lipid phosphatase Ship1 + Ship1_tot f*3e5 # molecules/cell + + # Hypothetical Ship1 cofactor X + X_tot X_tot__FREE__*Ship1_tot # molecules/cell + + # β-hexosaminidase (degranulation marker) + H_tot 1e6 # molecules/cell + + # --- Rate constants (converted to /min) --- + # Antigen capture (diffusion-limited, 1e7 /M/s) + kon 1e7*T/(NA*Vecf) # /molecule/min + + # Antigen release + koff koff__FREE__*T # /min + + # Receptor phosphorylation (pseudo-first-order) + kase kase__FREE__*T # /min + + # Receptor dephosphorylation (pseudo-first-order) + pase pase__FREE__*T # /min + + # Syk recruitment to phosphorylated receptor + kp_Syk kp_Syk__FREE__*T/(NA*Vcyt) # /molecule/min + km_Syk km_Syk__FREE__*T # /min + + # Ship1 recruitment to phosphorylated receptor + kp_Ship1 kp_Ship1__FREE__*T/(NA*Vcyt) # /molecule/min + km_Ship1 km_Ship1__FREE__*T # /min + + # Cofactor X activation by phosphorylated receptor + k_Xon k_Xon__FREE__*T/(NA*Vcyt) # /molecule/min + k_Xoff k_Xoff__FREE__*T # /min + + # X-Ship1 interaction + kp_x kp_x__FREE__*T/(NA*Vcyt) # /molecule/min + km_x km_x__FREE__*T # /min + + # PIP3 synthesis by activated Syk + ksynth1 ksynth1__FREE__*T # /min + + # PIP3 clearance by activated Ship1 (diffusion-limited) + kdeg1 1e7*T/(NA*Vcyt) # /molecule/min + + # PIP3 basal degradation by PTEN + kpten kpten__FREE__*T # /min + + # Degranulation driven by PIP3 + kdegran kdegran__FREE__*T/(NA*Vcyt) # /molecule/min + + # Proteasomal degradation of activated X + kdegX kdegX__FREE__*T # /min + +end parameters + +begin molecule types + # Multivalent antigen (DNP-conjugated BSA) + Ag(DNP) + # IgE-FcεRI antigen receptor + # IgE: antigen-binding site + # Yb: β-chain ITAM (0=unphosphorylated, P=phosphorylated) + # Yg: γ-chain ITAMs (0=unphosphorylated, P=phosphorylated) + R(IgE,Yb~0~P,Yg~0~P) + # Protein tyrosine kinase Syk + Syk(tSH2) + # Lipid phosphatase Ship1 + Ship1(SH2,x) + # Hypothetical Ship1 cofactor X + X(s~on~off) + # Phosphatidylinositol (3,4,5)-trisphosphate + PIP3() + # β-hexosaminidase (degranulation marker) + # loc: in=granule, out=secreted + H(loc~in~out) +end molecule types + +begin seed species + # $ prefix: held at constant concentration + $Ag(DNP) Ag_tot_1 # molecules/cell + R(IgE,Yb~0,Yg~0) R_tot # molecules/cell + Syk(tSH2) Syk_tot # molecules/cell + Ship1(SH2,x) Ship1_tot # molecules/cell + X(s~off) X_tot # molecules/cell + PIP3() 0 # molecules/cell + H(loc~in) H_tot # molecules/cell +end seed species + +begin observables + # Antigen + Molecules Ag_total Ag() + Molecules Ag_free Ag(DNP) + # Receptor states + Molecules R_bound R(IgE!+) + Molecules R_free R(IgE) + Molecules RP R(Yg~P!?) + Molecules R0 R(Yg~0) + # Signaling intermediates + Molecules actSyk Syk(tSH2!+) + Molecules actShip1 Ship1(SH2!+,x!+) + Molecules Ship1_total Ship1() + Molecules PIP3_total PIP3() + # Cofactor X + Molecules Xall X() + Molecules X_on_free X(s~on) + Molecules X_on_free_or_bound X(s~on!?) + Molecules XShip1 X(s~on!1).Ship1(x!1) + # Degranulation readout + Molecules degranulation H(loc~out) +end observables + +begin reaction rules + + # Antigen-receptor binding (one-step effective mechanism) + Ag(DNP) + R(IgE) <-> Ag(DNP!1).R(IgE!1) kon, koff + + # Receptor phosphorylation (Lyn-mediated, requires Ag) + R(IgE!+,Yb~0,Yg~0) -> R(IgE!+,Yb~P,Yg~P) kase + + # Receptor dephosphorylation (pseudo-first-order) + R(Yb~P,Yg~P) -> R(Yb~0,Yg~0) pase + + # Syk recruitment to γ-chain phospho-ITAM + R(Yg~P) + Syk(tSH2) <-> R(Yg~P!1).Syk(tSH2!1) \ + kp_Syk, km_Syk + + # Ship1 recruitment to β-chain phospho-ITAM + R(Yb~P) + Ship1(SH2) <-> R(Yb~P!1).Ship1(SH2!1) \ + kp_Ship1, km_Ship1 + + # Receptor-mediated activation of cofactor X + R(Yb~P!?) + X(s~off) -> R(Yb~P!?) + X(s~on) k_Xon + + # Deactivation of cofactor X + X(s~on) -> X(s~off) k_Xoff + + # PIP3 synthesis by receptor-recruited Syk + Syk(tSH2!+) -> Syk(tSH2!+) + PIP3() ksynth1 + + # Activated X binds Ship1 + X(s~on) + Ship1(x) <-> X(s~on!1).Ship1(x!1) kp_x, km_x + + # PIP3 clearance by membrane-associated Ship1-X complex + Ship1(SH2!+,x!+) + PIP3() -> Ship1(SH2!+,x!+) kdeg1 + + # Basal PIP3 degradation (PTEN) + PIP3() -> 0 kpten + + # Proteasomal degradation of activated X (free) + X(s~on) -> 0 kdegX + + # Proteasomal degradation of activated X (Ship1-bound) + X(s~on!1).Ship1(x!1) -> Ship1(x) kdegX + + # PIP3-driven degranulation + PIP3() + H(loc~in) -> PIP3() + H(loc~out) kdegran + +end reaction rules + +end model + +begin actions + + #@note: | + # Pulse/wash protocol from Harmon et al. (2017) Fig. 4. + # Each trial: 5-min DF3 pulse (S1), variable quiescence + # interval I (Ag=0), then 5-min DF3 pulse (S2). + # saveConcentrations/resetConcentrations are used to + # branch from the post-S1 state for each I value. + + generate_network({overwrite=>1}) # 23 species, 86 reactions + + #@figure: Fig. 4 in Harmon et al. (2017) + + # S1: first 5-min pulse of 10 nM DF3 + setConcentration("Ag(DNP)","Ag_tot_1") + simulate({suffix=>"p1_5",method=>"ode",\ + t_end=>5,n_steps=>50}) + saveConcentrations() + + # --- I = 5 min --- + setConcentration("Ag(DNP)","Ag_tot_0") + simulate({suffix=>"p2_5",method=>"ode",\ + t_end=>5,n_steps=>50}) + setConcentration("Ag(DNP)","Ag_tot_1") + setConcentration("H(loc~out)",0) + simulate({suffix=>"p3_5",method=>"ode",\ + t_end=>5,n_steps=>50}) + + # --- I = 30 min --- + resetConcentrations() + setConcentration("Ag(DNP)","Ag_tot_0") + simulate({suffix=>"p2_30",method=>"ode",\ + t_end=>30,n_steps=>300}) + setConcentration("Ag(DNP)","Ag_tot_1") + setConcentration("H(loc~out)",0) + simulate({suffix=>"p3_30",method=>"ode",\ + t_end=>5,n_steps=>50}) + + # --- I = 60 min --- + resetConcentrations() + setConcentration("Ag(DNP)","Ag_tot_0") + simulate({suffix=>"p2_60",method=>"ode",\ + t_end=>60,n_steps=>600}) + setConcentration("Ag(DNP)","Ag_tot_1") + setConcentration("H(loc~out)",0) + simulate({suffix=>"p3_60",method=>"ode",\ + t_end=>5,n_steps=>50}) + + # --- I = 120 min --- + resetConcentrations() + setConcentration("Ag(DNP)","Ag_tot_0") + simulate({suffix=>"p2_120",method=>"ode",\ + t_end=>120,n_steps=>1200}) + setConcentration("Ag(DNP)","Ag_tot_1") + setConcentration("H(loc~out)",0) + simulate({suffix=>"p3_120",method=>"ode",\ + t_end=>5,n_steps=>50}) + + # --- I = 240 min --- + resetConcentrations() + setConcentration("Ag(DNP)","Ag_tot_0") + simulate({suffix=>"p2_240",method=>"ode",\ + t_end=>240,n_steps=>2400}) + setConcentration("Ag(DNP)","Ag_tot_1") + setConcentration("H(loc~out)",0) + simulate({suffix=>"p3_240",method=>"ode",\ + t_end=>5,n_steps=>50}) + +end actions diff --git a/Published/Harmon2017/metadata.yaml b/Published/Harmon2017/metadata.yaml new file mode 100644 index 0000000..7d5b75c --- /dev/null +++ b/Published/Harmon2017/metadata.yaml @@ -0,0 +1,21 @@ +id: "Harmon_2017" +name: "Harmon 2017" +description: "Antigen pulses" +tags: ["published", "immunology", "harmon", "2017"] +category: "immunology" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "immunology" + featured: false + difficulty: "intermediate" diff --git a/Published/Hlavacek1999/README.md b/Published/Hlavacek1999/README.md new file mode 100644 index 0000000..820d55d --- /dev/null +++ b/Published/Hlavacek1999/README.md @@ -0,0 +1,3 @@ +# Hlavacek 1999 + +BioNetGen model: Hlavacek 1999 diff --git a/Published/Hlavacek1999/metadata.yaml b/Published/Hlavacek1999/metadata.yaml new file mode 100644 index 0000000..5ebe402 --- /dev/null +++ b/Published/Hlavacek1999/metadata.yaml @@ -0,0 +1,21 @@ +id: "Hlavacek_1999" +name: "Hlavacek 1999" +description: "Steric effects" +tags: ["published", "physics", "hlavacek", "1999"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "physics" + featured: false + difficulty: "intermediate" diff --git a/Published/Hlavacek1999/steric_effects_hlavacek1999.bngl b/Published/Hlavacek1999/steric_effects_hlavacek1999.bngl new file mode 100644 index 0000000..adadcab --- /dev/null +++ b/Published/Hlavacek1999/steric_effects_hlavacek1999.bngl @@ -0,0 +1,231 @@ +begin model + +#@title: Steric effects on ligand-receptor binding (Hlavacek et al., 1999) + +#@description: | +# Dimensionless kinetic model of multivalent ligand-receptor +# binding with steric hindrance. A multivalent ligand with n=20 +# equivalent binding sites interacts with monovalent cell-surface +# receptors. Bound receptors cover a circular area a on the +# ligand surface, sterically excluding nearby sites from further +# binding. The approximate insertion probability (Eq. 10) gives +# the fraction of unbound sites available for receptor binding: +# +# P_i(A) = (1 - i/n)(1 - ia/A)(1 - 3a/(A - ia))^i +# +# with a/A = 0.01 (receptor footprint is 1% of ligand surface) +# and gamma = 1 (circular receptor footprint). The steric +# hindrance factor H(i) = (1 - ia/A)(1 - 3a/(A-ia))^i reduces +# the number of available sites nu(i) = (n-i)*H(i) below the +# equivalent-site value (n-i). +# +# Variables are dimensionless: x_i = L_i/R_T (surface-bound +# ligand normalized by total receptor density), tau = k_{-x}*t +# (time scaled by reverse cross-linking rate). Free ligand l +# and free receptor r are computed from conservation laws. +# ODE only — dimensionless variables are incompatible with +# stochastic simulation. +# +# Outputs alpha(2) and alpha(10): fractions of receptors in +# aggregates of >= 2 and >= 10, quantifying receptor +# cross-linking. + +#@keyword: | +# steric effects, multivalent ligand, receptor aggregation, +# ligand-receptor binding, insertion probability, steric +# hindrance, cross-linking, dimensionless + +#@reference: | +# Hlavacek WS, Posner RG, Perelson AS (1999). Steric effects +# on multivalent ligand-receptor binding: exclusion of ligand +# sites by bound cell surface receptors. Biophys J +# 76:3031-3043. doi:10.1016/S0006-3495(99)77456-4 + +begin parameters + + #@note: | + # Dimensionless parameters from Fig. 8 in Hlavacek et al. + # (1999). Time is in units of 1/k_{-x}. Surface species + # x_i = L_i/R_T; free ligand l = L_0/L_T; free receptor + # r = R/R_T. + + # Exposure valence (sites exposed to receptors) + n 20 # dimensionless + + # Scaled ligand concentration: v*K*L_T + vKLT 1 # dimensionless + + # Scaled cross-linking affinity: K_x*R_T + KxRT 10 # dimensionless + + # Surface-to-volume conversion: C*R_T/L_T + CRT_LT 10 # dimensionless + + # Ratio of unbinding rate constants: k_r/k_{-x} + kr_kmx 1 # dimensionless + + # Receptor footprint area ratio: a/A (Eq. 10) + aA 0.01 # dimensionless + + # Available sites nu(i) = (n-i)*H(i) for i = 1,...,19 + # H(i) = (1 - i*aA)*(1 - 3*aA/(1 - i*aA))^i + # (Eq. 10 with gamma = 1, circular receptor) + nu_1 (n-1)*(1-1*aA)*(1-3*aA/(1-1*aA))^1 # dimensionless + nu_2 (n-2)*(1-2*aA)*(1-3*aA/(1-2*aA))^2 # dimensionless + nu_3 (n-3)*(1-3*aA)*(1-3*aA/(1-3*aA))^3 # dimensionless + nu_4 (n-4)*(1-4*aA)*(1-3*aA/(1-4*aA))^4 # dimensionless + nu_5 (n-5)*(1-5*aA)*(1-3*aA/(1-5*aA))^5 # dimensionless + nu_6 (n-6)*(1-6*aA)*(1-3*aA/(1-6*aA))^6 # dimensionless + nu_7 (n-7)*(1-7*aA)*(1-3*aA/(1-7*aA))^7 # dimensionless + nu_8 (n-8)*(1-8*aA)*(1-3*aA/(1-8*aA))^8 # dimensionless + nu_9 (n-9)*(1-9*aA)*(1-3*aA/(1-9*aA))^9 # dimensionless + nu_10 (n-10)*(1-10*aA)*(1-3*aA/(1-10*aA))^10 # dimensionless + nu_11 (n-11)*(1-11*aA)*(1-3*aA/(1-11*aA))^11 # dimensionless + nu_12 (n-12)*(1-12*aA)*(1-3*aA/(1-12*aA))^12 # dimensionless + nu_13 (n-13)*(1-13*aA)*(1-3*aA/(1-13*aA))^13 # dimensionless + nu_14 (n-14)*(1-14*aA)*(1-3*aA/(1-14*aA))^14 # dimensionless + nu_15 (n-15)*(1-15*aA)*(1-3*aA/(1-15*aA))^15 # dimensionless + nu_16 (n-16)*(1-16*aA)*(1-3*aA/(1-16*aA))^16 # dimensionless + nu_17 (n-17)*(1-17*aA)*(1-3*aA/(1-17*aA))^17 # dimensionless + nu_18 (n-18)*(1-18*aA)*(1-3*aA/(1-18*aA))^18 # dimensionless + nu_19 (n-19)*(1-19*aA)*(1-3*aA/(1-19*aA))^19 # dimensionless + +end parameters + +begin molecule types + # Ligand bound state: component b tracks number of bound + # receptors (1-20). Free ligand (0 bound) is implicit, + # computed from conservation law l = 1 - CRT_LT*sum(x_i). + Lig(b~1~2~3~4~5~6~7~8~9~10~11~12~13~14~15~16~17~18~19~20) +end molecule types + +begin seed species + Lig(b~1) 0 # dimensionless +end seed species + +begin observables + # Surface density of ligand bound at i sites (x_i = L_i/R_T) + Molecules Obs_L1 Lig(b~1) + Molecules Obs_L2 Lig(b~2) + Molecules Obs_L3 Lig(b~3) + Molecules Obs_L4 Lig(b~4) + Molecules Obs_L5 Lig(b~5) + Molecules Obs_L6 Lig(b~6) + Molecules Obs_L7 Lig(b~7) + Molecules Obs_L8 Lig(b~8) + Molecules Obs_L9 Lig(b~9) + Molecules Obs_L10 Lig(b~10) + Molecules Obs_L11 Lig(b~11) + Molecules Obs_L12 Lig(b~12) + Molecules Obs_L13 Lig(b~13) + Molecules Obs_L14 Lig(b~14) + Molecules Obs_L15 Lig(b~15) + Molecules Obs_L16 Lig(b~16) + Molecules Obs_L17 Lig(b~17) + Molecules Obs_L18 Lig(b~18) + Molecules Obs_L19 Lig(b~19) + Molecules Obs_L20 Lig(b~20) + # Total surface-bound ligand (all states) + Molecules Obs_L_tot Lig() +end observables + +begin functions + # Helper functions: weighted sums of bound states for + # computing receptor occupancy (sum of i*x_i) + r_b_lo() = Obs_L1 + 2*Obs_L2 + 3*Obs_L3 + 4*Obs_L4 + 5*Obs_L5 + r_b_md() = 6*Obs_L6 + 7*Obs_L7 + 8*Obs_L8 + 9*Obs_L9 + 10*Obs_L10 + r_b_hi() = 11*Obs_L11 + 12*Obs_L12 + 13*Obs_L13 + 14*Obs_L14 + r_b_vh() = 15*Obs_L15 + 16*Obs_L16 + 17*Obs_L17 + 18*Obs_L18 + r_b_xx() = 19*Obs_L19 + 20*Obs_L20 + + # Free receptor fraction: r = 1 - sum(i*x_i) (Eq. 17) + r_free() = 1 - r_b_lo() - r_b_md() - r_b_hi() - r_b_vh() - r_b_xx() + + # Free ligand fraction: l = 1 - CRT_LT*sum(x_i) (Eq. 16) + l_free() = 1 - CRT_LT*Obs_L_tot + + # First binding rate from solution (zeroth-order creation) + fn_bind() = kr_kmx*vKLT*r_free()*l_free() + + # Fraction of receptors in aggregates of 2+ (Eq. 18) + alpha_2() = 1 - r_free() - Obs_L1 + + # Fraction of receptors in aggregates of 10+ (Eq. 18) + alpha_10() = 10*Obs_L10 + r_b_hi() + r_b_vh() + r_b_xx() +end functions + +begin reaction rules + # Initial binding: solution ligand attaches to cell surface. + # Zeroth-order creation; rate = (k_r/k_{-x})(vKL_T)*r*l. + # See Eq. 15, u_0 forward term. + 0 -> Lig(b~1) fn_bind() + + # Reverse initial binding: ligand detaches from surface. + # BNG multiplies by [Lig(b~1)]. + Lig(b~1) -> 0 kr_kmx + + # Forward cross-linking: receptor binds available site on + # surface-adsorbed ligand. Rule rate = nu_i*KxRT*r_free(); + # BNG multiplies by [Lig(b~i)], giving total rate + # nu(i)*KxRT*r*x_i. See Eq. 15, u_i forward term. + Lig(b~1) -> Lig(b~2) nu_1*KxRT*r_free() + Lig(b~2) -> Lig(b~3) nu_2*KxRT*r_free() + Lig(b~3) -> Lig(b~4) nu_3*KxRT*r_free() + Lig(b~4) -> Lig(b~5) nu_4*KxRT*r_free() + Lig(b~5) -> Lig(b~6) nu_5*KxRT*r_free() + Lig(b~6) -> Lig(b~7) nu_6*KxRT*r_free() + Lig(b~7) -> Lig(b~8) nu_7*KxRT*r_free() + Lig(b~8) -> Lig(b~9) nu_8*KxRT*r_free() + Lig(b~9) -> Lig(b~10) nu_9*KxRT*r_free() + Lig(b~10) -> Lig(b~11) nu_10*KxRT*r_free() + Lig(b~11) -> Lig(b~12) nu_11*KxRT*r_free() + Lig(b~12) -> Lig(b~13) nu_12*KxRT*r_free() + Lig(b~13) -> Lig(b~14) nu_13*KxRT*r_free() + Lig(b~14) -> Lig(b~15) nu_14*KxRT*r_free() + Lig(b~15) -> Lig(b~16) nu_15*KxRT*r_free() + Lig(b~16) -> Lig(b~17) nu_16*KxRT*r_free() + Lig(b~17) -> Lig(b~18) nu_17*KxRT*r_free() + Lig(b~18) -> Lig(b~19) nu_18*KxRT*r_free() + Lig(b~19) -> Lig(b~20) nu_19*KxRT*r_free() + + # Reverse cross-linking: receptor dissociates from + # surface-adsorbed ligand. Rate constant = (i+1) in + # dimensionless units; BNG multiplies by [Lig(b~{i+1})]. + # See Eq. 15, u_i reverse term. + Lig(b~2) -> Lig(b~1) 2 + Lig(b~3) -> Lig(b~2) 3 + Lig(b~4) -> Lig(b~3) 4 + Lig(b~5) -> Lig(b~4) 5 + Lig(b~6) -> Lig(b~5) 6 + Lig(b~7) -> Lig(b~6) 7 + Lig(b~8) -> Lig(b~7) 8 + Lig(b~9) -> Lig(b~8) 9 + Lig(b~10) -> Lig(b~9) 10 + Lig(b~11) -> Lig(b~10) 11 + Lig(b~12) -> Lig(b~11) 12 + Lig(b~13) -> Lig(b~12) 13 + Lig(b~14) -> Lig(b~13) 14 + Lig(b~15) -> Lig(b~14) 15 + Lig(b~16) -> Lig(b~15) 16 + Lig(b~17) -> Lig(b~16) 17 + Lig(b~18) -> Lig(b~17) 18 + Lig(b~19) -> Lig(b~18) 19 + Lig(b~20) -> Lig(b~19) 20 + +end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) # 20 species, 40 reactions + + #@protocol: | + # Time course of receptor aggregation from all-free initial + # conditions (l=1, r=1, x_i=0). Output: alpha(2) and + # alpha(10) vs dimensionless time tau = k_{-x}*t. + + #@figure: Fig. 8a,b (broken line) in Hlavacek et al. (1999) + + simulate({method=>"ode",suffix=>"ode",\ + t_start=>0,t_end=>2.5,n_steps=>500}) +end actions diff --git a/Published/Hlavacek2001/README.md b/Published/Hlavacek2001/README.md new file mode 100644 index 0000000..a4d9571 --- /dev/null +++ b/Published/Hlavacek2001/README.md @@ -0,0 +1,3 @@ +# Hlavacek 2001 + +BioNetGen model: Hlavacek 2001 diff --git a/Published/Hlavacek2001/kinetic_proofreading_hlavacek2001.bngl b/Published/Hlavacek2001/kinetic_proofreading_hlavacek2001.bngl new file mode 100644 index 0000000..37365d3 --- /dev/null +++ b/Published/Hlavacek2001/kinetic_proofreading_hlavacek2001.bngl @@ -0,0 +1,246 @@ +begin model + +#@title: Kinetic proofreading in receptor signaling (Hlavacek et al., 2001) + +#@description: | +# Kinetic proofreading model for receptor-mediated cell signaling. +# A symmetric bivalent ligand (two identical receptor-binding sites) +# interacts with monovalent cell-surface receptors, forming receptor +# dimers through sequential binding. Dimers undergo a series of N=5 +# unidirectional modifications (representing phosphorylation, kinase +# recruitment, adapter association, etc.). If a dimer dissociates +# before completing all modifications, the receptors revert to their +# basal unmodified state. +# +# This architecture implements kinetic proofreading: the fraction of +# terminally modified dimers at steady state scales as alpha^N where +# alpha = kp/(kp + 2*koff), providing exponential discrimination +# between ligands with different dissociation rate constants. Ligands +# forming long-lived receptor complexes generate disproportionately +# more fully modified dimers than ligands forming short-lived +# complexes. +# +# The modification counter is tracked on the ligand molecule (which +# is the center of each dimer). When either bond in a dimer breaks, +# the counter resets to zero — faithfully implementing the +# irreversible-loss-of-modifications assumption of McKeithan (1995). +# +# Default parameterization uses values estimated for bispecific IgE +# interacting with a bivalent antigen and FcepsilonRI on RBL-2H3 +# cells. With koff = 0.1/s and kp = 0.4/s, alpha = 2/3 and the +# fraction of dimers completing all 5 modifications is (2/3)^5 ~13%. + +#@keyword: | +# kinetic proofreading, receptor aggregation, signal transduction, +# ligand discrimination, receptor modification, mass action, +# bivalent ligand, monovalent receptor, dimer, immunoreceptor, +# FcepsilonRI + +#@reference: | +# Hlavacek WS, Redondo A, Wofsy C, Goldstein B (2002). Kinetic +# proofreading in receptor-mediated transduction of cellular +# signals: receptor aggregation, partially activated receptors, +# and cytosolic messengers. Bull Math Biol 64:887-911. +# doi:10.1006/bulm.2002.0306 +# +# Hlavacek WS, Redondo A, Metzger H, Wofsy C, Goldstein B +# (2001). Kinetic proofreading models for cell signaling predict +# ways to escape kinetic proofreading. Proc Natl Acad Sci USA +# 98:7295-7300. doi:10.1073/pnas.121172298 + +begin parameters + + #@note: | + # Parameters estimated for bispecific IgE interacting with a + # bivalent antigen and FcepsilonRI on RBL-2H3 cells. + # See Table 1 in Hlavacek et al. (2002). Bimolecular rate + # constants converted from concentration-based (M^-1 s^-1) to + # population-based (per molecule pair per second) using NA and + # V_ref. First-order rate constants are unchanged. + + # Avogadro constant + NA 6.02214076e23 # /mol + + # Extracellular volume per cell + # 10^6 cells/ml => V_ref = 10^-9 L/cell + V_ref 1e-9 # L/cell + + # Receptors per cell; see Erickson et al. (1987) + NR 300000 # molecules + + # Ligand at 1 nM: NL = LT * NA * V_ref + NL 602 # molecules + + # Single-site forward rate constant for ligand capture + # k_p1 = 1e7 /M/s; kon1 = k_p1 / (NA * V_ref) + kon1 1.661e-8 # /(molecule*s) + + # Single-site forward rate constant for crosslinking + # k_p2*RT = 1 /s (surface); kon2 = 1/NR + kon2 3.333e-6 # /(molecule*s) + + # Single-site dissociation rate constant (k_m1 = k_m2) + koff 0.1 # /s + + # Modification rate constant; see Eq. 5-7 + # in Hlavacek et al. (2002) + kp 0.4 # /s + +end parameters + +begin molecule types + # Bivalent ligand with two identical receptor-binding sites + # and a modification counter (0-5) tracking dimer state + L(r,r,mod~0~1~2~3~4~5) + # Monovalent receptor with one ligand-binding site + R(l) +end molecule types + +begin seed species + L(r,r,mod~0) NL # molecules + R(l) NR # molecules +end seed species + +begin observables + # Free ligand (both sites unbound) + Species Obs_Free_L L(r,r,mod~0) + # Free receptor + Species Obs_Free_R R(l) + # Singly-bound ligand (one site bound, one free) + Species Obs_Singly_Bound L(r!+,r,mod~0) + # Total dimers (ligand with both sites bound) + Species Obs_Tot_Dimers L(r!+,r!+) + # Dimers by modification state + Species Obs_D0 L(r!+,r!+,mod~0) + Species Obs_D1 L(r!+,r!+,mod~1) + Species Obs_D2 L(r!+,r!+,mod~2) + Species Obs_D3 L(r!+,r!+,mod~3) + Species Obs_D4 L(r!+,r!+,mod~4) + # Terminally modified dimers (fully activated) + Species Obs_D5 L(r!+,r!+,mod~5) +end observables + +begin functions + # Proofreading parameter alpha (Eq. 15 in + # Hlavacek et al., 2002): probability that + # the next modification occurs before dimer + # dissociation + alpha() = kp / (kp + 2 * koff) + + # Fraction of receptors in dimers + frac_dimers() = 2 * Obs_Tot_Dimers / NR + + # Fraction of dimers terminally modified + frac_term() = Obs_D5 / (Obs_Tot_Dimers + 1e-30) + + # Fraction of all receptors terminally modified + frac_R_term() = 2 * Obs_D5 / NR + + # Dimensional conversions (uncomment for output) +# L_conc() = Obs_Free_L / (NA * V_ref) # M +# R_conc() = Obs_Free_R / (NA * V_ref) # M +end functions + +begin reaction rules + # Ligand capture: free ligand binds a free receptor. + # BioNetGen applies the factor of 2 for the two + # equivalent r sites on L automatically. + # See Fig. 1(a) in Hlavacek et al. (2002). + L(r,r,mod~0) + R(l) -> L(r!1,r,mod~0).R(l!1) kon1 + + # Receptor crosslinking: singly-bound ligand engages + # a second free receptor, forming a dimer. + # See Fig. 1(a) in Hlavacek et al. (2002). + L(r!+,r,mod~0) + R(l) -> L(r!+,r!1,mod~0).R(l!1) kon2 + + # Dimer dissociation with modification reset. + # Any L-R bond can break. When a dimer bond opens, + # the modification counter resets to 0, implementing + # the assumption that receptor modifications are + # reversed upon loss of aggregation. For dimers, each + # of 2 bonds can break at rate koff, giving total + # dimer dissociation rate 2*koff (the factor of 2 is + # applied by BioNetGen). For singly-bound ligand, + # only the mod~0 rule applies (singly-bound L always + # has mod=0). See Eq. 1-7 in Hlavacek et al. (2002). + L(r!1,mod~0).R(l!1) -> L(r,mod~0) + R(l) koff + L(r!1,mod~1).R(l!1) -> L(r,mod~0) + R(l) koff + L(r!1,mod~2).R(l!1) -> L(r,mod~0) + R(l) koff + L(r!1,mod~3).R(l!1) -> L(r,mod~0) + R(l) koff + L(r!1,mod~4).R(l!1) -> L(r,mod~0) + R(l) koff + L(r!1,mod~5).R(l!1) -> L(r,mod~0) + R(l) koff + + # Sequential modification of dimers (unidirectional). + # L(r!+,r!+) matches only ligands with both sites + # bound (dimers). Each step proceeds at rate kp. + # See Fig. 1(b) in Hlavacek et al. (2002). + L(r!+,r!+,mod~0) -> L(r!+,r!+,mod~1) kp + L(r!+,r!+,mod~1) -> L(r!+,r!+,mod~2) kp + L(r!+,r!+,mod~2) -> L(r!+,r!+,mod~3) kp + L(r!+,r!+,mod~3) -> L(r!+,r!+,mod~4) kp + L(r!+,r!+,mod~4) -> L(r!+,r!+,mod~5) kp + +end reaction rules + +end model + +begin actions + generate_network({overwrite=>1}) # 9 species, 14 reactions + + #@note: | + # Network is small (9 species, ~14 reactions). ODE is + # the preferred method. SSA is feasible but slow at + # NR=300000; reduce NR and NL proportionally if SSA + # performance is needed. + + saveConcentrations() + + # Kinetic proofreading time course + + #@protocol: | + # Simulate from all-free initial conditions to + # steady state (600 s). Binding equilibrates on + # the timescale 1/(2*kon1*NR) ~ 100 s. Dimer + # modification is faster (~1/kp = 2.5 s) but + # depends on dimer availability. The time course + # shows progressive dimer formation followed by + # sequential population of modification states, + # with early states populated transiently before + # the terminal state D5 accumulates. At steady + # state, D5/D_total should approach alpha^5 ~ 13%. + + resetConcentrations() + simulate({method=>"ode",suffix=>"ode",\ + t_start=>0,t_end=>600,n_steps=>300}) + +# resetConcentrations() +# simulate({method=>"ssa",suffix=>"ssa",\ +# t_start=>0,t_end=>600,n_steps=>300}) + + # Kinetic proofreading demonstration: koff scan + + #@protocol: | + # Scan koff from 0.001 to 1/s (log scale) at fixed + # ligand concentration, showing how the steady-state + # fraction of terminally modified dimers decreases + # sharply with increasing koff. This demonstrates + # kinetic proofreading: small changes in the ligand + # dissociation rate produce large changes in terminal + # modification. + # + # Note: this scan varies koff alone at fixed LT. + # The controlled comparison in Hlavacek et al. (2002) + # Fig. 3(b) simultaneously adjusts LT to hold + # 2D/RT = const. Despite this difference, the scan + # qualitatively demonstrates the exponential + # sensitivity of terminal modification to koff. + + #@figure: Fig. 3(b) in Hlavacek et al. (2002) + + resetConcentrations() + parameter_scan({method=>"ode",parameter=>"koff",\ + par_min=>0.001,par_max=>1.0,n_scan_pts=>30,\ + log_scale=>1,\ + t_start=>0,t_end=>1000,n_steps=>100,\ + suffix=>"scan_koff"}) +end actions diff --git a/Published/Hlavacek2001/metadata.yaml b/Published/Hlavacek2001/metadata.yaml new file mode 100644 index 0000000..9792cdc --- /dev/null +++ b/Published/Hlavacek2001/metadata.yaml @@ -0,0 +1,21 @@ +id: "Hlavacek_2001" +name: "Hlavacek 2001" +description: "Kinetic proofreading" +tags: ["published", "physics", "hlavacek", "2001"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "physics" + featured: false + difficulty: "intermediate" diff --git a/Published/Macken1982/README.md b/Published/Macken1982/README.md new file mode 100644 index 0000000..1dff85b --- /dev/null +++ b/Published/Macken1982/README.md @@ -0,0 +1,3 @@ +# Macken 1982 + +BioNetGen model: Macken 1982 diff --git a/Published/Macken1982/metadata.yaml b/Published/Macken1982/metadata.yaml new file mode 100644 index 0000000..1514981 --- /dev/null +++ b/Published/Macken1982/metadata.yaml @@ -0,0 +1,21 @@ +id: "Macken_1982" +name: "Macken 1982" +description: "TLBR solution macken 1982" +tags: ["published", "physics", "macken", "1982"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "physics" + featured: false + difficulty: "intermediate" diff --git a/Published/Macken1982/tlbr_solution_macken1982.bngl b/Published/Macken1982/tlbr_solution_macken1982.bngl new file mode 100644 index 0000000..74dc6b2 --- /dev/null +++ b/Published/Macken1982/tlbr_solution_macken1982.bngl @@ -0,0 +1,190 @@ +begin model + +#@title: | +# Trivalent ligand-bivalent receptor aggregation +# (Macken and Perelson, 1982) + +#@description: | +# Network-free (NFsim) kinetic model of trivalent ligand +# (f=3, three identical binding sites) binding to bivalent +# receptor (g=2, two identical binding sites) in solution, +# forming branched aggregates. No intramolecular (cyclic) +# bonds are allowed, enforced by NFsim -bscb flag. +# +# Three reaction processes: (R1) ligand capture — a free +# trivalent ligand binds a free receptor site; (R2) +# crosslinking — a receptor-bound ligand with a free site +# binds a free receptor site on a DIFFERENT complex; (R3) +# dissociation — any ligand-receptor bond breaks. +# +# The kinetic equations for the ligand bond-count +# distribution (C_0 through C_f) follow Eq. 11 in Macken +# and Perelson (1982). At equilibrium, the closed-form +# solution (Eqs. 13, 17) relates free receptor sites and +# ligand binding states to the two dimensionless control +# parameters: K*C (single-site saturation) and kappa*S_0 +# (crosslinking propensity). Below the sol-gel transition +# (Eq. 18), all aggregates remain finite and the +# mean-field approximation is accurate. +# +# The branching process theory (Theorem 1, Eqs. 6-7) +# predicts the full aggregate size distribution m_{ij}(t) +# — the number of aggregates with i receptors and j +# ligands — at every time point, given the bond-count +# distribution from the kinetic ODEs. The equilibrium +# specialization (Eq. 21) provides closed-form +# predictions. Species observables for small aggregates +# (1R:1L pairs, 2R:1L and 1R:2L trimers, 3R:1L stars) +# enable direct validation of these predictions. +# +# Default parameterization (kappa_ST=0.5) is well below +# the gelation threshold, producing small transient +# aggregates that equilibrate within ~300 s. + +#@keyword: | +# aggregation, multivalent binding, crosslinking, +# trivalent ligand, bivalent receptor, branching process, +# mass action, network-free simulation, NFsim, +# sol-gel transition, equilibrium theory + +#@reference: | +# Macken CA, Perelson AS (1982). Aggregation of cell +# surface receptors by multivalent ligands. J Math Biol +# 14:365-370. doi:10.1007/BF00275401 + +#@note: | +# Network generation is not feasible because trivalent- +# bivalent crosslinking produces an unbounded set of +# aggregate species. NFsim with -bscb (block same-complex +# binding, preventing intra-complex ring formation) is +# required to match the Macken and Perelson (1982) theory +# which assumes no intramolecular bonds. +# +# Mapping to Macken and Perelson (1982) notation: +# f = 3 (effective ligand valence = total valence v) +# g = 2 (receptor valence) +# K = kf/koff (single-site affinity, /molecule) +# kappa = kxf/koff (crosslinking equilibrium, /molecule) +# C_i = ligand with i bonds (i = 0,...,f) +# S = free receptor sites = S_0 - sum(i*C_i) +# kappa_ST = kappa * S_0 (dimensionless propensity) + +begin parameters + + # Physical constants + NA 6.02214076e23 # /mol + + # Reference volume + V_ref 1e-12 # L + + # SSA/NFsim scaling + f 1.0 # dimensionless + + # Simulation volume + V_sim V_ref*f # L + + # Molecule counts + NR 300 # molecules + NL 4200 # molecules + + # Total receptor sites (g = 2) + ST 2*NR # molecules + + # Single-site dissociation rate constant + koff 0.01 # /s + + # Single-site macroscopic association rate constant + # K_macro = kon/koff = 1e8 /M + kon 1e6 # /M/s + + # Stochastic capture rate constant + kf kon/(NA*V_sim) # /(molecule*s) + + # Dimensionless crosslinking propensity + # kappa * S_0 in Macken and Perelson (1982) notation + kappa_ST 0.5 # dimensionless + + # Stochastic crosslinking rate constant + kxf kappa_ST/ST*koff # /(molecule*s) + +end parameters + +begin molecule types + # Trivalent ligand: three identical receptor-binding sites + L(r,r,r) + # Bivalent receptor: two identical ligand-binding sites + R(l,l) +end molecule types + +begin seed species + L(r,r,r) NL # molecules + R(l,l) NR # molecules +end seed species + +begin observables + # Free ligand (all three sites unbound) + Species Obs_Free_L L(r,r,r) + # Free receptor (both sites unbound) + Species Obs_Free_R R(l,l) + # Total ligand-receptor bonds + Molecules Obs_Bonds L(r!1).R(l!1) + # Free ligand sites on any ligand + Molecules Obs_Free_L_sites L(r) + # Free receptor sites on any receptor + Molecules Obs_Free_R_sites R(l) + # Aggregate m_{1,1}: 1 receptor + 1 ligand (LR pair) + Species Obs_Agg_1R_1L L(r!1,r,r).R(l!1,l) + # Aggregate m_{2,1}: 2 receptors + 1 ligand (R-L-R) + Species Obs_Agg_2R_1L L(r!1,r!2,r).R(l!1,l).R(l!2,l) + # Aggregate m_{3,1}: 3 receptors + 1 ligand (star) + Species Obs_Agg_3R_1L \ + L(r!1,r!2,r!3).R(l!1,l).R(l!2,l).R(l!3,l) + # Aggregate m_{1,2}: 1 receptor + 2 ligands (L-R-L) + Species Obs_Agg_1R_2L R(l!1,l!2).L(r!1,r,r).L(r!2,r,r) +end observables + +begin reaction rules + + # R1: Ligand capture — free ligand binds a free receptor + # site. See first term of Eq. 11 in Macken and Perelson + # (1982): v*k1*C*S. BNG generates factor of 3 for the + # three equivalent r sites on a free ligand. + R_capture: L(r,r,r) + R(l) -> L(r!1,r,r).R(l!1) kf + + # R2: Crosslinking — receptor-bound ligand binds a free + # receptor site on a DIFFERENT complex. The "+" enforces + # inter-complex binding; -bscb flag prevents intra-complex + # rings. See crosslinking terms in Eq. 11 of Macken and + # Perelson (1982). + R_crosslink: L(r!+,r) + R(l) -> L(r!+,r!1).R(l!1) kxf + + # R3: Bond dissociation — any ligand-receptor bond breaks. + # See dissociation terms (i*k_{-i}*C_i) in Eq. 11 of + # Macken and Perelson (1982). + R_dissoc: L(r!1).R(l!1) -> L(r) + R(l) koff + +end reaction rules + +end model + +begin actions + + #@note: | + # Network generation is infeasible (unbounded aggregate + # topologies). NFsim flags: + # -bscb block same-complex binding (implies -cb) + + # Equilibration kinetics + + #@protocol: | + # Simulate from all-free initial conditions to equilibrium + # (500 s, beyond the ~300 s equilibration timescale). + # NFsim tracks individual molecules and applies rules + # stochastically with complex bookkeeping to prevent + # intramolecular bonds. + + simulate({method=>"nf",suffix=>"nfr",t_start=>0,\ + t_end=>500,n_steps=>250,gml=>2147483647,\ + param=>"-bscb"}) + +end actions diff --git a/Published/Macken1982/tlbr_solution_macken1982_nfr.species b/Published/Macken1982/tlbr_solution_macken1982_nfr.species new file mode 100644 index 0000000..4ccf618 --- /dev/null +++ b/Published/Macken1982/tlbr_solution_macken1982_nfr.species @@ -0,0 +1,72 @@ +# nfsim generated species list for system: 'tlbr_solution_macken1982' +# warning! this feature is not yet fully tested! +L(r!1,r!2,r).R(l!1,l!3).R(l!2,l!4).L(r,r!3,r).L(r,r,r!4) 1 +L(r!1,r!2,r).R(l!1,l!3).R(l!2,l).L(r!3,r,r) 1 +L(r!1,r!2,r).R(l!1,l!3).R(l!4,l!2).L(r!3,r,r).L(r,r,r!4) 1 +L(r!1,r!2,r).R(l!1,l!3).R(l,l!2).L(r!3,r,r!4).R(l!4,l!5).L(r!6,r,r!5).R(l!7,l!6).L(r,r,r!7) 1 +L(r!1,r!2,r).R(l!1,l).R(l!2,l!3).L(r!3,r,r) 1 +L(r!1,r!2,r).R(l!1,l).R(l!2,l) 1 +L(r!1,r!2,r).R(l!1,l).R(l!3,l!2).L(r,r,r!3) 1 +L(r!1,r!2,r).R(l!1,l).R(l,l!2) 1 +L(r!1,r!2,r).R(l!3,l!1).R(l!4,l!2).L(r,r!5,r!3).L(r,r,r!4).R(l!5,l!6).L(r!6,r,r) 1 +L(r!1,r!2,r).R(l!3,l!1).R(l!4,l!2).L(r,r,r!3).L(r!4,r!5,r).R(l!5,l) 1 +L(r!1,r!2,r).R(l,l!1).R(l!2,l!3).L(r,r,r!3) 1 +L(r!1,r!2,r).R(l,l!1).R(l!2,l) 1 +L(r!1,r!2,r).R(l,l!1).R(l!3,l!2).L(r!3,r!4,r).R(l!5,l!4).L(r,r!5,r) 1 +L(r!1,r!2,r).R(l,l!1).R(l!3,l!2).L(r!3,r,r) 1 +L(r!1,r,r!2).R(l!1,l!3).R(l!2,l).L(r,r,r!3) 1 +L(r!1,r,r!2).R(l!1,l!3).R(l!4,l!2).L(r!5,r,r!3).L(r,r!4,r).R(l!5,l!6).L(r,r,r!6) 1 +L(r!1,r,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r!3,r!5).L(r,r,r!4).R(l,l!5) 1 +L(r!1,r,r!2).R(l!3,l!1).R(l,l!2).L(r,r!4,r!3).R(l!4,l!5).L(r,r,r!5) 1 +L(r!1,r,r).R(l!1,l!2).L(r!2,r!3,r).R(l,l!3) 1 +L(r!1,r,r).R(l!1,l!2).L(r!2,r,r) 9 +L(r!1,r,r).R(l!1,l!2).L(r!3,r!2,r).R(l,l!3) 1 +L(r!1,r,r).R(l!1,l!2).L(r!3,r,r!2).R(l,l!3) 1 +L(r!1,r,r).R(l!1,l!2).L(r,r!2,r!3).R(l!3,l) 1 +L(r!1,r,r).R(l!1,l!2).L(r,r!2,r!3).R(l!4,l!3).L(r!4,r,r) 1 +L(r!1,r,r).R(l!1,l!2).L(r,r!2,r) 4 +L(r!1,r,r).R(l!1,l!2).L(r,r!3,r!2).R(l!4,l!3).L(r,r!4,r) 1 +L(r!1,r,r).R(l!1,l!2).L(r,r,r!2) 3 +L(r!1,r,r).R(l!1,l) 7 +L(r!1,r,r).R(l!2,l!1).L(r!2,r,r!3).R(l!3,l!4).L(r,r!4,r) 1 +L(r!1,r,r).R(l!2,l!1).L(r!2,r,r) 7 +L(r!1,r,r).R(l!2,l!1).L(r!3,r,r!2).R(l!3,l!4).L(r!5,r,r!4).R(l,l!5) 1 +L(r!1,r,r).R(l!2,l!1).L(r!3,r,r!2).R(l!3,l!4).L(r,r!4,r) 1 +L(r!1,r,r).R(l!2,l!1).L(r,r!2,r) 5 +L(r!1,r,r).R(l!2,l!1).L(r,r!3,r!2).R(l!3,l!4).L(r!4,r,r) 1 +L(r!1,r,r).R(l!2,l!1).L(r,r!3,r!2).R(l,l!3) 1 +L(r!1,r,r).R(l!2,l!1).L(r,r,r!2) 4 +L(r!1,r,r).R(l,l!1) 11 +L(r,r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r,r) 1 +L(r,r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r!3,r,r).L(r!4,r,r) 1 +L(r,r!1,r!2).R(l!3,l!1).R(l!2,l!4).L(r,r,r!3).L(r!5,r!4,r).R(l,l!5) 1 +L(r,r!1,r).R(l!1,l!2).L(r!2,r,r!3).R(l,l!3) 1 +L(r,r!1,r).R(l!1,l!2).L(r!2,r,r) 6 +L(r,r!1,r).R(l!1,l!2).L(r!3,r,r!2).R(l!4,l!3).L(r,r!4,r) 1 +L(r,r!1,r).R(l!1,l!2).L(r,r!2,r) 4 +L(r,r!1,r).R(l!1,l!2).L(r,r,r!2) 3 +L(r,r!1,r).R(l!1,l) 12 +L(r,r!1,r).R(l!2,l!1).L(r!2,r!3,r).R(l,l!3) 1 +L(r,r!1,r).R(l!2,l!1).L(r!2,r,r) 2 +L(r,r!1,r).R(l!2,l!1).L(r!3,r,r!2).R(l!3,l) 1 +L(r,r!1,r).R(l!2,l!1).L(r!3,r,r!2).R(l!4,l!3).L(r!4,r,r) 1 +L(r,r!1,r).R(l!2,l!1).L(r,r!2,r) 5 +L(r,r!1,r).R(l!2,l!1).L(r,r,r!2) 4 +L(r,r!1,r).R(l,l!1) 27 +L(r,r,r!1).R(l!1,l!2).L(r!2,r,r) 2 +L(r,r,r!1).R(l!1,l!2).L(r!3,r!2,r).R(l!4,l!3).L(r,r,r!4) 1 +L(r,r,r!1).R(l!1,l!2).L(r!3,r!4,r!2).R(l!5,l!3).R(l!6,l!4).L(r!5,r,r!7).L(r,r!6,r).R(l!8,l!7).L(r,r!8,r) 1 +L(r,r,r!1).R(l!1,l!2).L(r!3,r,r!2).R(l!3,l!4).L(r!4,r,r) 1 +L(r,r,r!1).R(l!1,l!2).L(r,r!2,r) 3 +L(r,r,r!1).R(l!1,l!2).L(r,r,r!2) 5 +L(r,r,r!1).R(l!1,l) 13 +L(r,r,r!1).R(l!2,l!1).L(r!2,r!3,r!4).R(l,l!3).R(l!5,l!4).L(r,r,r!5) 1 +L(r,r,r!1).R(l!2,l!1).L(r!2,r!3,r).R(l,l!3) 1 +L(r,r,r!1).R(l!2,l!1).L(r!2,r,r) 6 +L(r,r,r!1).R(l!2,l!1).L(r!3,r,r!2).R(l!4,l!3).L(r!4,r,r) 1 +L(r,r,r!1).R(l!2,l!1).L(r,r!2,r!3).R(l!4,l!3).L(r,r,r!4) 1 +L(r,r,r!1).R(l!2,l!1).L(r,r!2,r) 6 +L(r,r,r!1).R(l!2,l!1).L(r,r,r!2) 2 +L(r,r,r!1).R(l,l!1) 16 +L(r,r,r) 3839 +R(l,l) 33 diff --git a/Published/Posner1995/README.md b/Published/Posner1995/README.md new file mode 100644 index 0000000..8fb9aee --- /dev/null +++ b/Published/Posner1995/README.md @@ -0,0 +1,3 @@ +# Posner 1995 + +BioNetGen model: Posner 1995 diff --git a/Published/Posner1995/blbr_rings_posner1995.bngl b/Published/Posner1995/blbr_rings_posner1995.bngl new file mode 100644 index 0000000..5671c8f --- /dev/null +++ b/Published/Posner1995/blbr_rings_posner1995.bngl @@ -0,0 +1,178 @@ +begin model + +#@title: | +# Bivalent ligand-bivalent receptor aggregation with cyclic +# dimers (Posner, Wofsy, and Goldstein, 1995) + +#@description: | +# Network-free (NFsim) kinetic model of symmetric bivalent ligand +# binding to bivalent cell-surface receptors, forming chains and +# cyclic dimers. Four processes: (1) ligand capture from solution, +# (2) receptor cross-linking by tethered ligand (inter-complex +# only via "+" operator), (3) ligand-receptor bond dissociation, +# and (4) reversible ring closure of C_1(2) chains into cyclic +# dimers. No larger ring species are permitted. +# +# Component states (u=unbound, c=chain-bound, g=ring-bound) +# distinguish chain bonds from ring bonds, enabling correct +# ring opening via an explicit reverse ring rule. +# +# NFsim requires the -bscb flag for correct reactant-side +# molecularity enforcement in this model. +# +# With default parameterization (KxRT = 5, J2 = 100), cyclic +# dimers dominate the aggregate population at all ligand doses. +# The bell-shaped dependence of receptor cross-linking on ligand +# concentration (prozone effect) is demonstrated by running time +# courses at three ligand doses. + +#@keyword: | +# bivalent ligand, bivalent receptor, cross-linking, aggregation, +# cyclic dimer, ring closure, prozone effect, bell-shaped dose +# response, mass action, network-free, NFsim, IgE, basophil, +# histamine release + +#@reference: | +# Posner RG, Wofsy C, Goldstein B (1995). The kinetics of bivalent +# ligand-bivalent receptor aggregation: ring formation and the +# breakdown of the equivalent site approximation. Math Biosci +# 126:171-190. doi:10.1016/0025-5564(94)00045-2 +# +# Dembo M, Goldstein B (1978). Theory of equilibrium binding of +# symmetric bivalent haptens to cell surface antibody: application +# to histamine release from basophils. J Immunol 121:345-353. +# doi:10.4049/jimmunol.121.1.345 + +#@note: | +# Network generation is not feasible because bivalent-bivalent +# cross-linking produces an unbounded set of chain species. +# NFsim is used with -bscb (block same-complex binding, which +# implies complex bookkeeping) and -utl 5 (traversal limit +# override; the auto value of 4 is too shallow for this model). +# +# This model constrains j-2 = koff (ring opening uses the same +# rate constant as chain dissociation). The _bidirectional_ring +# variant has an independent jm parameter for ring opening. +# +# Mapping to Posner et al. (1995) notation: +# k+1 = kf, k-1 = koff, k+2 = kxf, k-2 = koff +# j+2 = jp, j-2 = koff (explicit reverse ring rule) +# J2 = jp/koff (Posner per-bond convention) +# R2/C1(2) = J2/4 = 25 at equilibrium +# Mapping to Dembo and Goldstein (1978): +# H = 2*Ka, k = KxRT, J2_Dembo = J2/4 = 25 + +begin parameters + + # Physical constants + NA 6.02214076e23 # /mol + + # Experimental conditions + V_cell 1e-9 # L/cell + R_per_cell 3e5 # molecules/cell + + # SSA/NFsim scaling + f 0.01 # dimensionless + V_sim V_cell*f # L + + # Scaled molecule counts + RT R_per_cell*f # molecules (= 3000) + + # Total ligand + LT_per_cell 3e6 # molecules/cell + LT LT_per_cell*f # molecules + + # Single-site kinetic rate constants + kon 1e6 # /M/s + koff 0.01 # /s + + # Dimensionless control parameters + KxRT 5 # dimensionless + J2 100 # dimensionless (Posner: jp/koff) + + # Stochastic rate constants (single-site, per molecule pair) + kf kon/(NA*V_sim) # /(molecule*s) + kxf KxRT/RT*koff # /(molecule*s) + # Ring closure rate + jp J2*koff # /s + +end parameters + +begin molecule types + # Bivalent ligand: two identical receptor-binding sites + # States: u=unbound, c=chain-bound, g=ring-bound (gated) + L(r~u~c~g,r~u~c~g) + # Bivalent receptor: two identical ligand-binding sites + R(l~u~c~g,l~u~c~g) +end molecule types + +begin seed species + L(r~u,r~u) LT # molecules + R(l~u,l~u) RT # molecules +end seed species + +begin observables + # Free ligand (both sites unbound) + Species Obs_Free_L L(r~u,r~u) + # Free receptor (both sites unbound) + Species Obs_Free_R R(l~u,l~u) + # Total ligand-receptor bonds (chain + ring) + Molecules Obs_Bonds L(r!1).R(l!1) + # Free ligand sites (on any ligand) + Molecules Obs_Free_L_sites L(r~u) + # Free receptor sites (on any receptor) + Molecules Obs_Free_R_sites R(l~u) + # Cyclic dimers (2R + 2L in ring, all g-state bonds) + Species Obs_Cyclic_Dimer L(r~g!1,r~g!2).R(l~g!1,l~g!3).L(r~g!3,r~g!4).R(l~g!4,l~g!2) +end observables + +begin reaction rules + + # ================================================================ + # Ligand capture: free ligand binds receptor site + # ================================================================ + R_capture: L(r~u,r~u) + R(l~u) -> L(r~u,r~c!1).R(l~c!1) kf + + # ================================================================ + # Cross-linking: tethered ligand arm binds DIFFERENT complex + # ================================================================ + R_crosslink: L(r~c!+,r~u) + R(l~u) -> L(r~c!+,r~c!1).R(l~c!1) kxf + + # ================================================================ + # Bond dissociation: any chain bond breaks + # ================================================================ + R_dissoc: L(r~c!1).R(l~c!1) -> L(r~u) + R(l~u) koff + + # ================================================================ + # Ring closure: C_1(2) chain -> cyclic dimer + # ================================================================ + R_ring_close: L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!3,l~u) -> \ + L(r~g!4,r~g!1).R(l~g!1,l~g!2).L(r~g!2,r~g!3).R(l~g!3,l~g!4) jp + + # ================================================================ + # Ring opening: cyclic dimer -> C_1(2) chain + # ================================================================ + R_ring_open: L(r~g!4,r~g!1).R(l~g!1,l~g!2).L(r~g!2,r~g!3).R(l~g!3,l~g!4) -> \ + L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!3,l~u) koff + +end reaction rules + +end model + +begin actions + + #@note: | + # Network generation is infeasible. NFsim flags: + # -bscb block same-complex binding (implies -cb) + # -utl 5 universal traversal limit override (NFsim + # auto-computes 4, which is too shallow; see + # https://github.com/RuleWorld/nfsim/issues/52) + + #@protocol: | + # Simulate to equilibrium (3000 s). The verification notebook + # runs three doses by modifying LT_per_cell separately. + + simulate({method=>"nf",suffix=>"nfr",t_start=>0,\ + t_end=>3000,n_steps=>300,gml=>2147483647,param=>"-bscb -utl 5"}) + +end actions diff --git a/Published/Posner1995/blbr_rings_posner1995_nfr.species b/Published/Posner1995/blbr_rings_posner1995_nfr.species new file mode 100644 index 0000000..c89f996 --- /dev/null +++ b/Published/Posner1995/blbr_rings_posner1995_nfr.species @@ -0,0 +1,103 @@ +# nfsim generated species list for system: 'blbr_rings_posner1995' +# warning! this feature is not yet fully tested! +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~c!2,l~c!4).L(r~c!3,r~c!5).L(r~c!4,r~c!6).R(l~u,l~c!5).R(l~c!6,l~u) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~c!2,l~c!4).L(r~c!3,r~u).L(r~c!4,r~c!5).R(l~u,l~c!5) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~c!2,l~c!4).L(r~u,r~c!3).L(r~c!4,r~c!5).R(l~c!5,l~c!6).L(r~u,r~c!6) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~c!2,l~u).L(r~c!3,r~c!4).R(l~c!4,l~u) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~c!2,l~u).L(r~c!3,r~u) 3 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~c!4,l~c!2).L(r~c!3,r~c!5).L(r~c!4,r~c!6).R(l~c!7,l~c!5).R(l~u,l~c!6).L(r~c!7,r~u) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~c!4,l~c!2).L(r~c!3,r~u).L(r~u,r~c!4) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~c!4,l~c!2).L(r~c!5,r~c!3).L(r~u,r~c!4).R(l~c!5,l~c!6).L(r~c!6,r~c!7).R(l~c!8,l~c!7).L(r~u,r~c!8) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~c!4,l~c!2).L(r~u,r~c!3).L(r~u,r~c!4) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~u,l~c!2).L(r~c!3,r~u) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~u,l~c!2).L(r~c!4,r~c!3).R(l~c!4,l~c!5).L(r~c!5,r~u) 1 +L(r~c!1,r~c!2).R(l~c!1,l~c!3).R(l~u,l~c!2).L(r~u,r~c!3) 3 +L(r~c!1,r~c!2).R(l~c!1,l~u).R(l~c!2,l~c!3).L(r~c!3,r~u) 2 +L(r~c!1,r~c!2).R(l~c!1,l~u).R(l~c!2,l~c!3).L(r~u,r~c!3) 3 +L(r~c!1,r~c!2).R(l~c!1,l~u).R(l~c!2,l~u) 10 +L(r~c!1,r~c!2).R(l~c!1,l~u).R(l~c!3,l~c!2).L(r~c!3,r~c!4).R(l~c!5,l~c!4).L(r~c!6,r~c!5).R(l~c!6,l~c!7).L(r~u,r~c!7) 1 +L(r~c!1,r~c!2).R(l~c!1,l~u).R(l~c!3,l~c!2).L(r~c!3,r~c!4).R(l~u,l~c!4) 1 +L(r~c!1,r~c!2).R(l~c!1,l~u).R(l~c!3,l~c!2).L(r~c!3,r~u) 2 +L(r~c!1,r~c!2).R(l~c!1,l~u).R(l~u,l~c!2) 8 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!2,l~c!4).L(r~c!3,r~c!5).L(r~c!4,r~c!6).R(l~u,l~c!5).R(l~u,l~c!6) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!2,l~c!4).L(r~c!3,r~c!5).L(r~c!6,r~c!4).R(l~u,l~c!5).R(l~c!7,l~c!6).L(r~c!8,r~c!7).R(l~c!9,l~c!8).L(r~c!10,r~c!9).R(l~c!10,l~c!11).L(r~u,r~c!11) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!2,l~c!4).L(r~c!3,r~c!5).L(r~u,r~c!4).R(l~c!5,l~u) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!2,l~c!4).L(r~c!5,r~c!3).L(r~c!6,r~c!4).R(l~u,l~c!5).R(l~c!6,l~u) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!2,l~c!4).L(r~c!5,r~c!3).L(r~u,r~c!4).R(l~c!5,l~c!6).L(r~c!7,r~c!6).R(l~u,l~c!7) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!2,l~c!4).L(r~u,r~c!3).L(r~c!4,r~c!5).R(l~u,l~c!5) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!2,l~u).L(r~c!3,r~u) 3 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!2,l~u).L(r~c!4,r~c!3).R(l~c!5,l~c!4).L(r~c!6,r~c!5).R(l~u,l~c!6) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!4,l~c!2).L(r~c!3,r~c!5).L(r~c!4,r~u).R(l~c!6,l~c!5).L(r~c!6,r~u) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~c!4,l~c!2).L(r~u,r~c!3).L(r~c!4,r~u) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~u,l~c!2).L(r~c!3,r~c!4).R(l~c!4,l~c!5).L(r~u,r~c!5) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~u,l~c!2).L(r~c!3,r~u) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~u,l~c!2).L(r~c!4,r~c!3).R(l~c!4,l~u) 1 +L(r~c!1,r~c!2).R(l~c!3,l~c!1).R(l~u,l~c!2).L(r~u,r~c!3) 2 +L(r~c!1,r~c!2).R(l~u,l~c!1).R(l~c!2,l~c!3).L(r~c!3,r~u) 2 +L(r~c!1,r~c!2).R(l~u,l~c!1).R(l~c!2,l~c!3).L(r~u,r~c!3) 3 +L(r~c!1,r~c!2).R(l~u,l~c!1).R(l~c!2,l~u) 4 +L(r~c!1,r~c!2).R(l~u,l~c!1).R(l~c!3,l~c!2).L(r~c!3,r~c!4).R(l~c!4,l~u) 1 +L(r~c!1,r~c!2).R(l~u,l~c!1).R(l~c!3,l~c!2).L(r~c!4,r~c!3).R(l~c!4,l~c!5).L(r~c!6,r~c!5).R(l~c!7,l~c!6).L(r~c!7,r~u) 1 +L(r~c!1,r~c!2).R(l~u,l~c!1).R(l~c!3,l~c!2).L(r~c!4,r~c!3).R(l~c!4,l~c!5).L(r~u,r~c!5) 1 +L(r~c!1,r~c!2).R(l~u,l~c!1).R(l~c!3,l~c!2).L(r~c!4,r~c!3).R(l~c!4,l~u) 1 +L(r~c!1,r~c!2).R(l~u,l~c!1).R(l~c!3,l~c!2).L(r~u,r~c!3) 2 +L(r~c!1,r~c!2).R(l~u,l~c!1).R(l~u,l~c!2) 7 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!3,l~c!4).L(r~c!5,r~c!4).R(l~c!6,l~c!5).L(r~c!6,r~u) 1 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!3,l~u) 1 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!4,l~c!3).L(r~c!4,r~u) 1 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!4,l~c!3).L(r~c!5,r~c!4).R(l~u,l~c!5) 1 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~u,l~c!3) 1 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~c!2,r~u) 6 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~c!3,r~c!2).R(l~c!3,l~c!4).L(r~u,r~c!4) 1 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~c!3,r~c!2).R(l~c!3,l~u) 2 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~c!3,r~c!2).R(l~u,l~c!3) 2 +L(r~c!1,r~u).R(l~c!1,l~c!2).L(r~u,r~c!2) 6 +L(r~c!1,r~u).R(l~c!1,l~u) 34 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!2,r~c!3).R(l~c!3,l~c!4).L(r~c!4,r~u) 1 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!2,r~c!3).R(l~c!3,l~c!4).L(r~u,r~c!4) 1 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!2,r~c!3).R(l~c!3,l~u) 2 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!2,r~c!3).R(l~c!4,l~c!3).L(r~c!4,r~c!5).R(l~c!5,l~c!6).L(r~c!7,r~c!6).R(l~c!8,l~c!7).L(r~c!8,r~u) 1 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!2,r~c!3).R(l~c!4,l~c!3).L(r~c!4,r~c!5).R(l~u,l~c!5) 1 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!2,r~c!3).R(l~c!4,l~c!3).L(r~u,r~c!4) 1 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!2,r~u) 10 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!3,l~c!4).L(r~c!5,r~c!4).R(l~c!5,l~u) 1 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!3,l~c!4).L(r~u,r~c!4) 2 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!3,l~u) 3 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!4,l~c!3).L(r~c!4,r~c!5).R(l~c!5,l~u) 1 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!4,l~c!3).L(r~u,r~c!4) 1 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~u,l~c!3) 3 +L(r~c!1,r~u).R(l~c!2,l~c!1).L(r~u,r~c!2) 8 +L(r~c!1,r~u).R(l~u,l~c!1) 37 +L(r~g!1,r~g!2).R(l~g!1,l~g!3).R(l~g!2,l~g!4).L(r~g!3,r~g!4) 153 +L(r~g!1,r~g!2).R(l~g!1,l~g!3).R(l~g!2,l~g!4).L(r~g!4,r~g!3) 152 +L(r~g!1,r~g!2).R(l~g!1,l~g!3).R(l~g!4,l~g!2).L(r~g!3,r~g!4) 169 +L(r~g!1,r~g!2).R(l~g!1,l~g!3).R(l~g!4,l~g!2).L(r~g!4,r~g!3) 137 +L(r~g!1,r~g!2).R(l~g!3,l~g!1).R(l~g!2,l~g!4).L(r~g!3,r~g!4) 145 +L(r~g!1,r~g!2).R(l~g!3,l~g!1).R(l~g!2,l~g!4).L(r~g!4,r~g!3) 148 +L(r~g!1,r~g!2).R(l~g!3,l~g!1).R(l~g!4,l~g!2).L(r~g!3,r~g!4) 135 +L(r~g!1,r~g!2).R(l~g!3,l~g!1).R(l~g!4,l~g!2).L(r~g!4,r~g!3) 144 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!3,l~c!4).L(r~c!4,r~c!5).R(l~c!5,l~u) 1 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!3,l~c!4).L(r~u,r~c!4) 1 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!3,l~u) 3 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~c!4,l~c!3).L(r~c!4,r~c!5).R(l~c!5,l~u) 1 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!2,r~c!3).R(l~u,l~c!3) 2 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!2,r~u) 12 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!3,r~c!2).R(l~c!3,l~u) 1 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!3,r~c!2).R(l~c!4,l~c!3).L(r~c!4,r~c!5).R(l~u,l~c!5) 1 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~c!3,r~c!2).R(l~c!4,l~c!3).L(r~c!4,r~u) 1 +L(r~u,r~c!1).R(l~c!1,l~c!2).L(r~u,r~c!2) 6 +L(r~u,r~c!1).R(l~c!1,l~u) 51 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!2,r~c!3).R(l~c!3,l~u) 2 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!2,r~c!3).R(l~c!4,l~c!3).L(r~c!4,r~c!5).R(l~c!6,l~c!5).L(r~c!7,r~c!6).R(l~c!7,l~u) 1 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!2,r~c!3).R(l~c!4,l~c!3).L(r~c!4,r~u) 1 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!2,r~u) 3 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!3,l~c!4).L(r~c!5,r~c!4).R(l~c!5,l~c!6).L(r~c!7,r~c!6).R(l~c!7,l~u) 1 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!3,l~c!4).L(r~c!5,r~c!4).R(l~c!5,l~u) 1 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!3,l~c!4).L(r~u,r~c!4) 1 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!3,l~u) 1 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!4,l~c!3).L(r~c!4,r~c!5).R(l~c!5,l~u) 1 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~c!3,r~c!2).R(l~c!4,l~c!3).L(r~c!5,r~c!4).R(l~c!5,l~c!6).L(r~c!7,r~c!6).R(l~u,l~c!7) 1 +L(r~u,r~c!1).R(l~c!2,l~c!1).L(r~u,r~c!2) 5 +L(r~u,r~c!1).R(l~u,l~c!1) 43 +L(r~u,r~u) 27060 +R(l~u,l~u) 98 diff --git a/Published/Posner1995/metadata.yaml b/Published/Posner1995/metadata.yaml new file mode 100644 index 0000000..049820c --- /dev/null +++ b/Published/Posner1995/metadata.yaml @@ -0,0 +1,21 @@ +id: "Posner_1995" +name: "Posner 1995" +description: "BLBR rings" +tags: ["published", "physics", "posner", "1995"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "physics" + featured: false + difficulty: "intermediate" diff --git a/Published/Posner2004/README.md b/Published/Posner2004/README.md new file mode 100644 index 0000000..f8286fd --- /dev/null +++ b/Published/Posner2004/README.md @@ -0,0 +1,3 @@ +# Posner 2004 + +BioNetGen model: Posner 2004 diff --git a/Published/Posner2004/blbr_cooperativity_posner2004.bngl b/Published/Posner2004/blbr_cooperativity_posner2004.bngl new file mode 100644 index 0000000..66b7dc7 --- /dev/null +++ b/Published/Posner2004/blbr_cooperativity_posner2004.bngl @@ -0,0 +1,196 @@ +begin model + +#@title: Cooperative binding of anti-IgE 23G3 to cell-surface IgE-FcεRI (Posner et al., 2004) + +#@description: | +# Network-free (NFsim) kinetic model of bivalent ligand (23G3 +# antibody) binding cooperatively to bivalent cell-surface receptor +# (IgE-FcεRI). 23G3 has two identical IgE-binding arms; IgE bound +# to FcεRI expresses two 23G3 epitopes. Binding is negatively +# cooperative (H < 1): occupancy of one epitope reduces the affinity +# for the second. Cross-linking produces unbounded linear chains of +# alternating receptor-ligand pairs. Ring formation is not explicitly +# modeled (base model, J2 = 0). Parameters from Table 1 of Posner +# et al. (2004), "-rings" column. The reaction scheme follows Fig. 1 +# of Wofsy and Goldstein (1987). +# +# The parameter scan over total 23G3 concentration reproduces the +# equilibrium binding curve in Fig. 3a of Posner et al. (2004): +# fraction of 23G3 epitopes bound vs antibody concentration. + +#@keyword: | +# bivalent ligand, bivalent receptor, cooperative binding, negative +# cooperativity, cross-linking, IgE, FcεRI, mast cell, aggregation, +# network-free, NFsim, anti-IgE, 23G3, RBL-2H3 + +#@reference: | +# Posner RG, Paar JM, Licht A, Pecht I, Conrad DH, Hlavacek WS +# (2004). Interaction of a monoclonal IgE-specific antibody with +# cell-surface IgE-FcεRI: characterization of equilibrium binding +# and secretory response. Biochemistry 43:11352-11360. +# doi:10.1021/bi049686o +# +# Wofsy C, Goldstein B (1987). The effect of co-operativity on the +# equilibrium binding of symmetric bivalent ligands to antibodies: +# theoretical results with application to histamine release from +# basophils. Mol Immunol 24:151-161. +# doi:10.1016/0161-5890(87)90091-2 + +#@note: | +# Network generation is not feasible because bivalent-bivalent +# cross-linking produces an unbounded set of chain species. +# NFsim (network-free simulation) is used instead. +# +# The 16 reaction rules enumerate all combinations of +# distinguishable sites (r1,r2 on ligand; l1,l2 on receptor) +# with single-site rate constants. BioNetGen/NFsim provides +# correct statistical factors through pattern matching. +# +# The subvolume fraction f scales the system to ~900 receptors +# for computational tractability. Equilibrium fractions are +# independent of f. + +begin parameters + + # Physical constants + NA 6.02214076e23 # /mol + + # Experimental conditions (Posner et al. 2004) + C_cells 1e6 # cells/mL (cell concentration in assay) + R_per_cell 3e5 # molecules/cell (FcεRI per RBL-2H3 cell) + V_cell 1e-9 # L/cell (= 1/C_cells in L) + + # SSA/NFsim scaling + f 0.003 # dimensionless (subvolume fraction) + V_sim V_cell*f # L (simulation volume) + + # Scaled molecule counts + RT R_per_cell*f # molecules (= 900) + + # Scanned parameter: total 23G3 antibody concentration + AT_nM 1 # nM (total intact 23G3 concentration) + + # Total ligand count (depends on AT_nM) + LT AT_nM*1e-9*NA*V_sim # molecules + + # Equilibrium constants (Table 1, -rings column) + # K: single-site affinity of 23G3 arm for free epitope on IgE + # KxST: dimensionless cross-linking parameter = Kx * S_T + # where S_T = 2*R_T (total epitopes per cell) + # H: cooperativity factor (< 1 = negative cooperativity) + K 0.098 # /nM + KxST 2.5 # dimensionless + H 0.39 # dimensionless + + # Kinetic rate constants + # Choice of kr sets the timescale; equilibrium is independent of + # absolute rates (only ratios K = kf/kr and Kx = kxf/kxr matter). + kr 10 # /s (reverse rate, solution unbinding) + kxr 10 # /s (reverse rate, cross-link unbinding) + + # Forward rate for solution binding (single-site, population-based) + # K (in /M) = kf_conc / kr; kf_pop = kf_conc / (NA * V_sim) + kf K*1e9*kr/(NA*V_sim) # /(molecule*s) + + # Forward rate for cross-linking (single-site, population-based) + # Kx = KxST / (2*RT); kxf = Kx * kxr + kxf KxST/(2*RT)*kxr # /(molecule*s) + +end parameters + +begin molecule types + L(r1,r2) + # Bivalent ligand (23G3 intact antibody): two IgE-binding arms + R(l1,l2) + # Bivalent receptor (IgE bound to FcεRI): two 23G3 epitopes +end molecule types + +begin seed species + L(r1,r2) LT # molecules + R(l1,l2) RT # molecules +end seed species + +begin observables + # Total ligand count + Molecules Obs_L_tot L() + # Receptor epitopes bound (each counts one occupied site) + Molecules Obs_R_l1_bound R(l1!+) + Molecules Obs_R_l2_bound R(l2!+) + # Receptors with both sites free (unaggregated, no ligand) + Molecules Obs_R_free R(l1,l2) +end observables + +begin functions + # Fraction of 23G3 epitopes bound (ordinate of Fig. 3a) + frac_bound() = (Obs_R_l1_bound + Obs_R_l2_bound) / (2*RT) + + # Dimensional conversions (uncomment for concentration output) +# L_conc_nM() = Obs_L_tot / (NA * V_sim * 1e-9) # nM +end functions + +begin reaction rules + + # ================================================================ + # Solution binding: free ligand from solution binds receptor site + # ================================================================ + # L has both arms free (r1, r2 unbound). + # Rate depends on cooperativity state of receptor. + # + # --- No cooperativity: both receptor sites free --- + # 4 rules for (r1,r2) x (l1,l2) site combinations + L(r1,r2) + R(l1,l2) <-> L(r1!1,r2).R(l1!1,l2) kf, kr + L(r1,r2) + R(l1,l2) <-> L(r1,r2!1).R(l1!1,l2) kf, kr + L(r1,r2) + R(l1,l2) <-> L(r1!1,r2).R(l1,l2!1) kf, kr + L(r1,r2) + R(l1,l2) <-> L(r1,r2!1).R(l1,l2!1) kf, kr + # + # --- Cooperativity: one receptor site already bound --- + # Affinity reduced by factor H < 1 (negative cooperativity). + # 2 L arms x 2 receptor configurations = 4 rules + L(r1,r2) + R(l1!+,l2) <-> L(r1!1,r2).R(l1!+,l2!1) H*kf, kr + L(r1,r2) + R(l1!+,l2) <-> L(r1,r2!1).R(l1!+,l2!1) H*kf, kr + L(r1,r2) + R(l1,l2!+) <-> L(r1!1,r2).R(l1!1,l2!+) H*kf, kr + L(r1,r2) + R(l1,l2!+) <-> L(r1,r2!1).R(l1!1,l2!+) H*kf, kr + + # ================================================================ + # Cross-linking: membrane-tethered ligand arm binds receptor site + # ================================================================ + # L has one arm already bound to a receptor; the free arm binds + # a site on a DIFFERENT receptor molecule. + # + # --- No cooperativity: both receptor sites free --- + # 2 L configurations x 2 receptor sites = 4 rules + L(r1!+,r2) + R(l1,l2) <-> L(r1!+,r2!1).R(l1!1,l2) kxf, kxr + L(r1!+,r2) + R(l1,l2) <-> L(r1!+,r2!1).R(l1,l2!1) kxf, kxr + L(r1,r2!+) + R(l1,l2) <-> L(r1!1,r2!+).R(l1!1,l2) kxf, kxr + L(r1,r2!+) + R(l1,l2) <-> L(r1!1,r2!+).R(l1,l2!1) kxf, kxr + # + # --- Cooperativity: one receptor site already bound --- + # 2 L configurations x 2 receptor configurations = 4 rules + L(r1!+,r2) + R(l1!+,l2) <-> L(r1!+,r2!1).R(l1!+,l2!1) H*kxf, kxr + L(r1!+,r2) + R(l1,l2!+) <-> L(r1!+,r2!1).R(l1!1,l2!+) H*kxf, kxr + L(r1,r2!+) + R(l1!+,l2) <-> L(r1!1,r2!+).R(l1!+,l2!1) H*kxf, kxr + L(r1,r2!+) + R(l1,l2!+) <-> L(r1!1,r2!+).R(l1!1,l2!+) H*kxf, kxr + +end reaction rules + +end model + +begin actions + + # Equilibrium binding curve: intact 23G3 Ab vs cell-surface IgE + + #@protocol: | + # Scan total 23G3 antibody concentration (AT_nM) from 0.03 to + # 100 nM on a log scale. At each concentration, NFsim runs to + # t = 10 s to reach binding equilibrium (characteristic time + # ~0.1 s at kr = 10/s). The observable frac_bound gives the + # fraction of 23G3 epitopes occupied. + + #@figure: Fig. 3a in Posner et al. (2004) + + parameter_scan({method=>"nf",parameter=>"AT_nM",\ + par_min=>0.03,par_max=>100,n_scan_pts=>20,log_scale=>1,\ + t_start=>0,t_end=>10,n_steps=>1,\ + suffix=>"scan",complex=>1,gml=>1000000}) + +end actions diff --git a/Published/Posner2004/metadata.yaml b/Published/Posner2004/metadata.yaml new file mode 100644 index 0000000..572cd50 --- /dev/null +++ b/Published/Posner2004/metadata.yaml @@ -0,0 +1,21 @@ +id: "Posner_2004" +name: "Posner 2004" +description: "BLBR cooperativity" +tags: ["published", "physics", "posner", "2004"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: true + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "physics" + featured: false + difficulty: "intermediate" diff --git a/Published/Yang2008/README.md b/Published/Yang2008/README.md new file mode 100644 index 0000000..6bd2cf2 --- /dev/null +++ b/Published/Yang2008/README.md @@ -0,0 +1,3 @@ +# Yang 2008 + +BioNetGen model: Yang 2008 diff --git a/Published/Yang2008/metadata.yaml b/Published/Yang2008/metadata.yaml new file mode 100644 index 0000000..5a382f8 --- /dev/null +++ b/Published/Yang2008/metadata.yaml @@ -0,0 +1,21 @@ +id: "Yang_2008" +name: "Yang 2008" +description: "TLBR yang 2008" +tags: ["published", "physics", "yang", "2008"] +category: "physics" +compatibility: + bng2_compatible: true + simulation_methods: ["ode"] + uses_compartments: false + uses_energy: false + uses_functions: false + nfsim_compatible: false +source: + origin: "published" + original_format: "bngl" + original_repository: "bionetgen/BNGL-Models" +playground: + visible: true + gallery_category: "physics" + featured: false + difficulty: "intermediate" diff --git a/Published/Yang2008/tlbr_yang2008.bngl b/Published/Yang2008/tlbr_yang2008.bngl new file mode 100644 index 0000000..2ea0c38 --- /dev/null +++ b/Published/Yang2008/tlbr_yang2008.bngl @@ -0,0 +1,144 @@ +begin model + +#@title: TLBR aggregation kinetics (Yang et al., 2008) + +#@description: | +# Trivalent-ligand/bivalent-receptor (TLBR) aggregation model +# from Yang et al. (2008). A trivalent ligand (L, three identical +# binding sites) crosslinks bivalent cell-surface receptors +# (R, two identical binding sites) through three reaction rules: +# (R1) ligand capture — a free ligand binds a free receptor site; +# (R2) crosslinking — a receptor-bound ligand binds an additional +# free receptor site on a DIFFERENT complex (no intra-complex +# rings); (R3) dissociation — any ligand-receptor bond breaks. +# +# The model generates a combinatorially large reaction network +# (>10^5 species after five rounds of rule application) and is +# therefore simulated network-free via NFsim. The equilibrium +# aggregate-size distribution is controlled by two dimensionless +# parameters: c_tot = 3*kon1*NL/koff (ligand saturation) and +# beta_param = kon2*NR/koff (crosslinking propensity). Above a +# critical beta_param, the system undergoes a percolation (sol-gel) +# transition and a macroscopic receptor aggregate forms. +# +# Default parameterization (beta_param=0.1, below percolation) +# produces small transient aggregates that equilibrate rapidly. +# This regime allows verification against mean-field ODE +# predictions for bond counts and free-site fractions. + +#@keyword: | +# aggregation, multivalent binding, crosslinking, +# percolation, sol-gel transition, rule-based modeling, +# network-free simulation, kinetic Monte Carlo, +# mass action, IgE receptor + +#@reference: | +# Yang J, Monine MI, Faeder JR, Hlavacek WS (2008). Kinetic +# Monte Carlo method for rule-based modeling of biochemical +# networks. Phys Rev E 78:031910. +# doi:10.1103/PhysRevE.78.031910 + +begin parameters + + #@note: | + # All rate constants are stochastic (per-molecule-pair or + # per-molecule). Time unit: seconds. The bimolecular constants + # kon1 and kon2 absorb the volume factor (k+1/V and k+2/V in + # the paper) so that propensity = kon * count_A * count_B. + # + # Dimensionless control parameters from Goldstein and + # Perelson (1984): + # c_tot = 3 * kon1 * NL / koff (ligand saturation) + # beta_param = kon2 * NR / koff (crosslinking propensity) + # + # Default: c_tot ~ 0.84, beta_param = 0.1 (sol phase, + # below percolation transition). + + # Molecule counts + # NR = 300 receptors, NL = 14*NR = 4200 ligands; + # see Fig. 3(c,d) caption in Yang et al. (2008) + NL 4200 # molecules + NR 300 # molecules + + # Dissociation rate constant (single bond) + koff 0.01 # /s + + # Bimolecular association rate constant for ligand capture (R1) + # kon1 = c_tot * koff / (3 * NL); c_tot = 0.84 + kon1 6.667e-7 # /(molecule*s) + + # Bimolecular association rate constant for crosslinking (R2) + # kon2 = beta_param * koff / NR; beta_param = 0.1 + kon2 3.333e-6 # /(molecule*s) + +end parameters + +begin molecule types + # Trivalent ligand with three identical receptor-binding sites + L(r,r,r) + # Bivalent receptor with two identical ligand-binding sites + R(l,l) +end molecule types + +begin seed species + # All ligands and receptors initially free + L(r,r,r) NL # molecules + R(l,l) NR # molecules +end seed species + +begin observables + # Free ligand (all three sites unbound); + # Species avoids 3! overcounting from identical r sites + Species Obs_Free_L L(r,r,r) + # Free receptor (both sites unbound); + # Species avoids 2! overcounting from identical l sites + Species Obs_Free_R R(l,l) + # Total ligand-receptor bonds + Molecules Obs_Bonds L(r!1).R(l!1) + # Free ligand sites on any ligand + Molecules Obs_Free_L_sites L(r) + # Free receptor sites on any receptor + Molecules Obs_Free_R_sites R(l) +end observables + +begin reaction rules + # R1: Ligand capture — free ligand binds a free receptor site. + # Rate = kon1 * (free L sites on free ligands) * (free R sites). + # See Fig. 1(b), R1 in Yang et al. (2008). + L(r,r,r) + R(l) -> L(r!1,r,r).R(l!1) kon1 + + # R2: Crosslinking — a receptor-bound ligand binds an + # additional free receptor on a DIFFERENT complex. The "+" + # between reactants enforces inter-complex binding (no + # intra-complex rings). See Fig. 1(b), R2 in + # Yang et al. (2008). + L(r!+,r) + R(l) -> L(r!+,r!1).R(l!1) kon2 + + # R3: Dissociation — any ligand-receptor bond breaks. + # See Fig. 1(b), R3 in Yang et al. (2008). + L(r!1).R(l!1) -> L(r) + R(l) koff +end reaction rules + +end model + +begin actions + + #@note: | + # Network generation is infeasible (combinatorial explosion + # of aggregate topologies). All simulations use NFsim + # (network-free). ODE and SSA via generate_network are not + # included. + + # Equilibration kinetics + + #@protocol: | + # Simulate from all-free initial conditions to equilibrium + # (3000 s, well beyond the ~100 s equilibration timescale + # at these parameters). NFsim tracks individual molecules + # and applies rules stochastically. + + #@figure: Fig. 3(a) in Yang et al. (2008) + + simulate({method=>"nf",suffix=>"nfr",t_start=>0,\ + t_end=>3000,n_steps=>300}) +end actions diff --git a/Published/Yang2008/tlbr_yang2008_nfr.species b/Published/Yang2008/tlbr_yang2008_nfr.species new file mode 100644 index 0000000..a069dd1 --- /dev/null +++ b/Published/Yang2008/tlbr_yang2008_nfr.species @@ -0,0 +1,42 @@ +# nfsim generated species list for system: 'tlbr_yang2008' +# warning! this feature is not yet fully tested! +L(r!1,r!2,r).R(l!1,l).R(l!2,l) 1 +L(r!1,r!2,r).R(l!3,l!1).R(l!4,l!2).L(r!3,r,r).L(r,r,r!4) 1 +L(r!1,r!2,r).R(l,l!1).R(l,l!2) 2 +L(r!1,r,r!2).R(l,l!1).R(l!2,l!3).L(r!3,r,r) 1 +L(r!1,r,r!2).R(l,l!1).R(l!2,l) 1 +L(r!1,r,r).R(l!1,l!2).L(r!2,r,r) 3 +L(r!1,r,r).R(l!1,l!2).L(r!3,r,r!2).R(l!4,l!3).L(r!5,r,r!4).R(l!5,l!6).L(r!6,r,r) 1 +L(r!1,r,r).R(l!1,l!2).L(r,r!2,r) 4 +L(r!1,r,r).R(l!1,l) 23 +L(r!1,r,r).R(l!2,l!1).L(r!2,r!3,r).R(l!3,l!4).L(r,r,r!4) 1 +L(r!1,r,r).R(l!2,l!1).L(r!2,r!3,r).R(l!4,l!3).L(r,r,r!4) 1 +L(r!1,r,r).R(l!2,l!1).L(r!3,r,r!2).R(l,l!3) 1 +L(r!1,r,r).R(l!2,l!1).L(r,r!2,r) 3 +L(r!1,r,r).R(l!2,l!1).L(r,r,r!2) 1 +L(r!1,r,r).R(l,l!1) 23 +L(r,r!1,r!2).R(l!1,l!3).R(l!2,l).L(r!3,r,r) 1 +L(r,r!1,r!2).R(l!1,l).R(l,l!2) 2 +L(r,r!1,r!2).R(l,l!1).R(l!3,l!2).L(r,r!3,r) 1 +L(r,r!1,r).R(l!1,l!2).L(r!2,r,r) 2 +L(r,r!1,r).R(l!1,l!2).L(r!3,r!2,r!4).R(l!3,l).R(l!4,l) 1 +L(r,r!1,r).R(l!1,l!2).L(r,r!2,r) 1 +L(r,r!1,r).R(l!1,l!2).L(r,r,r!2) 4 +L(r,r!1,r).R(l!1,l) 26 +L(r,r!1,r).R(l!2,l!1).L(r!2,r,r) 3 +L(r,r!1,r).R(l!2,l!1).L(r!3,r!2,r).R(l!3,l) 1 +L(r,r!1,r).R(l!2,l!1).L(r!3,r!2,r).R(l,l!3) 1 +L(r,r!1,r).R(l!2,l!1).L(r,r!2,r) 2 +L(r,r!1,r).R(l!2,l!1).L(r,r,r!2) 3 +L(r,r!1,r).R(l,l!1) 17 +L(r,r,r!1).R(l!1,l!2).L(r!2,r,r) 1 +L(r,r,r!1).R(l!1,l!2).L(r!3,r,r!2).R(l!3,l) 1 +L(r,r,r!1).R(l!1,l!2).L(r,r!2,r) 3 +L(r,r,r!1).R(l!1,l!2).L(r,r,r!2) 3 +L(r,r,r!1).R(l!1,l) 26 +L(r,r,r!1).R(l!2,l!1).L(r!2,r,r) 2 +L(r,r,r!1).R(l!2,l!1).L(r,r!2,r) 2 +L(r,r,r!1).R(l!2,l!1).L(r,r,r!2) 4 +L(r,r,r!1).R(l,l!1) 33 +L(r,r,r) 3935 +R(l,l) 73 diff --git a/Tutorials/NativeTutorials/LRR/LRR.bngl b/Tutorials/NativeTutorials/LRR/LRR.bngl index f178eee..5a0f9fa 100644 --- a/Tutorials/NativeTutorials/LRR/LRR.bngl +++ b/Tutorials/NativeTutorials/LRR/LRR.bngl @@ -45,7 +45,7 @@ Dimer: R(l) + L(r,r!1).R(l!1) <-> R(l!2).L(r!2,r!1).R(l!1) kp1/(Acell*d_pm), km end reaction rules end model -#simulate({method=>"ode",t_end=>300,n_steps=>500}) +simulate({method=>"ode",t_end=>300,n_steps=>500}) #parameter_scan({method=>"ode",parameter=>"lig_conc",par_min=>1e-12,par_max=>1e-6,\ # n_scan_pts=>50,log_scale=>1,t_end=>1000,n_steps=>2}) diff --git a/Tutorials/NativeTutorials/LVcomp/LV_comp.bngl b/Tutorials/NativeTutorials/LVcomp/LV_comp.bngl index 3a3704f..e0af787 100644 --- a/Tutorials/NativeTutorials/LVcomp/LV_comp.bngl +++ b/Tutorials/NativeTutorials/LVcomp/LV_comp.bngl @@ -38,5 +38,5 @@ end model #generate_network() #writeSBML() -#simulate({method=>"ode",t_end=>0.001,n_steps=>1000}) +simulate({method=>"ode",t_end=>0.001,n_steps=>1000}) #simulate({method=>"ssa",t_end=>0.001,n_steps=>1000}) \ No newline at end of file diff --git a/manifest.json b/manifest.json index 7127ef5..da96b57 100644 --- a/manifest.json +++ b/manifest.json @@ -3012,6 +3012,24 @@ "visible": false, "collectionId": "Mallela2022_MSAs" }, + { + "id": "Dembo_1978", + "name": "Dembo 1978", + "description": "BLBR dembo 1978", + "path": "Published/Dembo1978/blbr_dembo1978.bngl", + "file": "blbr_dembo1978.bngl", + "tags": [ + "published", + "physics", + "dembo", + "1978" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, { "id": "Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO", "name": "Mallela 2022 - COVID-19 MSA Models - Denver-Aurora-Lakewood_CO_Denver-Aurora-Lakewood_CO", @@ -3239,6 +3257,24 @@ "visible": false, "collectionId": null }, + { + "id": "Dreisigmeyer_2008", + "name": "Dreisigmeyer 2008", + "description": "Lac operon", + "path": "Published/Dreisigmeyer2008/lac_operon_dreisigmeyer2008.bngl", + "file": "lac_operon_dreisigmeyer2008.bngl", + "tags": [ + "published", + "gene-expression", + "dreisigmeyer", + "2008" + ], + "category": "gene-expression", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, { "id": "dual-site-phosphorylation", "name": "dual site phosphorylation", @@ -4724,6 +4760,24 @@ "visible": false, "collectionId": "Mallela2022_MSAs" }, + { + "id": "Gardner_2000", + "name": "Gardner 2000", + "description": "Genetic toggle switch", + "path": "Published/Gardner2000/genetic_switch_gardner2000.bngl", + "file": "genetic_switch_gardner2000.bngl", + "tags": [ + "published", + "synthetic-biology", + "gardner", + "2000" + ], + "category": "synthetic-biology", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, { "id": "gas6-axl-signaling", "name": "gas6 axl signaling", @@ -5005,6 +5059,24 @@ "visible": false, "collectionId": "Mallela2022_MSAs" }, + { + "id": "Goldstein_1980", + "name": "Goldstein 1980", + "description": "BLBR heterogeneity", + "path": "Published/Goldstein1980/blbr_heterogeneity_goldstein1980.bngl", + "file": "blbr_heterogeneity_goldstein1980.bngl", + "tags": [ + "published", + "physics", + "goldstein", + "1980" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, { "id": "gpcr-desensitization-arrestin", "name": "gpcr desensitization arrestin", @@ -5240,6 +5312,24 @@ "visible": false, "collectionId": "Mallela2022_MSAs" }, + { + "id": "Harmon_2017", + "name": "Harmon 2017", + "description": "Antigen pulses", + "path": "Published/Harmon2017/antigen_pulses_harmon2017.bngl", + "file": "antigen_pulses_harmon2017.bngl", + "tags": [ + "published", + "immunology", + "harmon", + "2017" + ], + "category": "immunology", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, { "id": "Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA", "name": "Mallela 2022 - COVID-19 MSA Models - Harrisburg-Carlisle_PA_Harrisburg-Carlisle_PA", @@ -5478,6 +5568,42 @@ "visible": false, "collectionId": "Mallela2022_MSAs" }, + { + "id": "Hlavacek_1999", + "name": "Hlavacek 1999", + "description": "Steric effects", + "path": "Published/Hlavacek1999/steric_effects_hlavacek1999.bngl", + "file": "steric_effects_hlavacek1999.bngl", + "tags": [ + "published", + "physics", + "hlavacek", + "1999" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Hlavacek_2001", + "name": "Hlavacek 2001", + "description": "Kinetic proofreading", + "path": "Published/Hlavacek2001/kinetic_proofreading_hlavacek2001.bngl", + "file": "kinetic_proofreading_hlavacek2001.bngl", + "tags": [ + "published", + "physics", + "hlavacek", + "2001" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, { "id": "Hotlanta_m9", "name": "Mallela 2021 - COVID-19 City Models - Hotlanta_m9", @@ -7120,6 +7246,24 @@ "visible": false, "collectionId": null }, + { + "id": "Macken_1982", + "name": "Macken 1982", + "description": "TLBR solution macken 1982", + "path": "Published/Macken1982/tlbr_solution_macken1982.bngl", + "file": "tlbr_solution_macken1982.bngl", + "tags": [ + "published", + "physics", + "macken", + "1982" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, { "id": "Macon-Bibb_County_GA_Macon-Bibb_County_GA", "name": "Mallela 2022 - COVID-19 MSA Models - Macon-Bibb_County_GA_Macon-Bibb_County_GA", @@ -9951,6 +10095,42 @@ "visible": false, "collectionId": "Mallela2022_MSAs" }, + { + "id": "Posner_1995", + "name": "Posner 1995", + "description": "BLBR rings", + "path": "Published/Posner1995/blbr_rings_posner1995.bngl", + "file": "blbr_rings_posner1995.bngl", + "tags": [ + "published", + "physics", + "posner", + "1995" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, + { + "id": "Posner_2004", + "name": "Posner 2004", + "description": "BLBR cooperativity", + "path": "Published/Posner2004/blbr_cooperativity_posner2004.bngl", + "file": "blbr_cooperativity_posner2004.bngl", + "tags": [ + "published", + "physics", + "posner", + "2004" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, { "id": "Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY", "name": "Mallela 2022 - COVID-19 MSA Models - Poughkeepsie-Newburgh-Middletown_NY_Poughkeepsie-Newburgh-Middletown_NY", @@ -14520,6 +14700,24 @@ "visible": false, "collectionId": "Mallela2022_MSAs" }, + { + "id": "Yang_2008", + "name": "Yang 2008", + "description": "TLBR yang 2008", + "path": "Published/Yang2008/tlbr_yang2008.bngl", + "file": "tlbr_yang2008.bngl", + "tags": [ + "published", + "physics", + "yang", + "2008" + ], + "category": "physics", + "bng2_compatible": true, + "origin": "published", + "visible": true, + "collectionId": null + }, { "id": "York-Hanover_PA_York-Hanover_PA", "name": "Mallela 2022 - COVID-19 MSA Models - York-Hanover_PA_York-Hanover_PA",